Ciao,
Il saldo cambia solo quando chiudi una posizione - fissi l'utile o la perdita.
Quindi significa che il tuo EA non chiude le posizioni. E a fine test tutte le posizioni sono costrette a chiudere, ecco perché alla fine si vede il cambio di equilibrio.
Ciao,
Il saldo cambia solo quando chiudi una posizione - fissi l'utile o la perdita.
Quindi significa che il tuo EA non chiude le posizioni. E a fine test tutte le posizioni sono costrette a chiudere, ecco perché alla fine si vede il cambio di equilibrio.
Ciao Alexey, intanto grazie per la risposta!
Se back testo con timeframe inferiori al daily, lo stesso exper chiude le posizioni...o meglio (le due linee bilancio ed equita si muovono vicine)
Come mai mi succede solo sul back test con grafico dailY? stesso problema per qualsiasi time frame a partire da un ora..
è vero non mi chiude la posizione...puoi aiutarmi??
ho inserito un if....tipo se la media di ora è maggiore della precedente...
se il prezzo e superiore alla media...
trade.sell()
e poi ho creato un void con close all sell position, ma non chiude evidentemente.... non capisco perchè...
è vero non mi chiude la posizione...puoi aiutarmi??
ho inserito un if....tipo se la media di ora è maggiore della precedente...
se il prezzo e superiore alla media...
trade.sell()
e poi ho creato un void con close all sell position, ma non chiude evidentemente.... non capisco perchè...
Pubblica la parte di codice che chiude le posizioni (utilizza l'apposito tasto quando pubblichi parti di codici) così gli diamo un'occhiata.
{ if ( PositionsTotal()>0 && myMovingAverageArray2[1]>myMovingAverageArray3[1] && myMovingAverageArray2[1]<myMovingAverageArray1[1] && myMovingAverageArray1[1]>myMovingAverageArray3[1] && macd[1]>signal[1] ) CloseAllSellPositions(); Print("CHIUSA POSIZIONE short"); } //---------------------------------------------------------------// //---------------------------------------------------------------// void CloseAllSellPositions() { for(int i=PositionsTotal()-1; i>=0; i--) { ulong ticket=PositionGetTicket(i); // ticket della posizione string position_symbol=PositionGetString(POSITION_SYMBOL); // simbolo int digits=(int)SymbolInfoInteger(position_symbol,SYMBOL_DIGITS); // ticket della posizione ulong magic=PositionGetInteger(POSITION_MAGIC); // MagicNumber della posizione double volume=PositionGetDouble(POSITION_VOLUME); // volume della posizione double sl=PositionGetDouble(POSITION_SL); // Stop Loss della posizione ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); ulong PositionDirection= PositionGetInteger(POSITION_TYPE); if(PositionDirection==POSITION_TYPE_SELL) trade.PositionClose(ticket); } }
E' sbagliata la funzione, dovrebbe essere all'incirca così:
void CloseAllSellPositions() { for(int i=PositionsTotal()-1; i>=0; i--) { string position_symbol=PositionGetSymbol(i); //seleziono la posizione if (Symbol == position_symbol && magicnumber == PositionGetInteger(POSITION_MAGIC) && PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { ulong ticket=PositionGetTicket(i); trade.PositionClose(ticket); } } }
Nessun errore, lancio l expert apre le posizioni short...ma non le chiude...
dal diario nessun errore.
Come lo vedo se riceve il ticket?
GRAZIE.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Ciao a tutti...
una domanda...
perchè nel back test la linea di equità si sposta ma quella di bilancio non segue l'equità e resta sempre nella stessa posizione,
spostandosi soltanto alla fine del backtest, congiungendosi con il bilancio?
grazie della risposta.