どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 336

 
evillive:
トライ
ありがとうございます。
 
evillive:
いや、その後考えて、140.15や140.35も急場しのぎで、必要かもしれないと判断したのだろう。お客様はまだ何が必要かを単純に決めていない ))))

artmedia70 です。
まあ...彼が最終的に何を望むか決めたら、考え始めましょう ...


Good day !

このスレッドのタイトルからして、諸君はとても礼儀正しいね。

と思い始めた。 そして、あなたがアドバイスしたことは、問題を解決するものではないことに気づきました。

お客様はいません))、自分のために書いているのです。課題は、根本的に、アクションを起こす小数点以下のアドバイザーの価格をどう説明するかということでした。

価格はXXX.01でもXXX.34でも構わない。例として指摘したXXX.00。

単純なことがわかった。

int start()                                   // Спец. функция start
  {
//----
   double Price, Level, Level_2;                 // Текущая цена и уровень для расчета
   Price=Bid;                                    // Запрашиваем цену
   Level=MathFloor(Bid);                         // Задаем уровень XXX.00
   Level_2 = MathFloor(Bid)+50*Point;            // Задаем уровень ХХХ.50
                              
//----
   if (Price==Level)                                      // Если цена на уровне ХХХ.00
     {
      Comment("Курс был равен  заданному уровню ", Level);    // Сообщение трейдеру
     }
     
   if (Price==Level_2)                                    // Если цена на уровне ХХХ.50
     {
      Comment("Курс был равен  заданному уровню ", Level_2);   // Сообщение трейдеру
     }
   
   return;// Выход из start()

"Level2"=50は 外部変数に取り出して、その時々に関心のあるレベルを設定することができる。

疑問が解消される。

追伸:この例は、円ペア(小数点以下2桁)の場合です。4桁の場合は、少し違った書き方をします(!初心者の方は、興味のある方は、プロに方法を聞いてみてください))).

フォーラムに書き込むことは滅多にありません。習慣を変えようという気持ちが現れていない。


皆さん、ごきげんよう。

 
コード中のアラートやプリントは、最適化時間に影響しますか?
つまり、最適化はそれらを回避する方法を知っているのか、それともユーザーレベルで行う必要があるのか?
 
chief2000:
コード中のアラートやプリントは、最適化時間に影響しますか?
つまり、最適化はそれらを回避する方法を知っているのか、それともユーザーレベルで行う必要があるのか?


特に時間を消費する計算結果を出力する場合、影響を与える。アラートの前に IsOptimization() チェックを挿入した方が良い。
 
evillive:

特に、時間を消費する計算結果を出力する場合は、そうなります。アラートの前に IsOptimization() チェックを挿入するのがよいでしょう。

出力のための計算ではなく、AlertやPrintの コマンドそのものを意味しています。最適化中は役に立たないのですが、オプティマイザーで自動的に無効にすることができるのか、できないのか。(チェックを追加するごとに最適化速度にも影響します)。
 
chief2000:

出力計算のことではなく、AlertコマンドやPrintコマンドそのもののことを指していました。最適化中は役に立たないのですが、オプティマイザーによって自動的に無効化されているのでしょうか、そうでないのでしょうか。(チェックを追加するごとに、最適化速度にも影響します)


Alert、Print、Checkのいずれにも効果があります。しかし、チェックの方が手間がかからない。
 
evillive:

アラートとプリントとチェックの両方が影響します。しかし、チェックの方が手間がかからない。 。

私の知る限り、最適化 モード(テストではない)でのAlertとPrintは テスターによって単にスキップされ、したがって何も影響を与えません...。MarketInfoは、スピードに与える影響が大きく、本当に遅くなることがあります。if(IsTesting()) と if(IsOptimization()) は本当に役立ちます。例えば、プログラムが常に現在の広がりを監視している場合、それはテスターでは必要ありません。

 
alsu:

私の知る限り、最適化 モード(テストではない)でのAlertとPrintは、テスターによって単にスキップされ、したがって何も影響を与えません...。MarketInfoは速度に与える影響が大きく、処理を大きく遅らせることができます。ここでは、IsTesting() とIsOptimization() を使用します。例えば、プログラムが常に現在のスプレッドを制御している場合、テスターは必要ありません。


これが直らないと、コメントでMTが本当に遅くなることがあります。
MarketInfoについてですが、コマンドそのもののことでしょうか?また、例えばBid/Askの使用(純粋な形で、現在のシンボルに対して)?
 
chief2000:

これが直らないと、コメントでMTが本当に遅くなることがあります。 MarketInfoについてですが、これはコマンドそのものを直接指しているのでしょうか?また、例えばBid/Ask(純粋な形で、現在のシンボルに対して)を使用することは可能でしょうか?

テスターではMarketInfo()が動作せず、BidとAskが遅く、歪んでいます。そこでXrust さんのアドバイスでiClose(NULL,0,0)から取得することにしました。

  if(IsOptimization() || IsTesting() || IsVisualMode())
  {
    Spread = 21; 
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = NormalizeDouble(iClose(Symbol(),0,0),Digits);
    ask = NormalizeDouble(iClose(Symbol(),0,0)+spr,Digits);
  }
  else
  {
    Spread = MarketInfo(Symbol(),MODE_SPREAD);
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = MarketInfo(Symbol(),MODE_BID);
    ask = MarketInfo(Symbol(),MODE_ASK);
  }
 
borilunad:

テスターではMarketInfo()が動作せず、BidとAskが遅く、歪んでいます。そこで、Xrust さんのアドバイスで、iClose(NULL,0,0)から取得することにしました。


松葉杖、イミフ。
理由: