初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1154

 
SEM:

売りのTakeProfitを正規化する試み

SYMBOL_DIGITS も定数である。記号の引用符の小数点 以下の桁数」を返すわけではありません。SymbolInfoInteger()に、整数文字プロパティのどの値を返すかを指示する。
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Artyom Trishkin:
SYMBOL_DIGITS も定数である。 記号引用の小数点 以下の桁数」の値は返さない。SymbolInfoInteger()に、整数文字プロパティのどの値を返すかを指示する。

OK、ではSellのTPはどのように正規化するのですか?

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

も不明確な値 = (EURUSD,M15) 1e-05 を返します。

 
SEM:

OK、では売りのTPを正規化する方法は?

また、unclearn = (EURUSD,M15) 1e-05を返します。

1e-05は1のマイナス5乗、つまり0.00001です。高校ではどんなことを教わったのですか?

 
SEM:

OK、では売りのTPを正規化する方法は?

も理解しがたい = (EURUSD,M15) 1e-05
を返します。

ロボットのために正規化したのですね。

プリントに出力するにはDoubleToStringを 使う必要があります。

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

ロボットの場合は、ノーマライズしていますね。

プリントに出力するにはDoubleToStringを 使う必要があります。

ご協力ありがとうございました結論から言うと

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:

これはアイデアですが、クロステストでは正確な結果は得られないと私は思います。テストは、これも私の未熟な意見ですが、最終的な完全版で行うべきでしょう。そして、ここで問題になるのは、サードパーティの力に頼らずに、どのように、どのようなコンピュータパラメータで、可能な限りテストを高速化できるかということです。GPUかCPUか?

クロステストはダイレクトテストと同等の精度があります。すべての変数を理解していれば、変数をグループに分割する際に、許容できるステップを指定するのです。そして、3Dイメージに応じて、テスト走行の結果、変数のグループごとに1つまたは複数の値のグループを選択することができます。そして最後に、狭い範囲と高い離散性を持つパラメータでフルテストを実行するのです。

毎週土曜日には、このようなExpert Advisorを1つ走らせています。300以上の変数日中は、クロステストを実施しています。そして夜にはメインを走らせます。日曜日には、その結果を分析する。先週のセットと比較して、何が変わったのかを分析します。そして、状況に応じて、さらにテストを行うこともあります。2台のPCですべてを動かしています。

最終的には30マシン時間くらいかかります。直接実行すると、2週間くらいパソコンがフリーズ :) してしまうと思うんです。やれることをやるしかないってことですね。

テストの速度は、コア・プロセッサに影響します(正確にはMT5の場合)。

最初のテストを行うのに時間がかかりました。今は先週から実行しています。どのEAも微妙なところがあると思うんです。係数を導入しただけで、基本的なパラメータを変更することはほとんどありません。主にボラティリティを調整することがわかりました。さらに、3つ星だけでなく、ニュースの種類によって個別の内訳がある真面目なニュースモジュールも持っています :)一般的に、「ニュース」はすべてのEAの中で最も弱いものだと思います。さらに、「契約変更」、「オプション期限」の期間もあります。また、一緒に仕事をする価値もあります。

 
Franklins100:

これはアイデアですが、クロステストでは正確な結果は得られないと私は思います。テストは、これも私の未熟な意見ですが、最終的な完全版で行うべきでしょう。ここで問題なのは、サードパーティの力を借りることなく、どのように、どのようなコンピュータパラメータによって、可能な限りテストを高速化することができるのか、ということです。GPUかCPUか?

テストに関するトピックがあります:最適化のためのCPUコアの評価

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

テストに関するトピック:最適化のためのCPUコアの評価」があります。

BenditO:

クロスバリデーションはダイレクトテストと同等の精度を持つ。すべての変数を理解していれば、変数をグループ化する際に許容できるステップを指定する。3Dビューによっては、結果に応じて、変数の各グループの値を1つまたは複数選択することができます。そして最後に、狭い範囲と高い離散性を持つパラメータでフルテストを実行するのです。

毎週土曜日には、このようなExpert Advisorを1つ走らせています。300以上の変数日中は、クロステストを実施しています。そして夜にはメインを走らせます。日曜日には、その結果を分析する。先週のセットと比較して、何が変わったのかを分析します。そして、状況に応じて、さらにテストを行うこともあります。2台のPCですべてを動かしています。

最終的には30マシン時間くらいかかります。直接実行すると、2週間くらいパソコンがフリーズ :) してしまうと思うんです。そのためには、できることをするしかないでしょう。

テストの速度は、コア・プロセッサに影響します(正確にはMT5の場合)。

最初のテストを行うのに時間がかかりました。今は先週から実行しています。どのEAも微妙なところがあると思うんです。係数を導入しただけで、基本的なパラメータを変更することはほとんどありません。主にボラティリティを調整することがわかりました。さらに、シンプルな3つ星ではなく、ニュースの種類ごとに内訳を表示した真面目なニュースモジュールも用意しました :)一般的に、「ニュース」はすべてのEAの中で最も弱いものだと思います。また、「契約変更」、「オプション期限」の期間もあります。私も一緒に仕事をしています。

ありがとうございました。

 

皆さん、ごきげんよう。

MQL5の初歩的なことを勉強しようと思っているのですが、MQL5 Reference からコピーしたコードをコンパイルすると、突然添付の画像に表示される警告メッセージに遭遇してしまいました。

MQL5 Referenceにも エラーがあるのでしょうかね。どうか、このような警告が出ないようにするには、コードのどこを修正すればよいのか(MQL5Reference 自体も参考になると思います)教えていただけませんか?

敬具 ウラジミール




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

皆さん、ごきげんよう。

MQL5の初歩的なことを勉強しようと思っているのですが、MQL5 Reference からコピーしたコードをコンパイルすると、突然添付の画像に表示される警告メッセージに遭遇してしまいました。

MQL5 Referenceにも エラーがあるのでしょうかね。どうか、このような警告が出ないようにするには、コード(またはMQL5Reference 自体)のどこを修正すればよいか教えていただけないでしょうか。

敬具 ウラジミール

そうですね、ヘルプに不正確な部分があります。

理由: