aiuto fineturn EA - pagina 2

 
delcor wrote >>

dimmi se c'è un sistema di test sulla programmazione EA per mostrarti passo per passo cosa succede quando questo EA viene eseguito

no, non c'è un sistema di test passo per passo; usa Print per visualizzare i valori per il controllo e le varie parti dei programmi

 

Mi piace il tuo codice per l'ottimizzazione dei lotti; l'ho modificato per aumentare il volume dei lotti all'aumentare delle perdite

 
ronaldosim:

Mi piace il tuo codice per l'ottimizzazione dei lotti; l'ho modificato per aumentare il volume dei lotti all'aumentare delle perdite

mostrami per favore

o mandami il tuo EA

 
delcor:

mostrami per favore

o mandami il tuo EA

mi dà un errore

La funzione "CalculateCurrentOrders" non è referenziata e sarà rimossa dal file exp
 
delcor wrote >>

mi dà un errore

La funzione "CalculateCurrentOrders" non è referenziata e sarà rimossa dal file exp

ignora questo errore; tutto quello che sta dicendo è che hai una funzione chiamata CalculateCurrentOrders che non stai usando; quindi o la cancelli o la levi; non causerà alcun danno; il sistema sta dicendo che rimuoverà questa funzione dal tuo file compilato ex4

 
delcor wrote >>

mostrami per favore

o mandami il tuo EA

sotto la funzione LotOptimization cambia il tuo codice in qualcosa come questo

lotto=lotto*FattoreMultiplicatore*perdite

dove MulitplyFactor = 2 o 3 o 4 ecc, simile al tuo DecreaseFactor che è quello di diminuire le dimensioni del lotto man mano che le perdite aumentano

detto questo, aumentare le dimensioni dei lotti man mano che le perdite aumentano è pericoloso per il vostro EA, quindi usate con cura

 
ronaldosim:

sotto la funzione LotOptimization cambiate il vostro codice in qualcosa come questo

lotto=lotto*fattore di moltiplicazione*perdite

dove MulitplyFactor = 2 o 3 o 4 ecc, simile al vostro DecreaseFactor che è quello di diminuire le dimensioni del lotto man mano che le perdite aumentano

detto questo, aumentare la dimensione del lotto man mano che le perdite aumentano è pericoloso per il tuo EA, quindi usalo con attenzione

intendi qualcosa come questo

//+------------------------------------------------------------------+
//| Calcola la dimensione ottimale del lotto
//+------------------------------------------------------------------+
doppio LottiOttimizzati()
{
double lot=Lots*Multiplying*losses;
int orders=HistoryTotal(); // totale degli ordini storici
int losses=0; // numero di ordini in perdita senza pausa
//---- selezionare la dimensione del lotto
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcolare il numero di ordini di perdita senza interruzione
if(FattoreRiduzione>0)
{
for(int i=ordini-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Errore nella storia!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;
//----
se(OrderProfit()>0) break;
se(OrderProfit()<0) perdite++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- restituisce la dimensione del lotto
if(lot<0.1) lot=0.1;
return(lot);
}
 
delcor wrote >>

intendete qualcosa come questo

//+------------------------------------------------------------------+
//| Calcola la dimensione ottimale del lotto
//+------------------------------------------------------------------+
doppio LottiOttimizzati()
{
double lot=Lots*Multiplying*losses;
int orders=HistoryTotal(); // totale degli ordini storici
int losses=0; // numero di ordini in perdita senza pausa
//---- selezionare la dimensione del lotto
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcolare il numero di ordini di perdita senza interruzione
if(FattoreRiduzione>0)
{
for(int i=ordini-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Errore nella storia!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;
//----
se(OrderProfit()>0) break;
se(OrderProfit()<0) perdite++;
}
if(losses>1) lot=NormalizeDouble(Lots*Multiplying*losses;,1);}
//---- restituisce la dimensione del lotto
if(lot<0.1) lot=0.1;
return(lot);
}

no, mettilo dopo il if(losses>1)

 
ronaldosim:

no, mettilo dopo il if(losses>1)

mi dà un errore

'Multiplying' - variabile non definita C:\Program Files\Interbank FX Trader 4\experts\jbtest4.mq4 (57, 44)

dove la definisco?

 
delcor:

mi dà un errore

'Multiplying' - variabile non definita C:\Program Files\Interbank FX Trader 4\experts\jbtest4.mq4 (57, 44)

dove l'ho definito



ok ho int multiplying=2;

Motivazione: