Phoenix è qui! - pagina 13

 
AZBOfin:
Wow, diventa più confuso ogni minuto che passa

propongo quanto segue:

1) tutti i calcoli fatti sono basati sull'ora del server e non sull'ora locale

2) tutte le impostazioni dell'ora nell'EA dovrebbero essere fatte in GMT

3) introduzione di una nuova variabile chiamata ServerOffset

questa variabile riflette un offset dal fuso orario GMT al fuso orario del server

la mia ora locale non è rilevante. oggi sono qui a GMT-7, domani potrei essere GMT-4, la prossima settimana a GMT+2

ma il mio server di trading è sempre nello stesso posto. e questa dovrebbe essere la base per tutti i calcoli.

solo i miei 2cents - hendrick sei l'uomo, cosa ne pensi?

AZBOfin

Stavo pensando a qualcosa sulla stessa falsariga... mantenere le cose semplici per chi ha problemi di orario come me... Appoggio la mozione per una variabile ServerOffset... Vorrei sapere come fare da solo. Non sono ancora così lontano nella codifica... l'unica cosa migliore sarebbe avere il codice che rileva ciò di cui ha bisogno e regola automaticamente in modo che l'utente non debba incasinare tutto.

 
 
Hendrick:
Ho bisogno di aiuto. I segnali BUY e SELL di Phoenix sono generati dal seguente pezzo di codice:

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0);

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

.

Hendrick, mi sembra di seguirti ancora su questi forum.

Firebird v63g aveva un codice di tendenza, ma non è stato usato. Io lo uso in un Firebird modificato e sembra funzionare nel fermare i trade durante i trend.

extern int DVLimit = 10; // incluso da Renato

int TrendUp=0, Trenddown=0;

double iFXAnalyser(int FXA_Period, int mode, int shift)// Funzione locale creata da MrPip

if ( (iFXAnalyser(0,MODE_DIV,0)>DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)>0 )) Trendup=1;

if ( (iFXAnalyser(0,MODE_DIV,0)<-DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)<0 )) TrendDown=1;

Poi pur "&& TrendUp !=1" dopo DealTime==1 nel trigger SELL. E "&& TrendDown !=1" dopo DealTime==1 nel trigger BUY.

Un altro metodo è mettere un fattore di controllo per RV! per regolare l'attività di trading.

extern double RVI_Factor =50; // fattore 0-200 aggiunto al valore RVI per regolare l'attività di trading

Poi nei trigger SELL e BUY cambiate i codici RVI in "RVI(0+(RVI_Factor*Point))" respettivamente.

Un altro metodo è quello di mettere una seconda busta iMA più grande per restringere l'area di trading attivo per incoraggiare il trading durante i periodi non-trending.

extern double PercentLimit = 0.15; // 2° inviluppo superiore (banda) che ferma il trading.

int Safe2=0;

if ( myMA*(1+(PercentLimit/100))=Ask) Safe2=1;

Metti "&& Safe2==1" nei trigger SELL e BUY. Puoi allegare un secondo indicatore di tipo Firebird impostato su PercentLimit per vedere l'area di trading attiva.

Io uso un Firebird con tutti e tre i filtri e ha una media di ~50% di scambi in meno con ~90% di tasso di vittoria. Il problema che ho è l'effetto delle notizie sul mercato. Ho riferito in questo thread che gli ultimi 4 venerdì hanno avuto un grande effetto negativo a causa del riporto dei trade aperti dal giovedì. Sto testando l'eliminazione di giorni e/o orari di trading per vedere se posso gestire meglio le perdite del gruppo storico.

Hendrick, questo sarebbe un ulteriore sviluppo del tuo grafico dei risultati del tempo di trading e sarebbe un sacco di lavoro. Ma, mi piacerebbe avere un EA che sia programmabile per il tempo di trading 6/24 e che possa esaminare la sua storia, determinare i tempi di cattivo trading e fermare il trading durante questi tempi, mantenendo una storia di trading fantasma per questi tempi. Quando i trade fantasma storici sono di nuovo redditizi, questi tempi vengono ristabiliti come tempi di trading buoni. Pensiero velleitario, ma ho intenzione di provare a lavorare su questo o vedere se un codificatore può farlo funzionare. In questo momento, uso il tuo tipo di grafico e cerco di farlo manualmente.

Troppa digitazione. Beh, questo è quello che succede quando si beve vino mentre si è su un thread. Se tutto questo non ha senso, è colpa del vino.

Wackena

 
Hendrick:
Ho bisogno di aiuto. I segnali BUY e SELL di Phoenix sono generati dal seguente pezzo di codice:

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0);

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

Qualcuno nel thread di Firebird ha suggerito la seguente modifica:

invece del tuo:

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

L'hanno cambiato in:

RVI=iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,0)-iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,1);

Hanno affermato che ha dato meno falsi segnali. Questo aiuta?

 

Segnale aggiuntivo

Ciao Hendrick

quando mi preparo al trading, guardo sempre a un TF più alto per vedere il trend che si sta formando.

Forse aggiungere un segnale aggiuntivo a Phoenix sullo stesso TF a 15 minuti è troppo limitato?

Dai un'occhiata all'indicatore XO Multi-Time-Frame.

Puoi impostarlo su qualsiasi TF tu voglia, ma per Phoenix che lavora su M15 io

l'avrei impostato su H4 o forse anche su D1.

Forse è più flessibile avere la sua impostazione TF nel pannello degli ingressi dell'EA in modo che possa essere ottimizzato lungo il percorso.

Vedi immagine allegata con l'indicatore caricato due volte; una per M15 e l'altra per H4.

Saluti,

Herbert

PS, ho cambiato l'iRVI di Firebird in iMACD come ha ricordato Holyguy7 oggi, ma anche se ha aumentato la velocità di Firebird nel backtesting come effetto collaterale , ho avuto l'impressione che non ha rimosso i falsi segnali.

File:
 
holyguy7:
Qualcuno nel thread di Firebird ha suggerito il seguente cambiamento:

al posto del vostro:

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

L'hanno cambiato in:

RVI=iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,0)-iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,1);

Hanno affermato che ha dato meno falsi segnali. Questo aiuta?

Ciao Holyguy,

Per Phoenix versione 2 sto usando una SMA 120 e una SMA 12 su un grafico 15M. Lo scopo principale è quello di evitare che Phoenix piazzi operazioni contro la tendenza. Finora sembra funzionare bene.

 
HerbertH:
Ciao Hendrick,

quando mi preparo al trading, guardo sempre un TF più alto per vedere la tendenza che si forma.

Forse aggiungere un segnale aggiuntivo a Phoenix sullo stesso TF a 15 minuti è troppo limitato?

Dai un'occhiata all'indicatore XO Multi-Time-Frame.

Puoi impostarlo su qualsiasi TF tu voglia, ma per Phoenix che lavora su M15 io

l'avrei impostato su H4 o forse anche su D1.

Forse è più flessibile avere la sua impostazione TF nel pannello degli ingressi dell'EA in modo che possa essere ottimizzato lungo il percorso.

Vedi immagine allegata con l'indicatore caricato due volte; una per M15 e l'altra per H4.

Saluti,

Herbert

PS, ho cambiato iRVI di Firebird con iMACD come Holyguy7 ha ricordato oggi, ma anche se ha aumentato la velocità di Firebird nel backtesting come effetto collaterale , ho avuto l'impressione che non ha rimosso i falsi segnali.

Ciao Herberth,

Vedi la mia precedente risposta a Holyguy.

 

Phoenix v2

Phoenix versione 2.

Modifiche:

rimossa la divergenza (penso che non sia utile)

rimosso Surf-orders (le prestazioni non erano buone)

sostituito RVI con questo pezzo di codice:

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

se(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

se(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

Lo scopo di questo codice è di evitare che Phoenix piazzi compravendite contro il trend.

Per i test:

Utilizzare le impostazioni del file. TF=15. Tutte le coppie disponibili.

File:
 
Hendrick:
Phoenix versione 2.

Modifiche:

rimossa la divergenza (penso che non sia utile)

rimosso Surf-orders (le prestazioni non erano buone)

sostituito RVI con questo pezzo di codice:

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

se(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

se(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

Lo scopo di questo codice è di evitare che Phoenix piazzi compravendite contro il trend.

Per i test:

Utilizzare le impostazioni del file. TF=15. Tutte le coppie disponibili.

Grazie, mettere sui grafici.

Sei fare qualche backtest?

 
Yauhen:
Grazie, metti sui grafici. stai facendo qualche backtest?

Ciao,

Nessun backtest, solo test in avanti.

Motivazione: