Phoenix ist da! - Seite 13

 
AZBOfin:
wow, es wird von Minute zu Minute verwirrender

Ich schlage Folgendes vor:

1) alle Berechnungen basieren auf der Serverzeit und nicht auf der lokalen Zeit

2) alle Zeiteinstellungen im EA sollten in GMT vorgenommen werden

3) Einführung einer neuen Variable namens ServerOffset

diese Variable spiegelt einen Offset von der GMT-Zeitzone zur Server-Zeitzone wider

meine Ortszeit ist nicht relevant. heute bin ich hier bei GMT-7, morgen könnte ich bei GMT-4 sein, nächste Woche bei GMT+2

aber mein Handelsserver befindet sich immer am selben Ort. und das sollte die Grundlage für alle Berechnungen sein.

nur meine 2cents - hendrick du bist der Mann, was denkst du?

AZBOfin

Ich dachte an etwas in der gleichen Richtung... halten Sie es einfach für die Zeitverschiebung herausgefordert wie ich... Ich unterstütze den Antrag für einen ServerOffset Variable... Ich wünschte, ich wüsste, wie man es selbst zu tun. Ich bin noch nicht so weit mit dem Programmieren...das Einzige, was besser wäre, wäre, dass der Code erkennt, was er muss und sich automatisch anpasst, damit der Benutzer es nicht durcheinander bringen muss.

 
Dateien:
 
Hendrick:
Ich brauche etwas Hilfe. Die BUY- und SELL-Signale von Phoenix werden durch das folgende Codestück erzeugt:

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, ich scheine Ihnen in diesen Foren immer noch zu folgen.

Firebird v63g hatte einen Trendcode in sich, der aber nicht verwendet wurde. Ich verwende ihn in einem modifizierten Firebird und es scheint zu funktionieren, um Trades während Trends zu stoppen.

extern int DVLimit = 10; // eingefügt von Renato

int TrendUp=0, Trenddown=0;

double iFXAnalyser(int FXA_Period, int mode, int shift)// Lokale Funktion von MrPip erstellt

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;

Dann pur "&& TrendUp !=1" nach DealTime==1 im SELL-Trigger. Und "&& TrendDown !=1" nach DealTime==1 im BUY-Trigger.

Eine andere Methode besteht darin, einen Kontrollfaktor für RV! zu setzen, um die Handelsaktivität zu regulieren.

extern double RVI_Factor =50; // 0-200 Faktor, der zum RVI-Wert hinzugefügt wird, um die Handelsaktivität zu regulieren

Ändern Sie dann in SELL- und BUY-Triggern die RVI-Codes in "RVI(0+(RVI_Factor*Point))".

Eine andere Methode besteht darin, eine zweite, größere iMA-Hüllkurve einzufügen, um den aktiven Handelsbereich enger zu fassen und den Handel in Nicht-Trend-Perioden zu fördern.

extern double PercentLimit = 0.15; // 2. höhere Hüllkurve (Band), die den Handel stoppt.

int Safe2=0;

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

Setzen Sie "&& Safe2==1" in die SELL- und BUY-Trigger. Sie können einen zweiten Firebird-Indikator anhängen, der auf PercentLimit eingestellt ist, um den aktiven Handelsbereich zu sehen.

Ich verwende einen Firebird mit allen drei Filtern und es werden im Durchschnitt ~50% weniger Trades mit ~90% Gewinnrate gehandelt. Das Problem, das ich habe, ist der Effekt, den Nachrichten auf den Markt haben. Ich habe in diesem Thread berichtet, dass die letzten 4 Freitage einen großen negativen Effekt hatten, weil die offenen Trades vom Donnerstag übertragen wurden. Ich teste die Abschaffung von Handelstagen und/oder -zeiten, um zu sehen, ob ich die historischen Gruppenverluste besser steuern kann.

Hendrick, dies wäre eine Weiterentwicklung Ihres Diagramms mit den Handelszeitenergebnissen und würde eine Menge Arbeit bedeuten. Aber ich würde gerne einen EA haben, der für 6/24 Handelszeiten programmierbar ist und der seine Historie überblicken, schlechte Handelszeiten bestimmen und den Handel während dieser Zeiten stoppen kann, während er eine Geisterhandelshistorie für diese Zeiten beibehält. Wenn die historischen Ghost Trades wieder profitabel sind, werden diese Zeiten als gute Handelszeiten wiederhergestellt. Das ist Wunschdenken, aber ich werde versuchen, daran zu arbeiten oder zu sehen, ob ein Programmierer das zum Laufen bringen kann. Im Moment verwende ich Ihre Art von Diagramm und versuche, dies manuell zu tun.

Viel zu viel Tipparbeit. Nun, das passiert, wenn man Wein trinkt, während man an einem Thema arbeitet. Wenn das alles keinen Sinn ergibt, dann ist der Wein schuld.

Wackena

 
Hendrick:
Ich brauche etwas Hilfe. Die BUY- und SELL-Signale von Phoenix werden durch das folgende Codestück erzeugt:

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);

Jemand drüben im Firebird-Thread hat folgende Änderung vorgeschlagen:

Anstelle von:

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

Sie haben es geändert in:

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

Sie behaupteten, es gäbe weniger falsche Signale. Ist das hilfreich?

 

Zusätzliches Signal

Hallo Hendrick,

wenn ich mich auf den Handel vorbereite, schaue ich immer auf einen höheren TF, um die Trendbildung zu sehen.

Vielleicht ist die Hinzufügung eines zusätzlichen Signals zu Phoenix auf demselben 15-Minuten-TF zu begrenzt?

Schauen Sie sich bitte den Multi-Time-Frame-Indikator XO an.

Sie können ihn auf jede beliebige TF einstellen, aber für Phoenix, der auf dem M15 arbeitet, würde ich ihn

würde ich ihn auf H4 oder vielleicht sogar D1 einstellen.

Vielleicht ist es am flexibelsten, die TF-Einstellung im Input-Panel des EA zu haben, so dass es auf dem Weg optimiert werden kann.

Siehe angehängtes Bild mit dem Indikator zweimal geladen; eine für M15 und die andere für H4.

Mit freundlichen Grüßen,

Herbert

PS, ich habe Firebirds iRVI in iMACD geändert, wie Holyguy7 heute angemerkt hat, aber obwohl es die Geschwindigkeit von Firebird im Backtesting als Nebeneffekt erhöht hat , hatte ich den Eindruck, dass es die falschen Signale nicht entfernt hat.

Dateien:
 
holyguy7:
Jemand drüben im Firebird-Thread schlug die folgende Änderung vor:

anstelle der Ihren:

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

Sie haben es geändert in:

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

Er behauptete, es gäbe weniger falsche Signale. Ist das hilfreich?

Hallo Holyguy,

Für Phoenix Version 2 verwende ich jetzt einen SMA 120 und SMA 12 auf einem 15M Chart. Der Hauptzweck ist zu verhindern, dass Phoenix Trades gegen den Trend platziert. Bis jetzt scheint es gut zu funktionieren.

 
HerbertH:
Hallo Hendrick,

Wenn ich mich auf den Handel vorbereite, schaue ich immer auf einen höheren TF, um die Trendbildung zu erkennen.

Vielleicht ist die Hinzufügung eines zusätzlichen Signals zu Phoenix auf demselben 15-Minuten-TF zu begrenzt?

Schauen Sie sich bitte den Multi-Time-Frame-Indikator XO an.

Sie können ihn auf jede beliebige TF einstellen, aber für Phoenix, der auf dem M15 arbeitet, würde ich ihn

würde ich ihn auf H4 oder vielleicht sogar D1 einstellen.

Vielleicht ist es am flexibelsten, die TF-Einstellung im Input-Panel des EA zu haben, so dass es auf dem Weg optimiert werden kann.

Siehe angehängtes Bild mit dem Indikator zweimal geladen; eine für M15 und die andere für H4.

Mit freundlichen Grüßen,

Herbert

PS, ich habe Firebirds iRVI auf iMACD umgestellt, wie Holyguy7 heute anmerkte, aber obwohl dies als Nebeneffekt die Geschwindigkeit von Firebird beim Backtesting erhöht hat , hatte ich den Eindruck, dass die Fehlsignale dadurch nicht beseitigt wurden.

Hallo Herberth,

Siehe meine vorherige Antwort an Holyguy.

 

Phönix v2

Phoenix Version 2.

Änderungen:

Divergenzentfernt (ich denke, dass es keinen Nutzen hat)

Surf-orders entfernt (Leistung war nicht gut)

RVI durch dieses Stück Code ersetzt:

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;}

if(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

if(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

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

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

Der Zweck dieses Codes ist es, zu verhindern, dass Phoenix gegen den Trend handelt.

Zum Testen:

Verwenden Sie die Einstellungen aus der Datei. TF=15. Alle verfügbaren Paare.

Dateien:
 
Hendrick:
Phoenix Version 2.

Änderungen:

Divergenz entfernt (ich denke, sie ist nicht nützlich)

Surf-orders entfernt (Leistung war nicht gut)

RVI durch dieses Stück Code ersetzt:

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;}

if(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

if(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

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

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

Der Zweck dieses Codes ist es, zu verhindern, dass Phoenix gegen den Trend handelt.

Zum Testen:

Verwenden Sie die Einstellungen aus der Datei. TF=15. Alle verfügbaren Paare.

Danke, auf Charts setzen.

Haben Sie einen Backtest gemacht?

 
Yauhen:
Danke, auf Charts setzen. sind u machen alle Backtest?

Hallo,

Kein Backtest, nur Forward Testing.