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

 
Artyom Trishkin:

そして、正しい選択肢は、まあ、とてもシンプルなのですが......。

で、何なんだ?

 
Andrey Sokolov:

で、どれ?

とてもシンプルです :)

データがない場合は、次のティックまで終了します。

 
こんにちは、デモ口座からMT4でシグナルを登録することは可能でしょうか?ありがとうございます。
 
Artyom Trishkin:

とてもシンプルです :)

データがない場合は、次のティックまで終了します。

いや、計算とそれに対する表示が一度に必要だと書いたのです。

既存のソリューションに問題がある場合は、私は、代替案として、1つは、ボリンジャー計算の関数を書くことができると思う、それは難しいことではないようです。しかし、今のところ、そして今あるものが機能しています。

 
こんにちは!グラフィカルオブジェクトOBJ_TRENDの 将来の価格を知るにはどうしたらいいですか? 例えば、私たちは右側にレイを持っていて、新しいバーごとにこのレイの値を知る必要があります。
 
MakarFX:

この構造は

やってみたら、うまくいった。ありがとうございました。

 
Andrey Sokolov:

いや、計算や表示がすぐに必要だと書いたのです。

既存のソリューションで問題が発生する場合は、オプションとして、ボリンジャーを計算する関数を書くことができると思います、それは複雑ではないようです。でも、今のところ既存のものが使える。

インジケータは、適切に設計されていれば、常に最初に全履歴を計算します。何があるんだ?

 
Artyom Trishkin:

何を持っているのですか?

質問の意味がわからない。

 
みんな、インジケータにアラートを作るのを手伝ってくれ。いろいろなインジケーターを組み合わせてテストしたいのですが、アラート機能が必要です。矢印が表示されたときに1回だけアラートを表示させたいのですが、どうすればいいですか?あなたがハードでない場合は、私はそれを行うことはできません、アラートが全体の分またはすべての時間をポップアップし、さらにmt4がハングアップして、この関数を記述するために私を助けてください。
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

    int limit=rates_total-prev_calculated-2;
   if(limit<1) return(0);
   for(int i=limit;i>=0;i--)
     {
     
      // Снимем показания индикатора
     double in1b = iCustom(NULL,0,"in1",1,i); // индикатор 1 стрелка вверх
     double in1s = iCustom(NULL,0,"in1",0,i); // индикатор 1 стрелка вниз
      
     
     
     double in2b = iCustom(NULL,0,"in2",0,i); // индикатор 2 стрелка вверх
     double in2s = iCustom(NULL,0,"in2",1,i); // индикатор 2 стрелка вниз
    
    Comment("in1v = "+DoubleToString(in1b)+"\n" +"in1n = "+DoubleToString(in1s)+"\n"
    +"in2v = "+DoubleToString(in2b)+"\n" +"in2n = "+DoubleToString(in2s));
     
    if(in1b > 2147483647 && in2b > 2147483647) // индикатор стрелка вверх
           {
           Sell[i]=low[i];
                      
          
          // Alert(Symbol()+"BUY";
              
           
           
           
         
           }
   
     if(in1s > 2147483647 && in2s > 2147483647) // индикатор стрелка вниз
           {
            Buy[i]=high[i];
            
              // Alert(Symbol()+"SELL М"+Period());
              
              
           
           }
         
   
     }
   
     
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
jarikn:
みんな、インジケーターのアラートを作るのを手伝ってくれ。いろいろなインジケーターを組み合わせてテストしたいのですが、アラート機能が必要です。矢印が表示されたときに1回だけアラートを表示させたいのですが、どうすればいいですか?あなたがハードでない場合は、私はそれを行うことはできません、アラートが全体の分またはすべての時間をポップアップし、さらにmt4がハングアップし、この関数を記述するために私を助けてください。

これを試してみてください、うまくいくようです

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   datetime show_alert=time[1];
   int limit=rates_total-prev_calculated-2;
   if(limit<1) return(0);
   for(int i=limit;i>=0;i--)
     {
     
      // Снимем показания индикатора
      double in1b = iCustom(NULL,0,"in1",1,i); // индикатор 1 стрелка вверх
      double in1s = iCustom(NULL,0,"in1",0,i); // индикатор 1 стрелка вниз
      
      double in2b = iCustom(NULL,0,"in2",0,i); // индикатор 2 стрелка вверх
      double in2s = iCustom(NULL,0,"in2",1,i); // индикатор 2 стрелка вниз
    
      Comment("in1v = "+DoubleToString(in1b)+"\n" +"in1n = "+DoubleToString(in1s)+"\n"
      +"in2v = "+DoubleToString(in2b)+"\n" +"in2n = "+DoubleToString(in2s));
     
      if(in1b > 2147483647 && in2b > 2147483647) // индикатор стрелка вверх
        {
         Sell[i]=low[i];
         if(show_alert!=time[i])
           {
            Alert(Symbol()+"BUY М"+Period()); show_alert=time[i];
           }
        }
   
      if(in1s > 2147483647 && in2s > 2147483647) // индикатор стрелка вниз
        {
         Buy[i]=high[i];
         if(show_alert!=time[i])
           {
            Alert(Symbol()+"SELL М"+Period()); show_alert=time[i];
           }
        }
     }
     
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+