MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 5

 
Maxim Dmitrievsky:

Ich habe es auf Ticks, gefiltert alle Arten und dann auf Eröffnungspreise - nicht bemerken einen großen Unterschied in der Anpassung. In den Minuten ist der durchschnittliche Rand ohnehin klein. Und das System stürzt häufiger ab, weil es sehr lange dauert, bis es auf einen langen Zeitraum passt, ja. Das Ergebnis sind optimale 15 (manchmal 5) Minuten, die mich verfolgen. Ich habe keine schnelleren Algorithmen entwickelt, da mir der theoretische Hintergrund in Bezug auf Tethering und Signalverarbeitung fehlt (auf niedrigen Ebenen ist es die Regel), aber ich werde es vielleicht bald versuchen.

Alles wird langsamer sein, um auf Python zu testen. Wenn alles Unnötige entfernt wird, könnte es in Ordnung sein.
Ich verwende auch nahe Preise, aber auf m1, um Ressourcen zu sparen. Ticks haben auf dem Forex ohnehin keine Bedeutung. Ich würde gerne die Ticks und die Analyse der getätigten Geschäfte auf die Börsendaten anwenden, aber ich habe noch keine Zeit dafür. Aber manchmal muss ich es im Tester mit echten Ticks laufen lassen, um zu vergleichen, wie der Algorithmus bei echten Daten in Verbindung mit dem Tester funktioniert.
 
Renat Fatkhullin:

Dies ist eine einseitige Integration.

Das heißt, Sie können von Python/R aus Daten vom MetaTrader 5-Terminal abfragen. Das Terminal selbst weiß nichts über externe Nutzer und übermittelt ihnen auch nichts. Das gilt umso mehr für den Prüfer.

Integrationspakete sind so konzipiert, dass Analysten die Marktdaten in ihrer Umgebung nutzen können.

Ich danke Ihnen! Genau das wollte ich herausfinden.
 
Maxim Romanov:
Ich verwende auch Schlusskurse, aber auf m1, um Ressourcen zu sparen. Ticks haben auf dem Forex ohnehin keine Bedeutung. Ich wollte die Ticks und die Analyse der getätigten Geschäfte in den Börsendaten verwenden, aber ich habe noch keine Zeit dafür gefunden. Aber manchmal muss ich es im Tester mit echten Ticks laufen lassen, um zu vergleichen, wie der Algorithmus bei echten Daten in Verbindung mit dem Tester funktioniert.

Meiner Meinung nach sind Zecken hft mit allen Konsequenzen, d.h. ein anderer Ansatz. Arbeiten mit Tickströmen aus mehreren Quellen. Auf dem Devisenmarkt ist es auf lange Sicht fast unrealistisch, zu giftig. Auf dem Devisenmarkt sieht es auch nicht besonders gut aus, denn es gibt bereits einige erfahrene Händler, die am Colocation-Tisch sitzen und Ihre Strategien mit ihrem Orderflow zunichte machen. Am Ende etwas dazwischen, halb voll mit Lärm, aber dank MO kann man ihn herausnehmen. Nun, die mittlere / lange MO ist auch OK, aber der Gewinn wird proportional fallen.

 
Maxim Dmitrievsky:

Meiner Meinung nach sind Zecken hft mit allen Konsequenzen, d.h. ein anderer Ansatz. Arbeiten mit Tickströmen aus mehreren Quellen. Auf dem Devisenmarkt ist es auf lange Sicht fast unrealistisch, zu giftig. Auf dem Devisenmarkt sieht es auch nicht besonders gut aus, denn es gibt bereits einige erfahrene Händler, die am Colocation-Tisch sitzen und Ihre Strategien mit ihrem Orderflow zunichte machen. Am Ende etwas dazwischen, halb voll mit Lärm, aber dank MO kann man ihn herausnehmen. Nun, ein mittellanger MO ist auch in Ordnung, aber die Gewinne werden proportional dazu sinken.

Der Zusammenhang zwischen Ticks und HFT ist ein Mythos. Ticks sind eine Möglichkeit, die Reifeerwartung des TS zu erhöhen. Mehr nicht. Wenn die MO-Erhöhung um 5 Pips erfolgreich ist, ist dies unter sonst gleichen Bedingungen ein hervorragendes Ergebnis. Wir sprechen hier natürlich von Hunderten von Geschäften pro Monat.

 
Das ist ein gutes Argument. Ein Tick-Chart, keine Laune, keine HFT-Träume und so weiter, sondern einfach nur Genauigkeit.
 
fxsaber:

Der Zusammenhang zwischen Ticks und HFT ist ein Mythos. Ticks sind ein Mittel, um die Reifeerwartung des TS zu erhöhen. Mehr nicht. Wenn es möglich ist, den MO um 5 Pips zu erhöhen, ist das unter sonst gleichen Bedingungen ein hervorragendes Ergebnis. Wir sprechen hier natürlich von Hunderten von Geschäften pro Monat.

Andernfalls würden 5 Pips nicht so eine Wirkung haben. In Bezug auf den DT-Handel (ohne zu berücksichtigen, dass Sie eine besondere haben), ist dies ein statistischer Fehler

aber komm schon, das Thema ist über Python
 
fxsaber:

Wird Byte-Array zu Struktur-Array (und zurück) Casting in Python da sein?

Wo kann ich mich über solche Gussteile in MMS informieren? Ich sehe, dass POD von Strukturen zu Byte-Array und zurück möglich ist. Ich verstehe nicht viel von der Strukturmatrix.

Wenn man sie nacheinander aus dem Array kopiert, aber das Protokoll herausfinden muss, wie man den Bytestrom auf der anderen Seite verarbeitet. Ich weiß nicht, wie ich das auf intelligente Weise machen soll.

 
Maxim Dmitrievsky:

Wo kann ich mich über solche Gussteile in MMS informieren? Ich sehe, dass POD-Strukturen in Byte-Arrays und umgekehrt möglich sind. Ich verstehe nicht viel von der Strukturmatrix.

Wenn Sie sie sequentiell aus dem Array kopieren, aber das Protokoll auf der anderen Seite herausfinden müssen, um den Bytestrom zu verarbeiten. Ich weiß nicht, wie ich das auf intelligente Weise machen soll.

wie üblich Byte-für-Byte, die Python-Bibliothek hat ein Paket, das die grundlegenden Typen in einer reinen Form, zum Beispiel, lesen Sie die empfangenen Byte-Array an der richtigen Offset auf die Datenstruktur, und die gelesenen Abschnitt in das gewünschte Format umgewandelt

 
Maxim Dmitrievsky:

Wo kann ich mich über solche Gussteile in MMS informieren? Ich sehe, dass POD-Strukturen in Byte-Arrays und umgekehrt möglich sind. Ich verstehe nicht viel von der Strukturmatrix.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: TradeTransactions

fxsaber, 2019.03.15 07:36

// Быстрый кастинг массивов.
#include <fxsaber\TradeTransactions\Convert.mqh> // https://www.mql5.com/ru/code/22166

void OnStart()
{
  MqlTick Ticks[];

  MqlRates Rates[];  
  CopyRates(_Symbol, PERIOD_CURRENT, 0, 10, Rates); // Получили котировки.
  CONVERT::ArrayToArray(Rates, Ticks);              // Кастинг MqlRates[] -> MqlTick[].

  MqlRates Rates2[];    
  CONVERT::ArrayToArray(Ticks, Rates2);             // Кастинг MqlTick[] -> MqlRates[].
  ArrayPrint(Rates2);                               // Убедились, что все корректно.
}
 
fxsaber:

d.h. es ist möglich, ein Struktur-Array in ein Byte-Array zu konvertieren, um es an einen Socket zu übergeben? dann ist es seltsam, warum der Standard structToChar das nicht tut.