初学者的问题 MQL5 MT5 MetaTrader 5 - 页 470

 
Artyom Trishkin:

为什么你的头发会卷曲?也许是用错了洗发水?;)

到底怎么了?三个缓冲区,分别负责不同时期的计算。

它有什么问题?

https://www.mql5.com/ru/forum/1111/page1442#comment_2012053 - 那里有详细的描述。:)
关于头发--它几乎已经消失了。:)))
 
Mike:
https://www.mql5.com/ru/forum/1111/page1442#comment_2012053 - 详细描述了那里的一切。:)
关于头发--它几乎已经消失了。:)))

首先:一个窗口中分离的MAI的所有参数是否与一个具有三个缓冲区的指标所创建的MAI的参数相一致?

第二:当你将一个窗口中的MAI相互叠加时,在参数 "应用于"(或类似的东西--我不记得了)中你选择了什么?

猫说他可以分享他的头发--他不介意;)

 

MQL5参考指南文件语言基础知识变量输入变量

以此为例。


#property script_show_inputs 

//--- input parameters
input dayOfWeek swapday=W;

//--- day of week
enum dayOfWeek 
  {
   S=0,     // Sunday
   M=1,     // Monday
   T=2,     // Tuesday
   W=3,     // Wednesday
   Th=4,    // Thursday
   Fr=5,    // Friday,
   St=6,    // Saturday
  };

//Вставляю в советник, только без #property script_show_inputs
//Компилятор ругается:
//'dayOfWeek' - declaration without type   54   7

//Испавляю на:
input int dayOfWeek swapday=W;
//Компилятор пишет шибку:
//'swapday' - semicolon expected                   54   21

你能告诉我问题是什么吗?


 
Leo59:

MQL5参考指南文件语言基础知识变量输入变量

以此为例。

你能告诉我问题是什么吗?

enum dayOfWeek应该在输入dayOfWeek之上。第二种拼法完全不正确。另外有一个建议--不要写这样的枚举,W修饰符以后会非常难找。
 
Vasiliy Sokolov:
枚举dayOfWeek应该高于输入dayOfWeek。第二种写法是完全不正确的。另外还有一个提示--不要写这样的枚举,修改器W以后会非常难找。
非常感谢!!!!
而我.....,出于我的单纯性,提出了上面这句话。
谢谢你!
 

同志们,请帮忙提醒一下。

我想做的是,如果前一栏的点数超过250点,那么就会弹出通知并出现提示音,问题是每隔2-3秒就会鸣叫一次...我们怎样才能使指标等待10分钟,或在下一个信号之前发出警报?

input int Bar     = 1;
input int pips    = 250;
input bool alert  = true;
input bool sound  = true;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+


int start()
  {
  //alert criteria
int buy_o, sell_o, buy_go=0, sell_go=0;

int dig;
if (Digits==3)(dig=100);
if (Digits==5)(dig=10000);

double buy_bar=(High[Bar]-Low[Bar]);if(buy_bar>0 && Open[Bar]>Close[Bar]){buy_o=buy_bar*dig;}
if(buy_o>pips){buy_go=1;}

double sell_bar=(High[Bar]-Low[Bar]);if(sell_bar>0 && Open[Bar]<Close[Bar]){sell_o=sell_bar*dig;}
if(sell_o>pips){sell_go=1;}
Comment (buy_o,"_",sell_o);   
 if (buy_go==1) //Signal Buy
 {

if(alert==TRUE){Alert("Покупка: ",Symbol(),", Пунктов:" ,buy_o);}
if(sound==TRUE){PlaySound("alert.wav");} Comment("buy");
 }
 if (sell_go==1) //Signal Sell
 {
if(alert==TRUE){Alert("Продажа: ",Symbol(),", Пунктов:" ,sell_o);}
if(sound==TRUE){PlaySound("alert.wav");} Comment ("sell");
 }




//----------
return(0);
  }
 

你能告诉我如何正确地将数组通过引用传递到一个函数中吗?

#define   SIZE     50 
double   MACD[SIZE];         // Статический массив

int start()
   {
    Fun(     );
   }

int Fun(const double &MACD[    ])
   {
    for(int i=1; i<SIZE; i++)
        {
         if(MACD[i]>MACD[i-1] && MACD[i]>MACD[i+1])
              return(1);
        }
   }
 
Leo59:

你能告诉我如何正确地将数组通过引用传递到一个函数中吗?

#define   SIZE     50 
double   MACD[SIZE];         // Статический массив

int start()
   {
    // Необходимо перед вызовом функции заполнить массив данными
    Fun(MACD);
   }

int Fun(const double & _array[])
   {
    for(int i=1; i<ArraySize(_array)-1; i++)
        {
         if(_array[i]>_array[i-1] && _array[i]>_array[i+1])
              return(1);
        }
   return(0);
   }
你可以这样做
 
Victor Nikolaev:
你可以这样去做。
谢谢你!!!!
 
Artyom Trishkin:

首先:一个窗口中分离的MAI的所有参数是否与一个具有三个缓冲区的指标所创建的MAI的参数相一致?

第二:当你在一个窗口中叠加MAH时,你在 "应用于"(或类似的东西--我不记得了)参数中选择了什么?

猫说他可以分享他的头发--他不介意;)

1.所有的比赛。
2.没有这样的参数。
在另一个主题中,有人告诉我,这个问题在MT4中是无法解决的。:(