ICustom-Funktion - Seite 3

 

Hauptsächlich zum Testen/Verifizieren

Ich entwickle meine Strategien mit einem Indikator und möchte überprüfen, ob der EA so funktioniert, wie der Indikator es tat. Wenn ich ein wenig mehr Erfahrung mit MT4 unter meinem Gürtel, vielleicht kann ich das Fleisch der Indikator-Logik ein Unterprogramm oder eine DLL und dann rufen Sie es von meinem Indikator und EA.

Wenn Sie den Tester verwenden, können Sie einen Chart öffnen. Wenn ich diese Logik außer Kraft setzen könnte, könnte ich auch Objekte in diesen Chart setzen.

Kennt jemand einige EAs, die grafisch anzeigen, was sie tun?

 

Ich habe meine erste ICustom mit Fisher m11 als die benutzerdefinierte. Es zeigt den Indikator in der Tester, die schöne Grafik ist aber ein Verlierer die meiste Zeit. Fisher m11 ist ein Indikator und muss in diesem Ordner sein. Fisher Auto EA m11 muss sich im Ordner experts befinden. So habe ich ihn im EA platziert:

iCustom(NULL,0, "Fisher_m11",Fisher_Period, IndexSmoothing,PriceSmoothing,0);

Hier ist das Format, um es zu verwenden: double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

Vielleicht hilft es einigen, die an der Erstellung ihrer eigenen EAs arbeiten.

Dateien:
 

Ich habe eine ähnliche Frage.

Weiß jemand, wie man mit

SHI_SilverTrendSigAlert

und

SilverTrend_Signal mit Alert v3

in einem EA verwenden kann?

Ich brauche eine professionelle Hilfe.

 

SilverTrend ist schön für den Handel, aber das Signal wird ein und aus gehen, bis die Bar schließt, die auf die Herstellung eines EA hart sein kann. Ich habe eine Zip von 12 Silber EAs für Sie zu betrachten enthalten.

Dateien:
 

Ich wollte nur die Endwerte der iCustom-Zeile in meinem Kopf klären.

Linie und Verschiebung

Wenn ich also einen Indikator wie VQ habe, der nur eine grafische Linie hat, und ich möchte herausfinden, ob er bei der vorherigen geschlossenen Kerze mit einem Pfeil nach oben eine Kaufbedingung oder mit einem Pfeil nach unten eine Verkaufsbedingung signalisiert hat, müsste ich zwei Bedingungen einrichten;

double VQ0 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 1,1);

double VQ1 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 2,1);

[/code]

So the above is going to check for an up condition (up) or sell (down) condition on the closed bar, correct?

Then my Buy and Sell code should be; correct?

//Buy

if (VQ0>VQ1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

//Sell

if (VQ0<VQ1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

[/code]

Now if I wanted to add a second indicator so that TWO conditions need to be met at the same time to trigger a trade, it has two graphical lines (Don't know if it matters by how many lines it has, the indicator knows what it's Buy and Sell conditions are, correct?) My code would change to;

[code]

double VQ0 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 1,1);

double VQ1 = iCustom(NULL, 0, "VQ", false,0,5,3,1,5,true,false,true,true,false,true,1485, 2,1);

double QQEA0 = iCustom(NULL, 0, "QQEA",5,14,4.236, 1, 1);

double QQEA1 = iCustom(NULL, 0, "QQEA",5,14,4.236, 2, 1);

and Buy and Sell code should be

[code]

//Buy

if (VQ0>VQ1 && QQEA0>QQEA1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

//Sell

if (VQ0<VQ1 && QQEA0<QQEA1 && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))

Edit: Ich habe gerade einen Backtest gemacht und es scheint wie jeder M30 (Chart TF) zu handeln. Ich möchte nur, dass der Handel NUR bei der ersten Signalbedingung eingeleitet wird und dann bis zur nächsten entgegengesetzten Signalbedingung gewartet wird. Es scheint so, dass wenn beide Indikatoren sich auf einen Kauf einigen, dann gehandelt wird und wenn dieser Handel geschlossen wird, wird ein weiterer Kaufhandel auf der nächsten Kerze fortgesetzt, wenn die Bedingungen immer noch erfüllt sind. Das ist nicht das, was ich will Ich möchte nur einen Handel pro Kauf/Verkaufssignal. Danke

Im Anhang finden Sie zwei EAs, einen mit dem Namen My First EA, den jemand für mich geändert hat, weil er dachte, die Bedingungen seien falsch, und einen, den ich mit einer Vorlage namens YourExpertAdvisor erstellt habe. Sind sie beide korrekt?

Ich danke Ihnen für Ihre Hilfe.

Dateien:
 

Wenn ich es richtig verstehe, möchten Sie, dass Ihr EA eine ununterbrochene Reihe von Indikatorübereinstimmungen als "ein Signal" behandelt, anstatt dass jedes Mal, wenn eine Übereinstimmung vorliegt, ein Signal ist.

Eine Möglichkeit, dies zu tun, ist es ein stateful EA zu machen und ein Design wie folgt zu verwenden:

static int last_signal = 0;

int signal = 0;

if ( ) signal = 1;

if ( ) signal = -1;

if ( signal != 0 && signal != last_signal ) {

// New signal series...

}

last_signal = signal;

 
ralph.ronnquist:
Wenn ich es richtig verstehe, möchten Sie, dass Ihr EA eine ununterbrochene Reihe von Indikatorübereinstimmungen als "ein Signal" behandelt, anstatt dass jede Übereinstimmung ein Signal ist.

Eine Möglichkeit, dies zu tun, besteht darin, es zu einem zustandsbehafteten EA zu machen und ein Design wie das folgende zu verwenden:

static int last_signal = 0;

int signal = 0;

if ( ) signal = 1;

if ( ) signal = -1;

if ( signal != 0 && signal != last_signal ) {

// New signal series...

}

last_signal = signal;

Hallo Ralph, vielleicht wird dieser Thread, den ich begonnen habe, klarer sein;

https://www.mql5.com/en/forum/178432

Danke

 
codersguru:
homicida,

Es tut mir leid für die Verzögerung.

Im Anhang finden Sie eine geänderte Version von LSMA und iCustom_Demo.

Ich habe einen neuen Puffer zu LSMA hinzugefügt, um die aktuelle Farbe zu speichern (1=rot, 2=grün und 3=gelb).

Wo ist (1=Abwärtstrend, 2=Aufwärtstrend und 3=kein Trend).

Um mit iCustomfunction den Wert dieses Puffers zu erhalten, können Sie schreiben:

double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0);

Danke Codersguru!!!

Ich konnte eine Version meines Digitalen Kompasses für die Verwendung mit Scheibenindikatoren erstellen.

 

Es wäre schön, wenn du, TheRumpledOne, auch lernen würdest, wie man Bilder anhängt, anstatt sie inline zu stellen; mit dem Müll, den du einfügst, verschwendest du nur eine Menge Platz.

 
ralph.ronnquist:
Es wäre schön, wenn Sie, TheRumpledOne, auch lernen würden, wie man Bilder anhängt, anstatt sie inline zu stellen; mit dem Müll, den Sie einfügen, verschwenden Sie nur eine Menge Platz.

Wenn es "Müll" ist, warum sollte man es dann überhaupt posten?