OverlayChart indi を EA で動作させる方法
Results 1 to 3 of 3

Thread: OverlayChart indi を EA で動作させる方法

  1. #1
    この屋内は、チャートに添付すると完全に機能します。
    しかし、私は
    ゼロ除算
    Expert Advisor で使用するとエラーが発生します。
    この行を回避して EA で動作させるにはどうすればよいですか?
    _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

    ありがとうございました!

    挿入コード/ --------------------------------------------- ---------------------- /| OverlayChart.mq5 |/|著作権 2014、EarnForex.com |/| http://www.earnforex.com |/| http://www.irxfx.com | MT4版から変換 |/ ------------------------------------------------------------- ------------------- #property copyright Copyright 2014, EarnForex.com #property link http://www.earnforex.com #property version 1.00 #property indior_chart_window #property indior_buffers 5 #property indior_plots 1 #property indior_type1 DRAW_COLOR_BARS #property indior_color1 clrMediumSeaGreen, clrOrange #property indior_width1 1/Indior パラメータ入力文字列 SubSymbol = CHFJPY; input bool ミラーリング = false; input ENUM_DRAW_TYPE DrawType = DRAW_COLOR_BARS; extern color GridColor = 黒;/Indior Buffers double O#91;#93;;ダブル H#91;#93;;ダブル L#91;#93;;ダブル C#91;#93;; double Color#91;#93;;/グローバル変数 double SubOpen#91;#93;; double SubHigh#91;#93;; double SubLow#91;#93;; double SubClos​​e#91;#93;;文字列プレフィックス。/Indior Prefix int Grid = 10;/グリッド線 int SnapPips = 10;/グリッド ラインのスナップ ピップ/ ---------------------------------------- -------------------------- /|カスタム屋内初期化関数 |/ ------------------------------------------------------------- ------------------- int OnInit() { IndiorSetString(INDICATOR_SHORTNAME, OverLay Chart ( SubSymbol )); SetIndexBuffer(0, O, INDICATOR_DATA); SetIndexBuffer(1, H, INDICATOR_DATA); SetIndexBuffer(2, L, INDICATOR_DATA); SetIndexBuffer(3, C, INDICATOR_DATA); SetIndexBuffer(4, 色, INDICATOR_COLOR_INDEX); ArraySetAsSeries(O, true); ArraySetAsSeries(H、真); ArraySetAsSeries(L、真); ArraySetAsSeries(C、真); ArraySetAsSeries(色、真); PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0); PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DrawType); ArraySetAsSeries(SubOpen, true); ArraySetAsSeries(SubHigh, true); ArraySetAsSeries(SubLow, true); ArraySetAsSeries(SubClos​​e, true);リターン (INIT_SUCCEEDED); }/ -------------------------------------------------- -------------------- /|カスタムの屋内初期化解除関数 |/ ------------------------------------------------------------- ------------------- void OnDeinit(const int reason) { for (int _i = 1; _i lt;= Grid; _i ) { ObjectDelete(0,プレフィックス グリッド _i ); ObjectDelete(0, プレフィックス 価格 _i ); } }/ ------------------------------------------------- ---------------------- /|カスタム屋内反復関数 |/ ------------------------------------------------------------- ------------------- int OnCalculate(const int rates_total, const int prev_calculated, const datetime Time#91;#93;, const double Open#91;#93; 、const doubleHigh#91;#93;、const double Low#91;#93;、const double Close#91;#93;、const long tick_volume#91;#93;、const long volume#91;#93;、const intスプレッド #91;#93;) { int _BarsCount; double _CurRangeHigh、_CurRangeLow、_CurRangeCenter; double _SubRangeHigh、_SubRangeLow、_SubRangeCenter; double _SubPoint; int _SubDigit; double _SubOpen、_SubHigh、_SubLow、_SubClos​​e; double _PipsRatio; double _GridPips、_GridPrice; int _i; ArraySetAsSeries(オープン、真); ArraySetAsSeries(高、真); ArraySetAsSeries(低、真); ArraySetAsSeries(クローズ、真); ArraySetAsSeries(時間、真); ArrayInitialize(O, 0); ArrayInitialize(H, 0); ArrayInitialize(L, 0); ArrayInitialize(C, 0);/可視バーを計算します _BarsCount = ChartGetInteger(0, CHART_VISIBLE_BARS) 1; int _FirstBar = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR); int _LastBar = _FirstBar - _BarsCount 1; if ( _LastBar lt; 0 ) { _LastBar = 0; _BarsCount = _FirstBar 1;/チャート比率を計算します _CurRangeHigh = High#91;ArrayMaximum(High, _LastBar, _BarsCount)#93;; _CurRangeLow = Low#91;ArrayMinimum(Low, _LastBar, _BarsCount)#93;; _CurRangeCenter = (_CurRangeHigh _CurRangeLow)2; CopyOpen(SubSymbol, 0, _LastBar, _BarsCount, SubOpen); CopyHigh(SubSymbol, 0, _LastBar, _BarsCount, SubHigh); CopyLow(SubSymbol, 0, _LastBar, _BarsCount, SubLow); CopyClose(SubSymbol, 0, _LastBar, _BarsCount, SubClos​​e); double SubMax = SubHigh#91;ArrayMaximum(SubHigh)#93;; double SubMin = SubLow#91;ArrayMinimum(SubLow)#93;; if (ミラーリング) { _SubRangeHigh = SubMin; _SubRangeLow = サブマックス; } else { _SubRangeHigh = SubMax; _SubRangeLow = サブ最小; } _SubRangeCenter = (_SubRangeHigh _SubRangeLow)2; _SubPoint = SymbolInfoDouble(SubSymbol, SYMBOL_POINT); _SubDigit = SymbolInfoInteger(SubSymbol, SYMBOL_DIGITS); _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow); _GridPips = (_SubRangeHigh - _SubRangeLow)グリッド; _GridPips = MathRound((_SubRangeHigh - _SubRangeLow)グリッド(_SubPoint * SnapPips)) * (_SubPoint * SnapPips);/ローソク足を描画します for (_i = _LastBar; _i lt; _LastBar _BarsCount; _i ) { int i = _i - _LastBar; _SubOpen = SubOpen#91;i#93; - _SubRangeCenter; _SubHigh = SubHigh#91;i#93; - _SubRangeCenter; _SubLow = SubLow#91;i#93; - _SubRangeCenter; _SubClos​​e = SubClos​​e#91;i#93; - _SubRangeCenter; if (ミラーリング) { if (_SubOpen lt; _SubClos​​e) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio;色#91;_i#93; = 0; } そうでなければ { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio;色#91;_i#93;= 1; } C#91;_i#93; = _CurRangeCenter _SubClos​​e * _PipsRatio; O#91;_i#93; = _CurRangeCenter _SubOpen * _PipsRatio; } else { if (_SubOpen lt; _SubClos​​e) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio;色#91;_i#93; = 0; } そうでなければ { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio;色#91;_i#93; = 1; } C#91;_i#93; = _CurRangeCenter _SubClos​​e * _PipsRatio; O#91;_i#93; = _CurRangeCenter _SubOpen * _PipsRatio; } } for (_i = 1; _i lt;= Grid; _i ) { _GridPrice = MathRound(_SubRangeCenter(_SubPoint * SnapPips)) * (_SubPoint * SnapPips); _GridPrice = ((_GridPrice _GridPips2) _GridPips * (グリッド2 - 1)) - (_GridPips * (_i - 1)); ObjectCreate(0, プレフィックス グリッド _i, OBJ_TREND, 0, 0, 0); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_TIME, 0, Time#91;_FirstBar#93;); ObjectSetDouble(0, プレフィックス グリッド _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_TIME, 1, Time#91;_LastBar#93;); ObjectSetDouble(0, プレフィックス グリッド _i, OBJPROP_PRICE, 1, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, プレフィックス グリッド _i, OBJPROP_COLOR, GridColor); ObjectSetInteger(0、プレフィックス グリッド _i、OBJPROP_STYLE、STYLE_DOT); ObjectSetInteger(0, プレフィックス グリッド _i, OBJPROP_WIDTH, 1); ObjectSetInteger(0, プレフィックス グリッド _i, OBJPROP_RAY_RIGHT, true); ObjectCreate(0, プレフィックス 価格 _i, OBJ_TEXT, 0, 0, 0); ObjectSetInteger(0, Prefix Price _i, OBJPROP_TIME, 0, Time#91;_FirstBar - _BarsCount10#93;); ObjectSetDouble(0, プレフィックス 価格 _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, プレフィックス 価格 _i, OBJPROP_COLOR, GridColor); ObjectSetString(0, プレフィックス 価格 _i, OBJPROP_TEXT, DoubleToString(_GridPrice, _SubDigit));戻り値 (rates_total); }/ -------------------------------------------------- --------------------

  2. #2
    挿入コード if(_SubRangeHigh - _SubRangeLow != 0) _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

  3. #3
    1 添付ファイル hye ferrufx、私はこのフォーラムからこの EA を入手しました..この EA を変更して、キャンドル 1 つにつき 1 つの取引を取引できますか?あなたが私を助けてくれることを願っています..ありがとう..

    https://www.forexgroove.com/attachme...1050702573.mq4

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.