Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo Mladen,
Danke für die Erklärung, aber was meinst du mit dem Wert des ersten geschlossenen Balkens? Ist es der erste geschlossene Balkenwert oder der aktuelle Balken oder danach? Und was bedeutet dann aktuell+0 oder aktuell+1?
Viele Grüße
Terrance
Terrance
MODE_MAIN bedeutet, dass Sie den Wert der stochastischen Linie einlesen. MODE_SIGNAL bedeutet, dass Sie den Wert der stochastischen Signallinie einlesen.
SHIFT ist für alle Indikatoren gleich (auch für die benutzerdefinierten). Ein Beispiel: SHIFT=0 bedeutet den Wert des aktuellen Balkens, SHIFT=1 bedeutet den Wert des ersten geschlossenen Balkens und so weiter ......
Terrance
Der aktuelle Balken ist per Definition noch kein geschlossener Balken
Der erste Balken vor dem aktuellen Balken ist der erste geschlossene Balken
Hallo Mladen,
Danke für die Erklärung, aber was meinen Sie mit dem Wert des ersten geschlossenen Balkens? Ist es der Wert des ersten geschlossenen Balkens oder der aktuelle Balken oder danach? Was bedeutet dann aktuell+0 oder aktuell+1?
Gruß
TerranceHallo Mladen,
Liege ich also richtig, wenn ich sage, dass:
current+0 ist gleich dem Wert 0,
current+1 ist der gleiche wie der Wert 1,
current+2 ist der gleiche wie der Wert 2,
und so weiter..... für SHIFT?
Z.B.:
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 1); ist das gleiche wie iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 1);
Liege ich mit dieser Aussage richtig?
Mit freundlichen Grüßen
Terrance
Terrance
Der aktuelle Balken ist per Definition noch kein geschlossener Balken.
Der erste Balken vor dem aktuellen Balken ist der erste geschlossene Balken...
Terrance
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 0); ist die aktuelle
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 1); ist die erste geschlossene (vorherige)
...
...
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Bars-1); ist der älteste im Chart
PS: in diesem Beitrag haben Sie mehr Informationen über Bars: https: //www.mql5.com/en/forum/173124
Hallo Mladen,
Liege ich also richtig, wenn ich sage, dass:
current+0 ist gleich dem Wert 0,
current+1 ist der gleiche wie der Wert 1,
current+2 ist der gleiche Wert wie 2,
und so weiter..... für SHIFT?
Z.B.:
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 1); ist das gleiche wie iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 1);
Liege ich mit dieser Aussage richtig?
Mit freundlichen Grüßen
TerranceHallo Mladen,
Danke für die tolle Hilfe, wie immer!
Viele Grüße
Terrance
Terrance
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 0); ist die aktuelle
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 1); ist die erste geschlossene (vorherige)
...
...
iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Bars-1); ist der älteste im Chart
PS: In diesem Beitrag finden Sie weitere Informationen über Bars: https: //www.mql5.com/en/forum/173124Ein paar Probleme
Hallo zusammen,
Ich habe meinen Code getestet und er ist fast fertig. Ich habe ein paar Fragen, bei denen ich hoffe, dass ihr mir helfen könnt.
Ich habe folgendes in int init() eingegeben:
if (Bars < D1FastMAPeriod || Bars < D1SlowMAPeriod)
{
Alert("ERROR- INSUFFICIENT BARS TO CALCULATE SMA ON DAILY CHART");
return(0);
}
Die SlowMAPeriod ist 200. Wenn ich einen Backtest ab dem 01.01.2009 durchführe, wird diese Fehlermeldung ausgegeben, obwohl ich auf meinem Chart deutlich sehen kann, dass es genügend Balken gibt, um den 200SMA von 2008 zu berechnen. Übersehe ich hier etwas?
2. Ich platziere Trades auf dem H4-Chart, aber nur in Richtung des Tagestrends. Ich zeichne die Werte mit dem folgenden Code:
SlowMACurrent = iMA(Symbol(), PERIOD_D1, D1SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
FastMACurrent = iMA(Symbol(), PERIOD_D1, D1FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
Wenn ich dann nach einer Long-Position suche, beziehe ich mich auf sie, indem ich
if (FastMACurrent > SlowMACurrent && ... etc ... )
Ist dies korrekt, da es nicht so aussieht, als würde es meine Trades richtig filtern?
3. Ich verwende auch einen Trendfilter auf dem H4-Chart, indem ich nur dann Long-Positionen eingehe, wenn der Preis das vorherige Hoch der letzten 120 Perioden überschritten hat (und dann über dem Tief der 120 Perioden bleibt). Ich verwende diesen Code:
Donchian_Low = Low;
Donchian_High = Hoch;
static bool Aufwärtstrend = FALSE;
statisches bool DownTrend = FALSE;
if (Ask > Donchian_High) {UpTrend = TRUE; DownTrend = FALSE;}
if (Bid < Donchian_Low) {UpTrend = FALSE; DownTrend = TRUE;}
Dann verwende ich den folgenden Code (z.B. für Long-Positionen):
if (FastMACurrent > SlowMACurrent && UpTrend == TRUE && DownTrend == FALSE ... etc ... )
Aber es scheint nicht zu funktionieren, denn wenn ich mein Backtesting-Chart mit einem Donchian Channel von 120 Perioden vergleiche, klappt es nicht. Irgendwelche Ideen?
Vielen Dank im Voraus.
...
1. Setzen Sie ihn an den Anfang der Funktion start(). Init ist unzuverlässig, wenn es sich um Daten wie Bars handelt.
2. Diese Bedingung ist wahr, wenn FastMACurrent > SlowMACurrent ist. Ist es das, was Sie wollten, oder suchen Sie vielleicht nach Kreuzen?
3. Das steht wahrscheinlich im Zusammenhang mit Punkt 2. Sie müssen die Bedingungen, unter denen Aufträge eingegeben werden können, einschränken, da auf diese Weise zu viele Möglichkeiten abgedeckt werden.
Hallo zusammen,
Ich habe meinen Code getestet und er ist fast fertig. Ich habe ein paar Fragen, ich hoffe, Sie können mir helfen mit.
Ich habe dies in int init() eingegeben:
if (Bars < D1FastMAPeriod || Bars < D1SlowMAPeriod)
{
Alert("ERROR- INSUFFICIENT BARS TO CALCULATE SMA ON DAILY CHART");
return(0);
}
Die SlowMAPeriod ist 200. Wenn ich einen Backtest ab dem 01.01.2009 durchführe, wird diese Fehlermeldung angezeigt, obwohl ich auf meinem Chart deutlich sehen kann, dass es genügend Balken gibt, um den 200SMA von 2008 zu berechnen. Übersehe ich hier etwas?
2. Ich platziere Trades auf dem H4-Chart, aber nur in Richtung des Tagestrends. Ich zeichne die Werte mit dem folgenden Code:
SlowMACurrent = iMA(Symbol(), PERIOD_D1, D1SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
FastMACurrent = iMA(Symbol(), PERIOD_D1, D1FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
Wenn ich dann nach einer Long-Position suche, beziehe ich mich auf sie, indem ich
if (FastMACurrent > SlowMACurrent && ... etc ... )
Ist dies korrekt, da es nicht so aussieht, als würde es meine Trades richtig filtern?
3. Ich verwende auch einen Trendfilter auf dem H4-Chart, indem ich nur dann Long-Positionen eingehe, wenn der Preis das vorherige Hoch der letzten 120 Perioden überschritten hat (und dann über dem Tief der 120 Perioden bleibt). Ich verwende diesen Code:
Donchian_Low = Low;
Donchian_High = Hoch;
static bool Aufwärtstrend = FALSE;
statisches bool DownTrend = FALSE;
if (Ask > Donchian_High) {UpTrend = TRUE; DownTrend = FALSE;}
if (Bid < Donchian_Low) {UpTrend = FALSE; DownTrend = TRUE;}
Dann verwende ich den folgenden Code (z. B. für Long-Positionen):
if (FastMACurrent > SlowMACurrent && UpTrend == TRUE && DownTrend == FALSE ... etc ... )
Aber es scheint nicht zu funktionieren, denn wenn ich mein Backtesting-Chart mit einem Donchian Channel von 120 Perioden vergleiche, klappt es nicht. Irgendwelche Ideen?
Vielen Dank im Voraus.Hallo mladen,
1. OK, wird gemacht.
2. Ja, das ist richtig, ich will nicht von der Kreuzung eingeben, nur mit ihm für eine lange / kurze Filter auf kürzere Laufzeit Charts, zum Beispiel, wenn die schnelle MA ist über der langsamen MA auf dem Tageschart ich will es nur in Betracht ziehen, lange Positionen auf dem H4 Chart. Ich denke also, ich habe das richtig kodiert?
3. Ich bin nicht sicher, ob ich weiß, was Sie meinen, aber ich habe dies unter init start() eingefügt
static bool Aufwärtstrend = FALSE;
static bool DownTrend = FALSE;
if (Ask > Donchian_High) {UpTrend = TRUE; DownTrend = FALSE;}
if (Bid < Donchian_Low) {UpTrend = FALSE; DownTrend = TRUE;}
Sollte ich die statischen bool-Variablen ganz an den Anfang stellen, um sie global zu machen? Könnte dies die Ursache sein?
...
3. Was passiert, wenn Sie Donchian_Low fragen (was die meiste Zeit der Fall ist). Ihre statischen Variablen zeigen immer noch die "alten" Zustände an, obwohl sie nicht mehr gültig sind (sie "erben" den Zustand und signalisieren so, dass sie oben oder unten sind, auch wenn sie es nicht mehr sind). Prüfen Sie, ob das die Ursache für Ihre Probleme ist
Hallo mladen,
1. OK ist ausreichend.
2. Ja, das ist richtig, ich will nicht aus dem Kreuz eingeben, nur mit ihm für eine lange / kurze Filter auf kürzere Laufzeit Charts, zum Beispiel, wenn der schnelle MA ist über dem langsamen MA auf dem Tageschart ich will es nur zu berücksichtigen, lange Positionen auf dem H4 Chart. Ich denke also, ich habe das richtig kodiert?
3. Ich bin nicht sicher, ob ich weiß, was Sie meinen, aber ich habe dies unter init start() eingefügt
static bool Aufwärtstrend = FALSE;
static bool DownTrend = FALSE;
if (Ask > Donchian_High) {UpTrend = TRUE; DownTrend = FALSE;}
if (Bid < Donchian_Low) {UpTrend = FALSE; DownTrend = TRUE;}
Sollte ich die statischen bool-Variablen ganz am Anfang einfügen, um sie global zu machen? Könnte dies die Ursache sein?Gutes Argument. Ich werde mir das mal ansehen.
Eine Frage zu Funktionen, ist es möglich, eine Funktion innerhalb einer Funktion aufzurufen? Ich habe z.B. diese Funktion:
string GetWinLossPreviousShort (int LastOpenTicket, string WinLossPreviousShort)
{
if (... etc
Später rufe ich sie dann auf:
double GetLotsLong (int NiedrigRisiko, int HochRisiko, double SLDistanceLong, string GetWinLossPreviousShort)