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

 
evillive:


C'è il pulsante SRC nel pannello di modifica, il codice è colorato lì automaticamente ;)

Per quanto riguarda il codice, se usa if (OrderSymbol() == Symbol()...) allora if (OrderSymbol()!= Symbol()) continua; non abbiamo bisogno né di uno né dell'altro.

for (int k = 0; k < OrdersTotal(); k++) è meglio sostituire questo con

per (int k = OrdersTotal()-1; k >=0 ; k--), è più sicuro



L'ho scritto in questo modo


if(NumberOfPositionsSell(Symbol())==1 &&  NumberOfPositionsBay_otl(Symbol())==1  &&GetOrderLotsOtlBay(Symbol())==start_Lot*2  &&GetOrderLotsSell(Symbol())==start_Lot)
{
 
     for (int kk = OrdersTotal()-1; kk >=0 ; kk--) 
      {
      
       if (OrderSelect(kk,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP ) {
      

      tp_buy_otl=NormalizeDouble(b+((((2*Point)+spred+(b+Point+spred-GetOrderPriceSell(Symbol()))/Point)/2)*Point), Digits);
      sl_buy_otl=NormalizeDouble(GetOrderPriceSell(Symbol()), Digits);
      OrderModify(OrderTicket(), NormalizeDouble(b+Point+spred, Digits),sl_buy_otl,tp_buy_otl,0);
     
       Alert("tp_buy_otl = ",DoubleToStr(tp_buy_otl, Digits)+"\n"+"sl_buy_otl =  ",DoubleToStr(sl_buy_otl, Digits)+"\n"+" цена открытия бай стоп = ",  DoubleToStr(b+Point+spred, Digits)+"\n"+"OrderSymbol() =  ",OrderSymbol()+"\n"+"OrderType() = ",OrderType());
     
      
     }
      
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_SELL ) {
      
      sl_sell_otl=NormalizeDouble(b+spred+Point, Digits);
      OrderModify(OrderTicket(),OrderOpenPrice(), sl_sell_otl,OrderTakeProfit(),0);
       
      }
      }
      }
      
} 

а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скин
да и открытый селл он модифицировал а отложенный нет


Non appena ho rimosso l'ordine pendente per gbpusd e rimosso l'EA da esso, l'ordine per euro è stato modificato immediatamente


 
max020780:

Non appena ho rimosso l'ordine pendente su gbpusd e rimosso l'EA da esso, l'ordine in euro è stato modificato immediatamente

Usa Magicky per filtrare gli ordini. E non c'è nessun controllo per la modifica ripetuta degli stop (che causa Modify Error 1).
 

Ciao a tutti. Gente, potete dirmi se questo test di un EA su 5 anni può essere considerato un successo. Oppure la redditività è piccola e il drawdown grande. Vorrei sentire la mia opinione, i dati del tester sono molto diversi dal conto reale (l'ho testato nel terminale Alpari)? Sto mostrando i risultati:

Periodo importo redditività prelievo importo della transazione
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233
 
alexey1979621:

Ciao a tutti. Gente, potete dirmi se questo test di un EA su 5 anni può essere considerato un successo. Oppure la redditività è piccola e il drawdown grande. Vorrei sentire la mia opinione, i dati del tester sono molto diversi dal conto reale (l'ho testato nel terminale Alpari)? Sto mostrando i risultati:

Periodo importo redditività prelievo importo della transazione
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233

Questo è un enorme drawdown, e la redditività non è sufficiente... A quanto ammonta il prelievo dei fondi?

O potrebbe essere:

Dispersione abs.: 2 ,40 USD
Massimo: 9 ,08 USD

Relativo: 0 ,78%)

Max Money: 97.81% )))

 
evillive:

È un grande drawdown, e la redditività è un po' bassa... A quanto ammonta il prelievo dei fondi?

Può essere così:

Drawdown abs.: 2,40 USD.
Massimo: 9,08 USD

Relativo: 0,78%

Max. di fondi: 97,81% )))

È indicato il prelievo relativo. Il drawdown assoluto è circa lo stesso in percentuale e in denaro. I dati del tester differiscono molto dall'account reale? Quindi cosa dovrei fare con l'Expert Advisor - dovrei metterlo sul conto reale (sembra funzionare bene per 3 settimane sul conto demo) o metterlo sullo scaffale finché ci sono nuove idee per il suo miglioramento?
 
Lasciatelo lavorare sul demo per almeno mezzo anno. Il tester non mostra il drawdown con i mezzi, ma è possibile vederlo in tempo reale. Quello che ho mostrato - lavoro senza fermate, drawdowns eccessivi. La durata degli account precedenti - 2-3 mesi, questo è vivo da agosto, vedrò quanto durerà )))
 
Se hai esperienza, quali parametri dovresti usare come punto di partenza - redditività minima e drawdown? Se la redditività è inferiore all'1,5% e il drawdown è superiore al 50% in 5 anni, allora il mio Expert Advisor dovrebbe essere messo da parte fino a tempi migliori.
 
Forexman77:

Sto usando il mio indicatore nell'EA, vedo visivamente durante i test che sta crescendo e secondo le condizioni dovrebbe aprire buy, ma non succede.

Vedo i seguenti errori nel log (ho due tipi, li sto mostrando uno per uno):

TestGenerator: errore di dati non abbinati (limite di volume 372 al 2013.12.11 21:00 superato)

TestGenerator: errore di dati non abbinati (il valore basso 1,33097 al 2013.09.12 19:45 non è raggiunto dal timeframe più basso, il prezzo basso 1,33105 non corrisponde)

Forse ci sono delle particolarità nel funzionamento degli indicatori personalizzati? Ho pasticciato con questo EA per due mesi e lo sto rimandando all'infinito.

Scarica l'intera cronologia per il simbolo da testare. Non è l'EA che causa l'errore, è la storia "storta".
 
Forexman77:

Gli errori 129,138 si verificano di tanto in tanto su un EA. Il problema si risolve solo dopo aver riavviato il terminale.

Voglio aggiungere la funzione Market Info per aggiornare bid e ask e poi controllare.

È possibile chiamare artificialmente gli errori 129,138?

Errore 129 - prezzo sbagliato

Errore 138 - nuovi prezzi (requote)

Prima di inviare una richiesta di compravendita, ottenere gli ultimi prezzi o aggiornando l'ambiente di negoziazione utilizzando RefreshRates(), o direttamente da MarketInfo()

Non dimenticate che:

Gli Expert Advisors e gli script lavorano con la propria copia di dati storici. La copia dei dati sul simbolo corrente viene creata al primo lancio dell'Expert Advisor o dello script.

Ogni volta che l'Expert Advisor o lo script viene avviato, la copia creata inizialmente viene aggiornata. Mentre l'Expert Advisor o lo script è in esecuzione, uno o più nuovi tick possono arrivare, quindi i dati possono diventare obsoleti.

 
artmedia70:

Errore 129 - prezzo errato

Errore 138 - nuovi prezzi (requote)

Prima di inviare una richiesta di compravendita, ottenere gli ultimi prezzi o aggiornando l'ambiente di negoziazione usando RefreshRates(), o direttamente da MarketInfo()

Non dimenticate che:

Gli Expert Advisors e gli script lavorano con la propria copia di dati storici. La copia dei dati sul simbolo corrente viene creata al primo lancio dell'Expert Advisor o dello script.

Ogni volta che l'Expert Advisor o lo script viene eseguito successivamente, la copia creata inizialmente viene aggiornata. Mentre l'Expert Advisor o lo script è in esecuzione, uno o più nuovi tick possono arrivare, quindi i dati possono diventare obsoleti.


Grazie mille!

Ora so qual è il problema.

L'ho usato per comprare:

if  (iClose(Symbol(),Period(),0) <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }

Per quanto ne so, l'acquisto è su ask, ma iClose(Symbol(),Period(),0) prende i prezzi da bid. Questo può essere il motivo dell'errore.

Ora uso la seguente combinazione:

double pa=MarketInfo(Symbol(),MODE_ASK);
if  (pa <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }
Ma, poi sorge la domanda, perché l'EA non è un Pips, il prezzo è stato nella zona di acquisto per molto tempo e aggiornato con ogni tick.

Perché il commercio non si apre? Risulta che l'EA si blocca sull'errore e non vede ulteriori movimenti di prezzo?

Ho preso il modello per il mio Expert Advisor da https://c.mql5.com/mql4/book/mq4/experts/tradingexpert.mq4

Secondo te, dovrei aggiungere alla funzione di gestione degli errori in questo EA un controllo per gli errori 129 e 138?

Se sì, come fare?