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
Es sollte keine Auswirkungen auf die Echtzeit haben.
Leider ist das bei mir der Fall.
Es gibt eine Schaltfläche, mit der man die Historie der Angebote anzeigen/ausblenden kann. Natürlich macht es keinen Sinn, alle anzuzeigen, aber oft muss man mehrere Dutzend "eigene" Angebote nach Symbolen, Magiern oder Kommentaren aus mehreren Tausend anderen auswählen. Das ist der Zeitpunkt, an dem die Bremsen beginnen. Die Idee ist, die Liste der "Eigenen" zwischenzuspeichern und sie nur bei neuen historischen Geschäften zu aktualisieren.
Ich habe auch schon einen fehlerhaften Broker gesehen, der Marktaufträge umgeschrieben hat, und ein funktionierender Expert Advisor konnte in einer Stunde hunderttausend umgeschriebene Aufträge in die Historie generieren. Dann wurde das Terminal selbst aufgehängt....
Ich brauche ein Beispiel für einen TS, bei dem die Handelshistorie (nicht die Preishistorie) die Backtest-Zeit signifikant beeinflusst.
Als Fantasie: Erstellen einer Gleichgewichtskurve auf der Grundlage historischer Abschlüsse und Berechnung der Menge neuer Abschlüsse in Abhängigkeit von der Steigung der Kurve.
Wenn Sie Ihren Cache nicht aufbewahren, müssen Sie die Historie vor jedem Geschäft komplett durchkämmen. Aber hier ist es natürlich einfacher, die Saldenwerte in einem Array zu sammeln, man braucht nicht alle Geschäfte zu speichern.
Ich habe leider eine Wirkung.
Es gibt eine Schaltfläche, auf die man drücken kann, um den Verlauf der Geschäfte anzuzeigen/auszublenden. Natürlich macht es keinen Sinn, alle anzuzeigen, aber oft muss man mehrere Dutzend "eigene" nach Symbolen, Magiern oder Kommentaren aus mehreren tausend anderen auswählen. Das ist der Zeitpunkt, an dem die Bremsen beginnen. Die Idee ist, die Liste der "eigenen" in den Zwischenspeicher zu legen und sie nur bei neuen historischen Geschäften zu aktualisieren.
Ich verstehe das Problem. Ja, ein vollwertiges, in das biblische System integriertes Caching ist überfällig. Ich werde darüber nachdenken müssen, wie ich es implementieren kann.
Ich habe auch schon einen fehlerhaften Broker gesehen, der Marktaufträge wieder zurückgenommen hat, und ein funktionierender Expert Advisor konnte in einer Stunde hunderttausend zurückgenommene Aufträge in der Historie erzeugen. Dann wurde das Terminal selbst aufgehängt....
Ich würde gerne diesen wunderbaren Broker sehen.
Als Phantasie: Konstruktion der Gleichgewichtskurve durch historische Geschäfte und Berechnung des Loses der neuen Geschäfte in Abhängigkeit von der Steigung der Kurve.
Wenn Sie keinen eigenen Zwischenspeicher haben, müssen Sie die Historie vor jedem Geschäft komplett durchkämmen. Aber hier ist es natürlich einfacher, die Saldenwerte in einem Array zu sammeln, man braucht nicht alle Geschäfte zu speichern.
Ich habe über so etwas nachgedacht, aber das ist der Punkt, an dem der Saldo-VR sofort vorgeschlagen wird. Paradoxerweise scheint es, dass die Zwischenspeicherung des Handelsverlaufs nur für den Kampfeinsatz erforderlich ist (nicht für den Tester).
Ich verstehe das Problem. Ja, eine vollwertige, in die Biblah integrierte Zwischenspeicherung ist immer noch notwendig. Wir werden uns überlegen müssen, wie wir das implementieren.
Im Idealfall reicht es aus, ein DEAL_ENTRY_IN-Ticket für jeden Trade zu speichern, da GetPositionDealIn (und HistorySelectByPosition darin) zu 99% der Zeit ausgeführt wird.
Würde gerne diesen tollen Broker sehen.
PrimeXM-LiveUK.
Dies ist eine Krücke Brücke zu saxo Bank.
Im Idealfall reicht es aus, das DEAL_ENTRY_IN-Ticket für jeden Trade zu speichern, da in 99% der Fälle GetPositionDealIn (und darin HistorySelectByPosition) ausgeführt wird.
Der Hash-Abgleich mit der Trading-Historie wurde schon vor langer Zeit durchgeführt. Daher ist es wahrscheinlich optimal, sich mit der generischen Seite zu beschäftigen.
Als Motivation, diese Methode zu erlernen, reicht es aber allemal! Irgendwann im Sommer in einer ruhigen Umgebung....
Update von fxsaber:
Das Arbeiten mit langer Historie klappt jetzt wie am Schnürchen!
Moderatoren, wenn Sie die Möglichkeit haben, laden Sie bitte den Code in die Datenbank hoch.
Update von fxsaber:
Das Arbeiten mit der langen Historie klappt jetzt wie am Schnürchen!
Moderatoren, wenn Sie können, laden Sie bitte den Code in die Datenbank hoch.
Danke, aktualisiert in allen Sprachen
Ich verwende diese Bibliothek in meinen MT4 Expert Advisors.
Ich habe einen seltsamen Moment gefunden:
Wenn der Test auf den Metaquotes-Servern - Demo - durchgeführt wird, funktioniert die Bibliothek einwandfrei. (zum Beispiel, wenn eine Bestellung öffnen)
Wenn Sie für Tests Broker fhtm Demo- dann die Funktion OrderSend öffnet ein Geschäft, sondern gibt einen Fehler.
Nach der Fehlersuche ist Ticket = -1;
Der Text des Protokolls steht unten:
Gleichzeitig zeigt das Protokoll auch eine Meldung an, dass alles normal ist.
Warum kann es ein solches Problem geben?
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::AccountInfoString(ACCOUNT_SERVER) = ForexTimeFXTM-Demo01
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) (bool)::TerminalInfoInteger(TERMINAL_CONNECTED) = true
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::TerminalInfoInteger(TERMINAL_PING_LAST) = 55335
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::TerminalInfoDouble(TERMINAL_RETRANSMISSION) = 0.8875739644970414
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::TerminalInfoInteger(TERMINAL_BUILD) = 1835
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) (bool)::TerminalInfoInteger(TERMINAL_X64) = true
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Res = false
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) MT4ORDERS::OrderSendBug = true
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.action = TRADE_ACTION_DEAL (1)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.magic = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.order = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.symbol = EURUSD
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.volume = 0.01
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.price = 1.17681
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.stoplimit = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.sl = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.tp = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.deviation = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.type = ORDER_TYPE_BUY (0)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.type_filling = ORDER_FILLING_FOK (0)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.type_time = ORDER_TIME_GTC (0)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.expiration = 1970.01.01 00:00:00
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.comment =
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.position = 2210821620
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.position_by = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.retcode = 10009
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Ergebnis.deal = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.order = 2210821775
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Ergebnis.Volumen = 0.01
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Ergebnis.Preis = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Ergebnis.Geld = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Ergebnis.ask = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.comment = Request ausgeführt 190.826 + 1000.396 ms
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.request_id = 154
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Ergebnis.retcode_external = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) MT4ORDERS: not Sync with History! please send logs to fxsaber!
2018.06.08 22:55:47.197 EA MT5 (EURUSD,M1) OrderSend mit Fehler 4754
Danke, in allen Sprachen aktualisiert
Es wäre schön, wenn auch fxsaber wieder dabei wäre.