Perché non c'è un EA completo nel Code-Base? - pagina 4

 

Alcune cose da aggiungere come opzioni EA:

- calcolo unico del numero magico, forse infallibile per dare lo stesso risultato quando il broker cambia il nome del simbolo (per esempio da "EURUSD" a "EURUSD.m")

- opzioni di gestione degli ordini (trailing stop, break even (questi in pip o altri valori come psar, x bars high/low, ma, ecc.), chiusura dell'ordine)

- gestione estesa delle informazioni sull'ordine per ticket d'ordine (per il quale un file di testo (o csv) sembra essere il modo più semplice e appropriato). GV è limitato, OrderComment() può essere modificato dal broker.

 
Costruire su IsNYOnDst
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder, stai aggiornando il link per il download o dobbiamo "patchare" manualmente il sorgente WHRea con tutti gli aggiornamenti che fornisci in questo thread?
 
Non puoi aggiornare i post una volta che sono diventati vecchi di un paio di giorni.
 
Capisco... Potresti per favore postare di nuovo qui la versione più recente?
 
mbirrell:

Sono un po' preoccupato di condividere i miei indicatori personalizzati e gli EAs perché se lo facessi e tutti iniziassero ad usarli non funzionerebbero più... Qualcun altro è d'accordo?

So che questo suona un po' egoista... ma quando arriverò a 5 milioni condividerò ;-)

In realtà se tutti usassero il tuo Ea, il prezzo di mercato sarebbe zero o infinito. Tutti vorranno comprare o vendere allo stesso tempo.
 

Ciao ragazzi, l'esempio del tutorial MQL4 è sufficiente se vogliamo una soluzione semplice e generale?

Il mio EA fa trading e calcola per barra e non per tick.


int Fun_Error(int Error) // Funzione di elaborazione degli errori
{
switch(Errore)
{// Errori non cruciali
caso 4: Alert("Trade server is busy. Trying once again...");
Sleep(3000);// Soluzione semplice
return(1);// Uscire dalla funzione
caso 135:Alert("Il prezzo è cambiato. Proviamo ancora una volta...");
RefreshRates();// Aggiorna i tassi
return(1);// Esci dalla funzione
caso 136:Alert("Nessun prezzo. In attesa di un nuovo tick...");
while(RefreshRates()==false) // Attendere un nuovo tick
Sleep(1);// Pausa nel ciclo
return(1);// Esci dalla funzione
caso 137:Alert("Broker is busy. Trying once again...");
Sleep(3000);// Soluzione semplice
return(1);// Uscire dalla funzione
caso 146:Alert("Trading subsystem is busy. Trying once again...");
Sleep(500);// Soluzione semplice
return(1);// Uscire dalla funzione
// Errori critici
caso 2: Alert("Errore comune");
return(0);// Esci dalla funzione
caso 5: Alert("Vecchia versione del terminale");
Lavoro=falso;// Termina l'operazione
return(0);// Esci dalla funzione
caso 64: Alert("Account bloccato");
Lavoro=falso;// Termina l'operazione
return(0);// Esci dalla funzione
caso 133:Alert("Trading vietato.");
return(0);// Esci dalla funzione
caso 134:Alert("Non ci sono abbastanza soldi per eseguire l'operazione");
return(0);// Esci dalla funzione
caso 134:Alert("Errore"); return(0); // Esci dalla funzione: Alert("Error occurred: ",Error); // Altre varianti
return(0);// Esci dalla funzione
}
}

 

Questa potrebbe essere la base di un ottimo EA Shell /Template: WHR è un esperto codificatore MT.

Era originariamente inteso come una fonte di codice EA utile, non è una Shell "plug and play".

Ho aggiornato questo EA in un paio di modi:

1. Ho modificato la sintassi e i nomi delle variabili in modo che si compili nelle attuali versioni di MQL4.
Ho anche aggiunto modifiche minime in modo che si compili, commentato con "Big Be".

2. Ho incorporato tutte le sezioni di codice aggiuntive che WHR ha messo nel thread.
Ho lasciato sul posto, ma ho commentato le sezioni che sono state sostituite.
Errori nell'aggiungere queste sezioni sono possibili, anche se sono stato il più attento possibile.
La mancanza di piena integrazione con il resto dell'EA è anche possibile.

3. Inoltre l'ho eseguito attraverso un programma che pulisce il formato del testo per la leggibilità.

Inizierà a funzionare nello Strategy Tester.
Non effettuerà operazioni, in quanto l'impostazione delle regole di entrata è lasciata a voi.
Non l'ho portato avanti perché ho altre richieste sul mio tempo.

LAVORO NECESSARIO:
Anche se ci sono commenti in tutto, molti hanno bisogno di essere chiariti. O da scrivere se inesistenti. Cosa fa ogni sezione o funzione?
Un esempio: CallAgain() dice "Salta i tick inutili", qual è il metodo o la logica? Probabilmente sta prendendo solo i tick che sono abbastanza lontani e / o sono nella direzione del commercio se un Trailing Stop, ma ci vorrà qualche studio per verificare.

Fare questo lo renderà meglio soddisfare il suo ruolo come fonte di idee, e consentire ulteriormente la lavorabilità come una shell EA / modello.

ULTERIORI TEST:
Aggiungere alcune regole di ingresso, e testare che ogni sezione stia facendo ciò che si suppone. Questo richiede molto studio nello Strategy Tester. E probabilmente un po' di codifica qua e là per fargli fare ciò che si suppone. Quando funziona lì, allora un sacco di test su un conto demo.

ATTENZIONE:
Almeno una funzione è incompleta, e ci possono essere errori in questo codice, o cambiamenti in Metatrader da quando il whrea è stato scritto che non sono ammessi.

Codificare/utilizzare un EA senza capirlo è un po' come cercare di pilotare un jet senza capire tutti i comandi e come usarli.
Ma, fate come volete: sono i vostri soldi.

RICHIEDI
Per favore aiutatemi se avete le ampie conoscenze necessarie e un po' di tempo.


Big Be (BigBe)

File:
whrea_v1.2.mq4  188 kb
 
William Roeder:

Per favore, potresti spiegare cos'è pips2dbl?

 
Pooya Khamooshi: Per favore, potreste spiegare cos'è pips2dbl?

Per convertire i PIP in un tick.

Un PIP non è un Punto o un Tick.
Cos'è un TICK? -Forum di programmazione MQL4

Usare i punti significa rompere il codice su broker a 4 cifre, esotici (ad esempio USDZAR dove lo spread è superiore a 500 punti) e metalli. Calcola cos'è un PIP e usalo, non i punti.
Come gestire coppie JPY con parametri? -Forum di programmazione MQL4
Slippage definito in punti indice - Coppie di valute - Expert Advisors e trading automatico - Forum di programmazione MQL5