Diskussion zum Artikel "Erstellen und Testen benutzerdefinierter Symbole im MetaTrader 5" - Seite 2

 
Rashid Umarov:

Den Protokollen zufolge ist die Einzahlungswährung = USD, der Test wird mit dem Symbol EURCHF durchgeführt. Der Tester benötigt EURUSD- oder USDEUR-Kurse, um die Marge zu berechnen.

Er sucht sie unter den verfügbaren Symbolen und findet EURUSD, das Herunterladen und die Synchronisierung finden statt

Der Screenshothier zeigt die Einstellungen aller Währungen des benutzerdefinierten Symbols, das für den Test verwendet wird. Und vom Namen des benutzerdefinierten Symbols sollte nichts abhängen.

 
fxsaber:

Und nichts sollte vom Namen des benutzerdefinierten Symbols abhängen.

Lesen Sie sorgfältig den Artikel

Testen von Handelsstrategien mit einem benutzerdefinierten Symbol

Der MetaTrader 5 Multi-threaded Strategy Tester ermöglicht es Ihnen, Handelsstrategien für viele Finanzinstrumente mit echten Ticks zu testen. Nutzen Sie die Vorteile dieses Tools, um Strategien auf Ihren eigenen Symbolen zu testen. Alles, was Sie tun müssen, ist, eine qualitativ hochwertige Minuten- (oder besser noch Tick-) Historie zu importieren und die Eigenschaften für jedes Instrument einzurichten, die notwendig sind, um die Handelsumgebung im Detail nachzubilden. Danach müssen Sie nur noch den gewünschten Expert Advisor auswählen und die Testeinstellungen festlegen. Alles geschieht auf die gleiche Weise wie bei den regulären Handelssymbolen, die Ihr Broker zur Verfügung stellt.

Es ist wichtig, dass Sie dem Tester alle notwendigen Symbole zur Verfügung stellen, die für die Berechnung der Margin-Anforderungen und des Gewinns in der Währung Ihres Handelskontos benötigt werden. Bei der Berechnung der Marge und des Gewinns verwendet der Strategietester automatisch die verfügbaren Cross Rates. Wir haben zum Beispiel das Symbol AUDCAD.custom mit der Berechnungsart Forex Margin erstellt und unsere Kontowährung ist USD. Auf der Grundlage des Namens des Forex-Instruments sucht der Tester dann nach den erforderlichen Symbolen in der folgenden Reihenfolge:

  1. Zunächst wird nach Symbolen wie AUDUSD.custom (für die Berechnung der Marge) und USDCAD.custom (für die Berechnung des Gewinns bei Geschäften) gesucht.
  2. dann, wenn eines dieser Instrumente fehlt, wird das erste Symbol gesucht, das dem Namen nach den erforderlichen Währungspaaren entspricht - AUDUSD bzw. USDCAD. Wenn zum Beispiel AUDUSD.b und USDCAD.b gefunden werden, bedeutet dies, dass die Kurse dieser Instrumente für die Berechnung der Marge und des Gewinns verwendet werden.

 
Rashid Umarov:

Lesen Sie den Artikel sorgfältig

Das ist mir sofort aufgefallen, als ich den Artikel zum ersten Mal gelesen habe. Für einen Tester sind die Begriffe" SymbolBasiswährung ", "Symbol Margin-Währung" und "Symbol Gewinnwährung" nichts?

Ich wollte ein XXXYYY-angepasstes Symbol testen - ja, genau mit diesem Namen. Es ist ein Klon des EURUSD-Symbols. D.h. alle Währungen des Symbols sind klar definiert.

Und nun soll der Test mit der Begründung abgelehnt werden, dass der Name nicht Ihren Vorstellungen entspricht?!

Alle Einstellungen des Symbols sind in seinen Eigenschaften enthalten, nicht im Namen.

Wie kann man erreichen, dass das Symbol EURCHF_custom seine klar definierten Einstellungen wahrnimmt und sie nicht ignoriert, wenn man nur auf den Namen schaut?

Ich habe die Berechnungsmethode von Forex auf Futures geändert, Ergebnis

2017.09.05 11:25:03.448 Tester  EURCHF_custom: history data begins from 2017.07.26 00:00
2017.09.05 11:25:03.448 Tester  EURUSD: history data begins from 1981.01.02 00:00
2017.09.05 11:25:03.548 Tester  USDCHF: preliminary downloading of M1 history started
2017.09.05 11:25:05.472 Tester  USDCHF: 20% history downloaded
2017.09.05 11:25:07.102 Tester  USDCHF: 31% history downloaded
2017.09.05 11:25:08.023 Tester  USDCHF: 40% history downloaded
2017.09.05 11:25:09.761 Tester  USDCHF: 54% history downloaded
2017.09.05 11:25:10.576 Tester  USDCHF: 61% history downloaded
2017.09.05 11:25:12.310 Tester  USDCHF: 75% history downloaded
2017.09.05 11:25:13.128 Tester  USDCHF: 82% history downloaded
2017.09.05 11:25:14.871 Tester  USDCHF: 95% history downloaded
2017.09.05 11:25:15.685 Tester  USDCHF: preliminary downloading of M1 history completed in 0:12.231
2017.09.05 11:25:15.685 Tester  USDCHF: history data begins from 2015.12.14 00:00
2017.09.05 11:25:15.685 Core 1  agent process started

Es werden weiterhin zwei Majors gezogen, wobei die Einstellungen des Symbols völlig ignoriert werden.

 
Viele Laufzeiteinstellungen hängen von der Zeichenbenutzergruppe ab. Wie kann ich sie einstellen?
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bibliotheken: Symbol

fxsaber, 2017.09.20 07:31 AM.

Nimmt eine kostenlose Demoversion des Expert Advisors aus dem Market und läuft im Tester auf frischen Kursen, Kopierer übernimmt Daten aus dem Ergebnis des Testers. Dementsprechend ist die kostenpflichtige Version nicht erforderlich.


Vielleicht ist es notwendig, Market Expert Advisors Backtest auf benutzerdefinierte Symbole zu verbieten...

 

Wenn ich eine vollständige interaktive Kopie eines Symbols erstellen muss, sollte ich nur Ticks durch CustomTicksAdd durch Indikatoren werfen (sie überspringen keine Ticks)?

Werden die Dienste Ticks ebenso überspringen wie Expert Advisors?

 
Ihm fehlt diese Funktionalität
// Wirft ein Glas, das ein BookEvent-Ereignis auf dem benutzerdefinierten Zeichen auslöst
bool  CustomMarketBookSet( 
   const string        symbol,     // Symbol 
   const MqlBookInfo&  book[]      // Array-Referenz
   );
Ich forme Kunststoffbecher. Ich möchte mit ihnen wie mit herkömmlichen Saugern arbeiten.
 

Forex ist gut, aber ich verstehe immer noch nicht, wie man den Tester mit Si-Futures auf MOEX! arbeiten?

Ich habe den Verlauf und die Instrumenteneinstellungen vom Original kopiert, aber die Ausgabe ist leer.

So sieht das Log aus - ich weiß nicht, wie ich es interpretieren soll

2017.10.14 21:23:55.365 2017.10.01 00:00:00   Si-12.17_custom has type Exchange Execution. The execution policy is set - Return
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history cache allocated for 133714 bars and contains 1131 bars from 2017.09.21 10:00 to 2017.09.29 23:45
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history cache allocated for 464 bars and contains 7 bars from 2017.09.21 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history begins from 2017.09.21 00:00
2017.10.14 21:23:55.375 Si-12.17_custom,H1: history cache allocated for 11142 bars and contains 98 bars from 2017.09.21 10:00 to 2017.09.29 23:00
2017.10.14 21:23:55.376 Si-12.17_custom,H1: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.377 BR Splice: symbol to be synchronized
2017.10.14 21:23:55.377 BR Splice: symbol synchronized, 3624 bytes of symbol info received
2017.10.14 21:23:55.377 BR Splice: history synchronization started
2017.10.14 21:23:55.379 BR Splice: load 33 bytes of history data to synchronize in 0:00:00.000
2017.10.14 21:23:55.379 BR Splice: history synchronized from 2015.01.05 to 2017.10.13
2017.10.14 21:23:55.538 BR Splice,Daily: history cache allocated for 464 bars and contains 440 bars from 2016.01.04 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.539 BR Splice,Daily: history begins from 2016.01.04 00:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history cache allocated for 2785 bars and contains 28 bars from 2017.09.21 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history begins from 2017.09.21 08:00
2017.10.14 21:23:55.856 BR Splice,H4: history cache allocated for 2785 bars and contains 1759 bars from 2016.01.04 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.856 BR Splice,H4: history begins from 2016.01.04 08:00
 

Grüße!
Ich erstelle einen synthetischen Index, der auf der linearen Faltung mehrerer Instrumente basiert. (SYMBOL1*X1+SYMBOL2*X2+....SYMBOLn*Xn).
Ich hatte vor, es durch einen Indikator zu visualisieren, aber ich stieß auf benutzerdefinierte Symbole, ich denke, es wird viel bequemer für die Wahrnehmung sein.
Ich mache es durch Tick-Funktionen (CustomTicksUpdate).

Ich kann das benutzerdefinierte Symbol nicht zum "Ticken" bringen. Gibt es irgendwo ein Beispiel für die Umsetzung dieser Aufgabe genau durch Tick-Daten?

Ich mache es sehr einfach: Ich habe ein Symbol erstellt, und dann im Skript.

   MqlTick tick[];
   ArrayResize(tick, 1);
   tick[0].ask=indexAsk;
   tick[0].bid=indexBid;
   tick[0].flags=TICK_FLAG_BID|TICK_FLAG_ASK;
//---
   CustomTicksUpdate("ARBINDEX",tick);

Wo indexAsk und indexBid sind meine berechneten Preise.
Ich dachte, dass, wenn ich dieses Skript auf jedem Instrument mehrmals laufen, werde ich einige Geschichte der Kurse auf mein Symbol zu bilden, aber es gibt "Waiting for update".
Mein Build: 1643
Ich wäre dankbar für Ihre Hilfe.

 
bistreevseh:

Meine Version: 1643

Nehmen Sie 1653 (dort gibt es erhebliche Änderungen zu diesem Thema) und wenn es nicht funktioniert, posten Sie hier.