[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 848

 

Penso che questo sia il motivo per cui

while (att_to_modify_sell<= attempt_to_modify)
 
vasya_vasya:

Credo che questo sia il motivo.

Grazie, ho notato e cancellato subito il post, ma sei riuscito a rispondere :)

Non mi piace ancora il mio schema ciclico...

Il compito è quello di chiudere l'ordine dopo n-numero di tentativi infruttuosi di modificarlo secondo il mercato!

Per favore, mostratemi come farlo bene nel codice.

Grazie!

 
vasya_vasya:

Penso che sia a causa di questo.

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);           
  }

Conclusione:

2010.09.14 16:46:04 2010.06.07 00:00 MM1.20 EURUSD,M5: OrderModify errore 130
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modifica In-Cycle1
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modifica SL, cercando di impostare un nuovo 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


C'è stato un errore, quindi perché non sto elaborando la condizione

if(ticket<0) ?????


e di conseguenza non viene visualizzata alcuna stampa...

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


Un pezzo di codice chiude un ordine sul mercato dopo i tentativi di att_to_modify!

Grazie!

 
È possibile che l'EA si disabiliti da solo?
 
Elliotttrader:

Uscita:

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: Modifica in loop1
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5: modifica SL, prova a impostare un nuovo 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

C'è stato un errore, quindi perché non sto elaborando la condizione

e quindi non vengono stampate stampe...

Un pezzo di codice chiude un ordine sul mercato dopo i tentativi di att_to_modify!

Grazie!


Errore 130 - fermate sbagliate.

Analizzare il terzo parametro della funzione

ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); // primo trasferimento SL

questo è un ordine di vendita, come ho capito, e il prezzo di stop è abbassato

Forse abbiamo bisogno di "+" - ord_open_sell+stop_TP*Point

 
abolk:


Errore 130 - fermate sbagliate.

Analizzare il terzo parametro della funzione

ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); /primo rollover di SL

questo è un ordine di vendita, come ho capito, e si abbassa il prezzo di stop

Forse abbiamo bisogno del "+" - ord_open_sell+stop_TP*Point

Non sto chiedendo di questo errore. Sto chiedendo perché non viene elaborato.
if(ticket<0)
Grazie!
 
Elliotttrader:
Non sto chiedendo di questo errore. Sto chiedendo perché non funziona per me.
Grazie!

Prima, stampa il valore della stampa del biglietto dopo la modifica
 
abolk:

Per cominciare, stampa il valore del biglietto dopo la modifica


Sto scrivendo una domanda ma non ha cambiato nulla, il problema non è risolto, quindi la ripeterò nella speranza di ottenere una soluzione al problema:

Mi sto scrivendo un indicatore, ho bisogno di circa 2000 barre della storia, un tale ciclo:

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

recupererà solo 1000 barre.

Cerco di impostare la variabile Bars, ma dice che il suo valore è 1000, nonostante il fatto che ho disegnato il grafico e i dati storici fino a 2000.

Perché sta succedendo questo, cosa c'è di sbagliato????

Si prega di consigliare!!!!

 
abolk:

Per cominciare, stampare il valore del biglietto dopo la modifica

Abbreviato in

               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: Modifica completata
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 errore 130
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modifica nel Loop1
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: SL modification, trying to set a new 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


Ragazzi, ho un problema tecnico. Come per errore può

ticket
essere ingenuo 0-lu?
 
Elliotttrader:

Abbreviato in

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modifica finita
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 errore 130
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: Modifica nel Loop1
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5: SL modification, trying to set a new 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

Ragazzi, ho un problema tecnico. Come per errore può

essere naven 0-lu?

stampa -- ticket_sell e mostra il tipo di variabile biglietto
Motivazione: