Fehler, Irrtümer, Fragen - Seite 122

 
sergey1294:
Ich kann es kaum erwarten, dass die Funktion OrderCalcMargin() für CFD, Futures, Indizes usw. richtig funktioniert. Kann jemand Formeln zur korrekten Berechnung der Marge für diese Instrumente mitteilen?

Gibt es nicht eine in der Hilfe? Es scheint so zu sein...
 
Interesting:

Und wahrscheinlich habe ich die ganze Sache heraufbeschworen, ich kann mir keinen anderen Grund vorstellen...

Ich werde versuchen, die Situation ausführlicher zu beschreiben.

Es gibt eine einfache Klasse "CMqlTimer", deren Aufgabe es ist, den Zeitpunkt des Wechsels von verschiedenen Zeitintervallen zu verfolgen: Stunde, Tag, Woche, Monat, Jahr.

Alles wird mit sehr einfachen Primitiven realisiert, zum Beispiel, wenn die Minuten gleich 0 sind, dann ist die "neue Stunde" gekommen; wenn die Nummer des Wochentages nicht mit der in der Variable gespeicherten übereinstimmt, dann ist der Tageswechsel ("00:00:00" nach Serverzeit) gekommen. Also weiter.

Die Analyse wird durchgeführt, wenn der Timer ausgelöst wird, mit einem Intervall von 1 Sekunde, die Arbeit wird in CMqlTimer::OnTimer() durchgeführt. Wenn sich das Zeitintervall ändert, muss die Funktion ausgeführt werden. Wenn es zum Beispiel ein "neuer" Tag ist, sollte die Funktion CMqlTimer::OnRolloverDay() ausgeführt werden.


Wenn wir den Rest des Codes entfernen und nur OnRolloverDay() schreiben, sieht das Ergebnis wie folgt aus:

Alle Benutzerereignisse werden aufgezeichnet und zur Bearbeitung an die Hauptklasse weitergegeben

Es sieht in etwa so aus

Daher erreichen die Ereignisse OnChartEvent im Testmodus nicht, d.h. der Expert Advisor kann ein mit EventChartCustom gesendetes Ereignis im Testmodus nicht verarbeiten. Überprüfen Sie dies, indem Sie alle Ereignisse im Protokoll anzeigen lassen.

PS

Das Interessanteste ist, dass alle Ereignisse auf der Demo zu erhalten, aber in der Tester, weigert es sich, zu arbeiten.

Bis 319 hat alles funktioniert und im Tester werden die Ereignisse erfolgreich behandelt. Ob die letzte Version wirklich funktioniert hat, kann ich nicht sagen...

alexvd:
Ich danke Ihnen. Wir werden darüber nachdenken müssen.
Darf ich fragen, wie sich die Dinge in dieser Richtung entwickeln? Ich brauche die Ereignisse im Tester wirklich, um richtig zu funktionieren...
 
Interesting:
Steht das nicht in der Hilfe? Es scheint so zu sein...

Was ich allerdings nicht verstehe, sind die folgenden, rot markierten Variablen in den Formeln

Kennung

Beschreibung

Formel

SYMBOL_CALC_MODE_FOREX

Forex-Modus - Gewinn- und Margenberechnung für Forex

Marge: Lose*Vertragsgröße/Verwendung

Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose

SYMBOL_CALC_MODE_FUTURES

Futures-Modus - Berechnung von Marge und Gewinn für Futures

Marge: Lose *InitialMargin*Percentage/100

Gewinn: (Schlusskurs-Eröffnungskurs)*TickPreis/TickSize*Lots

SYMBOL_CALC_MODE_CFD

CFD-Modus - Berechnung von Marge und Gewinn für CFD

Marge: Lose *Vertragsgröße*Marktpreis*Prozentsatz/100

Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose

SYMBOL_CALC_MODE_CFDINDEX

CFD-Index-Modus - Berechnung von Marge und Gewinn für CFD-Indizes

Marge: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize

Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose

SYMBOL_CALC_MODE_CFDLEVERAGE

CFD Leverage Modus - Berechnung der Marge und des Gewinns für CFD beim Handel mit Leverage

Marge: (Lots*Kontraktgröße*Marktpreis*Prozentsatz)/Leverage

Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
Darf ich fragen, wie sich die Dinge in dieser Richtung entwickeln? Ich brauche die Ereignisse im Tester wirklich, um richtig zu funktionieren...

Auf Ihren Wunsch hin wurde der Antrag erstellt - er wird nicht verloren gehen!

 
alexvd:

Auf Ihren Wunsch hin wurde der Antrag erstellt - er wird nicht verloren gehen!

Danke, wir werden warten...
 

Fehler - früher hat es funktioniert, jetzt nicht mehr.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  // вот так работает
     Print(TimeCurrent()+2*PeriodSeconds(PERIOD_D1));
  // а вот так нет (а раньше работало)  
     datetime    time_end=0;
     time_end=TimeCurrent()+2*PeriodSeconds(PERIOD_D1);
     Print(time_end);
  }
 
Prival:

Fehler - früher hat es funktioniert, jetzt nicht mehr.

Das funktioniert bei mir.

Hier ist das Ergebnis:

2010.09.08 20:15:12 Entwurf1_1 (EURUSD,M15) 2010.09.10 19:15:04
2010.09.08 20:15:12 Entwurf1_1 (EURUSD,M15) 2010.09.10 19:15:04

 
Prival:

Fehler - früher hat es funktioniert, jetzt nicht mehr.

Für mich funktioniert beides. 324 bauen
 


2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

Ich nicht, es funktioniert nicht. Die Zahlen sind unterschiedlich. 324 bauen. Win7 64bit.

 

Prival:

2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

Ich habe das hier:

2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15
2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15

Protokoll:

2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24
2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24

Win XP.

Grund der Beschwerde: