Ottimo EA in backtest! - pagina 112

 
BrazilianTrader:
che senso ha prendere conlusioni su rapporti di bassa qualità modellistica?

La gente dovrebbe sapere che dovrebbe migliorare la qualità dei propri modelli prima di prendere decisioni sui risultati virtuali;

anche i backtest con il 90% non sono molto degni di fiducia;

sembra saggio che i commercianti meccanici dovrebbero lavorare in questo modo:

1. Backtesting con il 90%;

2. Conto demo per un paio di mesi;

3. Conto reale;

4. Profitto;

5. Risate.

Penso che non dovremmo dare tutti i crediti a un EA che "funziona molto bene" su un rapporto di qualità di modellazione del 50%.

Buon punto

 
BrazilianTrader:
qualità di modellazione 50,00% che non suona bene...

Nemmeno il 90% è abbastanza buono, ma se il test in avanti dà buoni risultati è quello che ci serve per andare avanti.

 

Bisogno di aiuto per la codifica...

Ho bisogno di aiuto qui... Non capisco perché sia così difficile.

Tutto quello che voglio è un semplice ordine di chiusura basato su alcune condizioni.

Questa è la metà corta. C'è un'altra metà lunga che corrisponde ad essa.

Ma perché questo codice...

int ExitMarket() // -------------------- Working the open orders -------------------

{

total = OrdersTotal();

for(int cnt = 0; cnt < OrdersTotal(); cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

// We search for orders opened by this code on our currency

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)// if this code has an open order on this currency

{

if(OrderType() == OP_SELL) // If the obtained order is by the selling of the currency

{

if(Ask >= OrderStopLoss())// Closing order if it reached the level of the stoploss

{

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

}

else

{

// We close when the direction reverses

if(ADX DIplus1 || Closing > LowerE)

{

total = OrdersTotal();

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

Print("Patient1 closed short ticket ",OrderTicket()," on a reverse @: ",Ask," Orders remaining open: ",total," BECAUSE cls: ",Closing," > lwrE: ",LowerE," or ADX: ",ADX," DI+1: ",DIplus1);

total = OrdersTotal();

Print(" Orders remaining open: ",total);

}

else

{

Print("stays open");

}

}

}//ifsell

}//if order is open

}//fororders

return(0);

}//exitmarket [/PHP]

why does it produce this output?

[PHP]2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2719 Orders remaining open: 1 BECAUSE cls: 1.2717 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2718 Orders remaining open: 1 BECAUSE cls: 1.2716 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2717 Orders remaining open: 1 BECAUSE cls: 1.2715 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

CHE non soddisfa mai la condizione di inversione, eppure stampa la linea di inversione?

e anche se stampa la linea di inversione non chiude mai la posizione?

 

Perché le persone sprecano il loro tempo con questo EA? Non funzionerà su un conto live. Non otterrai quel tipo di riempimento.

 
aegis:
Perché le persone sprecano il loro tempo con questo EA? Non funzionerà su un conto live. Non otterrai quel tipo di riempimento.

Manca qualcosa di meglio?

Personalmente sono qui per imparare, sto facendo molta esperienza di codifica e pratica. Se l'obiettivo è quello di imparare, allora c'è molto valore per me. Comunque se avete un EA migliore per me per "sprecare il mio tempo" .... sono tutto orecchie.

btw sentiti libero di risolvere questo problema di codifica se puoi.

https://www.mql5.com/en/forum/174700/page75

 
aegis:
Perché le persone sprecano il loro tempo con questo EA? Non funzionerà su un conto reale. Non otterrai quel tipo di riempimenti.

Conclusione interessante, "Dr. EA Specialist"...

Ci chiediamo la tua reale esperienza con questo EA per dirci che non ha funzionato...

O almeno, con qualsiasi EA...

Forse, ed è quello che sembra essere il più probabile, non hai nessuna esperienza con nessun EA sui "3 passi classici", e hai paura di creare le tue speranze con una "formula magica per la ricchezza" e rimanere deluso; quindi cosa è più facile? bloccare la nostra mente e dire che questo EA non funziona affatto, naturalmente.

Che patetico.

Alcuni sono qui per perdere, si direbbe, ma sono qui per imparare e migliorare, sicuramente.

Noi, diversamente da persone come te, preferiamo testare, perdere, migliorare, cambiare, più e più volte, reimpostare il nostro punto di vista e credere in strategie solide o flessibili, che sicuramente includono "accettare i cambiamenti".

Questo EA potrebbe sembrare non funzionare su un conto reale, ma noi siamo qui per farglielo fare.

 

Sembra che io abbia risolto il mio precedente problema di codifica.

Questo mi lascia ora con una nuova serie di problemi e domande a cui rispondere.

Ho concluso che a causa del modo in cui questo EA fa trading, è molto improbabile che uno qualsiasi degli indicatori tradizionali lo aiuti molto. Posiziona la maggior parte dei suoi trade all'interno della stessa barra, quindi nessun indicatore di tendenza lo seguirà all'interno della barra. Essendo un reverse trader i tipici indicatori di tendenza non lo aiutano molto comunque.

Rimane comunque una via per filtrare i trade che non è stata ancora sfruttata, ovvero la logica decisionale unica del programma. Anche se si tratta di un compito piuttosto arduo, credo che ci sia una potenziale ricompensa nello sviluppo di un profilo di dati di quali parametri cyberia compongono un trade vincente e quali un trade perdente, in logica cyberia.

Per fare questo propongo di utilizzare il backtester per generare nel diario i parametri determinanti che cyberia accetta quando apre ogni ordine, poi ordinare tutti i trade vincenti e perdenti nei loro rispettivi gruppi e poi vedere da un'analisi di questi due gruppi se c'è qualcosa di una natura distintiva che è immediatamente evidente che può essere installato e utilizzato come parametro di filtro.

Penso che il filmato precedente che ho postato un po' di tempo fa sui 212 gradi di temperatura dell'acqua si applichi qui. In questo momento questo scambia intorno al 70 - 72%. che è buono ma è solo ora abbastanza vapore ancora. È caldo, ma è come l'acqua a 211 gradi, è un grado in meno per essere davvero utile. Il mio obiettivo è quello di ottenere quell'unico grado. Questo può significare solo l'aggiunta di un paio di percentuali in più al suo rapporto vittorie/perdite. se arrivasse all'80% solo il dieci per cento in più sarebbe fantastico. Così com'è è un programma difficile da seguire perché non sembra mai decollare veramente. (la mia esperienza comunque)...

se perseguo questo corso mi chiedo se qualcun altro vorrebbe assistermi in questo. Ho creato una versione del codice che stampa i dati nel momento in cui l'EA apre l'ordine. Questo produrrà circa 7-14 ordini alla volta nel giornale prima che il giornale inizi a comprimere l'output e i dati vengono persi. Ciò significa che per raccogliere qualsiasi quantità sostanziale di dati il tester deve essere riavviato un sacco di volte ... a meno che qualcuno mi insegni come ottenere a stampare tutte queste informazioni in un file invece..... so che è possibile, ma non so come farlo.

In ogni caso sto cercando persone con un mini account IBFX che vogliano servire come raccoglitori di dati per questo progetto mentre io sviluppo un foglio di calcolo per analizzare i dati. Se siete interessati fatemelo sapere via pm e datemi il vostro indirizzo email e vi manderò la versione dell'EA che ho modificato per produrre i dati. Ho ancora una modifica da fare su di esso, ma è quasi pronto per andare a lavorare.

I dati che mi interessano di più sono quelli che si verificano all'interno della stessa barra nei pattern a torre che ho già identificato. Voglio prima raccogliere abbastanza dati di test su ciò che accade all'interno della logica di Cyberia durante questi momenti in particolare. Non che io pensi che le altre situazioni di trading debbano essere ignorate, ma non sembrano avere lo stesso potenziale, quindi mi sto concentrando sull'area di maggior ritorno probabile prima....

Credo di aver lavorato con Cybeira abbastanza che alcune di queste cose sulla probabilità stiano iniziando a influenzarmi.

 

Inoltre, ecco un esempio di scrittura di file, direttamente dall'editor di MT...

Questo vi permetterà di registrare in un file csv, modificare per il vostro output desiderato.

int handle;

datetime orderOpen=OrderOpenTime();

handle=FileOpen("c:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle>0)

{

FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));

FileClose(handle);

}

Sono su IBFX live, posso inoltrare il test live per voi su micro lotti. Tuttavia ho altri scambi dal vivo sul conto, quindi dovrei eliminare i risultati del CT separatamente.

PM me per l'indirizzo e-mail

 

engineer for hire !!!!

Aaragorn:
Sembra che io abbia risolto il mio precedente problema di codifica.

Questo mi lascia ora con una nuova serie di problemi e domande a cui rispondere.

Ho concluso che a causa del modo in cui questo EA opera, è molto improbabile che uno qualsiasi degli indicatori tradizionali lo aiuti molto. Posiziona la maggior parte dei suoi trade all'interno della stessa barra, quindi nessun indicatore di tendenza lo seguirà all'interno della barra. Essendo un reverse trader i tipici indicatori di tendenza non lo aiutano molto comunque.

Rimane comunque una via per filtrare i trade che non è stata ancora sfruttata, ovvero la logica decisionale unica del programma. Anche se si tratta di un compito piuttosto arduo, credo che ci sia una potenziale ricompensa nello sviluppo di un profilo di dati di quali parametri cyberia compongono un trade vincente e quali un trade perdente, in logica cyberia.

Per fare questo propongo di utilizzare il backtester per generare nel diario i parametri determinanti che cyberia accetta quando apre ogni ordine, poi ordinare tutti i trade vincenti e perdenti nei loro rispettivi gruppi e poi vedere da un'analisi di questi due gruppi se c'è qualcosa di una natura distintiva che è immediatamente evidente che può essere installato e utilizzato come parametro di filtro.

Penso che il filmato precedente che ho postato un po' di tempo fa sui 212 gradi di temperatura dell'acqua si applichi qui. In questo momento questo scambia intorno al 70 - 72%. che è buono ma è solo ora abbastanza vapore ancora. È caldo, ma è come l'acqua a 211 gradi, è un grado in meno per essere davvero utile. Il mio obiettivo è quello di ottenere quell'unico grado. Questo può significare solo l'aggiunta di un paio di percentuali in più al suo rapporto vittorie/perdite. se arrivasse all'80% solo il dieci per cento in più sarebbe fantastico. Così com'è è un programma difficile da seguire perché non sembra mai decollare veramente. (la mia esperienza comunque)...

se perseguo questo corso mi chiedo se qualcun altro vorrebbe assistermi in questo. Ho creato una versione del codice che stampa i dati nel momento in cui l'EA apre l'ordine. Questo produrrà circa 7-14 ordini alla volta nel giornale prima che il giornale inizi a comprimere l'output e i dati vengono persi. Ciò significa che per raccogliere qualsiasi quantità sostanziale di dati il tester deve essere riavviato un sacco di volte ... a meno che qualcuno mi insegni come ottenere a stampare tutte queste informazioni in un file invece..... so che è possibile, ma non so come farlo.

In ogni caso sto cercando persone con un mini account IBFX che vogliano servire come raccoglitori di dati per questo progetto mentre io sviluppo un foglio di calcolo per analizzare i dati. Se siete interessati fatemelo sapere via pm e datemi il vostro indirizzo email e vi manderò la versione dell'EA che ho modificato per produrre i dati. Ho ancora una modifica da fare su di esso, ma è quasi pronto per andare a lavorare.

I dati che mi interessano di più sono quelli che si verificano all'interno della stessa barra nei pattern a torre che ho già identificato. Voglio prima raccogliere abbastanza dati di test su ciò che accade all'interno della logica di Cyberia durante questi momenti in particolare. Non che io pensi che le altre situazioni di trading debbano essere ignorate, ma non sembrano avere lo stesso potenziale, quindi mi sto concentrando sull'area di maggior ritorno probabile prima....

Credo di aver lavorato abbastanza con la cybeira che alcune di queste cose sulla probabilità stiano iniziando a sfregare su di me.

Sono pronto, volenteroso e capace di aiutare Aragorn. Controlla il tuo p.m. per il mio indirizzo e-mail

 

Test di ritorno

Aaragorn,

C'è qualche possibilità che tu possa sistemare Cyberia, in modo da poter fare il backtest sui prezzi aperti della barra. Questo attualmente non funziona.

Questo è il modo più affidabile per fare backtest.

Leggi questo articolo.

https://www.mql5.com/en/code/9500

I risultati del backtest saranno sempre inaffidabili se un ordine viene eseguito e abbandonato nella stessa barra, a meno che l'entrata sia sull'open o l'uscita sulla close. Questo perché è impossibile capire l'azione del prezzo all'interno della barra. Un backtest farà una stima di ciò che è successo durante la barra. A volte la stima può risultare in un riempimento ad un prezzo che è stimato verificarsi prima dell'uscita, ma in realtà si è verificato dopo. Questo può portare a riempimenti a prezzi impossibili, specialmente quando il mercato si muove rapidamente in una direzione. Alcune strategie sfruttano inavvertitamente questi prezzi impossibili per produrre risultati impossibili.