[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 490

 
splxgf:

普段はLastBarAlertという変数を作って、アラートが発生したらそこにTime[0]を書き込んでいます。

そして、初歩的なことですが、LastBarAlert!=Time[0]の場合、アラートが出力されます。


ありがとうございます。本当に効くんです。しかし、なぜインジケータはLastBarAlert変数の値を保存し、他の変数の値を保存しないのでしょうか?私はこのようにしました。本質的には同じなのですが、なぜかうまくいかないのです。

if (Signal && AllowAlert = true){
Alert('Signal detected');
AllowAlert = false;
} 
 
sss2019:


ありがとうございます。本当に効くんです。しかし、なぜインジケータはLastBarAlert変数の値を保存し、他の変数の値を保存しないのでしょうか?私はこのようにしました。同じように使えると思うのですが、なぜか使えません。

コードのどこで変数 AllowAlertの 値がtrueで 初期化 されていますか?

もし、この変数のシグナルと状態をチェックする前に、その行で...

if (Signal && AllowAlert = true)

......その後、さらにこのフラグをfalseに リセットしても、何も起こりません。結局、このチェックの前に再びtrueで 初期化されることになるのですが...。

 
sss2019:


ありがとうございます。本当に効くんです。しかし、なぜインジケータはLastBarAlert変数の値を保存し、他の変数の値を保存しないのでしょうか?私はこのようにしました。本質的には同じなのですが、なぜかうまくいかないのです。

問題はロジックにあるのでは...。0と1の値を取る変数を使用する場合、その値は新しいバー ごとにリセットされなければなりませんが、ほとんどの場合、これは起こりません。または、staticを使用せずローカルに記述し、呼び出し間でその値を保存していない。コードがないと推測しても意味がない。
 

Спасибо. Это действительно работает. Но почему индикатор сохраняет значение переменной LastBarAlert, а значение какой нибудь другой переменной не сохраняет. Я делал так. По сути получается точно так же, но почему то не работает.

if (Signal && AllowAlert = true){
Alert('Signal detected');
AllowAlert = false;
} 

チェック する瞬間にAllowAlertが trueに 設定 されていますね。このようになるはずです(ダブル=)。

if (Signal && AllowAlert == true){
Alert('Signal detected'); 
AllowAlert = false;
}   

あるいは、より良いこのような。

if (Signal && AllowAlert){
Alert('Signal detected');
AllowAlert = false; }   
 
leksiq:

チェック する瞬間にAllowAlertが trueに 設定 されていますね。このようになるはずです(ダブル=)。

あるいは、より良いこのような。




基本的に、この変数は静的と宣言され、数小節後にリセットされるようになっていました。その条件は次の通りだった。

static bool AllowAlert = true;

if(Time[i] == Time[2] && AllowAlert == true)
  {
  Alert("sdfsdf");
  AllowAlert = false;
  }

if(Time[i] != Time[2])
  {
  AllowAlert = true;
  }
理想的には現在のバーで1回シグナルが出るはずですが、1ティック ごとにトリガーされてしまいました。
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool NewBar(){static int prevBar;
   if(prevBar!=Time[0]){
      prevBar =Time[0];
      return(true);
   }
   return(false);
}
//+------------------------------------------------------------------+
ここで下調べをしてみてはいかがでしょうか :https://www.mql5.com/ru/forum/131853?
 
FAQ:
ここで下調べをしてみてはいかがでしょうか :https://www.mql5.com/ru/forum/131853?

私は、やり方ではなく、なぜ私のコードがうまくいかないのかに興味があります。正確には、EAでは動作するが、インジケータでは動作しない理由。
 

最も可能性が高く、これはここで 提案されたものです(あなたのコードがないため)

複数のアラートがあり、それら全てに同じstat変数を適用している場合

 

こんにちは。

誰か教えてください。

EAのレンジを動作させるには?

線を引いて、"buy_down "に改名してください。

2行目を描画し、"buy_up "にリネームします。

で、この行間のみをEAで取引 するようにします。

両者の違いがわからない。

 
TESKATLIPOKA:

こんにちは。

誰か教えてください。

EAのレンジを動作させるには?

線を引いて、"buy_down "に改名してください。

2行目を描画し、"buy_up "にリネームします。

で、この行間のみをEAで取引するようにします。

両者の違いがわからない。


こちらへ:https://www.mql5.com/ru/job