Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 348

 
Link_x:
Penso che la mancanza di comprensione delle funzioni trovate negli indicatori tecnici. Se non lo capisco, allora dovrei capirlo, attraverso l'uso di informazioni trovate "dall'altra parte" dei link che mi avete passato voi, digitando e inviando attraverso la rete internet.
"Impara, impara e impara ancora!" - amo questa frase. )))

Aprite CCI in MetaEditor, per esempio, e mettete tutto ciò che non capite nel reference book (cliccate su una funzione o espressione non chiara e premete F1). In questo modo, l'apprendimento sarà molto più divertente.
 

extern int MartinStep = 2;
extern double LOT = 0.01;


double GetLot(){

int time = 0;double profit = 0; double lots = 0; double Lot = 0;
for(int i = OrdersHistoryTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic){
if(time<OrderCloseTime()){
time=OrderCloseTime();
profit=OrderProfit();
lots = OrderLots();
}
}
}
}


if(profit == 0 &&time == 0)
{
Lot = LOT;
}
if(profit >= 0)
{
Lot = LOT;
}
if(profit < 0 )
{
Lot = NormalizeDouble (lots*MartinStep,2);
}

return(Lot);
}
Si prega di aiutare a correggere gli errori di funzionamento. L'EA apre diversi ordini correttamente, e poi il log mostra un errore "invalid lots amount". Non riesco a capire cosa c'è di sbagliato.
 
Trader7777:


lots = OrderLots();

Lot = NormalizeDouble (lots*MartinStep,2);

Si prega di aiutare a correggere gli errori di funzionamento. L'EA apre diversi ordini correttamente, e poi il log mostra un errore "invalid lots amount". Non riesco a capire cosa c'è di sbagliato.

O non sono mai arrivato all'operatore lots = OrderLots(); e i lots rimangono ancora =0. Oppure lotti*MartinStep ha superato la dimensione massima consentita del lotto.
 

Ho capito, l'errore è qui

if(profit >= 0)


Avrei dovuto mettere un segno uguale, perché dopo un ordine che ha chiuso a 0, l'EA non sapeva cosa fare)
 

Ciao a tutti! Potete dirmi come implementare la reinizializzazione EA alla fine della giornata? Bene, in init() ci sono alcune azioni che devono essere ripetute in un certo momento. Non voglio riscriverli in start(). Sono più interessato alla possibilità teorica di riavviare l'EA. Grazie in anticipo.

 
Pyro:

Ciao a tutti! Potete dirmi come implementare la reinizializzazione EA alla fine della giornata? Bene, in init() ci sono alcune azioni che devono essere ripetute in un certo momento. Non voglio riscriverli in start(). Sono più interessato alla possibilità teorica di riavviare l'EA. Grazie in anticipo.

Avete provato a chiamare init() in un certo momento?
 
Sì, non mi era venuto in mente:( Grazie!!!
 
Potresti dirmi se le bandiere e le variabili statiche vengono resettate o rimangono nella memoria dell'EA quando si riavvia l'EA (rimuoverlo dal grafico e poi rimetterlo)?
 
Forexman77:
Potresti dirmi se le bandiere e le variabili statiche vengono resettate o rimangono nella memoria dell'EA quando si riavvia l'EA (rimuoverlo dal grafico e poi rimetterlo)?

Durante l'inizializzazione tutto viene resettato, tranne le variabili globali
 
Pyro:

Tutto viene resettato durante l'inizializzazione tranne le variabili globali
E qui bisogna chiarire che GV sono variabili terminali, non variabili EA.