Cómo hacer que OverlayChart indi funcione con EA
Cómo hacer que OverlayChart indi funcione con EA

 

Publi

Resultados 1 al 3 de 3

Tema: Cómo hacer que OverlayChart indi funcione con EA

  1. #1
    Este indicador funciona perfectamente cuando se adjunta a un gráfico.
    Sin embargo, obtuve un
    División cero
    error al usarlo en Expert Advisor.
    ¿Cómo soluciono esta línea para que funcione en EA?
    _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

    ¡Gracias!

    Código insertado/ ------------------------------------------------------------ --------------------- /| OverlayChart.mq5 |/| Derechos de autor 2014, EarnForex.com |/| http://www.earnforex.com |/| Convertido de la versión MT4 por http://www.irxfx.com |/ -------------------------------------------------------- ------------------- #property copyright Copyright 2014, EarnForex.com #property link http://www.earnforex.com #property versión 1.00 #property indicador_chart_window #property indicador_buffers 5 #property indicador_plots 1 #property indicador_type1 DRAW_COLOR_BARS #property indicador_color1 clrMediumSeaGreen, clrOrange #property indicador_width1 1/Indior Parameters input string SubSymbol = CHFJPY; entrada bool Duplicación = falso; entrada ENUM_DRAW_TYPE DrawType = DRAW_COLOR_BARS; color externo GridColor = Negro;/Búferes individuales double O#91;#93;; doble H#91;#93;; doble L#91;#93;; doble C#91;#93;; doble Color#91;#93;;/Variables globales double SubOpen#91;#93;; doble subalto#91;#93;; doble Subbajo#91;#93;; doble SubCerrar#91;#93;; Prefijo de cadena;/Prefijo Indio int Grid = 10;/Líneas de cuadrícula int SnapPips = 10;/Ajustar pips para líneas de cuadrícula/ ---------------------------------------- -------------------------- /| Función de inicialización de indicador personalizado |/ -------------------------------------------------------- ------------------- int OnInit() { IndiorSetString(INDICATOR_SHORTNAME, OverLay Chart ( SubSymbol )); SetIndexBuffer(0, O, INDICADOR_DATOS); SetIndexBuffer(1, H, INDICADOR_DATOS); SetIndexBuffer(2, L, INDICADOR_DATOS); SetIndexBuffer(3, C, INDICADOR_DATOS); SetIndexBuffer(4, Color, INDICATOR_COLOR_INDEX); ArraySetAsSeries(O, verdadero); ArraySetAsSeries(H, verdadero); ArraySetAsSeries(L, verdadero); ArraySetAsSeries(C, verdadero); ArraySetAsSeries(Color, verdadero); PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0); PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DrawType); ArraySetAsSeries(SubOpen, verdadero); ArraySetAsSeries(SubHigh, verdadero); ArraySetAsSeries(SubLow, verdadero); ArraySetAsSeries(SubClose, verdadero); volver (INICIO_??XITO); }/ ---------------------------------------------- -------------------- /| Función de desinicialización de indicador personalizado |/ -------------------------------------------------------- ------------------- void OnDeinit(const int razón) { for (int _i = 1; _i lt;= Grid; _i ) { ObjectDelete(0, Prefijo Cuadrícula _i ); ObjectDelete(0, Prefijo Precio _i ); } }/ --------------------------------------------------------------------- --------------------- /| Función de iteración de indicador personalizado |/ -------------------------------------------------------- ------------------- int OnCalculate(const int rates_total, const int prev_calculated, const datetime Time#91;#93;, const double Open#91;#93; , constante dobleHigh#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 propagación#91;#93;) { int _BarsCount; double _CurRangeHigh, _CurRangeLow, _CurRangeCenter; doble _SubRangeHigh, _SubRangeLow, _SubRangeCenter; doble _SubPunto; int _SubDigit; doble _SubOpen, _SubHigh, _SubLow, _SubClose; doble _PipsRatio; doble _GridPips, _GridPrice; int_i; ArraySetAsSeries(Abierto, verdadero); ArraySetAsSeries(Alto, verdadero); ArraySetAsSeries(Bajo, verdadero); ArraySetAsSeries(Cerrar, verdadero); ArraySetAsSeries(Tiempo, verdadero); ArrayInitialize(O, 0); ArrayInitialize(H, 0); ArrayInitialize(L, 0); ArrayInitialize(C, 0);/Calcular barras visibles _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; }/Calcular la relación del gráfico _CurRangeHigh = High#91;ArrayMaximum(High, _LastBar, _BarsCount)#93;; _CurRangeLow = Low#91;ArrayMinimum(Low, _LastBar, _BarsCount)#93;; _CurRangeCenter = (_CurRangeHigh _CurRangeLow)2; CopyOpen(SubSímbolo, 0, _LastBar, _BarsCount, SubOpen); CopyHigh(SubSímbolo, 0, _LastBar, _BarsCount, SubHigh); CopyLow(SubSímbolo, 0, _LastBar, _BarsCount, SubLow); CopyClose(SubSímbolo, 0, _LastBar, _BarsCount, SubClose); double SubMax = SubHigh#91;ArrayMaximum(SubHigh)#93;; double SubMin = SubLow#91;ArrayMinimum(SubLow)#93;; if (Duplicación) { _SubRangeHigh = SubMin; _SubRangeLow = SubMax; } más { _SubRangeHigh = SubMax; _SubRangeLow = SubMin; } _SubRangeCenter = (_SubRangeHigh _SubRangeLow)2; _SubPunto = SymbolInfoDouble(SubSímbolo, SÍMBOLO_PUNTO); _SubDigit = SymbolInfoInteger(SubSímbolo, SYMBOL_DIGITS); _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow); _GridPips = (_SubRangeHigh - _SubRangeLow)Grid; _GridPips = MathRound((_SubRangeHigh - _SubRangeLow)Grid(_SubPoint * SnapPips)) * (_SubPoint * SnapPips);/Dibujar velas para (_i = _LastBar; _i lt; _LastBar _BarsCount; _i ) { int i = _i - _LastBar; _SubAbierto = SubAbierto#91;i#93; - _SubRangeCenter; _SubAlto = SubAlto#91;i#93; - _SubRangeCenter; _Subbajo = Subbajo#91;i#93; - _SubRangeCenter; _SubCerrar = SubCerrar#91;i#93; - _SubRangeCenter; if (Duplicación) { if (_SubOpen lt; _SubClose) { H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; Color#91;_i#93; = 0; } más { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; Color#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; Color#91;_i#93; = 0; } más { L#91;_i#93; = _CurRangeCenter _SubLow * _PipsRatio; H#91;_i#93; = _CurRangeCenter _SubHigh * _PipsRatio; Color#91;_i#93; = 1; } C#91;_i#93; = _CurRangeCenter _SubClose * _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 * (Grid2 - 1)) - (_GridPips * (_i - 1)); ObjectCreate(0, Prefijo Cuadrícula _i, OBJ_TREND, 0, 0, 0); ObjectSetInteger(0, Prefijo Cuadrícula _i, OBJPROP_TIME, 0, Hora#91;_FirstBar#93;); ObjectSetDouble(0, Prefix Grid _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefijo Cuadrícula _i, OBJPROP_TIME, 1, Hora#91;_LastBar#93;); ObjectSetDouble(0, Prefix Grid _i, OBJPROP_PRICE, 1, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefijo Cuadrícula _i, OBJPROP_COLOR, GridColor); ObjectSetInteger(0, Prefijo Cuadrícula _i, OBJPROP_STYLE, STYLE_DOT); ObjectSetInteger(0, Prefijo Cuadrícula _i, OBJPROP_WIDTH, 1); ObjectSetInteger(0, Prefijo Cuadrícula _i, OBJPROP_RAY_RIGHT, verdadero); ObjectCreate(0, Prefijo Precio _i, OBJ_TEXT, 0, 0, 0); ObjectSetInteger(0, Prefijo Precio _i, OBJPROP_TIME, 0, Hora#91;_FirstBar - _BarsCount10#93;); ObjectSetDouble(0, Prefijo Precio _i, OBJPROP_PRICE, 0, _CurRangeCenter (_GridPrice - _SubRangeCenter) * _PipsRatio); ObjectSetInteger(0, Prefijo Precio _i, OBJPROP_COLOR, GridColor); ObjectSetString(0, Prefijo Precio _i, OBJPROP_TEXT, DoubleToString(_GridPrice, _SubDigit)); } retorno(tasas_total); }/ ---------------------------------------------- --------------------

  2.                         
    Publicidad
  3. #2
    Código insertado si (_SubRangeHigh - _SubRangeLow != 0) _PipsRatio = (_CurRangeHigh - _CurRangeLow)(_SubRangeHigh - _SubRangeLow)

  4. #3
    1 Adjunto(s) hye ferrufx, obtuve este ea de este foro... ¿puedes modificar este ea para intercambiar una transacción por una vela? Espero que me ayudes..gracias..

    https://www.forosforex.com/attachmen...1050702573.mq4

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.