Ayuda a la codificación - página 384

 

Estoy recibiendo un error/advertencia cuando compilo. Puede alguien por favor hacer esto compatible con las últimas compilaciones de MT4... a menos que este error no sea un gran problema.

Muchas gracias

jbozman

Archivos adjuntos:
 
jbozman:
Estoy recibiendo un error/advertencia cuando compilo. Puede alguien por favor hacer esto compatible con las últimas compilaciones de MT4... a menos que este error no sea un gran problema.

Muchas gracias

jbozman

jbozman

Pruebe ahora : price_lines_jlmv_1.mq4

Archivos adjuntos:
 
mladen:
jbozman Pruébalo ahora : price_lines_jlmv_1.mq4

No hay errores. Compilado y se ve bien. Eres genial.

j

 

por favor ayuda ... si compilo ... no tengo error

pero en la pestaña de expertos metatrader tiene error

2014.11.02 15:20:17.495 array out of range in '#MTF__B.mq4' (84,25)[/PHP]

[PHP]

//+------------------------------------------------------------------+

//| #MTF__B.mq4 |

//| Copyright 2014, MetaQuotes Software Corp. |

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2014, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#property version "1.00"

#property strict

#property indicator_chart_window

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 clrDodgerBlue

#property indicator_color2 clrDeepPink

#property indicator_width1 0

#property indicator_width2 0

//---- input parameters

/*************************************************************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIOD_W1 10080

PERIOD_MN1 43200

You must use the numeric value of the timeframe that you want to use

when you set the TimeFrame' value with the indicator inputs.

---------------------------------------

PRICE_CLOSE 0 Close price.

PRICE_OPEN 1 Open price.

PRICE_HIGH 2 High price.

PRICE_LOW 3 Low price.

PRICE_MEDIAN 4 Median price, (high+low)/2.

PRICE_TYPICAL 5 Typical price, (high+low+close)/3.

PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4.

You must use the numeric value of the Applied Price that you want to use

when you set the 'applied_price' value with the indicator inputs.

**************************************************************************/

extern int TimeFrame=30;

extern int barn=1000;

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicator line

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(0,DRAW_ARROW,0,5);

SetIndexStyle(1,DRAW_ARROW,0,5);

SetIndexArrow(0,158);

SetIndexArrow(1,158);

return(0);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,NULL,TimeFrame);

limit=Bars-counted_bars;

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++; ///// line of error here ...

/***********************************************************

Add your main indicator loop below. You can reference an existing

indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

**********************************************************/

ExtMapBuffer1=iCustom(NULL,TimeFrame,"indicator",1,4,0,y) ;

ExtMapBuffer2=iCustom(NULL,TimeFrame,"indicator",1,4,1,y) ;

}

//

return(0);

}

//+------------------------------------------------------------------+

gracias

 
rizkyd:
por favor ayuda ... si compilo ... no tengo error

pero en la pestaña de experto metatrader tiene error

2014.11.02 15:20:17.495 array out of range in '#MTF__B.mq4' (84,25)[/PHP]

[PHP]

//+------------------------------------------------------------------+

//| #MTF__B.mq4 |

//| Copyright 2014, MetaQuotes Software Corp. |

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2014, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#property version "1.00"

#property strict

#property indicator_chart_window

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 clrDodgerBlue

#property indicator_color2 clrDeepPink

#property indicator_width1 0

#property indicator_width2 0

//---- input parameters

/*************************************************************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIOD_W1 10080

PERIOD_MN1 43200

You must use the numeric value of the timeframe that you want to use

when you set the TimeFrame' value with the indicator inputs.

---------------------------------------

PRICE_CLOSE 0 Close price.

PRICE_OPEN 1 Open price.

PRICE_HIGH 2 High price.

PRICE_LOW 3 Low price.

PRICE_MEDIAN 4 Median price, (high+low)/2.

PRICE_TYPICAL 5 Typical price, (high+low+close)/3.

PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4.

You must use the numeric value of the Applied Price that you want to use

when you set the 'applied_price' value with the indicator inputs.

**************************************************************************/

extern int TimeFrame=30;

extern int barn=1000;

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicator line

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(0,DRAW_ARROW,0,5);

SetIndexStyle(1,DRAW_ARROW,0,5);

SetIndexArrow(0,158);

SetIndexArrow(1,158);

return(0);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,NULL,TimeFrame);

limit=MathMin(Bars-counted_bars,Bars-1);

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++; ///// line of error here ...

/***********************************************************

Add your main indicator loop below. You can reference an existing

indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

**********************************************************/

ExtMapBuffer1=iCustom(NULL,TimeFrame,"indicator",1,4,0,y) ;

ExtMapBuffer2=iCustom(NULL,TimeFrame,"indicator",1,4,1,y) ;

}

//

return(0);

}

//+------------------------------------------------------------------+

gracias

Intente reemplazar esta línea

limit=Barras_contadas;

con esto :

limit=MathMin(MathMax(Bars-counted_bars,2*TimeFrame/Period()),Bars-1);

 
mladen:
Prueba a sustituir esta línea

limit=Barras_contabilizadas;

con esto :

limit=MathMin(MathMax(Bars-counted_bars,2*TimeFrame/Period()),Bars-1);

gracias mladen

 

Hola Mladen,

Estoy teniendo problemas para codificar este EA ya que las reglas de entrada son algo que nunca he hecho antes.

Por ejemplo, en este comercio, es simple para escribir la regla de entrada ya que la flecha verde y roja aparecen al mismo tiempo. Así que en la apertura de la siguiente vela, tomamos una posición corta.

Pero, en este siguiente ejemplo, primero obtengo la flecha verde sin flecha roja. Así que no tomo la operación hasta que aparezca la flecha roja. Además, todas las velas que están después de la flecha verde y antes de la flecha roja deben ser ascendentes, ya que de lo contrario no es una operación válida.

¿Cómo puedo codificar esta regla específica? Sé cómo codificarla para la vela actual, pero no sé cómo especificar estas condiciones. ¡Cualquier ayuda sería genial!

Archivos adjuntos:
capture1.jpg  19 kb
capture.jpg  22 kb
 
Jason2005:
Hola Mladen,

Estoy teniendo problemas para codificar este EA ya que las reglas de entrada son algo que nunca he hecho antes.

Por ejemplo, en esta operación, es sencillo escribir la regla de entrada ya que la flecha verde y roja aparecen al mismo tiempo. Así que en la apertura de la siguiente vela, tomamos una posición corta.

Pero, en este siguiente ejemplo, primero obtengo la flecha verde sin flecha roja. Así que no tomo la operación hasta que aparezca la flecha roja. Además, todas las velas que están después de la flecha verde y antes de la flecha roja deben ser ascendentes, ya que de lo contrario no es una operación válida.

¿Cómo diablos puedo codificar esta regla específica? Sé cómo codificarla para la vela actual, pero no sé cómo especificar estas condiciones. ¡Cualquier ayuda sería genial!

Jason

¿Por qué no copias las condiciones lógicas del código que está creando esas flechas?

 
mladen:
Jason ¿Por qué no copias las condiciones lógicas del código que está creando esas flechas?

No estoy muy seguro de entender lo que dices...

Lo que trato de averiguar es cómo en mis condiciones de compra o venta hago que el EA entienda que cuando aparece la flecha roja (que es disparadora) la condición es que debe haber habido una flecha verde antes y que todas las velas que siguen a esa flecha deben ser ARRIBA o ABAJO dependiendo de lo que se necesite. Pero no sé cuándo habrá aparecido esa flecha verde...

 
Jason2005:
No estoy muy seguro de entender lo que dices... Lo que trato de averiguar es cómo en mis condiciones de compra o venta hago que el EA entienda que cuando aparece la flecha roja (que es disparadora) la condición es que debe haber habido una flecha verde antes y que todas las velas que siguen a esa flecha deben ser ARRIBA o ABAJO dependiendo de lo que se necesite. Pero no sé cuándo habrá aparecido esa flecha verde...

Hola Jason2005,

Las flechas rojas y verdes son valores en los búferes de su indicador.... no su EA....

Utiliza iCustom en tu EA para llamar a los valores de tu indicador en los buffers...y luego utilizarlos para tu estrategia de trading.

Hay muchos buenos mensajes aquí en este foro sobre cómo utilizar iCustom en su EA...

Mientras tanto... si adjunta sus indicadores aquí... alguien puede ser capaz de ayudarle a mostrar qué búferes de indicadores puede utilizar en sus declaraciones iCustom.

Espero que esto te ayude,

Robert