Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1204

 
leonerd:

Welche Bedeutung hat die Zeitskala in der Handelsgeschichte?

X-Skala. Was bedeuten die Werte auf der Skala?

Sagen Sie mir, was bedeuten die Zahlen auf dem Diagramm in der Handelsbilanz?

 
leonerd:

Was bedeuten diese Zahlen auf dem Diagramm in der Handelsbilanz?

Die Nummer des Geschäfts, das zur Veränderung der Bilanz geführt hat.

 
Ich habe es nicht gleich verstanden, es ist eine kindische Frage:

Wie kann ich meinen TS im MT5 ohne Berücksichtigung des Spreads testen?

Im MT4 ist alles sofort im Tester sichtbar, muss ich im MT5 ein benutzerdefiniertes Bid-Symbol erstellen?
 
Für die Arbeit mit Json, ist dies die beste oder gibt es etwas neuer und mehr richtig?
JSON Serialization and Deserialization (native MQL)
JSON Serialization and Deserialization (native MQL)
  • www.mql5.com
ForecastOscilator_HTF The ForecastOscilator indicator with the timeframe selection option available in the input parameters. Flat_HTF The Flat indicator with the timeframe selection option available in the input parameters. FX5_SelfAdjustingRSI_HTF The FX5_SelfAdjustingRSI...
 
Igor Makanu:
Ich habe es nicht gleich verstanden, es ist eine kindische Frage:

Wie kann ich meinen TS im MT5 ohne Berücksichtigung des Spreads testen?

In MT4 ist alles sofort im Tester sichtbar, in MT5 sollte ich ein eigenes Bid-Symbol erstellen?

Sie können versuchen, das Fenster"Strategy Tester" zu öffnen, Registerkarte "Einstellungen" - drücken Sie die Taste neben dem Symbol und korrigieren Sie das Symbol - setzen Sie den Spread auf "0".

 

MT5

Bitte teilen Sie uns mit, wie die Erhöhung der Menge je nach Saldo durchgeführt werden kann.

Aber nicht prozentual, sondern schrittweise nach dem Wachstumswert der Bilanz.

Bei jeder Erhöhung des Guthabens um 1000 $ möchte ich die Menge um einen Schritt von 0,1 erhöhen.

Meine Ausgangsdaten sind dasPaar EUR/USD

Anzahlung (Anfangssaldo) 1000$

Anfangspartie 0,1

Bedarf.

Wenn die Kaution:

1000 dann Los 0,1

2000 dann lot 0,2

3000 dann lot 0,3

Etc.

Ich verwende jetzt diese Methode:

if (Balance>= 1000 && Balance<=2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<=3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<=3000)  Lot = 0.3;

Etc.

Aber anstelle dieser endlosen Aufzählung hätte ich gerne eine Funktion.

Ich habe versucht, es selbst zu erfinden, aber es hat nicht so gut funktioniert.

Vielleicht aufgrund von Problemen mit der Normalisierung...

Bitte um Rat, vielleicht hat jemand eine fertige Lösung oder ein Beispiel.

Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
  • www.mql5.com
Валютная пара EUR/USD — самая ликвидная, поскольку в ней участвуют первая и вторая по значимости мировые резервные валюты. Это подтверждается и статистически: доллар и евро самые крупные по объему
 
Vladpedro:

MT5

Bitte teilen Sie uns mit, wie die Erhöhung der Menge je nach Saldo durchgeführt werden kann.

Aber nicht prozentual, sondern schrittweise nach dem Wachstumswert der Bilanz.

Bei jeder Erhöhung des Guthabens um 1000 $ möchte ich die Menge in 0,1 Schritten erhöhen.

Meine Ausgangsdaten sind dasPaar EUR/USD

Anzahlung (Anfangssaldo) 1000$

Anfangspartie 0,1

Bedarf.

Wenn die Kaution:

1000 dann Los 0,1

2000 dann lot 0,2

3000 dann lot 0,3

Etc.

Ich verwende jetzt diese Methode:

Etc.

Aber anstelle dieser endlosen Aufzählung hätte ich gerne eine Funktion.

Ich habe versucht, es selbst zu erfinden, aber es hat nicht so gut funktioniert.

Vielleicht aufgrund von Problemen mit der Normalisierung...

Vielleicht hat jemand eine fertige Lösung oder ein Beispiel.

Achten Sie auf den Quotienten, wenn Sie die Einzahlung durch 1000 teilen. Bei einer Einzahlung < 2000 gibt es 1 ganze Zahl und einige Zehntel, Hundertstel... die nicht von Interesse sind. Die Kaution für 2000 beträgt 2 und so weiter. Es stellt sich heraus, dass es ausreicht, den ganzzahligen Teil dieses Bruches mit 0,1 zu multiplizieren, um das zu erhalten, was wir wollen.

Und in Ihrer Liste gibt es einen Fehler, wenn auch einen unbedeutenden. Die korrekte Vorgehensweise ist wie folgt

if (Balance>= 1000 && Balance<2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<3000)  Lot = 0.3;
 
Vladpedro:

MT5

Bitte teilen Sie uns mit, wie die Erhöhung der Menge je nach Saldo durchgeführt werden kann.

Aber nicht prozentual, sondern schrittweise nach dem Wachstumswert der Bilanz.

Bei jeder Erhöhung des Guthabens um 1000 $ möchte ich die Menge um einen Schritt von 0,1 erhöhen.

Meine Ausgangsdaten sind dasPaar EUR/USD

Anzahlung (Anfangssaldo) 1000$

Anfangspartie 0,1

Bedarf.

Wenn die Kaution:

1000 dann Los 0,1

2000 dann lot 0,2

3000 dann lot 0,3

Etc.

Ich verwende jetzt diese Methode:

Etc.

Aber anstelle dieser endlosen Aufzählung hätte ich gerne eine Funktion.

Ich habe versucht, es selbst zu erfinden, aber es hat nicht so gut funktioniert.

Vielleicht aufgrund von Problemen mit der Normalisierung...

Vielleicht hat ja jemand eine Lösung oder ein Beispiel parat.

Ermitteln Sie die Rundung mit MathCeil, MathRound oder MathFloor.

Siehe Beispiel, wie sie funktionieren:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double start_balance=1000;
   double step_balance=1000;

   Print("Step ",DoubleToString(step_balance,1));

   for(int i=0; i<12; i++)
     {
      double division=start_balance/step_balance;
      Print("Balance ",DoubleToString(start_balance,1),
            ", division ",DoubleToString(division,1),
            ", MathCeil(",DoubleToString(division,1),") ->  ",MathCeil(division),
            ", MathRound(",DoubleToString(division,1),") ->  ",MathRound(division),
            ", MathFloor(",DoubleToString(division,1),") ->  ",MathFloor(division));
      start_balance=start_balance+step_balance/3;
     }
  }
//+------------------------------------------------------------------+

und Ergebnis.

Step 1000.0
Balance 1000.0, division 1.0, MathCeil(1.0) ->  1.0, MathRound(1.0) ->  1.0, MathFloor(1.0) ->  1.0
Balance 1333.3, division 1.3, MathCeil(1.3) ->  2.0, MathRound(1.3) ->  1.0, MathFloor(1.3) ->  1.0
Balance 1666.7, division 1.7, MathCeil(1.7) ->  2.0, MathRound(1.7) ->  2.0, MathFloor(1.7) ->  1.0
Balance 2000.0, division 2.0, MathCeil(2.0) ->  2.0, MathRound(2.0) ->  2.0, MathFloor(2.0) ->  1.0
Balance 2333.3, division 2.3, MathCeil(2.3) ->  3.0, MathRound(2.3) ->  2.0, MathFloor(2.3) ->  2.0
Balance 2666.7, division 2.7, MathCeil(2.7) ->  3.0, MathRound(2.7) ->  3.0, MathFloor(2.7) ->  2.0
Balance 3000.0, division 3.0, MathCeil(3.0) ->  3.0, MathRound(3.0) ->  3.0, MathFloor(3.0) ->  3.0
Balance 3333.3, division 3.3, MathCeil(3.3) ->  4.0, MathRound(3.3) ->  3.0, MathFloor(3.3) ->  3.0
Balance 3666.7, division 3.7, MathCeil(3.7) ->  4.0, MathRound(3.7) ->  4.0, MathFloor(3.7) ->  3.0
Balance 4000.0, division 4.0, MathCeil(4.0) ->  5.0, MathRound(4.0) ->  4.0, MathFloor(4.0) ->  4.0
Balance 4333.3, division 4.3, MathCeil(4.3) ->  5.0, MathRound(4.3) ->  4.0, MathFloor(4.3) ->  4.0
Balance 4666.7, division 4.7, MathCeil(4.7) ->  5.0, MathRound(4.7) ->  5.0, MathFloor(4.7) ->  4.0

Ich empfehle die Verwendung vonMathFloor.

Документация по MQL5: Математические функции / MathFloor
Документация по MQL5: Математические функции / MathFloor
  • www.mql5.com
Математические функции / MathFloor - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Dateien:
1.mq5  3 kb
 
Alexey Viktorov:

Achten Sie auf den Quotienten, wenn Sie die Einzahlung durch 1000 teilen. Wenn die Kaution < 2000 wird 1 ganze Zahl und einige Zehntel, Hundertstel sein. die nicht von Interesse sind. Die Einlage von 2000 wird 2 enthalten usw. Es stellt sich heraus, dass es ausreicht, den ganzzahligen Teil dieses Bruches mit 0,1 zu multiplizieren, um das zu erhalten, was wir wollen.

Und in Ihrer Aufzählung gibt es einen, wenn auch kleinen, Fehler. Richtig ist

Alexej

Danke. Ich habe die Idee, durch 1000 zu teilen und auf eine ganze Zahl zu reduzieren, ich werde versuchen, sie umzusetzen.

<= wurde automatisch gesetzt, nicht durch den Code. Schreiben mit meinen Händen, und Stifte sind so ...))

 
Vladimir Karputov:

Wählen Sie eine Rundungsoperation aus MathCeil , MathRound oder MathFloor.

Ein Beispiel dafür, wie sie funktionieren:

und Ergebnis.

Ich würde die Verwendung vonMathFloor empfehlen.

Danke, genau das, was Sie brauchen.