Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1250

 
Artyom Trishkin :

Ich habe mich nicht damit befasst - ich kann Ihnen leider nichts dazu sagen.

Ich werde es erklären. Ich hoffe, es ist sinnvoll.

Hier ist die Erklärung:

Ich handle EURUSD und AUDJPY im MT5. Beide haben eine gebuchte Marge, wie in der MT5-Symbolleiste angezeigt. Ich werde das Bild teilen.

Erster Handel mit EURUSD:

Ich habe mit Los = 1 verkauft. Gewinnspanne = 235,31.

Ich handle jetzt mit AUDJPY:

Ich habe zu Los = 1 verkauft. Ich nahm einen Margin Call = 144,24.

Und die in der ToolBox angezeigte Gesamtmarge beträgt 379,55.

Wie Sie sehen können, zeigt die Toolbox die Gesamtmarge an, die von den Symbolen EURUSD und AUDJPY verwendet wird.

Jetzt komme ich zu meiner Frage.

Ich möchte wissen, wie hoch die Marge der Gesamtmarge ist, die von EURUSD verwendet wird. Ich verstehe die Berechnungen dafür nicht. Ich weiß, dass die Antwort = 235,31 sein sollte.

Aber mit OrderCalcMargin () erhalte ich andere Antworten. Manchmal liefert die Funktion 235,23, manchmal 235,01. Aber das ist die falsche Antwort. Ich möchte wissen, wie ich die für ein bestimmtes Symbol verwendete Marge berechnen kann. Sagen Sie mir, wie ich in meinem Beispiel die von EURSD oder AUDJPY verwendete Marge berechnen kann.

Anmerkung:

Die Antwort OrderCalcMargin () gibt manchmal die richtige Antwort für EURUSD. Aber wenn ich die Marge für AUDJPY berechnen will, sieht es immer anders aus.

Bitte sagen Sie mir, ob ich das richtig verstanden habe.

Ich habe diese Frage und habe versucht, sie allen im Forum zu erklären, aber niemand kann sie verstehen. Hier versuche ich es noch einmal.

Ich werde es noch einmal versuchen, wenn es immer noch keinen Sinn ergibt.

@ Artyom Trishkin, lassen Sie es mich wissen. Ich zähle auf Sie, dass Sie mir eine Lösung anbieten.

 
jaffer wilson:

Ich werde es erklären. Ich hoffe, es ist sinnvoll.

Hier ist die Erklärung:

Ich handle EURUSD und AUDJPY im MT5. Beide haben eine gebuchte Marge, wie in der MT5-Symbolleiste angezeigt. Ich werde das Bild teilen.

Erster Handel mit EURUSD:

Ich habe mit Los = 1 verkauft. Gewinnspanne = 235,31.

Ich handle jetzt mit AUDJPY:

Ich habe zu Los = 1 verkauft. Ich nahm einen Margin Call = 144,24.

Und die in der ToolBox angezeigte Gesamtmarge beträgt 379,55.

Wie Sie sehen können, zeigt die Toolbox die Gesamtmarge an, die von den Symbolen EURUSD und AUDJPY verwendet wird.

Jetzt komme ich zu meiner Frage.

Ich möchte wissen, wie hoch die Marge der Gesamtmarge ist, die von EURUSD verwendet wird. Ich verstehe die Berechnungen dafür nicht. Ich weiß, dass die Antwort = 235,31 sein sollte.

Aber mit OrderCalcMargin () erhalte ich andere Antworten. Manchmal liefert die Funktion 235,23, manchmal 235,01. Aber das ist die falsche Antwort. Ich möchte wissen, wie ich die für ein bestimmtes Symbol verwendete Marge berechnen kann. Sagen Sie mir, wie ich in meinem Beispiel die von EURSD oder AUDJPY verwendete Marge berechnen kann.

Anmerkung:

Die Antwort OrderCalcMargin () gibt manchmal die richtige Antwort für EURUSD. Aber wenn ich die Marge für AUDJPY berechnen will, sieht es immer anders aus.

Bitte sagen Sie mir, ob ich das richtig verstanden habe.

Ich habe diese Frage und habe versucht, sie allen im Forum zu erklären, aber niemand kann sie verstehen. Hier versuche ich es noch einmal.

Ich werde es noch einmal versuchen, wenn es immer noch keinen Sinn ergibt.

@ Artyom Trishkin, lassen Sie es mich wissen. Ich zähle auf Sie, dass Sie mir eine Lösung anbieten.

Sehr wichtige Werte, die in Ihrem Fall zu berechnen sind:

  1. Auf welche Währung das Konto lautet
  2. Wie hoch war der Wechselkurs zu dem Zeitpunkt, als Sie die Position eröffnet haben?

Ein Beispiel: Die Berechnung der Marge für AUDJPY umfasst AUDUSD und USDJPY. Wie hoch der AUDJPY-Wechselkurs zum Zeitpunkt der Eröffnung der Position war, wird niemand jemals erraten. Sie können nur versuchen, über die aktuelle Marge zu rechnen. Dies wurde in dem Thread erwähnt, den ich Ihnen verlinkt habe. Aber um ehrlich zu sein, steht da nicht viel drin, aber in den Codes steht etwas.

Zu jedem späteren Zeitpunkt ändern sich diese Sätze, so dass Sie unterschiedliche Margenwerte erhalten. Berechnen Sie das Verhältnis zwischen der aktuellen Marge und dem Eröffnungskurs der Position und wenden Sie diesen Koeffizienten bei der Berechnung der Marge für die offene Position an. Sie müssen experimentieren. An den genauen Berechnungsalgorithmus kann ich mich nicht mehr erinnern.

Aber ich glaube nicht, dass Ihnen jemand eine fertige Lösung anbieten wird.

 
Alexey Viktorov :

Sehr wichtige Werte für die Berechnung in Ihrem Fall:

  1. Auf welche Währung das Konto lauten soll
  2. Wie hoch war der Wechselkurs zu dem Zeitpunkt, als Sie die Position eröffnet haben?

Bei der Berechnung der AUDJPY-Marge werden beispielsweise AUDUSD und USDJPY berücksichtigt. Wie hoch der AUDJPY-Wechselkurs zum Zeitpunkt der Eröffnung der Position war, wird niemand jemals erraten. Sie können nur versuchen, über die aktuelle Marge zu rechnen. Dies wurde in dem Thread erwähnt, den ich Ihnen verlinkt habe. Aber um ehrlich zu sein, steht da nicht viel drin, aber in den Codes steht etwas.

Zu jedem späteren Zeitpunkt ändern sich diese Sätze, so dass Sie unterschiedliche Margenwerte erhalten. Berechnen Sie das Verhältnis zwischen der aktuellen Marge und dem Eröffnungskurs der Position und wenden Sie diesen Koeffizienten bei der Berechnung der Marge für die offene Position an. Sie müssen experimentieren. An den genauen Berechnungsalgorithmus kann ich mich nicht mehr erinnern.

Aber ich glaube nicht, dass Ihnen jemand eine fertige Lösung anbieten wird.

Ja, ich verstehe es. Aber ich sehe, dass die MT5-ToolBox genau rechnet, ohne die Marge zu ändern. Welche Logik verwendet die MT5 ToolBox dann? Könnten Sie bitte etwas Licht in diese Angelegenheit bringen?

 

Frage, wie man verschiedenen Variablen über Argumente in einer Funktion einen Wert zuweist. Wenn es ein Argument gibt, kann es zurückgegeben und ein Wert zugewiesen werden, aber wenn es 2 Argumente gibt, was sollte getan werden?

int x,x1,x2,x3=1,x4,x5;
void OnStart()
{
x=2;
F(x,x1,x2);
Print ("x1= ",x1," x2= ",x2);
x=5 ;
F(x,x4,x5);
Print ("x4= ",x4," x5= ",x5);
return;
}

int F(int ArgX, int ArgX1, int ArgX2)
{
ArgX1=ArgX + x3;
ArgX2=ArgX - x3;
return ArgX1;
}

//результат
2020.09.09 15:10:10.561 TestS EURUSD,H1: x4= 0 x5= 0
2020.09.09 15:10:10.561 TestS EURUSD,H1: x1= 0 x2= 0
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Побитовые операции производятся только с целыми числами. При выполнении операции логический сдвиг представления y вправо/влево на x бит используются младшие 5 двоичных разрядов значения x, старшие разряды отбрасываются, то есть сдвиг производится на 0-31 бит.
 

Valery, vielleicht reicht das:

void  F(int &ArgX, int &ArgX1, int &ArgX2)
 
Aleksei Stepanenko:

Valery, vielleicht reicht das:

Richtig, Links, Appersand, wenn ich mich nicht irre.

2020.09.09 15:18:33.572 TestS EURUSD,H1: x4= 6x5= 4

2020.09.09 15:18:33.572 TestS EURUSD,H1: x1= 3x2= 1

Danke)))


 
Das ist richtig! Übertragung über den Link.
 
Valeriy Yastremskiy:

Frage, wie man verschiedenen Variablen über Argumente in einer Funktion einen Wert zuweist. Wenn es ein Argument gibt, kann es zurückgegeben und ein Wert zugewiesen werden, aber wenn es 2 gibt, was ist dann?

Was ist das?

void start()

Es war einmal, vor langer, langer Zeit. Mammuts fraßen. Und dann ziehen sie es an. Ist es das, was ich denke, dass es ist?

 
Artyom Trishkin:

Was ist das?

Es war einmal... Mammuts zu essen pflegten. Und dann haben sie es angezogen. Ist es das, was ich denke, dass es ist?

Verurteilen Sie mich nicht, ich habe das Drehbuch mit der Hand geschrieben. Und eine strenge Prüfung überspringt alte Funktionen. Natürlich schreibe ich mein Drehbuch nicht auf diese Weise. Außerdem gibt es Konstrukteure. )))))

Korrigiert)
 
Liebe Kolleginnen und Kollegen, ich wünsche Ihnen allen einen guten Tag. Es gibt fünf Roboter mit verschiedenen magischen Symbolen, die Marktpositionen zum Eröffnungskurs eines neuen Balkens eröffnen, und sie haben alle die gleichen Einstiegsbedingungen. Die Ausgänge sind unterschiedlich.
Manchmal schließe ich alle fünf Positionen manuell.
Und dann, wie mit minimalem Aufwand, um einen Algorithmus für die Eröffnung einer neuen Marktposition zu organisieren, aber nicht auf den nächsten bar - Handel auf M1, sondern auf aufeinanderfolgenden verschiedenen, dh auf 1 m1 eröffnet die erste, die Zeit hatte, auf der zweiten m1 eröffnet von ihnen die zweite, die Zeit hatte, usw. bis 5.
D.h. ich denke, die Frage läuft auf Folgendes hinaus: Wie kann eine Minute der Marktöffnungszeit für den anschließenden Vergleich mit dem Standard f-fi Minutes () zugewiesen werden? Und natürlich, wenn es in dieser Minute bereits eine Marktposition gibt, dann zurück ().