MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 788

 
Igor Zakharov:

どうしてわかるんだろう?質問者はiLow()を使っているので、必要なのでしょう。もっと単純に、入力変数を通して別の記号や時間軸を参照するつもりなのかもしれない(四則演算にコピーライトがあるか どうかは覚えていない?)

ありますね。

 
psyman:

ここではコードを掲載せず、パースを簡略化するために最もシンプルなものを書きました。

何が問題なのか詳しく教えてください。最高速度がはっきりしないのです。

ウラジーミル・カルプトフ

コードは非常に幸運です -すべてのティックに すべてのバーを通過するからです。


4thではIndicatorCounted()でしたが、 5thではどんな可能性があるのかわかりませんし、読むところすら ありませんでした。

このオプションは良いのか、それとももっと簡略化できるのか?

int OnCalculate(....)
{
   int i, Counted_bars;
   
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного

      while(i>=0)                      // Цикл по непосчитанным барам
      { 
        .....
        
       i--;                          
      }
}

int IndicatorCounted()
  {
   if(prev_calculated>0) return(prev_calculated-1);
   if(prev_calculated==0) return(0);
   return(0);
  }
 
psyman:


Q4ではIndicatorCounted()がありましたが、 5ではどんな可能性があるのかわかりませんし、どこにも書いて ありません。

このオプションは良いのか、それとももっと簡略化できるのか?

ヘルプ、フォーラム、記事-これがあなたの考える「読むべき場所」でしょうか?欲望さえあれば。実際、ご質問はMQL5に関することなのに、旧端末の話題で書かれていますね。的外れなことを言ってしまいました。

トピックを離れました。

 
psyman:


Q4ではIndicatorCounted()がありましたが、 5ではどんな可能性があるのかわかりませんし、どこにも書いて ありません。

このオプションは良いのか、それとももっと簡略化できるのか?

mql4とmql5の両方において、メインインジケータ機能は必要なものをすべて備えています。

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[]         // Spread
   );

prev_calculated は、計算されたバーの数です。

 

こんにちは。

60秒間に価格が30pips変化した場合、バーに印をつける

 for(int i=limit; i>=0; i--)
     {
      datetime t_=TimeCurrent();
      if(t_>t_b+60)
        {
         t_b = TimeCurrent();
         pr_b=close[0];
        }
      if(MathAbs(close[0]-pr_b)>=30*Point && t_<t_b+60)
        {
         BufferUP[i]=low[i]-10*Point;
        }

     }

どうしたんですか?

 
lil_lil:

こんにちは。

60秒間に価格が30pips変化した場合、バーに印をつける

どうしたんですか?

なぜ、このように

int limit=rates_total-prev_calculated-1;

とか、こんな感じじゃないの?

int limit=rates_total-prev_calculated;

どこで制限をかけるか?

   if(limit>1)
     {
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }

それ以上は見ていない

 
Artyom Trishkin:

なぜ、このように

とか、こんな感じじゃないの?

リミット設定はどこですか?

それ以上は見ていない。

ありがとうございます。でも、そちらも結果が出ないんです。もっと見てください。

 
lil_lil:

ありがとうございます。でも、そちらも結果が出ないんです。もっと見てください。

それは何ですか?

datetime t_=TimeCurrent();

ループの中で何分かけているのですか?TimeCurrent() とは何ですか?

 
こんにちは。
Expert Advisorにリンクからテキストを取得する機能があるのですが・・・このライブラリで取得します。
https://github.com/sergeylukin/mql4-http
すべて順調で、何の疑問もありません
問題は以下の通りです。
このリンクでは、テキストがシステム的に更新され、チャートからフクロウをリセットして元に戻しても、端末はそれを認識しません。端末の閉じ 方と開け方が全く違うのだけが 救いですもしかしたら、修理の仕方を知っている人がいるかもしれませんね。
 
lil_lil:

こんにちは。

60秒間に価格が30pips変化した場合、バーに印をつける

どうしたんですか?

最近、同じようなタスクのフリーランスのオーダーに出会いました。それが仕事ではないのですか?