¡Pide! - página 29

 
Yannis:
Dave,

Prueba a cambiar tu código por el siguiente fragmento y dime si ha funcionado.

Yannis

int i=0;

for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && ( OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Punto),Bid-(20*Punto),Cyan); //Modificar stop loss y take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && ( OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Punto),Ask+(20*Punto),Cyan); /Modificar stop loss y take profit

return(0);

}

return(0);

}

}

Tengo el problema de que siempre modifica las operaciones en el backtester una y otra vez. ¿Cómo puedo conseguir que modifique las operaciones una vez? Dado que el programa se va a dormir, las únicas operaciones que deben modificarse son las que aún están abiertas.

Por favor, vea el .Gif adjunto de los resultados del Backtest. ¡Estoy muy cerca de conseguir esto bien - Por favor, aconsejar! Utilizo esta modificación de Take Profit y Stop Loss junto con el modo de suspensión. Por favor, vea el código siguiente

int inicio()

{

si (UseHourTrade)

{

int a=0

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Comentario(

"\n"," * Asesor experto en energía eólica solar *",

"\n",

"\n", " - PROGRAMA EN CICLO DE SUEÑO - ",

"\n",

"\n"," > HORAS DE NO COMERCIALIZACIÓN! <");

///////////////////MODIFICAR STOP LOSS Y TAKE PROFIT AL INICIO DEL CICLO DE SUEÑO /////////////////

int h=0;

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Punto),Bid-(20*Punto),Cyan); //Modificar stop loss y take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Punto),Ask+(20*Punto),Cyan); /Modificar stop loss y take profit

return(0);

}

return(0);

}

}

Dave <<<<

¡POR FAVOR, MIRA LA MINIATURA ADJUNTA!

Archivos adjuntos:
 

for (int cnt1=Total de Pedidos()-1;cnt1>=0;cnt1--)

OrderSelect( cnt1, SELECT_BY_POS, MODE_TRADES);

hacer que cuente el mismo número

 

No lo entiendo. ¿Cómo puedo corregir este error? Tal vez veo - Déjame cambiar cnt1 a h. ¿Estoy en lo correcto?

Dave

<<

 
phoenix:
tu OrderSelect() no contaba con base en el bucle en marcha

int inicio()

{

si (UseHourTrade)

{

int a=0

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Comentario(

"\n"," * Asesor experto en energía eólica solar *",

"\n",

"\n", " - PROGRAMA EN CICLO DE SUEÑO - ",

"\n",

"\n"," > HORAS DE NO COMERCIALIZACIÓN! <");

///////////////////MODIFICAR STOP LOSS & TAKE PROFIT AL INICIO DEL CICLO DE SUEÑO /////////////////

//int h=0;

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Punto),Bid-(20*Punto),Cyan); //Modificar stop loss y take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Punto),Ask+(20*Punto),Cyan); /Modificar stop loss y take profit

return(0);

}

return(0);

}

}

///////////////////////////////////////////////////////////////////////////////////////

Hechos los cambios pero sigo obteniendo un bucle constante de modificaciones frente a un cambio único.

¡Por favor, aconsejar de nuevo, por favor!

Dave

<<<

 

Por favor, publique su código dentro de los códigos [PHP][/PHP]. Es mucho más fácil leer y depurar el código formateado.

 

Ficha de entrada del indicador

¿Cómo y dónde puedo codificar un indicador para que la pestaña de entrada no se muestre cuando se adjunta al gráfico?

Gracias,

solaris

 
iscuba11:
int inicio()

{

si (UseHourTrade)

{

int a=0

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Comentario(

"\n"," * Asesor experto en energía eólica solar *",

"\n",

"\n", " - PROGRAMA EN CICLO DE SUEÑO - ",

"\n",

"\n"," > HORAS DE NO COMERCIALIZACIÓN! <");

///////////////////MODIFICAR STOP LOSS & TAKE PROFIT AL INICIO DEL CICLO DE SUEÑO /////////////////

//int h=0;

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{if( OrderStopLoss() > Ask + Point * 15 | OrderStopLoss() == 0 )

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Punto),Bid-(20*Punto),Cyan); /Modificar stop loss y take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

if( OrderStopLoss() < Bid - Point * 15 )

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Punto),Ask+(20*Punto),Cyan); /Modificar stop loss y take profit

return(0);

}

return(0);

}

}

///////////////////////////////////////////////////////////////////////////////////////

Hechos los cambios pero sigo obteniendo un bucle constante de modificaciones frente a un cambio único.

¡Por favor, aconsejar de nuevo, por favor!

Dave

<<<

Intenta añadir la línea púrpura ..puede ayudar

 
solaris:
¿Cómo y dónde puedo codificar un indicador para que la pestaña de entrada no se muestre cuando se adjunta al gráfico?

Gracias,

solaris

por qué no intentas guardarlo como una plantilla en su lugar... entonces no hay necesidad de configurar ningún parámetro de nuevo cuando llames a todos tus indicadores en el nuevo gráfico

 

He hecho lo que me has sugerido. (Agradezco su paciencia)

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

** ¡Pero todavía estoy recibiendo modificaciones masivas de bucle en un solo comercio como antes!

¡Evidentemente tengo un bucle dentro de un bucle en la lógica!

Dave

<<

Por favor, vea los últimos resultados de backtest. Disculpe el logo.htm - No puedo deshacerme de él.

Archivos adjuntos:
 
iscuba11:
¡He hecho lo que me has sugerido! (Agradezco tu paciencia)

for (int cnt1=Total de Pedidos()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

** ¡Pero todavía estoy recibiendo modificaciones masivas de bucle en un solo comercio como antes!

¡Evidentemente tengo un bucle dentro de otro en la lógica!

Dave

<<
Por favor, vea los últimos resultados del backtest. Disculpe el logo.htm - No puedo deshacerme de él.

¿Intentaste añadir la púrpura de arriba ya?

theif( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )

y if( OrderStopLoss( )< Bid - Point * 15 )

Razón de la queja: