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

 
SEM:

Versuch, TakeProfit für Sell zu normalisieren

SYMBOL_DIGITS ist ebenfalls eine Konstante. Es gibt NICHT"die Anzahl der Dezimalstellen in einem Anführungszeichen" zurück. Sie teilt SymbolInfoInteger() mit, welcher Wert der Integer-Zeicheneigenschaft zurückgegeben werden soll.
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Artyom Trishkin:
SYMBOL_DIGITS ist ebenfalls eine Konstante. Sie gibt NICHT den Wert "Anzahl der Dezimalstellen in einem Anführungszeichen" zurück. Sie teilt SymbolInfoInteger() mit, welcher Wert der Integer-Zeicheneigenschaft zurückgegeben werden soll.

OK, wie normalisieren Sie dann den TP für Verkauf?

  Print(NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));

ergibt auch unklar = (EURUSD,M15) 1e-05

 
SEM:

Ok, wie kann man dann den TP für Verkauf normalisieren?

ergibt auch unklar = (EURUSD,M15) 1e-05

1e-05 ist die fünfte Potenz von eins minus, d.h. 0,00001. Was hat man Ihnen in der Schule beigebracht?

 
SEM:

Ok, wie kann man dann den TP für Verkauf normalisieren?

liefert ebenfalls ein unverständliches = (EURUSD,M15) 1e-05

Sie haben es für den Roboter normalisiert.

Sie müssenDoubleToString für die Ausgabe auf den Druckern verwenden

 Print(DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));
 
Vitaly Muzichenko:

Für den Roboter, den Sie normalisiert haben.

Sie müssenDoubleToString für die Ausgabe auf den Druckern verwenden

Vielen Dank für Ihre Hilfe! Unterm Strich:

double _SYMBOL_POINT_ = SymbolInfoDouble(Symbol(),SYMBOL_POINT);
int _SYMBOL_DIGITS_   = (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS);


{
  double _PriceCurrent_TakeProfit =NormalizeDouble(m_position.PriceOpen()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_) ;
  double _PriceCurrent=NormalizeDouble(m_position.PriceCurrent()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_);
}
 
Franklins100:

Das ist eine Idee, aber die Kreuztests werden meiner Meinung nach keine genauen Ergebnisse liefern. Das Testen sollte, wiederum nach meiner unerfahrenen Meinung, in einer endgültigen, vollständigen Version erfolgen. Und hier stellt sich die Frage, wie und mit welchen Computerparametern es möglich ist, die Prüfung so weit wie möglich zu beschleunigen, ohne auf die Leistung Dritter zurückzugreifen. GPU oder CPU?

Kreuztests sind genauso genau wie direkte Tests. Wenn Sie alle Variablen kennen, geben Sie bei der Aufteilung der Variablen in Gruppen einen akzeptablen Schritt für die Variablen an. Dann können Sie je nach 3D-Bild eine oder mehrere Gruppen von Werten für jede Gruppe von Variablen als Ergebnis von Testläufen auswählen. Und schließlich führen Sie einen vollständigen Test mit enger Bandbreite und hoher Diskretion der Parameter durch.

Ich führe jeden Samstag einen solchen Expert Advisor aus. Über 300 Variablen. Tagsüber führe ich Kreuztests durch. Dann lasse ich das Hauptgerät nachts laufen. Am Sonntag analysiere ich die Ergebnisse. Ich analysiere, was sich im Vergleich zur letzten Woche geändert hat. Und dann führe ich je nach Situation manchmal zusätzliche Tests durch. Ich lasse alles auf zwei Computern laufen.

Letztendlich dauert es etwa 30 Maschinenstunden. Wenn ich es direkt ausführen würde, würde der Computer etwa zwei Wochen lang einfrieren :). Sie müssen tun, was Sie können, damit es funktioniert.

Die Geschwindigkeit der Tests wirkt sich auf den Kernprozessor (für MT5 genau).

Es hat lange gedauert, bis ich die allerersten Tests durchgeführt habe. Jetzt habe ich es seit einer Woche im Einsatz. Ich denke, jeder EA hat seine eigenen Feinheiten. Ich habe lediglich Koeffizienten eingeführt und die grundlegenden Parameter werden nur sehr selten geändert. Es hat sich herausgestellt, dass ich hauptsächlich die Volatilität berücksichtige. Außerdem habe ich ein seriöses Nachrichtenmodul mit individueller Aufschlüsselung nach Nachrichtenarten, statt der einfachen drei Sterne :) Im Allgemeinen halte ich "Nachrichten" für den schwächsten Punkt aller EAs. Darüber hinaus gibt es die Zeiträume "Vertragswechsel" und "Optionsverfall". Auch mit ihnen lohnt sich die Zusammenarbeit.

 
Franklins100:

Das ist eine Idee, aber die Kreuztests werden meiner Meinung nach keine genauen Ergebnisse liefern. Das Testen sollte, wiederum nach meiner unerfahrenen Meinung, in einer endgültigen, vollständigen Version erfolgen. Und hier stellt sich die Frage, wie und mit welchen Computerparametern es möglich ist, die Prüfung so weit wie möglich zu beschleunigen, ohne auf die Leistung Dritter zurückzugreifen. GPU oder CPU?

Es gibt ein Thema zu Tests:Evaluierung von CPU-Kernen zur Optimierung

Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
 
Vladimir Karputov:

Es gibt ein Thema über Tests:Evaluierung von CPU-Kernen zur Optimierung

BenditO:

Die Kreuzvalidierung ist genauso genau wie die direkte Prüfung. Wenn Sie alle Variablen verstehen, geben Sie bei der Gruppierung der Variablen einen akzeptablen Schritt für die Variablen an. Je nach 3D-Ansicht können Sie für jede Variablengruppe eine oder mehrere Gruppen von Werten auswählen, je nach den Ergebnissen. Und schließlich führen Sie einen vollständigen Test mit enger Bandbreite und hoher Diskretion der Parameter durch.

Ich führe jeden Samstag einen solchen Expert Advisor aus. Über 300 Variablen. Tagsüber führe ich Kreuztests durch. Dann lasse ich das Hauptgerät nachts laufen. Am Sonntag analysiere ich die Ergebnisse. Ich analysiere, was sich im Vergleich zur letzten Woche geändert hat. Und dann führe ich je nach Situation manchmal zusätzliche Tests durch. Ich lasse alles auf zwei Computern laufen.

Letztendlich dauert es etwa 30 Maschinenstunden. Wenn ich es direkt ausführen würde, würde der Computer etwa zwei Wochen lang einfrieren :). Sie müssen tun, was Sie können, damit es funktioniert.

Die Geschwindigkeit der Tests wirkt sich auf den Kernprozessor (für MT5 genau).

Es hat lange gedauert, bis ich die ersten Tests durchgeführt habe. Jetzt habe ich es seit einer Woche im Einsatz. Ich denke, jeder EA hat seine eigenen Feinheiten. Ich habe lediglich Koeffizienten eingeführt und die grundlegenden Parameter werden nur sehr selten geändert. Es hat sich herausgestellt, dass ich hauptsächlich die Volatilität berücksichtige. Außerdem habe ich ein seriöses Nachrichtenmodul mit individueller Aufschlüsselung nach Nachrichtenarten, statt der einfachen drei Sterne :) Im Allgemeinen halte ich "Nachrichten" für den schwächsten Punkt aller EAs. Darüber hinaus gibt es noch die Zeiträume "Vertragswechsel" und "Optionsverfall". Ich muss auch mit ihnen arbeiten.

Ich danke Ihnen vielmals.

 

Guten Tag an alle!

Ich versuche, elementare Dinge in MQL5 zu lernen, aber ich stieß plötzlich auf eine Warnmeldung, die im beigefügten Bild angezeigt wird, wenn ich Code aus MQL5 Reference kopiert kompiliere.

Ich frage mich, ob es auch in MQL5 Reference einige Fehler gibt. Bitte, können Sie mir sagen, was in den Code zu beheben (dieMQL5-Referenz selbst wäre auch nützlich), um eine solche Warnung zu vermeiden?

Mit freundlichen Grüßen, Vladimir.




Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
MrBrooklin:

Guten Tag an alle!

Ich versuche, elementare Dinge in MQL5 zu lernen, aber ich stieß plötzlich auf eine Warnmeldung, die im beigefügten Bild angezeigt wird, wenn ich Code aus MQL5 Reference kopiert kompiliere.

Ich frage mich, ob es auch in MQL5 Reference einige Fehler gibt. Bitte, können Sie mir sagen, was in den Code (oder in der MQL5-Referenz selbst) zu beheben, um eine solche Warnung zu vermeiden?

Mit freundlichen Grüßen, Vladimir.

Ja, es gibt einige Ungenauigkeiten in der Hilfe.

Grund der Beschwerde: