[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 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)

.........那么进一步将标志重设为假的 就没有任何作用。毕竟,在这次检查之前,它将再次被初始化为"true"...

 
sss2019:


谢谢你。它真的很有效。但为什么指标会保存LastBarAlert变量的值,而不是其他变量的值。我是这样做的。本质上是一样的,但由于某些原因,它没有发挥作用。

问题一定出在逻辑上...如果你使用一个取值为0和1的变量,它的值必须在每个新条形 上被重置,而这很可能不会发生。或者变量被描述为本地的,没有静态的,其值在调用之间没有被保存。在没有代码的情况下,进行猜测是没有用的。
 

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

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

在检查的时候就AllowAlert设置为 它应该是这样的(双=)。

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

或者最好像这样:

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

在检查的时候就AllowAlert设置为 它应该是这样的(双=)。

或者最好像这样:




基本上,这个变量被声明为静态的,并且在几个小节后被重置。条件如下。

static bool AllowAlert = true;

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

if(Time[i] != Time[2])
  {
  AllowAlert = true;
  }
理想情况下,信号应该是在当前条形图上出现一次,但它在每个tick 上都被触发了。
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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中起作用,而在指标中不起作用。
 

最有可能的是,这里 有人建议我这样做(因为缺少你的代码)。

你有几个警报,你对所有的警报应用同一个统计变量

 

你好。

谁能告诉我?

我怎样才能使EA的范围发挥作用?

画一条线,重命名为 "buy_down"。

绘制第二行,将其更名为 "buy_up"

让EA 只在这些线之间交易

我看不出他们之间有什么区别。

 
TESKATLIPOKA:

你好。

谁能告诉我?

我怎样才能使EA的范围发挥作用?

画一条线,重命名为 "buy_down"。

绘制第二行,将其更名为 "buy_up"

并让EA只在这些线之间交易。

我看不出他们之间有什么区别。


请点击这里: https://www.mql5.com/ru/job