[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 624

 
谁能告诉我如何在同一时间多次打开MT4(从一个模拟账户,在一台电脑上),这样就可以同时在几个货币对上测试专家顾问。这样就不会等到一对完成后,再在另一对上手动设置测试?
 
paladin80:
谁能告诉我如何在一台电脑上同时打开MT4(从一个模拟账户)几次,这样就可以同时测试几个货币对的专家顾问。这样就不会等到一对完成后,再在另一对上手动设置测试?
将该文件夹复制几次。
 
paladin80:
谁能告诉我如何在同一时间多次打开MT4(从一个模拟账户,在一台电脑上),这样就可以同时测试几个货币对的专家顾问。这样就不会等到一对完成后,再在另一对上手动设置测试?

图画师能经受住这种残酷的考验吗?两个测试者100%地并行加载CPU,这台电脑完全不属于 "互联网和打字机 "的范畴。
 

下午好!

为什么iTime 的时间和测试器的时间(图片中)不一致?

下面是一个粗略的代码草图。

int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
    
   int  limit = Bars - counted_bars;
     
     for (int i=limit; i>=0; i--)
     {
       
    tm1=iTime(NULL,PERIOD_D1,i);           //--- Определяю время (Выводит текущую дату. Не совпадает с временем в тестере.)
    int shift=iBarShift(NULL,PERIOD_H4,tm1,false);  //---По этому времени ищем бар
   
    hgh = iHigh(NULL,PERIOD_H4,shift);   //---High бара
    lwo = iLow(NULL,PERIOD_H4,shift);    //---Low бара
          
     flatline("Lev_Up",tm1,hgh,tm2,lwo,Green,1);
     flatline("Lev_Dn",tm1,hgh,tm2,lwo,Green,1);
     }
     
     SetText("Tm1","Tm2",TimeToStr(tm1),TimeToStr(tm1),Red,Blue,12);
     SetText2("Shift",shift,Red,12);
     SetText5("High","Low", hgh,lwo,Red,Blue,12);
           
     //----
   return(0);
  }

 

下午好。

你能告诉我为什么这个代码不能交易吗?

而且警报也不起作用。

该日志是完全无声的...

在截图中,你可以看到条件相符。

int start()
  {
  double ma= iMA(Symbol(), 0, PerMa, 0, 0, 0, 0);
//----
//GetLot(1, 0.1, 100, 0.1, 10, Symbol());
if (Filtre()=="S" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,0,CLR_NONE);
if (Filtre()=="B" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Bid-SL*pip*Digits,Bid+TP*pip*Digits,0,0,0,CLR_NONE);
Comment (Filtre(),"  ",NormalizeDouble(ma, Digits*pip),"  ",NormalizeDouble(Bid, Digits*pip));
if (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert("!!!!!!!!!!!");


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

下午好。

你能告诉我为什么这个代码不能交易吗?

而且警报也不起作用。

该日志是完全无声的...

在截图中,你可以看到条件相符。

检查pip等于什么。NormalizeDouble函数中的第二个参数必须等于小数位数(是一个整数),如果比较价格,通常简单写成Digits。
 
atztek:

在 "专家 "文件夹里有一个文件,每次启动自定义指标时都需要复制。

- 是否可以从代码中复制文件,如果可以,如何复制?

谢谢你!


如果使用MQL,只能在 experts/files 文件夹内使用。
 
Fox_RM:

下午好!

为什么iTime的时间和测试器的时间(图片中)不一致?

下面是一个粗略的代码草图。

你的iTime函数 从tester/history文件夹中的一个文件(每个tamframe单独)中获取第i个bar,也许D1和H1的历史文件,其中最后一个bar对应的是1月13日,是从一些旧的运行中躺在那里。
 
alsu:
检查点子等于什么。NormalizeDouble函数中的第二个参数必须等于小数点后的数字(这是一个整数)。通常我们在比较价格时,只写Digits。

如果(Digits == 3||Digits== 5) pip=10; 否则pip=1。

这是为了规范化为4或2位数。(如果引号是5位数)

评论 中显示了归一化的数值,在截图中我们可以看到,它们是相等的。因此,条件已经满足,但订单仍然无法打开......

哦!日志中出现了一个警报,但订单没有打开。

 
MarkTrade:

如果(Digits == 3||Digits== 5) pip=10; 否则pip=1。

这是为了规范化为4或2位数。(如果引号是5位数)

归一化的数值显示在注释中,在截图中我们可以看到它们是相等的。因此,条件已经满足,但订单仍然无法打开......

哦!警报出现在日志中,但订单并没有打开。


我可以问一下为什么"正常化为4或2位数。(如果引号是5位数)"?5位和3位数也应该可以,因为它是...