[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 1069

 
goldtrader:

Führen wir ein einfaches Experiment durch, um zu beweisen, dass der Drawdown bei einem separaten Handel NICHT in der Bilanz-/Eigenkapitallinie angezeigt wird.

Lassen Sie uns einen Expert Advisor mit zwei Codezeilen schreiben:

Führen wir ihn auf dem EURUSD-D1-Chart vom 1. Mai 2010 bis zum 1. August 2010 durch. Er muss EUR bei 1,2200 ohne Stopp kaufen und die Position bei 1,3000 mit Gewinnmitnahme schließen. Wir werden den Drawdown auf dem Balance/Equity-Chart und auf dem Visualisierungs-Chart sehen:

Wie Sie sehen können, ist der Drawdown auf dem Visualisierungsdiagramm (oben im Screenshot) sichtbar, auf dem Balance/Equity-Diagramm jedoch nicht. Dort gibt es nur ein Gewerbe. Schauen wir uns den Bericht des Testers an:

Im Bericht des Prüfers steht die Absenkung unter ZIFFERN.

Ich hoffe, die Frage ist jetzt geklärt?

.

Vielleicht stellt sich die Frage "WARUM wird das so gemacht?" Diese Frage richtet sich nicht an uns, die Benutzer, sondern an die MT4-Entwickler. Meines Erachtens ist dies falsch, da das Gleichgewichts-/Eigenkapitaltableau keine Überbietungen anzeigt.

Alexander, ich danke dir sehr! Sehr ausführlich und gründlich, vielen Dank für Ihre Arbeit. Antworten die MT4-Entwickler hier nicht?
 

Liebe Kolleginnen und Kollegen, vielleicht ist jemand auf dieses Thema gestoßen.

Gibt es eine Begrenzung für die Anzahl der gleichzeitig geöffneten Dateien? 4 ist OK, 5 ist offen, aber es wird nicht darauf geschrieben. Ich kann nicht herausfinden, was los ist.

 

Es gibt ein Problem. Ein Geschäft sollte eröffnet werden, wenn die obere (Kauf) oder untere (Verkauf) Grenze des Indikatorkorridors überschritten wird.

double barier = 0.08; // Grenzen des Korridors.

R() - Indikatorfunktion

Funktion zur Überprüfung der Bedingung der Überschreitung der oberen oder unteren Grenze:

int RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1);

if ( R(2)< barier && R(1) > barier ) return (1);

}

Der Expert Advisor eröffnet eine Position sofort, wenn der Indikator eine Grenze überschreitet (unabhängig davon, welche). Wenn der Kurs steigt - kaufen, wenn er fällt - verkaufen.

 
dzhini:

Es gibt ein Problem. Das Geschäft sollte eröffnet werden, wenn die obere (Kauf) oder untere (Verkauf) Grenze des Indikatorkorridors überschritten wird.

...

Es kommt tatsächlich vor, dass der EA sofort eine Position eröffnet, wenn der Indikator die Grenze überschreitet (es spielt keine Rolle, welche Grenze). Wenn der Kurs steigt - kaufen, wenn er fällt - verkaufen.

Den Wert der Barier-Variable leicht erhöhen
 
costy_:

Frage für Kenner

Kann ich mein eigenes Handelsinstrument für meinen Tester erstellen?

Ersetzen Sie EURUSD30_2.fxt durch meine oder eine andere Datei.

metaquotes\tester\historie\EURUSD30_2.fxt

Ich habe versucht, simple_csv2fxt zu erstellen, aber der Tester hat die Datei durch seine eigene Datei ersetzt.

Vielleicht hat jemand Erfahrung mit der Schöpfung, vielen Dank.

Es gibt sie, es gibt sie. Und es gibt einen guten Artikel zu diesem Thema.
 
Reshetov:
Den Wert der Barier-Variable leicht erhöhen
Das hat nicht geholfen. Könnte dies auf einen Fehler bei der Vorzeichenzuweisung zurückzuführen sein?
 
dzhini:
Nicht hilfreich. Könnte es an einem Fehler bei der Vorzeichenzuweisung liegen?

Sie können Kaffeesatz lesen oder etwas anderes, da es offensichtlich nicht genug Informationen gibt.

1. ein Indikator oder Oszillator:

2. Wenn Oszillator, hat er Grenzen oder nicht? Wenn ja, was sind seine Höhen und Tiefen?

3. Vielleicht liegt das Problem nicht im Code der obigen Funktion, sondern im Code ihrer Interpretation?

Da es hier keine Telepathen gibt und alle notwendigen Informationen, die Sie haben, geheim sind, ist die Frage die Antwort. D.h. auf der Grundlage der von Ihnen gelieferten Informationen hätte eine Erhöhung der Variablen das Problem lösen müssen.

 
Reshetov:

Sie können Kaffeesatz oder etwas anderes lesen, da die Informationen eindeutig unzureichend sind.

1. ein Indikator oder Oszillator:

2. Wenn es sich um einen Oszillator handelt, gibt es dann Einschränkungen? Wenn ja, wie hoch ist ihr Maximum und Minimum?

3. Vielleicht liegt das Problem nicht im Code der obigen Funktion, sondern im Code ihrer Interpretation?

Da es hier keine Telepathen gibt und Sie alle Informationen, die Sie benötigen, als geheim gekennzeichnet haben, ist die Frage die Antwort. D.h. auf den ersten Blick, nach den von Ihnen gelieferten Informationen zu urteilen, sollte die Erhöhung der Variablen das Problem gelöst haben.

Dies ist ein Indikator mit der folgenden Formel:

double R(int shift)
{
double coef1 = 100,0 * (iMA(NULL, 0, perfast, 0,MODE_LWMA, PRICE_CLOSE, shift) - iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift)) * iATR(NULL, 0, perslow, shift);
double coef2 = coef1 / iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift) / iATR(NULL, 0, perslow, shift);
double main =(MathExp(2.0 * coef2) - 1.0) / (MathExp(2.0 * coef2) + 1.0);

zurück (main);

}

Sachzwänge: (-1;1)

 
dzhini:

Dies ist ein Indikator mit dieser Formel:

double R(int shift)
{
double coef1 = 100,0 * (iMA(NULL, 0, perfast, 0,MODE_LWMA, PRICE_CLOSE, shift) - iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift)) * iATR(NULL, 0, perslow, shift);
double coef2 = coef1 / iMA(NULL, 0, perslow, 0, MODE_LWMA, PRICE_CLOSE, shift) / iATR(NULL, 0, perslow, shift);
double main = (MathExp(2.0 * coef2) - 1.0) / (MathExp(2.0 * coef2) + 1.0);

zurück (main);

}

Sachzwänge: (-1;1)

Ihre Funktion muss unter den in den Kommentaren genannten Bedingungen korrekt funktionieren:

int RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1); // Short pose, wenn der Indikatorwert auf dem vorherigen Balken höher als der untere Balken ist und der aktuelle niedriger als dieser Balken ist

if ( R(2)< barier && R(1) > barier ) return (1); // Long pose, wenn der Indikatorwert im vorherigen Balken unter der oberen Barriere liegt und im aktuellen Balken darüber

return(0); // In allen anderen Fällen nichts tun.

}

 
Reshetov:

Dann sollte Ihre Funktion für die Bedingungen in den Kommentaren korrekt funktionieren:

int RFilter()

{

if ( R(2)> -barier && R(1) < -barier ) return (-1); // Short pose, wenn der Indikatorwert auf dem vorherigen Balken höher ist als der untere Balken und der aktuelle niedriger als dieser Balken

if ( R(2)< barier && R(1) > barier ) return (1); // Long pose, wenn der Indikatorwert im vorherigen Balken unter der oberen Barriere liegt und im aktuellen Balken darüber

return(0); // In allen anderen Fällen nichts tun.

}

Aber es funktioniert nicht :(