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

 
Vasiliy Sokolov:

这是一种模板方法。其中的参数类型将根据这些括号中传递的类型进行匹配。类型是静态的,在编译时确定。你可以在 "函数和类模板 "中阅读更多关于这个问题的内容:https://www.mql5.com/ru/docs/basis/oop/templates。

谢谢你!

 
Artyom Trishkin:
  1. 生成一个新的刻度线--条件得到满足,例如,将在这个刻度线上画出图案指示,并产生一个警报。
    1. 需要一个函数来接收一个条件,这个条件的标志由下两段设置
    2. 需要一个绘制图案的功能
    3. 需要发送警报的功能(不一定是函数--有只发送警报、只发送电子邮件和只发送推送的标准功能)。
  2. 在满足上述条件后,我们需要停止执行上述动作的多次重复,直到一段等于......的时间。
    1. 如果有一个标志表明上面第1 步中的三个步骤已经完成,那么什么也不做--转到第3 步,否则转到第1
  3. 一旦条形图变为下一个条形图,就重新启动条件,直到上述的下一个时间段。
    1. 我们需要一个函数来定义一个新酒吧。一旦定义了一个新的柱子,就转到第1 点,否则就转到第2 点。

谢谢你,我将努力做到

 
你能告诉我TimeLocal 和TimeCurrent函数 是否能精确到毫秒地给出时间?
 

下午好!

顾问正在发出警告。

可能使用未初始化的变量'hv1' test_gme.mq5 154 23
0个错误(s), 14个警告(s), 编译时间: 1306 msec 1 15

以下是代码:错误是什么?

//============================================================================================================
   int GetSignal (string sb)
  {
    int    dig=int(SymbolInfoInteger(pos.Symbol(), SYMBOL_DIGITS));
   double vpoint  = SymbolInfoDouble(sb,SYMBOL_POINT);
   double op1,op2,op3,op4,op5,op6,op7,
              cl1,
              hi1,hi2,hi3,hi4,hi5,hi6,hi7,
              lo1,lo2,lo3,lo4,lo5,lo6,lo7;
 double hv1,hv2,hv3,hv4,hv5,hv6,hv7;
 double gr1,gr2,gr3,gr4,gr5,gr6,gr7;
 //pp=NormalizeDouble(pp, dg);
 // op=NormalizeDouble(pos.PriceOpen() , dg);
  hv1=NormalizeDouble(hv1, dig);
  hv2=NormalizeDouble(hv2, dig);
  hv3=NormalizeDouble(hv3, dig);
  hv4=NormalizeDouble(hv4, dig);
  hv5=NormalizeDouble(hv5, dig);
  hv6=NormalizeDouble(hv6, dig);
  hv7=NormalizeDouble(hv7, dig);
  gr1=NormalizeDouble(gr1, dig);
  gr2=NormalizeDouble(gr2, dig);
  gr3=NormalizeDouble(gr3, dig);
  gr4=NormalizeDouble(gr4, dig);
  gr5=NormalizeDouble(gr5, dig);
  gr6=NormalizeDouble(gr6, dig);
  gr7=NormalizeDouble(gr7, dig);
  //=================================================================================================
      double ma_sred1 =NormalizeDouble(iMA(sb,PERIOD_M5,sr,0,MODE_SMA,PRICE_CLOSE),dig);      //for M5
   //==============================================================================================
           op1=NormalizeDouble(iOpen(sb,PERIOD_M5,1),dig);       //m5
           op2=NormalizeDouble(iOpen(sb,PERIOD_M5,2),dig);      //m10 sintez
           op3=NormalizeDouble(iOpen(sb,PERIOD_M5,3),dig);     //m15 si
           op4=NormalizeDouble(iOpen(sb,PERIOD_M5,4),dig);    //m20 si
           op5=NormalizeDouble(iOpen(sb,PERIOD_M5,5),dig);   //m25 si
           op6=NormalizeDouble(iOpen(sb,PERIOD_M5,6),dig);  //m30 si
           op7=NormalizeDouble(iOpen(sb,PERIOD_M5,7),dig); //m35 si
 //==================================================================================
       cl1=NormalizeDouble(iClose(sb,PERIOD_M5,1),dig);     //m5
 //=================================================================================   
  //   hay1=NormalizeDouble(iHigh(sb,PERIOD_M5,30),dig);
    
     //   niz1=NormalizeDouble(iLow(sb,PERIOD_M5,30),dig);
       
 //======================================================================================
            lo1=NormalizeDouble(iLow(sb,PERIOD_M5,1),dig);                                      //m5
            lo2=NormalizeDouble(MathMin(iLow(sb,PERIOD_M5,1),iLow(sb,PERIOD_M5,2)),dig);  //m10
            lo3=NormalizeDouble(MathMin(lo2,iLow(sb,PERIOD_M5,3)),dig);                       //m15 
            lo4=NormalizeDouble(MathMin(lo3,iLow(sb,PERIOD_M5,4)),dig);                      //m20
            lo5=NormalizeDouble(MathMin(lo4,iLow(sb,PERIOD_M5,5)),dig);                     //m25
            lo6=NormalizeDouble(MathMin(lo5,iLow(sb,PERIOD_M5,6)),dig);                    //m30
            lo7=NormalizeDouble(MathMin(lo6,iLow(sb,PERIOD_M5,7)),dig);                   //m35
      
 //=========================================================================================================
            hi1=NormalizeDouble(iHigh(sb,PERIOD_M5,1),dig);                                       //m5
            hi2=NormalizeDouble(MathMax(iHigh(sb,PERIOD_M5,1),iHigh(sb,PERIOD_M5,2)),dig);  //m10 sint
            hi3=NormalizeDouble(MathMax(hi2,iHigh(sb,PERIOD_M5,3)),dig);                        //m15 sint
            hi4=NormalizeDouble(MathMax(hi3,iHigh(sb,PERIOD_M5,4)),dig);                       //m20 sint
            hi5=NormalizeDouble(MathMax(hi4,iHigh(sb,PERIOD_M5,5)),dig);                      //m25 sint
            hi6=NormalizeDouble(MathMax(hi5,iHigh(sb,PERIOD_M5,6)),dig);                     //m30 sint
            hi7=NormalizeDouble(MathMax(hi6,iHigh(sb,PERIOD_M5,7)),dig);                    //m35 sint
 
fregat555:

下午好!

顾问正在发出警告。

可能使用未初始化的变量'hv1' test_gme.mq5 154 23
0个错误(s), 14个警告(s), 编译时间: 1306 msec 1 15

以下是代码:错误是什么?

添加 =0 .

double hv1=0,hv2=0,hv3=0...
 
谢谢你!
 

编译时,一切正常,没有错误或警告。但是

测试时,它给出了以下结果。

2018.12.01 17:53:00.074 核心 4 遗传通 (0, 509) 在 0:00:00.000 测试了错误 "OnInit failed" 。

 
我想这是有效的,谢谢你。
 
你能告诉我如何获得指定目录MQL5\Files中的目录列表吗?
 
Aleksey Vyazmikin:
请告诉我如何获得指定目录MQL5\Files中的目录列表?
来自LifeHack for Trader的 例子:一个回溯测试是好的,但四个会更好