EA N7S_AO_772012 - pagina 22

 
capellini писал(а) >>

Vorrei fare una domanda complementare...

Ci sono coppie su cui l'EA non ottimizza in alcun modo, non appaiono nemmeno i primi risultati. USDCHF, per esempio.

A cosa può essere collegato?

Bene, ci risiamo.

Ancora una volta per la ventiseiesima volta.
Non ci sono strumenti identici in termini di movimento di prezzo, ce ne sono di simili.
Non cercheremo di indovinare o di evocare sui grafici dove entrare e quando farlo.
Ecco perché se non ci sono risultati, o solo scarsi, dovremmo cambiare gli intervalli e i periodi di ottimizzazione, e si può anche giocare con lo SL e i livelli di trailing. Per alcuni simboli ho diminuito il periodo fino a tre o anche due settimane, ho cercato di aumentare lo SL per le croci Yen. In generale, cerco di trovare i valori migliori che forniscono buoni risultati durante l'ottimizzazione. Come risultato considero relativamente corretti i parametri che danno 6-8 mila combinazioni redditizie in 10 mila corse durante l'ottimizzazione con la genetica. Allora secondo la legge dei grandi numeri la probabilità di profitto è due volte più alta della probabilità di perdita, il che significa che l'ottimizzazione è solo una formalità e i profitti supereranno le perdite almeno due volte nel caso di un numero significativo di settimane. Realisticamente di più.
Quindi, condividi come stai testando e quali sono i risultati. Questo non è facile in una settimana.
Il mio saldo per la settimana è di +$690 e equity.... L'equità è un po' più di +750 dollari, eh, era vicino ai 1000 dollari questo pomeriggio. Quasi tutte le posizioni sono state chiuse.

 

Riguardo all'errore. È qui nella funzione startM1(). A causa di questo c'era una differenza nei primi scambi sul tester e sulla demo.

//+------------------------------------------------------------------+
void startM1() {ticket = -1;RefreshRates();
if (total < HM_ALL) { BuSll (0,1,772012000); cmmnt();
if( !(DayOfWeek( ) == 1 && Hour( ) <2) && !(DayOfWeek( ) == 5 && Hour( ) >=18))
{if (Trd_Up_X && VSR() > 0 && bu<HM_Up_X&&Flq) {
if (MOS( 0, lots, sl, tp, WindowExpertName(), mn)==1) {Flq=falso;}} // sostituire con >=

if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y&&Flq) {
if (MOS( 1, lots, sl, tp, WindowExpertName(), mn)==1) {Flq=falso;}} // sostituire con >=
}}

//+------------------------------------------------------------------+

L'errore non è critico, a causa di esso il divieto di apertura di un affare in più su una barra non ha funzionato.

Lo correggerò nelle nuove versioni, ma per ora potete farlo manualmente.

 

SHooter777ру: Советник понравился. После сегодняшнего слива демки оптимизацию делаю под 200$ (MiniForex). В принципе почти не отличается от 2000$. в оптимизационных сетах стоплоссы ставлю 50 с шагом 10, но все равно лучшие профиты со стоплоссами от 500 получаются. Уже в конечных сетах подбираю приемлемые в пределах 50-200 вручную. Влияет ли шаг и стоп в сетах на торговлю? (По наблюдениям не заметил). Еще вопрос: Можно ли оптимизировать под MicroForex (мин. лот 0,01)? Торгую на Pro Finance Group Inc платформа PFG FX Trader 4 (поддерживает MQL4). К сожалению на МикроФорексе нет демки.

Qualcuno ha provato l'EA nella vita reale? È molto diverso dalla demo?


L'immagine mostra il trading nella demo di questa settimana con i set di SHooter777r .Avendo +800 in saldo di trading ho deciso di usare un altro EA su 3 coppie e ... L'avidità ha ucciso l'avidità - i fondi disponibili sono scesi sotto i 100 e naturalmente le contro-posizioni non sono state aperte, quindi il mio conto è quasi andato in bancarotta.


Buona fortuna per il trading a tutti!

File:
 

Ho scaricato l'EA e mi sono convinto di nuovo che per leggere velocemente l'anno di qualcun altro, è necessaria una conoscenza più professionale del linguaggio mql, per scrivere il proprio codice, la conoscenza e l'esperienza è un minimo. Gli autori, se pubblicano il codice, ci scrivono dei commenti e dividono l'intero codice in blocchi.

Questo può essere un Expert Advisor interessante, potrei aver raccomandato qualcosa dalla mia esperienza personale, ma non voglio addentrarmi nel codice grezzo. Il tempo è prezioso.

 
.
 

Qualcosa nell'ultima versione non funziona.

L'ottimizzatore non apre nemmeno un solo trade nella prima fase.

Il tester con parametri ottimizzati per l'EA precedente funziona allo stesso modo.

 

Mi dispiace! Ho passato mezz'ora a scrivere le istruzioni, ma questo forum glitchato non solo sorvola le lettere, ma ha anche perso tutto il testo.

Lo scrivo in wordpress e lo incollo qui. Aspetta un po'.

 

La nuova versione di L9 contiene una serie di aggiunte e cambiamenti minori, ma credo necessari.

Primo: è stata aggiunta la funzione FLG(), che è responsabile di due cose

//+------------------------------------------------------------------+

bool FLG (int cs )

{ int AE = AccountEquity( ) ;

interruttore(cs)

{case 0: if((DayOfWeek( ) == 5 && Hour( ) >=22) || (TrBlnc && (AE > UBlnc))

ritorno (vero); altrimenti ritorno (falso);

caso 1: stringa dttm = StringConcatenate (Anno(),".",Mese(),".",Giorno());

datetime smtm=StrToTime(dttm);

bool Gp;

int shft = iBarShift(NULL,0,smtm);

doppio iOpn = iOpen (NULL,0,shft); doppio iCls = iClose (NULL,0,shft+1);

doppio dOC = MathAbs ((iOpn - iCls)/(Punto*10)) ;

se (dOC>20) Gp = true ; Stampa (Gp);

string var1=TimeToStr(smtm,TIME_DATE|TIME_SECONDS);

if((TrBlnc && ((AE > UBlnc)||(AE < DBlnc)) || (!Flq)

|| ((DayOfWeek( ) == 1 && Hour( ) <2) || (DayOfWeek( ) == 5 && Hour( ) >=18))

|| ((DayOfWeek( ) == 1 && Hour( ) <14) && Gp))

ritorno (falso); altrimenti ritorno (vero);

}

}

//+------------------------------------------------------------------+

a) FLG( 0 ) - chiusura forzata delle posizioni aperte alle condizioni specificate.

b) FLG( 1 ) - proibisce l'apertura di posizioni a determinate condizioni.

Qui è possibile inserire eventuali condizioni aggiuntive e non "sovraccaricare" la funzione void startM1() e altri luoghi.

Ho selezionato la fine della settimana per la chiusura forzata if((DayOfWeek( ) == 5 && Hour( ) >= 22) e aumentando Equity ad una certa dimensione

e vietare l'apertura a gep oltre un certo valore if(dOC>20) Gp = true ; e se l'Equity aumenta a if((TrBlnc && ((AE > UBlnc)

o diminuire a ||(AE < DBlnc))

 

Quindi, se state testando o ottimizzando, assicuratevi che l'Equity sia all'interno dell'intervallo impostato nei parametri

bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;

o aggiungere a int init() linea if ( IsOptimization( ) ) TrBlnc = false;//if ( IsTesting() ) TrBlnc = false;

 

Quanto segue non è un cambiamento ma piuttosto un'aggiunta più sostanziale e si riferisce a Delta_G12 ora non è delta AO ma la funzione G12(),

che, a seconda del suo parametro extern int Indctr; usa o il primo AO se Indctr = 1

o se Indctr = 2 qualsiasi altra funzione o indicatore (io uso il mio, TSM allegato), se int Indctr = 0 allora i segnali sono sommati da entrambi gli indicatori &&

//+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF+

double G12() {switch(Indctr)

{caso 0:

iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2);

iCusTSM_1 = iCusTSM (24, 1); iCusTSM_2 = iCusTSM (24, 2);

Dlt_AO12 = iCusAO_1 -iCusAO_2; Dlt_TSM12 = iCusTSM_1-iCusTSM_2;

se ( Dlt_AO12>=0 && Dlt_TSM12 <=0) ritorna (0);

se ( Dlt_AO12<=0 && Dlt_TSM12 >=0) ritorna (0);

ritorno(Dlt_AO12);

caso 1:

iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2);

Dlt_AO12 = iCusAO_1 -iCusAO_2; return(Dlt_AO12);

caso 2:

iCusTSM_1 = iCusTSM (24, 1); iCusTSM_2 = iCusTSM (24, 2);

Dlt_AO12 = iCusTSM_1-iCusTSM_2; return(Dlt_AO12);}}

//+--------------------------------------------------------------------------------------+

doppio iCusTSM (int pr, int shft)

{ return (iCustom(NULL, 240, "iCus_N7S_TSM_forExp",pr,1,shft)); }

//+--------------------------------------------------------------------------------------+