Suggerimenti per l'EA (da perdere a profitto) - pagina 6

 
c0d3:
Puoi consigliarmi qualche documentazione per eseguire un backtest con (1*std) -> (5*std) e (0.3 - > 1.5 su entrambi gli SL e TP)


Ho aggiunto del codice al tuo programma, segnato da djp. Vai a rilasciare questo EA su un grafico, nella sezione proprietà compila start step stop con i valori nei commenti.

Spunta la casella di controllo Ottimizzazione e cambia le date di utilizzo nella scheda delle impostazioni. Deseleziona la modalità visiva se l'hai selezionata. Premi Start. Se sai già come fare questo, mi dispiace, non so quanto tu sia familiare con il tester. Non sto dicendo che questo ti aiuterà, ma potresti essere sorpreso da alcuni di questi risultati.

Nel tuo codice hai 2 linee [double fastSTD = ........ ] Non usi mai fastSTD da nessun'altra parte nel tuo codice. Penso che tu volessi usarlo, ma hai usato invece slowSTD per errore.

Potresti voler controllare questo prima di testare, inoltre prendi in considerazione i commenti degli altri poster prima di iniziare a testare. Se non avete mai fatto l'ottimizzazione prima d'ora, potreste voler fare questo senza cambiare il vostro codice, giusto per prenderci la mano. Non credo che si possa fare più di un'ora con le quattro variabili.

 
danjp:


Ho aggiunto del codice al tuo programma, contrassegnato da djp. Vai a rilasciare questo EA su un grafico, nella sezione delle proprietà compila start step stop con i valori nei commenti.

Spunta la casella di controllo Ottimizzazione e cambia le date di utilizzo nella scheda Impostazioni. Deselezionate la modalità visiva se l'avete selezionata. Premi Start. Se sai già come fare questo, mi dispiace, non so quanto tu sia familiare con il tester. Non sto dicendo che questo ti aiuterà, ma potresti essere sorpreso da alcuni di questi risultati.

Nel tuo codice hai 2 linee [double fastSTD = ........ ] Non usi mai fastSTD da nessun'altra parte nel tuo codice. Penso che tu volessi usarlo, ma hai usato invece slowSTD per errore.

Potresti voler controllare questo prima di testare, inoltre prendi in considerazione i commenti degli altri poster prima di iniziare a testare. Se non avete mai fatto l'ottimizzazione prima d'ora, potreste voler fare questo senza cambiare il vostro codice, giusto per prenderci la mano. Non credo che funzionerà più di un'ora con le quattro variabili.


Grazie, ho intenzione di sperimentare questo sul mio tester del conto live, invece del tester del conto demo
 
c0d3:
è possibile per te postare qui l'EA modificato?

Certo. Questi sono alcuni dei principali cambiamenti durante il test di cui sopra:

1) La tua condizione precedente:

if(Close[0]<fastMA[tradingTimeFrame-1])shortEntry();else if(Close[0]>fastMA[tradingTimeFrame-1])longEntry();

2) Come vedi sopra: Tutti i segnali MA, entF sono stati "arrayati" e 'bindati' da

tradingTimeFrame-1

& dall'equazione, al momento dell'init:

if(tradingTimeFrame<3)tradingTimeFrame=3;
   entryTF=tradingTimeFrame-3;

e il resto delle modifiche segue: in questo modo è più facile per lo sviluppo futuro, in particolare per l'ottimizzazione (basta scorrere il tradingTimeFrame di 1)

Scusa, se non ci sono commenti nei miei codici. Di solito leggo i codici intatti, e senza commenti, rende più facile, più pulito per me leggere.

 
c0d3:

Grazie, ho intenzione di sperimentare questo sul mio tester del conto live, invece del tester del conto demo

C'è un programma chiamato WinMerge, http://winmerge.org/downloads/ Questo ti renderà la vita molto più facile. È gratuito e rende facile la fusione del codice. Prendi myfile e unisci le modifiche a quelle di Diostar, poi ripubblica il file con un numero di versione, così è più facile tenere traccia della versione più recente. Magari iniziate con MTFzMA_v1.0, poi incrementate il .0 di uno ogni volta che uno di voi fa una modifica.
 
diostar:

Certo. Questi sono alcuni dei principali cambiamenti durante il test di cui sopra:

1) La tua condizione precedente:

2) Come vedi sopra: Tutti i segnali MA, entF è stato "arrayed" e 'bind' da

& dall'equazione, su init:

e il resto delle modifiche segue: in questo modo è più facile per lo sviluppo futuro, in particolare per l'ottimizzazione (basta scorrere il tradingTimeFrame di 1)

Scusa, se non ci sono commenti nei miei codici. Di solito leggo i codici intatti, e senza commenti, lo rende più facile, più pulito per me da leggere.


Codice davvero pulito, con un sacco di cicli :)


Grazie
 
danjp:

C'è un programma chiamato WinMerge, http://winmerge.org/downloads/ Questo vi renderà la vita molto più facile. È gratuito e rende facile la fusione del codice. Prendi myfile e unisci le modifiche a quelle di Diostar, poi ripubblica quel file con un numero di versione, così è più facile tenere traccia della versione più recente. Magari iniziate con MTFzMA_v1.0, poi incrementate il .0 di uno ogni volta che uno di voi fa una modifica.

farà
 

Ecco alcuni dei risultati (test in avanti), dal rapporto RR 1:1, e sta perdendo finora!

  • Domanda: se dovessi invertire i tipi di ordine (cioè comprare è ora un vendere), il rapporto vincita/perdita sarebbe anche speculare?
  • Ci sono 7 perdite e 4 vittorie, se dovessi invertire i tipi di ordine, i risultati sarebbero 7 vittorie e 4 perdite?
  • La mia ipotesi è corretta?

Se questo è il caso, allora penso che sarebbe una buona idea capire quando invertire gli ordini e quando mantenerli così come sono, solo un pensiero...

Cosa ne pensate?

Dichiarazione: 7064834 - 3
Interbank FX, LLC

Conto: 7064834 Nome: 3 Valuta: USD 2011 Ottobre 6, 20:45
Transazioni chiuse:
TicketTempo apertoTipoDimensioneArticolo PrezzoS / LT / PTempo di chiusura PrezzoCommissioneTasseSwapProfitto
1024655882011.10.04 16:12saldoDeposito1 000.00
1024691902011.10.04 16:50vendere0.10eurusdm1.328561.343961.313162011.10.06 18:071.343960.000.00-0.27-15.40
90620112011.10.04 16:50:08[sl]
1024860502011.10.04 20:32vendere0.10audusdm0.953180.968860.937502011.10.06 07:350.968860.000.00-0.62-15.68
90620112011.10.04 20:32:48[sl]
1024861442011.10.04 20:33vendere0.10gbpusdm1.547191.559581.534802011.10.06 11:001.534800.000.00-0.2812.39
90620112011.10.04 20:33:37[tp]
1024862472011.10.04 20:34vendere0.10gbpjpym118.828120.182117.4942011.10.06 11:00117.4940.000.00-0.4917.40
90620112011.10.04 20:34:36[tp]
1024876952011.10.04 21:15buy0.10usdchfm0.916660.907080.926242011.10.06 07:000.926240.000.00-0.0710.34
90620112011.10.04 21:15:17[tp]
1024877232011.10.04 21:16buy0.10usdcadm1.052841.044261.060782011.10.05 17:041.044260.000.000.00-8.22
90620112011.10.04 21:16:53[sl]
1025641342011.10.06 11:00vendere0.10gbpusdm1.533371.540811.528612011.10.06 11:121.528610.000.000.004.76
90620112011.10.06 11:00:10[tp]
1025652822011.10.06 11:12vendere0.10gbpusdm1.528141.535071.521312011.10.06 14:221.535070.000.000.00-6.93
90620112011.10.06 11:12:51[sl]
1025692942011.10.06 12:30buy0.10usdjpym76.84776.69876.9942011.10.06 12:3076.8060.000.000.00-0.53
90620112011.10.06 12:30:01
1025692962011.10.06 12:30buy0.10usdjpym76.84776.69976.9952011.10.06 12:3076.8050.000.000.00-0.55
90620112011.10.06 12:30:02
1025692982011.10.06 12:30buy0.10usdjpym76.84776.69976.9952011.10.06 13:3376.6990.000.000.00-1.93
90620112011.10.06 12:30:02[sl]
0.00 0.00 -1.73 -4.35
P/L chiuso: -6.08
Compravendite aperte:
BigliettoTempo apertoTipoDimensioneArticolo PrezzoS / LT / P PrezzoCommissioneTasseSwapProfitto
1025791662011.10.06 15:21comprare0.10usdchfm0.923010.918380.927320.920920.000.000.00-2.27
90620112011.10.06 15:21:28
1025877442011.10.06 18:18vendere0.10gbpusdm1.543221.550521.535801.544310.000.000.00-1.09
90620112011.10.06 18:18:43
0.00 0.00 0.00 -3.36
P/L fluttuante: -3.36
Ordini di lavoro:
BigliettoTempo apertoTipoDimensioneArticolo PrezzoS / LT / PPrezzo di mercato
Nessuna transazione
Riepilogo:
Deposito/prelievo: 1 000.00 Fido: 0.00
P/L chiuso: -6.08 P/L fluttuante: -3.36 Margine: 50.86
Saldo: 993.92 Patrimonio netto: 990.56 Margine libero: 939.70
Dettagli:

Profitto lordo: 44.05 Perdita lorda: 50.13 Profitto netto totale: -6.08
Fattore di profitto: 0.88 Payoff previsto: -0.55
Drawdown assoluto: 14.25 Dispersione massima: 25.61 (2.51%) Drawdown relativo: 2.51% (25.61)
Totale compravendite: 11 Posizioni corte (vinte %): 6 (50.00%) Posizioni lunghe (vinto %): 5 (20.00%)
Compravendite con profitto (% del totale): 4 (36.36%) Operazioni in perdita (% del totale): 7 (63.64%)
Il più grande profitto: 16.91 Operazione in perdita: -16.30
Media di profitto: 11.01 commercio in perdita: -7.16
Massimo vittorie consecutive ($): 3 (33.78) perdite consecutive ($): 5 (-25.61)
Massimo profitto consecutivo ($): 33.78 (3) perdita consecutiva (conteggio): -25.61 (5)
Media vittorie consecutive: 2 perdite consecutive: 2
 
c0d3:

Ecco alcuni dei risultati (test in avanti), dal rapporto RR 1:1, e sta perdendo finora!

  • Domanda: se dovessi invertire i tipi di ordine (cioè comprare è ora un vendere), anche il rapporto vincita/perdita sarebbe speculare?

Buon Dio, l'hai menzionato.

Perché è quello che ho scoperto anch'io l'altro giorno. È migliorato, anche se non a un livello glorioso, tuttavia quel miglioramento, in senso ingegneristico/tecnico, è stato una quantità altamente significativa di tasso di cambiamento. Troppo significativo per essere lasciato non scoperto, "un-discovered".

Così che, mi hanno postato tutti insieme un nuovo thread qui:Cosa ne pensi di questo approccio "Evil Grail" agli EA? interrogando le metodologie degli altri verso i propri approcci EA.

La metodologia che stiamo facendo qui è simile al reverse engineering, per tua informazione. Tuttavia la forma è piuttosto:

Trovare la soluzione migliore nel minor tempo possibile. Mentre nello stesso tempo (molto breve), 5-10 minuti al massimo, testare la logica per unità, in modo che la logica possa essere determinata, diciamo. 99% buono o 99% cattivo, è praticamente confermato.

Provate. potreste rimanere sorpresi come ho fatto io. è un modo di fare piuttosto "non ortodosso" - un Graal malvagio che "spera" di diventare Santo Graal, suona come un pentimento di qualche tipo, come voltare pagina. Tuttavia, è una possibilità.

 
diostar:

Buon Dio, l'hai menzionato.

Perché è quello che ho scoperto anch'io l'altro giorno. È migliorato, anche se non a un livello glorioso, tuttavia quel miglioramento, in senso ingegneristico/tecnico, era una quantità altamente significativa di tasso di cambiamento. Troppo significativo per essere lasciato non scoperto, "un-discovered".

Così che, mi hanno postato tutti insieme un nuovo thread qui:Cosa ne pensi di questo approccio "Evil Grail" agli EA? interrogando le metodologie degli altri verso i propri approcci EA.

La metodologia che stiamo facendo qui è simile al reverse engineering, per tua informazione. Tuttavia la forma è piuttosto:

Trovare la soluzione migliore nel minor tempo possibile. Mentre nello stesso tempo (molto breve), 5-10 minuti al massimo, testare la logica per unità, quindi la logica PUÒ essere determinata, diciamo. 99% buono o 99% cattivo, è praticamente confermato.

Provate. potreste rimanere sorpresi come ho fatto io. è un modo di fare piuttosto "non ortodosso" - un Graal malvagio che "spera" di diventare Santo Graal, suona come un pentimento di qualche tipo, come voltare pagina. Tuttavia, è una possibilità.

Ho provato questo metodo prima, e ogni volta che ho invertito i tipi di ordine, il sistema ha continuato a fallire, LOL? Ho la forte sensazione che se cambio questo sistema e faccio un test, otterrò esattamente gli stessi risultati.

Tuttavia, lo proverò!

 
c0d3:

Ho provato questo metodo prima, e ogni volta che ho invertito i tipi di ordine, il sistema ha continuato a fallire, LOL? Ho la forte sensazione che se cambio questo sistema e faccio un test, otterrò esattamente gli stessi risultati.

Tuttavia, lo proverò!

No, non è proprio così, in questa fase. Può essere una perdita di tempo, testando dall'acquisto alla vendita e viceversa, anche se ha dato dei cambiamenti. Quando dico, questo è quello che intendevo:

Trovare la soluzione migliore nel minor tempo possibile. Mentre nello stesso tempo (molto breve), 5-10 minuti al massimo, testare la logica per unità, in modo che la logica possa essere determinata, diciamo. 99% buono o 99% cattivo, è praticamente confermato.

1) Basta prendere 1 logica principale, diciamo per es:

if(Close[0]<fastMA[tradingTimeFrame-1])shortEntry()

e rimuovi tutto il resto, e fai questo:

if(Close[0]<fastMA[tradingTimeFrame-1]){shortEntry();longEntry();}

che è una logica per unità - testando sia l'acquisto che la vendita, allo stesso tempo. Quindi, se volete fare l'ottimizzazione con questa 1 logica master, ottimizzerete semplicemente sui vostri parametri di base - sl, tp, lotti, ecc solo. Poi analizzare le istanze dei loro acquisti e vendite, giudicare se questa 1 logica è in grado di fare il taglio, in entrambi gli scenari - se fa un errato o corretto ingressi. Entrambi. Poi passate alla logica successiva.

Man mano che vai avanti, potresti voler provare delle combinazioni... la 1a logica solo acquisto, la 2a logica, solo vendita, o entrambe, ecc. Trovo che questo modo sia più strutturato e puoi davvero vedere quale logica precisa sta realmente causando il drawdown.