Ema Cross! - pagina 20

 

EMA cross tester

Ciao Codersguru!

Voglio iniziare ringraziandoti per i fantastici corsi di apprendimento di MT. Senza di essi, non so come avrei potuto imparare mql così velocemente. Tu sei l'UOMO!

Recentemente, ho programmato gli ea per essere in grado di fare trading in una moltitudine di modi diversi in modo che io sia in grado di testare gli ea su un conto live mentre ho più impostazioni in esecuzione sulla stessa coppia e lo stesso TF. Mi piace l'idea dell'EMA, e ho codificato un EA che usa i tuoi criteri. Questa versione sarà in grado di scambiare istanze quasi illimitate dell'EA con diverse impostazioni sullo stesso TF/PAIR o qualsiasi combinazione. Il programma imposta una GlobalVariable in MT e la usa per creare un ID unico che viene poi inserito nel commento dei trade aperti. L'EA elabora quindi gli ordini in base a questo ID unico.

Inoltre, ho aggiunto una funzione per scrivere un file csv che assomiglia a una dichiarazione di trading che include le impostazioni che erano in atto al momento del test (cartella expert/files). Dopo aver fatto trading in questo modo ci saranno un sacco di trade da tutti i diversi EA, quindi essenzialmente è qui che si va per ottenere i trade stmnts accurati.

Fuori dalla scatola, dovrebbe funzionare proprio come la V2. Ci sono alcune caratteristiche extra che ho aggiunto nel caso qualcuno voglia andare in diretta.

Apprezzo tutto, e sono curioso di vedere quali sono i vostri pensieri su questo!

Nic

 
hellkas:
Ciao Hendrick

Potresti per favore dirmi le tue impostazioni e TF.

grazie

Ciao Hellkas,

Queste sono le mie coppie (Timeframe per tutte le coppie è Day)

USDJPY, EURCHF, AUDUSD, EURAUD, USDCAD, USDCHF, AUDCAD, EURCHF.

Impostazioni: default; tranne Reversal=True e Lots=0,1

Saluti!

 
Nicholishen:
Ciao Codersguru!

Il programma imposta una GlobalVariable in MT e la usa per creare un ID unico che viene poi inserito nel commento dei trade aperti. L'EA elabora quindi gli ordini in base a questo ID unico.

Nic

Nic

Questo è un ottimo modo per tracciare i tuoi ordini e qualsiasi file separato che il tuo EA può creare, ancora una volta mostra la tua capacità di vedere cose che altri non possono. La ragione per cui sto scrivendo è che ho fatto la stessa cosa, usando OrderComment() per etichettare gli ordini e ho scoperto che ciò ha posto problemi futuri. In quanto;

1) il campo di commento è un parametro stringa, al quale il vostro broker può aggiungere i propri commenti. quando il vostro ordine viene chiuso con un take profit o uno stop loss che viene colpito per esempio, il broker aggiungerà un messaggio al vostro campo di commento. Se non ne siete consapevoli, questo potrebbe causare degli errori in futuro se accedete alla cronologia delle operazioni del vostro conto usando il vostro commento originale senza sapere che è stato aggiunto. Inoltre, se un ordine è scaduto, i vostri commenti vengono riscritti con un messaggio del broker.

2) La funzione GlobalVariable() è di tipo double number, che viene convertito in tipo string quando viene usato come input di OrderComment. Mischiare i tipi di variabile non è una buona abitudine di programmazione, poiché questo potrebbe causare futuri errori di mixmatch delle variabili se si torna indietro per modificare il codice.

Per evitare quanto sopra ho usato il feild MagicNumber della funzione OrderSend(). Il codice qui sotto è la chiamata di funzione che uso per generare un numero unico che viene usato come hai descritto, per la tracciabilità dell'ordine e la registrazione. Genererà un numero da 100 a 999. Una volta che il numero viene usato, il nuovo numero viene incrementato di uno per la prossima EA da usare. Se metti la chiamata a questa funzione nell'area della funzione init() del tuo codice, essa viene vista solo una volta all'avvio e rimarrà con il tuo EA fino alla sua disattivazione.

Esempio;

int OrderID = 0;

int init() {

OrderID = GetTagNumber()

...

...

...

return( 0 );

} // Fine init, funzione:

Potete quindi usare l'OrderID dove volete per etichettare le vostre operazioni, i vostri file, ecc.

//«« <<<>>> »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

int

GetTagNumber() { // Sets the SystemTag To....

int PullNumber = 0;

if( GlobalVariableCheck( "PullTag ( Do Not Delete )" ) ) {

PullNumber = GlobalVariableGet( "PullTag ( Do Not Delete )" );

} else {

PullNumber = 100;

} // End If, GlobalVariableCheck:

GlobalVariableSet( "PullTag ( Do Not Delete )", PullNumber + 1 );

if( GlobalVariableGet( "PullTag ( Do Not Delete )" ) > 999 ) {

GlobalVariableSet( "PullTag ( Do Not Delete )", 100 );

} // End If, GlobalVariableSet:

return( PullNumber );

} // End Function, GetTagNumber:

La variabile OrderID deve essere dichiarata al di fuori della funzione init() in modo che il resto del programma possa vedere il suo valore.

Potete cambiare i limiti inferiore e superiore (100 - 999) in quello che volete o rimuovere il limite superiore e continuerà ad aumentare senza resettare.

Il motivo del nome della variabile ... "PullTag ( Do Not Delete )" ... è perché ora è possibile visualizzare e cancellare le variabili globali fuori dall'EA. Il "non cancellare" è un messaggio di avvertimento che appare quando si visualizzano le variabili globali. Se cancelli la variabile PullTag, questa ripartirà da 100 al prossimo avvio dell'EA. Le variabili globali mantengono il loro valore anche quando spegni la tua stazione di lavoro.

Il CockeyedCowboy

Come sempre dico troppo.

 

...proprio mentre mi chiedevo perché lo SL/TP non compariva nella storia. Grazie per l'intuizione! Lo incorporerò nel mio codice. Grazie mille per essere una risorsa così preziosa!

 

Nic

Se aprite la finestra del vostro terminale di trading e cliccate sulla scheda della cronologia del conto,> cliccate con il tasto destro su qualsiasi area del terminale,> cliccate sull'etichetta del menu> commenti. Sarai in grado di visualizzare i tuoi commenti e qualsiasi commento aggiunto dal tuo broker (di solito sono all'interno di [ .... ] ) all'interno della finestra del tuo terminale.

Il CockeyedCowboy

 

Sì... ho notato che tutti i TP/SL sono aggiunti come [tp][sl]. Il tuo codice mi piace di più.

 

cosa succede coders guru? cosa succede? Ho scaricato la tua ultima versione di ema cross ea al post 369, vedi cosa succede con il test grv ma dimmi perché

File:
1_4.gif  8 kb
 

Ragazzi per favore,

aiutatemi con una cosa. Perché l'opzione REVERSAL è inclusa in questo EA? Non capisco proprio perché fare trading contro il punto di incrocio di entrambe le EMA...

Grazie...

Finora con REVERSAL true = ho guadagnato più di 100 pips ma è pazzesco. Voglio dire che quando appare il punto di incrocio delle EMA, questo EA aprirà un trade assolutamente opposto, quindi perderete soldi...

 

pro-trend vs contro-trend

glader:
Ragazzi, per favore,

aiutatemi con una cosa. Perché l'opzione REVERSAL è inclusa in questo EA? Non capisco perché fare trading contro il punto di incrocio di entrambe le EMA...

Grazie...

Finora con REVERSAL true = ho guadagnato più di 100 pips ma è pazzesco. Intendo dire che quando appare il punto di incrocio dell'EMA, questo EA aprirà assolutamente il commercio opposto, quindi perderete soldi...

Beh, puoi scegliere di lavorare pro-trend.

IMHO, nella controtendenza apriamo la posizione al miglior prezzo e sopportiamo alcune perdite all'inizio per poi guadagnare il massimo che possiamo guadagnare!

 

dati insufficienti!

Audio:
Cosa succede coders guru? cosa succede? Ho scaricato la tua ultima versione di ema cross ea al post 369, vedi cosa succede con il test grv ma dimmi perché

Audio,

Per favore non piangere .

Credo che tu non abbia abbastanza dati storici.

Dai un'occhiata al mio back test e al forward test !

File:
Motivazione: