Jak zmusić OverlayChart indi do współpracy z EA
Pokaż wyniki od 1 do 3 z 3

Wątek: Jak zmusić OverlayChart indi do współpracy z EA

  1. #1
    To wnętrze doskonale sprawdza się po podłączeniu do wykresu.
    Jednak dostałem ok
    Zero podziału
    błąd podczas używania go w Expert Advisor.
    Jak obejść tę linię, aby działała w EA?
    _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

    Dziękuję Ci!

    Wstawiony kod/ --------------------------------------------- ------ /| OverlayChart.mq5 |/| Prawa autorskie 2014, EarnForex.com |/| http://www.earnforex.com |/| Konwertowane z wersji MT4 przez http://www.irxfx.com |/ ----------------------------------------------- ---- #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/Parametry Indior input string SubSymbol = CHFJPY; wprowadź bool Mirroring = false; wprowadź ENUM_DRAW_TYPE DrawType = DRAW_COLOR_BARS; kolor zewnętrzny GridColor = Czarny;/Wewnętrzne bufory podwójne O#91;#93;; podwójne H#91;#93;; podwójne L#91;#93;; podwójne C#91;#93;; podwójny kolor #91;#93;;/Zmienne globalne double SubOpen#91;#93;; podwójne podwysokie#91;#93;; podwójny niski poziom#91;#93;; Podwójne zamknięcie#91;#93;; prefiks ciągu;/Przedrostek wewnętrzny int Siatka = 10;/Linie siatki int SnapPips = 10;/Przyciągaj punkty dla linii siatki/ ---------------------------------------- -------------------------- /| Niestandardowa funkcja inicjalizacji wnętrz |/ ----------------------------------------------- ---- 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, kolor, INDICATOR_COLOR_INDEX); ArraySetAsSeries(O, prawda); ArraySetAsSeries(H, prawda); ArraySetAsSeries(L, prawda); ArraySetAsSeries(C, prawda); ArraySetAsSeries(kolor, prawda); PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0); PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DrawType); ArraySetAsSeries(SubOpen, prawda); ArraySetAsSeries(SubHigh, prawda); ArraySetAsSeries(SubLow, true); ArraySetAsSeries(Podzamknięcie, prawda); powrót(INIT_SUCCEEDED); }/ ---------------------------------------------- ----- /| Niestandardowa funkcja deinicjalizacji wewnętrznej |/ ----------------------------------------------- ---- void OnDeinit(const int powód) { for (int _i = 1; _i lt;= Grid; _i ) { ObjectDelete(0, Przedrostek Siatka _i ); ObjectDelete(0, prefiks cena _i); } }/ ------------------------------------------------------------ ------ /| Niestandardowa funkcja iteracji wnętrz |/ ----------------------------------------------- ---- int OnCalculate(const int rate_total, const int prev_calculated, const datetime Time#91;#93;, const double Open#91;#93; , stała podwójnaHigh#91;#93;, const double Low#91;#93;, const double Zamknij#91;#93;, const long tick_volume#91;#93;, const long volume#91;#93;, const int spread#91;#93;) { int _LiczbaSłupków; podwójne _CurRangeHigh, _CurRangeLow, _CurRangeCenter; double _SubRangeHigh, _SubRangeLow, _SubRangeCenter; podwójny _Podpunkt; int _PodCyfra; podwójne _SubOpen, _SubHigh, _SubLow, _SubClose; podwójny _PipsRatio; podwójne _GridPips, _GridPrice; int _i; ArraySetAsSeries(Otwórz, prawda); ArraySetAsSeries(wysoki, prawda); ArraySetAsSeries(niski, prawda); ArraySetAsSeries(Zamknij, prawda); ArraySetAsSeries(czas, prawda); ArrayInitialize(O, 0); ArrayInitialize(H, 0); ArrayInitialize(L, 0); ArrayInitialize(C, 0);/Oblicz widoczne słupki _BarsCount = ChartGetInteger(0, CHART_VISIBLE_BARS) 1; int _FirstBar = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR); int _LastBar = _FirstBar - _BarsCount 1; if ( _OstatniBar lt; 0 ) { _OstatniBar = 0; _LiczbaSłupków = _PierwszySłupek 1; }/Oblicz współczynnik wykresu _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, SubClose); double SubMax = SubHigh#91;ArrayMaximum(SubHigh)#93;; double SubMin = SubLow#91;ArrayMinimum(SubLow)#93;; if (Mirroring) { _SubRangeHigh = SubMin; _SubRangeLow = SubMax; } else { _SubRangeHigh = SubMax; _SubRangeLow = SubMin; } _SubRangeCenter = (_SubRangeHigh _SubRangeLow)2; _SubPoint = SymbolInfoDouble(PodSymbol, SYMBOL_POINT); _PodCyfra = SymbolInfoInteger(PodSymbol, SYMBOL_CYFRY); _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow); _GridPips = (_SubRangeHigh - _SubRangeLow)Siatka; _GridPips = MathRound((_SubRangeHigh - _SubRangeLow)Grid(_SubPoint * SnapPips)) * (_SubPoint * SnapPips);/Rysuj świeczniki dla (_i = _LastBar; _i lt; _LastBar _BarsCount; _i ) { int i = _i - _LastBar; _SubOpen = SubOpen#91;i#93; - _Centrum podzakresu; _Podwysoki = Podwysoki#91;i#93; - _Centrum podzakresu; _SubLow = SubLow#91;i#93; - _Centrum podzakresu; _Podzamknięcie = Podzamknięcie#91;i#93; - _Centrum podzakresu; if (Mirroring) { if (_SubOpen lt; _SubClose) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; Kolor#91;_i#93; = 0; } jeszcze { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; Kolor#91;_i#93;= 1; } C#91;_i#93; = _CurRangeCenter _SubClose * _PipsRatio; O#91;_i#93; = _CurRangeCenter _SubOpen * _PipsRatio; } else { if (_SubOpen lt; _SubClose) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; Kolor#91;_i#93; = 0; } jeszcze { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; Kolor#91;_i#93; = 1; } C#91;_i#93; = _CurRangeCenter _SubClose * _PipsRatio; O#91;_i#93; = _CurRangeCenter _SubOpen * _PipsRatio; } } for (_i = 1; _i lt;= Siatka; _i ) { _GridPrice = MathRound(_SubRangeCenter(_SubPoint * SnapPips)) * (_SubPoint * SnapPips); _GridPrice = ((_GridPrice _GridPips2) _GridPips * (Siatka2 - 1)) - (_GridPips * (_i - 1)); ObjectCreate(0, przedrostek siatka _i, OBJ_TREND, 0, 0, 0); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_TIME, 0, Time#91;_FirstBar#93;); ObjectSetDouble(0, prefiks siatka _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefix Grid _i, OBJPROP_TIME, 1, Time#91;_LastBar#93;); ObjectSetDouble(0, prefiks siatka _i, OBJPROP_PRICE, 1, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, przedrostek siatka _i, OBJPROP_COLOR, kolor siatki); ObjectSetInteger(0, przedrostek siatka _i, OBJPROP_STYLE, STYLE_DOT); ObjectSetInteger(0, prefiks siatka _i, OBJPROP_WIDTH, 1); ObjectSetInteger(0, przedrostek siatka _i, OBJPROP_RAY_RIGHT, prawda); ObjectCreate(0, prefiks cena _i, OBJ_TEXT, 0, 0, 0); ObjectSetInteger(0, Prefix Price _i, OBJPROP_TIME, 0, Time#91;_FirstBar - _BarsCount10#93;); ObjectSetDouble(0, prefiks cena _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, prefiks cena _i, OBJPROP_COLOR, GridColor); ObjectSetString(0, prefiks cena _i, OBJPROP_TEXT, DoubleToString(_GridPrice, _SubDigit)); } return(rates_total); }/ ---------------------------------------------- -----

  2. #2
    Wstawiony kod if(_SubRangeHigh - _SubRangeLow != 0) _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

  3. #3
    1 Załącznik(i) hye ferrufx, dostałem to ea z tego forum.. czy możesz zmodyfikować to ea, aby wymieniać jedną wymianę na jedną świecę? Mam nadzieję, że mi pomożesz..dziękuję..

    https://www.forex-instant.com/attach...1050702573.mq4

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.