Indior ini berfungsi dengan sempurna apabila dilampirkan pada carta.
Walau bagaimanapun, saya mendapat a
Bahagi Sifar
ralat semasa menggunakannya dalam Penasihat Pakar.
Bagaimanakah cara saya mengatasi talian ini untuk membolehkannya berfungsi dalam EA?
_PipsNisbah = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

Terima kasih!

Kod Dimasukkan/ ---------------------------------------------- ---------------------- /| OverlayChart.mq5 |/| Hak Cipta 2014, EarnForex.com |/| http://www.earnforex.com |/| Ditukar daripada versi MT4 oleh http://www.irxfx.com |/ ------------------------------------------------ ------------------- #hak cipta hartanah Hak Cipta 2014, EarnForex.com #pautan hartanah 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 clrMedium SeaGreen, clrOrange #property indior_width1 1/Parameter Indior rentetan input SubSimbol = CHFJPY; input bool Mirroring = palsu; masukkan ENUM_DRAW_TYPE DrawType = DRAW_COLOR_BARS; warna luaran GridColor = Hitam;/Penimbal Indior berganda O#91;#93;; ganda H#91;#93;; ganda L#91;#93;; ganda C#91;#93;; warna ganda#91;#93;;/Pembolehubah global menggandakan SubBuka#91;#93;; berganda SubHigh#91;#93;; berganda SubLow#91;#93;; gandakan SubClose#91;#93;; Awalan rentetan;/Indior Prefix int Grid = 10;/Grid Lines int SnapPips = 10;/Snap Pips Untuk Garisan Grid/ --------------------------------------- -------------------------- /| Fungsi permulaan indior tersuai |/ ------------------------------------------------ ------------------- int OnInit() { IndiorSetString(INDICATOR_SHORTNAME, Carta Overlay ( SubSimbol )); SetIndexBuffer(0, O, INDICATOR_DATA); SetIndexBuffer(1, H, INDICATOR_DATA); SetIndexBuffer(2, L, INDICATOR_DATA); SetIndexBuffer(3, C, INDICATOR_DATA); SetIndexBuffer(4, Warna, INDICATOR_COLOR_INDEX); ArraySetAsSeries(O, true); ArraySetAsSeries(H, benar); ArraySetAsSeries(L, benar); ArraySetAsSeries(C, benar); ArraySetAsSeries(Warna, benar); PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0); PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DrawType); ArraySetAsSeries(SubOpen, true); ArraySetAsSeries(SubHigh, true); ArraySetAsSeries(SubLow, true); ArraySetAsSeries(SubClose, true); return(INIT_SUCCEEDED); }/ ------------------------------------------------ -------------------- /| Fungsi penyahinisian indior tersuai |/ ------------------------------------------------ ------------------- void OnDeinit(const int reason) { for (int _i = 1; _i lt;= Grid; _i ) { ObjectDelete(0, Awalan Grid _i ); ObjectDelete(0, Prefix Price _i ); } }/ ------------------------------------------------ ---------------------- /| Fungsi lelaran indior tersuai |/ ------------------------------------------------ ------------------- int OnCalculate(const int rates_total, const int prev_calculated, const datetime Time#91;#93;, const double Open#91;#93; , const doubleTinggi#91;#93;, const double Rendah#91;#93;, const double Close#91;#93;, const long tick_volume#91;#93;, const long volume#91;#93;, const int spread#91;#93;) { int _BarsCount; double _CurRangeHigh, _CurRangeLow, _CurRangeCenter; double _SubRangeHigh, _SubRangeLow, _SubRangeCenter; double _SubPoint; int _SubDigit; double _SubOpen, _SubHigh, _SubLow, _SubClose; double _PipsNisbah; berganda _GridPips, _GridPrice; int _i; ArraySetAsSeries(Buka, benar); ArraySetAsSeries(Tinggi, benar); ArraySetAsSeries(Rendah, benar); ArraySetAsSeries(Tutup, benar); ArraySetAsSeries(Masa, benar); ArrayInitialize(O, 0); ArrayInitialize(H, 0); ArrayInitialize(L, 0); ArrayInitialize(C, 0);/Calculate Visible Bars _BarsCount = ChartGetInteger(0, CHART_VISIBLE_BARS) 1; int _FirstBar = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR); int _LastBar = _FirstBar - _BarsCount 1; jika ( _LastBar lt; 0 ) { _LastBar = 0; _BarsCount = _FirstBar 1; }/Kira Nisbah Carta _CurRangeHigh = Tinggi#91;ArrayMaximum(Tinggi, _LastBar, _BarsCount)#93;; _CurRangeLow = Rendah#91;ArrayMinimum(Rendah, _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, SubClose); SubMax berganda = SubHigh#91;ArrayMaximum(SubHigh)#93;; SubMin berganda = SubLow#91;ArrayMinimum(SubLow)#93;; if (Mirroring) { _SubRangeHigh = SubMin; _SubRangeLow = SubMax; } lain { _SubRangeHigh = SubMax; _SubRangeLow = SubMin; } _SubRangeCenter = (_SubRangeHigh _SubRangeLow)2; _SubPoint = SymbolInfoDouble(SubSymbol, SYMBOL_POINT); _SubDigit = SymbolInfoInteger(SubSymbol, SYMBOL_DIGITS); _PipsNisbah = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow); _GridPips = (_SubRangeHigh - _SubRangeLow)Grid; _GridPips = MathRound((_SubRangeHigh - _SubRangeLow)Grid(_SubPoint * SnapPips)) * (_SubPoint * SnapPips);/Lukiskan Candlesticks untuk (_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; _SubClose = SubClose#91;i#93; - _SubRangeCenter; if (Mirroring) { if (_SubOpen lt; _SubClose) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsNisbah; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsNisbah; Warna#91;_i#93; = 0; } lain { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsNisbah; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsNisbah; Warna#91;_i#93;= 1; } C#91;_i#93; = _CurRangeCenter _SubClose * _PipsNisbah; O#91;_i#93; = _CurRangeCenter _SubOpen * _PipsNisbah; } else { if (_SubOpen lt; _SubClose) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsNisbah; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsNisbah; Warna#91;_i#93; = 0; } lain { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsNisbah; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsNisbah; Warna#91;_i#93; = 1; } C#91;_i#93; = _CurRangeCenter _SubClose * _PipsNisbah; O#91;_i#93; = _CurRangeCenter _SubOpen * _PipsNisbah; } } untuk (_i = 1; _i lt;= Grid; _i ) { _GridPrice = MathRound(_SubRangeCenter(_SubPoint * SnapPips)) * (_SubPoint * SnapPips); _GridPrice = ((_GridPrice _GridPips2) _GridPips * (Grid2 - 1)) - (_GridPips * (_i - 1)); ObjectCreate(0, Prefix Grid _i, OBJ_TREND, 0, 0, 0); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_TIME, 0, Time#91;_FirstBar#93;); ObjectSetDouble(0, Prefix Grid _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_TIME, 1, Time#91;_LastBar#93;); ObjectSetDouble(0, Prefix Grid _i, OBJPROP_PRICE, 1, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_COLOR, GridColor); ObjectSetInteger(0, Awalan Grid _i, OBJPROP_STYLE, STYLE_DOT); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_WIDTH, 1); ObjectSetInteger(0, Awalan Grid _i, OBJPROP_RAY_RIGHT, benar); ObjectCreate(0, Awalan Harga _i, OBJ_TEXT, 0, 0, 0); ObjectSetInteger(0, Prefix Price _i, OBJPROP_TIME, 0, Time#91;_FirstBar - _BarsCount10#93;); ObjectSetDouble(0, Prefix Price _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Awalan Harga _i, OBJPROP_COLOR, GridColor); ObjectSetString(0, Prefix Price _i, OBJPROP_TEXT, DoubleToString(_GridPrice, _SubDigit)); } pulangan(kadar_jumlah); }/ ------------------------------------------------ --------------------