Wie könnte ich den Wert von O [_i] von diesem Inior zu einem EA bekommen?
O [_] ist der offene Preis des Overlay-Diagramms indoor.
Eingefügter Code/ ----------------------------------------- --------------------- /| OverlayChart.mq5 |/| Copyright 2014-2016, EarnForex.com |/| http://www.earnforex.com |/| Konvertiert von der MT4-Version von http://www.irxfx.com |/ ------------------------------------------- ------------------- #property copyright Copyright 2014-2016, EarnForex.com #property link http://www.earnforex.com #property version 1.01 #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/Eingabeparameter der Indior-Parameter SubSymbol = GBPUSD; Eingabebool Mirroring = false; input ENUM_DRAW_TYPE DrawType = DRAW_COLOR_BARS; Eingabefarbe GridColor = clrBlack;/Indior-Puffer doppelt O # 91; # 93 ;; doppelt H # 91; # 93; doppeltes L # 91; # 93; doppeltes C # 91; # 93; doppelt Farbe # 91; # 93 ;;/Globale Variablen double SubOpen # 91; # 93 ;; double SubHigh # 91; # 93 ;; double SubLow # 91; # 93 ;; double SubClose # 91; # 93 ;; Zeichenfolge Präfix = OverlayChart;/Indior Prefix int Grid = 10;/Gitterlinien int SnapPips = 10;/Snapspips für Rasterlinien/ -------------------------------------- -------------------------- /| Benutzerdefinierte Indior-Initialisierungsfunktion |/ ------------------------------------------- ------------------- 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, Color, INDICATOR_COLOR_INDEX); ArraySetAsSeries (O, true); ArraySetAsSeries (H, true); ArraySetAsSeries (L, true); ArraySetAsSeries (C, true); ArraySetAsSeries (Color, true); 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); }/ ---------------------------------------------- -------------------- /| Benutzerdefinierte Indior-Deinitialisierungsfunktion |/ ------------------------------------------- ------------------- void OnDeinit (const int reason) {ObjectsDeleteAll (0, Präfix);* for (int _i = 1; _i lt; = Grid; _i ) {ObjectDelete (0, Präfix Gitter IntegerToString (_i)); ObjectDelete (0, Präfix Preis IntegerToString (_i)); } *}/ --------------------------------------- ----------------------- /| Benutzerdefinierte Indior-Iterationsfunktion |/ ------------------------------------------- ------------------- int OnCalculate (const int raten_total, const int prev_calculated, constdatetime Zeit # 91; # 93 ;, const double Öffnen # 91; # 93 ;, const double Hoch # 91; # 93 ;, const double. Low # 91; # 93 ;, const double 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; doppelt _SubPoint; int _SubDigit; double _SubOpen, _SubHigh, _SubLow, _SubClose; double _PipsRatio; double _GridPips, _GridPrice; int _i; ArraySetAsSeries (Open, true); ArraySetAsSeries (High, true); ArraySetAsSeries (Low, true); ArraySetAsSeries (Close, true); ArraySetAsSeries (Time, true); ArrayInitialize (O, 0); ArrayInitialize (H, 0); ArrayInitialize (L, 0); ArrayInitialize (C, 0);/Sichtbare Balken berechnen _BarsCount = (int) ChartGetInteger (0, CHART_VISIBLE_BARS) 1; int _FirstBar = (int) ChartGetInteger (0, CHART_FIRST_VISIBLE_BAR); int _LastBar = _FirstBar - _BarsCount 1; if (_LastBar lt; 0) {_LastBar = 0; _BarsCount = _FirstBar 1; }/Berechnen Sie das Diagrammverhältnis _CurRangeHigh = High # 91; ArrayMaximum (High, _LastBar, _BarsCount) # 93 ;; _CurRangeLow = Low # 91; ArrayMinimum (Low, _LastBar, _BarsCount) # 93 ;; _CurRangeCenter = (_CurRangeHigh _CurRangeLow)2; int n; n = CopyOpen (SubSymbol, 0, _LastBar, _BarsCount, SubOpen); if (! CheckData (n, _BarsCount)) return (0); n = CopyHigh (SubSymbol, 0, _LastBar, _BarsCount, SubHigh); if (! CheckData (n, _BarsCount)) return (0); n = CopyLow (SubSymbol, 0, _LastBar, _BarsCount, SubLow); if (! CheckData (n, _BarsCount)) return (0); n = CopyClose (SubSymbol, 0, _LastBar, _BarsCount, SubClose); if (! CheckData (n, _BarsCount)) return (0); double SubMax = SubHigh # 91; ArrayMaximum (SubHigh) # 93 ;; double SubMin = SubLow # 91; ArrayMinimum (SubLow) # 93 ;; if (Spiegelung) {_SubRangeHigh = SubMin; _SubRangeLow = SubMax; } else {_SubRangeHigh = SubMax; _SubRangeLow = SubMin; } _SubRangeCenter = (_SubRangeHigh _SubRangeLow)2; _SubPoint = SymbolInfoDouble (SubSymbol, SYMBOL_POINT); _SubDigit = (int) SymbolInfoInteger (SubSymbol, SYMBOL_DIGITS); if (_SubRangeHigh - _SubRangeLow == 0) return (0); _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow); _GridPips = (_SubRangeHigh - _SubRangeLow)Grid; _GridPips = MathRound ((_ SubRangeHigh - _SubRangeLow)Grid(_SubPoint * SnapPips)) * (_SubPoint * SnapPips);/Kerzenhalter zeichnen für (_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 (Spiegelung) {if (_SubOpen lt; _SubClose){H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; Farbe # 91; _i # 93; = 0; } else {L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; Farbe # 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; Farbe # 91; _i # 93; = 0; } else {L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; Farbe # 91; _i # 93; = 1; } C # 91; _i # 93; = _CurRangeCenter _SubClose * _PipsRatio; O # 91; _i # 93; = _CurRangeCenter _SubOpen * _PipsRatio; }} für (_i = 1; _i lt; = Gitter; _i ) {_GridPrice = MathRound (_SubRangeCenter(_SubPoint * SnapPips)) * (_SubPoint * SnapPips); _GridPrice = ((_GridPrice _GridPips2) _GridPips * (Grid2 - 1)) - (_GridPips * (_i - 1)); string grid_string = Präfix Gitter IntegerToString (_i); ObjectCreate (0, grid_string, OBJ_TREND, 0, 0, 0); ObjectSetInteger (0, grid_string, OBJPROP_TIME, 0, Zeit # 91; _FirstBar # 93;); ObjectSetDouble (0, grid_string, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger (0, grid_string, OBJPROP_TIME, 1, Zeit # 91; _LastBar # 93;); ObjectSetDouble (0, grid_string, OBJPROP_PRICE, 1, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger (0, grid_string, OBJPROP_COLOR, GridColor); ObjectSetInteger (0, grid_string, OBJPROP_STYLE, STYLE_DOT); ObjectSetInteger (0, grid_string, OBJPROP_WIDTH, 1); ObjectSetInteger (0, grid_string, OBJPROP_RAY_RIGHT, true); grid_string = Präfix Preis IntegerToString (_i); ObjectCreate (0, grid_string, OBJ_TEXT, 0, 0, 0); ObjectSetInteger (0, grid_string, OBJPROP_TIME, 0, Zeit # 91; _FirstBar - _BarsCount10 # 93;); ObjectSetDouble (0, grid_string, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger (0, grid_string, OBJPROP_COLOR, GridColor); ObjectSetString (0, grid_string, OBJPROP_TEXT, DoubleToString (_GridPrice, _SubDigit)); } return (rates_total); }/Überprüft die Anzahl der Timeseries-Balken und gibt entweder true (OK) oder false (Error) zurück. bool CheckData (int n, int _BarsCount) {if (n == -1) {Print (Diagrammdaten nicht verfügbar:, SubSymbol); falsch zurückgeben); } if (n! = _BarsCount) {Print (Diagrammdaten werden noch geladen für:, SubSymbol); falsch zurückgeben); } return (true); }/ ---------------------------------------------- --------------------