Tôi có thể nhận được bất kỳ giá trị tính toán từ một chỉ số?
Results 1 to 2 of 2

Thread: Tôi có thể nhận được bất kỳ giá trị tính toán từ một chỉ số?

  1. #1
    Làm thế nào tôi có thể nhận được giá trị của O [_i] từ bản in này cho EA.
    O [_] là giá mở của biểu đồ lớp phủ trong nhà.

    Mã đã chèn/ --------------------------------------------- --------------------- /| Lớp phủChart.mq5 |/| Bản quyền 2014-2016, EarnForex.com |/| http://www.earnforx.com |/| Được chuyển đổi từ phiên bản MT4 bởi http://www.irxfx.com |/ ----------------------------------------------- ------------------- #property bản quyền 2014-2016, EarnForex.com #property link http://www.earnforex.com #property phiên bản 1.01 #property indior_chart_window #property indior_buffers 5 #property indior_plots 1 #property indior_type1 DRAW_COLOR_Bar đầu vào bool Mirroring = false; đầu vào ENUM_DRAW_TYPE DrawType = DRAW_COLOR_BARS; màu đầu vào GridColor = clrBlack;/Bộ đệm Indior nhân đôi O # 91; # 93 ;; gấp đôi H # 91; # 93 ;; gấp đôi L # 91; # 93 ;; gấp đôi C # 91; # 93 ;; gấp đôi Màu # 91; # 93 ;;/Biến toàn cầu nhân đôi SubOpen # 91; # 93 ;; gấp đôi SubHigh # 91; # 93 ;; gấp đôi SubLow # 91; # 93 ;; gấp đôi Subc Đóng # 91; # 93 ;; chuỗi Tiền tố = OverlayChart;/Tiền tố Indior int Grid = 10;/Đường lưới int SnapPips = 10;/Snap Pips cho các đường lưới/ ---------------------------------------- -------------------------- /| Chức năng khởi tạo tùy chỉnh indior |/ ----------------------------------------------- ------------------- int OnInit () {IndiorSetString (INDICATOR_SHORTNAME, Biểu đồ quá hạn ( SubSymbol )); Set IndexBuffer (0, O, INDICATOR_DATA); Set IndexBuffer (1, H, INDICATOR_DATA); Set IndexBuffer (2, L, INDICATOR_DATA); Set IndexBuffer (3, C, INDICATOR_DATA); Set IndexBuffer (4, Màu sắc, INDICATOR_COLOR_INDEX); ArraySetAsSeries (O, đúng); ArraySetAsSeries (H, đúng); ArraySetAsSeries (L, đúng); ArraySetAsSeries (C, đúng); ArraySetAsSeries (Màu sắc, đúng); PlotIndexsetDouble (0, PLOT_EMPTY_VALUE, 0); PlotIndexsetInteger (0, PLOT_DRAW_TYPE, DrawType); ArraySetAsSeries (SubOpen, đúng); ArraySetAsSeries (SubHigh, đúng); ArraySetAsSeries (SubLow, true); ArraySetAsSeries (SubC Đóng, đúng); trả lại (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Tùy chỉnh chức năng khử khử indior |/ ----------------------------------------------- ------------------- void OnDeinit (const int reason) {ObjectDelete ALL (0, Tiền tố);* for (int _i = 1; _i lt; = Grid; _i ) {ObjectDelete (0, Tiền tố Lưới IntegerToString (_i)); ObjectDelete (0, Tiền tố Giá IntegerToString (_i)); } *}/ ------------------------------------------- ----------------------- /| Chức năng lặp tùy chỉnh indior |/ ----------------------------------------------- ------------------- int OnCalculate (const int Rate_total, const int trước_calculated, constThời gian thời gian # 91; # 93;, const double Mở # 91; # 93;, const double Cao # 91; # 93;, const double Thấp # 91; # 93;, const double Đóng # 91; # 93;, const dài tick_volume # 91; # 93;, const dài tập # 91; # 93;, const int lây lan # 91; # 93;) {int _BarsCount; gấp đôi _CurRangeHigh, _CurRangeLow, _CurRangeCenter; gấp đôi _SubRangeHigh, _SubRangeLow, _SubRangeCenter; gấp đôi _SubPoint; int _SubDigit; gấp đôi _SubOpen, _SubHigh, _SubLow, _SubC Đóng; gấp đôi _PipsRatio; gấp đôi _GridPips, _Gridprice; int _i; ArraySetAsSeries (Mở, đúng); ArraySetAsSeries (Cao, đúng); ArraySetAsSeries (Thấp, đúng); ArraySetAsSeries (Đóng, đúng); ArraySetAsSeries (Thời gian, đúng); ArrayInitialize (O, 0); ArrayInitialize (H, 0); ArrayInitialize (L, 0); ArrayInitialize (C, 0);/Tính toán các thanh hiển thị _BarsCount = (int) ChartGetInteger (0, CHART_VISIBLE_BARS) 1; int _FirstBar = (int) Biểu đồGetInteger (0, CHART_FIRST_VISIBLE_BAR); int _LastBar = _FirstBar - _BarsCount 1; if (_LastBar lt; 0) {_LastBar = 0; _BarsCount = _FirstBar 1; }/Tính tỷ lệ biểu đồ _CurRangeHigh = Cao # 91; ArrayMaximum (Cao, _LastBar, _BarsCount) # 93 ;; _CurRangeLow = Thấp # 91; ArrayMinimum (Thấp, _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 = CopyC Đóng (SubSymbol, 0, _LastBar, _BarsCount, SubC Đóng); if (! CheckData (n, _BarsCount)) return (0); gấp đôi SubMax = SubHigh # 91; ArrayMaximum (SubHigh) # 93 ;; gấp đôi SubMin = SubLow # 91; ArrayMinimum (SubLow) # 93 ;; if (Phản chiếu) {_SubRangeHigh = SubMin; _SubRangeLow = SubMax; } khác {_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)Lưới; _GridPips = MathRound ((_ SubRangeHigh - _SubRangeLow)Grid(_SubPoint * SnapPips)) * (_SubPoint * SnapPips);/Vẽ nến cho (_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 = SubC Đóng # 91; i # 93; - _SubRangeCenter; if (Phản chiếu) {if (_SubOpen lt; _SubC Đóng){H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; Màu # 91; _i # 93; = 0; } khác {L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; Màu # 91; _i # 93; = 1; } C # 91; _i # 93; = _CurRangeCenter _SubC Đóng * _PipsRatio; O # 91; _i # 93; = _CurRangeCenter _SubOpen * _PipsRatio; } other {if (_SubOpen lt; _SubC Đóng) {H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; Màu # 91; _i # 93; = 0; } khác {L # 91; _i # 93; = _CurRangeCenter _SubLow * _PipsRatio; H # 91; _i # 93; = _CurRangeCenter _SubHigh * _PipsRatio; Màu # 91; _i # 93; = 1; } C # 91; _i # 93; = _CurRangeCenter _SubC Đóng * _PipsRatio; O # 91; _i # 93; = _CurRangeCenter _SubOpen * _PipsRatio; }} cho (_i = 1; _i lt; = Grid; _i ) {_Gridprice = MathRound (_SubRangeCenter(_SubPoint * SnapPips)) * (_SubPoint * SnapPips); _Gridprice = ((_Gridprice _GridPips2) _GridPips * (Lưới2 - 1)) - (_GridPips * (_i - 1)); chuỗi Grid_opes = Tiền tố Lưới IntegerToString (_i); ObjectCreate (0, Grid_ chuỗi, OBJ_TREND, 0, 0, 0); ObjectSetInteger (0, Grid_opes, OBJPROP_TIME, 0, Thời gian # 91; _FirstBar # 93;); ObjectSetDouble (0, Grid_ chuỗi, OBJPROP_PRICE, 0, _CurRangeCenter (_Gridprice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger (0, Grid_opes, OBJPROP_TIME, 1, Time # 91; _LastBar # 93;); ObjectSetDouble (0, Grid_ chuỗi, OBJPROP_PRICE, 1, _CurRangeCenter (_Gridprice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger (0, Grid_opes, OBJPROP_COLOR, GridColor); ObjectSetInteger (0, Grid_opes, OBJPROP_STYLE, STYLE_DOT); ObjectSetInteger (0, Grid_ chuỗi, OBJPROP_WIDTH, 1); ObjectSetInteger (0, Grid_opes, OBJPROP_RAY_RIGHT, true); Grid_opes = Tiền tố Giá IntegerToString (_i); ObjectCreate (0, Grid_ chuỗi, OBJ_TEXT, 0, 0, 0); ObjectSetInteger (0, Grid_opes, OBJPROP_TIME, 0, Time # 91; _FirstBar - _BarsCount10 # 93;); ObjectSetDouble (0, Grid_ chuỗi, OBJPROP_PRICE, 0, _CurRangeCenter (_Gridprice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger (0, Grid_opes, OBJPROP_COLOR, GridColor); ObjectSetString (0, Grid_ chuỗi, OBJPROP_TEXT, DoubleToString (_Gridprice, _SubDigit)); } return (Rate_total); }/Kiểm tra số lượng thanh thời gian và trả về true (OK) hoặc false (Error). bool CheckData (int n, int _BarsCount) {if (n == -1) {In (Dữ liệu biểu đồ không khả dụng :, SubSymbol); trả lại (sai); } if (n! = _BarsCount) {In (Dữ liệu biểu đồ vẫn đang tải cho :, SubSymbol); trả lại (sai); } trả lại (đúng); }/ ---------------------------------------------- --------------------

  2. #2
    Bạn phải sử dụng trong EA của mình hàm iCustom () gọi đúng bộ đệm. Trong ví dụ của bạn, nếu bạn cần giá trị O [], bộ đệm cho iCustom () là 0 (không).

Quyền đăng bài

  • Bạn không thể đăng bài viết mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng tệp đính kèm
  • Bạn không thể chỉnh sửa bài đăng của bạn
  •  
Chính sách Cookie
Chính sách Cookie: Website forexibroker sử dụng cookies và khi tiếp tục sử dụng website bạn chấp thuận với điều này. Để có thêm thông tin, vui lòng đọc 'Thông tin Cookie'.