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

 

heres come appare su 2 anni di test, cambio a 1 lotto, cambio a frame 240, entrambi i parametri fatti in sincronia tra loro=60. (E tutte quelle logiche tolte, tranne M60).

Barre nel test 13544
Ticks modellati 5961890
Qualità della modellazione 90.00%
Errori di grafici non corrispondenti 0
Deposito iniziale 10000.00
Profitto netto totale 30459.02
Profitto lordo 99716.99
Perdita lorda -69257.97
Fattore di profitto 1.44
Rendimento previsto 152.30
Drawdown assoluto 1037.97
Disavanzo massimo 20707.98 (35.94%)
Drawdown relativo 35.94% (20707.98)
Totale operazioni 200
Posizioni corte (% won) 97 (30,93%)
Posizioni lunghe (% won) 103 (30,10%)
Operazioni in profitto (% del totale) 61 (30,50%)
Operazioni in perdita (% del totale) 139 (69,50%)
Il più grande
operazioni con profitto 5833.00
operazioni in perdita -3156.00
Media
di profitto 1634.70
perdita -498.26
Massimo
vittorie consecutive (profitto in denaro) 6 (14728.00)
perdite consecutive (perdita in denaro) 12 (-1587.00)
Massimo
profitto consecutivo (numero di vittorie) 14728.00 (6)
perdita consecutiva (conteggio delle perdite) -9507.00 (5)
Media
vittorie consecutive 1
perdite consecutive 3

 
diostar 2011.10.05 12:37

Hai capito male. L'MTF non è la ragione, e nemmeno un problema. Il prb è solo MA. Lasciami provare a spiegare, molto brevemente.

MA racconta il passato. Quindi, quando si prende un segnale di MA su un H1, l'aspettativa, E, è che sul prossimo frame, diciamo H4, sarà "d'accordo" con il passato di H1. Il profitto è quando il passato di H1 si manifesta su H4 corrente. Quando E si verifica, significa chiudere il commercio, o fare qualsiasi cosa la strategia vuole.

Ma in questo caso, il poster ha fatto il contrario. I suoi difetti di trading piuttosto basilari perché tutte le aspettative sono confuse.


Tho Multi-TimeFrame non è il mio forte. Quindi, per favore correggete il mio pensiero se è sbagliato.

Nella logica che hai postato sopra:

if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))

il && che ho evidenziato in rosso mi dice che anche il fastMA240 deve essere d'accordo.

Visto che il fastMA240 è il più lento di tutti i MA. Non sarebbe ragionevole dire che il fastMA240 rende il sistema più lento a cambiare. E che l'intero sistema è inficiato da ciò che il fastMA240 ha da dire?

Ora se prendiamo il tuo suggerimento:

if((Close[0]<=fastMA30 && Close[0]<=fastMA60))

Ora mi sembra che lasciando fuori il fastMA240 il sistema risponderà più velocemente al cambiamento. Ma abbiamo ancora il problema del MA60 che gestisce lo spettacolo.

In conclusione: tutto ciò che conta è la linea di fondo se è un approccio redditizio nel lungo periodo. IMO non c'è modo di dire quale sia meglio. Il tuo approccio o quello dell'autore originale senza test :)

Infine, le cose che non mi piacciono dei codici di cui sopra. 1) L'uso della barra corrente, come in Close[0] che il codice non è amichevole per il back-tester. 2) L'uso del segno =, come in <=, primo, è molto raro che un prezzo sia = perché è di tipo doppio. E secondo, nel raro caso in cui tutte le MA sono = Close[0] il sistema diventa senza direzione, esempio: if(xMA>=Close[0]){Buy}_____if(xMA<=Close[0]){Sell}, qual è l'azione corretta quando è =Close[0].

 
diostar:

A giudicare dai risultati, non raccomando alcuna ottimizzazione. Finché questi problemi di strategia e di logica non saranno esaminati.

In primo luogo, non ho avuto molto tempo dopo aver eseguito quel test di 7 anni su un H1, e tanta motivazione per guardare attraverso tutte le linee di codice nell'EA, ma sono stato certamente colpito dall'uso di 2 numeri magici - per i trade "lenti", e i trade "veloci". Che tipo di strategia è questa, ho pensato?

Poi, guardo attraverso per i modelli di codifica, provare a commentare il numero slowmagic. L'ea non ha funzionato, come previsto.

Poi, ho commentato l'altro numero magico veloce. E sorpresa, sorpresa, l'ea si compila senza errori.

Quindi, sembra che la logica sia completamente incompleta di ciò che è desiderato? Di sicuro, il tuo EA sta riempiendo solo in base a qualche logica di MA lenta, ma mai su quella veloce?

Dal momento che tu sei il proprietario di questo EA, dovresti avere risposte migliori a tutti questi, rispetto ai miei semplici modi.


Ho avuto delle idee che non sono state implementate, quindi vedi numeri magici lenti e veloci.


L'EA sta usando solo il numero magico lento per gli ordini, ed è completamente separato dalle MA lente e veloci che vengono analizzate dalle entrate

Spero che questo risponda alla tua domanda

grazie

 
ubzen:
Voi ragazzi dovreste trasformarlo in un piccolo progetto per creare un sistema vincente a partire da questo. Ognuno inizia con l'attuale versione dell'EA e poi ci aggiunge qualcosa. Poi voi ragazzi selezionate il codificatore più forte tra di voi per assemblare le idee migliori. Quando avrete raggiunto l'obiettivo, allora lo metterete nel codice base. Sarà molto interessante vedere cosa verrà fuori.

Mi piacerebbe collaborare in un tale sforzo per costruire un EA redditizio da una versione base dell'EA che è stato postato

 
mbirrell:

Io cercherei un altro modo di entrare nel mercato. Quando il segnale viene dato da questi indicatori è già troppo tardi. Io uso sempre ordini limite in previsione di ciò che il mercato sta per fare. Alcuni potrebbero ridere di questo approccio, ma per me ha funzionato. Ricorda che non è uno sprint, è una maratona.


Sono sicuramente d'accordo con la tua logica, ma come potrei convertire la mia logica esistente per adattarla al modello di ordine limite?
 
danjp:

Idea interessante, io f c0d3 è ok con esso vorrei dare un tentativo. Dovrei essere in grado di sostituire la mia funzione di regole con le regole mfro la sua. Questo gli darebbe regole di trading ore, notifica e-mail, controllo degli errori, stacking, limite e ordini pendenti trailing stop, stop ecc. Probabilmente ci vorrebbe solo un giorno o due per far funzionare queste regole nella mia shell EA. Potrei poi guardare a come modificare le regole per cercare di renderlo più redditizio.

Sono sicuramente d'accordo con questo, ma ti andrebbe bene condividere il tuo codice su questo thread?
 
diostar:

se avete visto le sue "regole", sono qualcosa del genere (per il caso di vendita):

Dal punto di vista matematico, questo è un vero e proprio controsenso. La ragione è che la MA su un frame più alto, come previsto, è più lenta a causa del tempo più lungo richiesto per completare una barra, rispetto a quelli più bassi. Quindi, tutto sommato, questa logica finisce per essere determinata principalmente da questa condizione inferiore:

Quindi, da quel momento, MA mostra il passato dal punto di vista di MA240, poi 60, poi 30, il mercato E' stato un sell one. Il mio suggerimento può essere semplicemente "invertire" questa regola insensata, quindi invece di entrare short, andare long, e viceversa. Sono abbastanza sicuro che il risultato sarà più bello.



Lasciatemi spiegare un trade corto, è il viceversa per un trade lungo:

  • Condizione di entrata 1: se il prezzo di chiusura attuale è sotto MA30(100 campioni), MA60(100 campioni) e MA240(100 campioni) siamo in un downtrend
if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))
   {
      // we are in a downtrend
      //Comment("\n"+"short only");
      shortEntry();
   }
  • Condizione di entrata 2: Aspettare che il prezzo di chiusura di entryTF(15M) sia sopra MA30(50 campioni) e MA60(50 campioni)

if(iClose(Symbol(),entryTF,1)>=slowMA30 && iClose(Symbol(),entryTF,1)>=slowMA60)
  • Entrare short

L'idea: Logica MTF

  • Quando il prezzo è sotto MA30 che è basato su M30
  • Quando il prezzo è sotto MA60 che è basato su H1
  • Quando il prezzo è sotto MA240 che si basa su H4
  • attendere che i prezzi di chiusura di M15 siano superiori a MA30 che si basa su M30
  • attendere che i prezzi di chiusura di M15 siano superiori a MA60 che si basa su M60
  • Entrare short: con i parametri dell'ordine


Proverò anche ad invertire le entrate, e vedere cosa succede


Spero che questo risponda alla tua domanda

 
ubzen:

@diostar, idee interessanti e prendere sulle logiche MTF. Questa è una cosa che ho notato sulle Logiche MTF, un periodo di tempo di solito domina il sistema.

@danjp, sì, questo è probabilmente il modo più veloce per ottenere le regole in un programma funzionante di cui ti fidi. Dal momento che la maggior parte di noi ha già un Template su cui inserire una logica. Se qualcuno non si sente a suo agio a dare via i suoi codici, un suggerimento sarebbe quello di avere chi assembla i codici di usare librerie fidate dal nostro codice base. (Esempio: OrderReliable.mqh.).

Sapete una cosa? Mi piace questa idea. Se riesco a far firmare 3 persone da qui, inizio un nuovo thread. Collaboriamo nello sforzo di cercare di creare un EA redditizio. Sarà un buon test per vedere se più trader possono davvero commerciare lo stesso sistema :)


Si prega di postare qui il thread, se si avvia, io def vuole partecipare
 
danjp:

Farei una corsa di ottimizzazione che avesse (1*std) -> (5*std) e anche nella stessa corsa provare 0.3 - > 1.5 sia sul SL che sul TP. Io comincerei con una corsa di 12 mesi. Se ottieni risultati decenti da alcune di queste corse, allora aggiungerei nell'EA un'ora di routine di trading e userei i valori che hai ottenuto dalla corsa precedente per vedere se puoi migliorarlo ancora di più senza dover fare trading 24/7.

Buona fortuna, continua a pubblicare i risultati.

Puoi consigliarmi qualche documentazione per eseguire un backtest con (1*std) -> (5*std) e (0.3 - > 1.5 sia sullo SL che sul TP)
 
diostar:

Il test in avanti per un totale di 156 trade è molto più affidabile di quei 39 trade di backtest. L'intera idea del backtest è quella di inserire quanti più trade possibile e ottenere risultati rapidi. A cosa serve il backtesting?







Ilbacktesting serve solo per testare la strategia e vedere che la tua logica funziona, ma per giudicare se sarà redditizia, solo i test in avanti possono determinare


Ci sono state molte volte, quando si vede un EA redditizio sul backtest, poi si esegue dal vivo, e vola, il tuo EA rompe la tua banca