[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 848

 

Creo que por eso

while (att_to_modify_sell<= attempt_to_modify)
 
vasya_vasya:

Creo que es por eso.

Gracias, me di cuenta y borré el post enseguida, pero lograste responderlo :)

Todavía no me gusta mi patrón cíclico...

¡La tarea consiste en modificar la orden después de n-número de intentos fallidos de cerrarla por el mercado!

Por favor, muéstrame cómo hacer esto bien en el código.

Gracias.

 
vasya_vasya:

Creo que es por esto.

att_to_modify=2;
att_to_modify_sell=0;
            
Print("att_to_modify_sell="+att_to_modify_sell);
Print("Модификация SL, попытка установить новый СЛ, ord_open_sell="+ord_open_sell+" stop_TP="+stop_TP+" Старый СЛ= "+ord_sl+" Bid="+Bid+" ord_take_profit="+ord_take_profit+" Ask="+Ask);
Print("Модификация в цикле1");   
ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); //первый перенос СЛ
  if(ticket<0)
  {               
    Print("OrderModify(SELLSTOP install first SL) failed with error #",GetLastError());
    att_to_modify_sell+=1;
    Sleep(3000);
    if (att_to_modify_sell>=attempt_to_modify /*&& Ask<(ord_open_sell-stop_TP*Point-p_TS_DIST*Point)*/)                     
    {
      OrderClose(ticket_sell,ord_lots,MarketInfo(Symbol(),MODE_ASK),3,Green);
    }
    if(ticket>=0)
    {
      att_to_modify_sell=attempt_to_modify+1;
      Print("Модификация прошла успешно");
    }  
    Print("att_to_modify_sell!!!="+att_to_modify_sell);           
  }

Conclusión:

2010.09.14 16:46:04 2010 06.07 00:00 MM1.20 EURUSD,M5: OrderModify error 130
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación en el bucle1
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación del SL, intentando establecer un nuevo SL, ord_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 ord_take_profit=1.19479000 Ask=1.19483000
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: att_to_modify_sell=0


Hubo un error, por lo que no estoy procesando la condición

if(ticket<0) ?????


y por lo tanto no se muestran las huellas...

Print("OrderModify(SELLSTOP install first SL) failed with error #",GetLastError());
Print("att_to_modify_sell!!!="+att_to_modify_sell); 


¡Un trozo de código cierra una orden en el mercado después de los intentos de att_to_modify!

Gracias.

 
¿Es posible que el EA se desactive a sí mismo?
 
Elliotttrader:

La salida:

2010.09.14 16:46:04 2010.06.07 00:00 MM1.20 EURUSD,M5: OrderModify error 130
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación en loop1
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: modificación del SL, intento de establecer un nuevo SL, ord_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 ord_take_profit=1.19479000 Ask=1.19483000
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: att_to_modify_sell=0

Hubo un error, por lo que no estoy procesando la condición

y por lo tanto no se imprimen huellas...

¡Un trozo de código cierra una orden en el mercado después de los intentos de att_to_modify!

Gracias.


Error 130 - paradas erróneas.

Analizar el tercer parámetro de la función

ticket=OrderModify(ticket_sell,0,Normal izeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); //primera transferencia SL

se trata de una orden de venta, según he entendido, y el precio de parada se reduce

Tal vez necesitamos "+" - ord_open_sell+stop_TP*Point

 
abolk:


Error 130 - paradas erróneas.

Analizar el tercer parámetro de la función

ticket=OrderModify(ticket_sell,0,Normal izeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); //primer rollover de SL

esta es una orden de venta, según he entendido, y se fija el stop por el precio

Tal vez necesitamos el "+" - ord_open_sell+stop_TP*Point

No pregunto por este error. Pregunto por qué no se procesa.
if(ticket<0)
Gracias.
 
Elliotttrader:
No pregunto por este error. Pregunto por qué no me funciona.
Gracias.

En primer lugar, imprime el valor de la impresión del ticket después de la modificación
 
abolk:

Para empezar, imprime el valor del billete después de la modificación


Escribo una pregunta pero no cambió nada, el problema no se resuelve, así que lo repetiré con la esperanza de conseguir una solución al problema:

Estoy escribiendo un indicador, necesito alrededor de 2000 barras de la historia, como un bucle:

for (int i=1; i<1900; i++)

sólo recuperará 1000 barras.

Intento establecer la variable Bars, pero dice que su valor es igual a 1000, a pesar de que he dibujado el gráfico y los datos históricos hasta 2000.

¿Por qué ocurre esto, qué es lo que está mal? ????

¡¡¡¡Por favor, avise a !!!!

 
abolk:

Para empezar, imprime el valor del billete después de la modificación

Acortado a

               Print("Модификация SL, попытка установить новый СЛ, ord_open_sell="+ord_open_sell+" stop_TP="+stop_TP+" Старый СЛ= "+ord_sl+" Bid="+Bid+" ord_take_profit="+ord_take_profit+" Ask="+Ask);
               Print("Модификация в цикле1");             
               ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); //первый перенос СЛ
               Print("ticket="+ticket);

               if(ticket<0){Print("OrderModify(SELLSTOP install first SL) failed with error #",GetLastError());}

               Print("Модификация закончена");


2010.09.14 20:35:26 2010 06.07 00:00 MM_1.20 EURUSD,M5: Modificación completa
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: ticket=0
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: OrderModify error 130
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación en el bucle1
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación del SL, intentando establecer un nuevo SL, order_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 order_take_profit=1.19479000 Ask=1.19483000

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: att_to_modify_sell=0


Chicos, tengo un fallo. ¿Cómo puede un error

ticket
ser ingenuo 0-lu?
 
Elliotttrader:

Acortado a

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación finalizada
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: ticket=0
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: OrderModify error 130
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación en el bucle1
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modificación del SL, intentando establecer un nuevo SL, order_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 order_take_profit=1.19479000 Ask=1.19483000

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: att_to_modify_sell=0

Chicos, tengo un fallo. ¿Cómo puede un error

¿ser naven 0-lu?

print -- ticket_sell y mostrar el tipo de variable del ticket