エラー、バグ、質問 - ページ 553

 
Urain:

そして、プロフィールスレッドで提案をしてください(間違いはないのですが)。

まあ私の理解では、カレンダーでは、期間の終わりを今日の日付に選択することができます。
とすると、テスターとオプティマイザーは現在の時間まで動作することが期待されますが、そうはいきません((
開発者はこのことを認識しており、良いプラットフォームを作ることは彼らの力の及ぶところです。

 

この記事「初心者のためのMQL5 Expert Advisorの書き方ステップバイステップガイド」https://www.mql5.com/ru/articles/100 を読んだところ、次のような行がありました。


3桁と5桁の相場では、ストップロスとテイクプロフィットの値を10倍しています。

端末に同梱されているMACDのサンプルにも同じ情報が記載されています。

//--- 3桁、5桁のチューニング
int digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10.この場合、3桁、5
桁のチューニングが必要です。

m_adjusted_point=m_symbol.Point()*digits_adjust;

このアクションは何ですか?なぜ変数を10倍すると小数点以下が3桁と5桁になるのか?

Пошаговое руководство по написанию MQL5-советников для начинающих
Пошаговое руководство по написанию MQL5-советников для начинающих
  • 2010.06.09
  • Samuel
  • www.mql5.com
Написание советников на MQL5 проще чем кажется, вы легко можете этому научиться. В этом руководстве вы познакомитесь с основными моментами, необходимыми для написания простого советника на основе конкретной торговой стратегии. Рассмотрена структура советника, использование встроенных технических индикаторов и торговых функций, вопросы отладки и тестирования советника на исторических данных.
 
progeon:

この記事「初心者のためのMQL5 Expert Advisorの書き方ステップバイステップガイド」https://www.mql5.com/ru/articles/100 を読んだところ、次のような行がありました。

3桁と5桁の相場では、ストップロスとテイクプロフィットの値を10倍しています。

端末に同梱されているMACDのサンプルにも同じ情報が記載されています。

//--- 3桁、5桁のチューニング
int digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10.この場合、3桁、5
桁のチューニングが必要です。

m_adjusted_point=m_symbol.Point()*digits_adjust;

このアクションは何ですか?なぜ変数を10倍すると小数点以下が3桁と5桁になるのか?

何でも4桁で数えることに慣れ、その考えを変えたくない友人たちのためです。

したがって、パラメータでストップロスを100ポイント設定すると、5桁の計算では1000ポイント、4桁の計算では100ポイントになり、同じになります。

4桁の数字には利点があり、利益の再計算が容易で、1pipは投資資金の1%になる。

 
progeon:

この記事「初心者のためのMQL5 Expert Advisorの書き方ステップバイステップガイド」https://www.mql5.com/ru/articles/100 を読んだところ、次のような行がありました。

3桁と5桁の相場では、ストップロスとテイクプロフィットの値を10倍しています。

端末に同梱されている「MACDサンプル」にも同じ内容が記載されています。

//--- 3桁、5桁のチューニング
int digits_adjust=1;
if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10.この場合、3桁、5
桁のチューニングが必要です。

m_adjusted_point=m_symbol.Point()*digits_adjust;

どんな行動なのか?なぜ、小数点以下3桁と5桁の変数を10倍するのでしょうか?


異なるブローカー(4桁または5桁のクォートを提供)とのより良い互換性、すなわちExpert Advisorのパラメータを変更する必要がない。

このアルゴリズムは、4桁のクォートを提供するブローカーで_Digitsが4または2であるかも しれないという事実に基づいています(通常、JPYとのペアで)。

で、それに応じて5桁の5と3になります。

とはいえ_Digitsの値が 異なるツールもあるので、私自身、この方式のセキュリティには興味が あります。

個人的には「EURUSD」で確認しています。しかし、少なくともMT4ではユーロ ドルがEURUSD_fxの ように少し違う名前になっているブローカーが あります。

とか、そんな感じです。

 
crOss:
пункты 1 и 2 уходят, если фиксировать правое время на момент начала теста/оптимизации.
никто не просит актуальность до секунды... но один торговый день - это, извините, ни в какие ворота.

ウラン です。

そうすると、年月日だけでなく、終了の時:分も入力する必要があります。

必ずしもそうではありませんが、テスト/最適化の実行時に、純粋にプログラムによって時間を修正することができます。

正直、この提案は非常にセンシティブだと思います。大賛成です。

今のところ私には無関係ですが、近いうちにとても欲しくなるかもしれません。

 
Urain:

何でもかんでも4桁でカウントするのに慣れていて、作り直したくない人向けです。

したがって、パラメータでストップロスを100ポイントに設定すると、5桁で1000ポイント、4桁で100ポイントの再計算が行われ、同じことになります。

4桁の数字には、利益の再計算のしやすさ、投資資金の1ピップ1%というメリットがあります。

もう一つ質問ですが、同じ記事でストップロスやテイクプロフィットを形成する際にNormalizeDouble関数を使って いますが、これはどのような理由からでしょうか?意味がないような気がします。

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
progeon:

同じ記事の中で、ストップロスやテイクプロフィットを形成する際にNormalizeDouble関数が 使われているのは、どういう理由からでしょうか?意味がないような気がします。

無意味なことは一切ありません。 レベル計算の際、ダブリのある演算が行われ、結果が正規化されず、万が一そのままサーバーに渡すと、リクオートが発生します。そのため、計算結果は正規化されます。
 
Urain:
無意味なことはない、レベル計算の際、倍数を使った演算が行われ、その結果が正規化されない、そのままサーバーに渡すとリクオートされる。そのため、計算結果は正規化されます。
ストップロスが100、ポイントが 0.00001とすると、掛け合わせるとどうなるのでしょうか?9の方はどこかに出没するのでしょうか?例えば、0.0009999?
 
progeon:
ストップロスは100、ポイントは0.00001とします。これらを掛け合わせた場合、どのようなことが起こるでしょうか?9の方はどこかに出没するのでしょうか?例えば、0.0009999?
   double a=1.45861+32*_Point;
   Print(DoubleToString(a,16));

普通に考えれば1.45893と出るはずですが、1.4589300000000002と出ています。

 
Renat:

EA情報に「セキュリティ」タブを設け、セキュリティレベルや呼び出されたDLL関数の一覧を表示させることを計画しました。

ちょうどショップの立ち上げのタイミングで、EX5ファイルの制作に取り組むことになりました。

Renatさん、新しいEX5フォーマットでのDLLコールについて、あと2つ質問があります。

1.呼び出しが無効化された場合、コードはどのように動作するのでしょうか?今みたいに......走らないんでしょうか?

2.起動しない場合、MQL5_DLLS_ALLOWED /TERMINAL_DLLS_ALLOWEDは 何のためにあるのでしょうか?