Problema funzione eseguita all'infinito

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico

Moderatore: Dainesi

Rispondi
Gale7
Messaggi: 6
Iscritto il: 08/05/2017, 23:04

Problema funzione eseguita all'infinito

Messaggio da Gale7 » 26/06/2017, 23:58

Buonasera a tutti,
ho iniziato a studiare il linguaggio mql4 da poco tempo e mi sto esercitando a fare qualche semplice EA.
l'expert in questione deve fare le seguenti operazioni:
una volta raggiunto un determinato numero di pip di guadagno ritira mezza posizione e mette lo stop a zero.
Per far ciò ho creato le due funzioni void (stop a zero e ritiro mezza pisizione) e l'ho inserite nell'OnTick.
Natualmente voglio che queste funzioni vengano eseguite una volta sola e per questo ho inserito un contatore, il problema viene ora....
Se faccio girare l'expert senza contatore le funzioni vengono eseguite ad ogni tick, se parto con un lotto ad ogni tick ne chiude metà fino ad arrivare a 0.01....non va bene ma funziona.
se aggiungo il contatore all'expert le funzioni non vengono eseguite neanche una volta come mai??
Da notare che uso lo stesso contatore dell'OrderSend(), lì funziona apre un solo ordine.... dall'altra parte no....
mi potete dare una mano???
Allego il pezzo di codice:

void OnTick(){

if(count==0){
if(OrderSend(Symbol(),OP_BUY,1,Ask,0,0,0,"OpBUY",0,0,clrAqua)) Print("ordine inserito");
count++;
}

if(countMod==0){
if (CalculateCurrentOrders(Symbol())>0) BreakEven();
if (CalculateCurrentOrders(Symbol())>0 ) RitiroMezzaPos();
countMod++;
}
}

Sponsor

Sponsor
 

Rispondi