新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 533

 

大家好,有没有一个现成的命令可以在屏幕上显示交易历史

类似于将一笔交易从历史上拖到图表上



有可能通过交易历史和分配对象,但我认为有一个现成的方法。

 
Mickey Moose:

大家好,有没有一个现成的命令可以在屏幕上显示交易历史

类似于将交易从历史上拖到图表上

同样的,但要按下控制键。Ctrl或Shift - 我不记得了 - 我是用手机写的。
 
Artyom Trishkin:
同样的,但要按下控制键。我不记得是Ctrl还是Shift了--我是用手机写的。



我想把这块放到我的非交易机器人中,把它放在图表上,看看是怎么回事。

要把它放在图表上,看看这个符号每年生产了多少骰子
 
Ihor Herasko:

没有办法通过MQL获得这些信息。你需要访问DateTimePricker控件,这是通过WinAPI完成的。

谢谢,知道了!

可能对某人有用。

#import "user32.dll"
   int      SendMessageA(int hWnd,int Msg,int wParam,int &lParam[]);
#import

#define  DTM_GETSYSTEMTIME 0x1001

int SystemTime[4];

.....

//+------------------------------------------------------------------+
//|          Функция преобразования в формат datetime                |
//+------------------------------------------------------------------+
datetime FormatDateTime(int &DT[]){
   string sMonth,sDay,sHour,sMin,sSec;
      int nYear,nMonth,nDay,nHour,nMin,nSec;   
      
   //---- parse date and time from array
         nYear=DT[0]&0x0000FFFF;
         nMonth=DT[0]>>16;
         nDay=DT[1]>>16;
         nHour=DT[2]&0x0000FFFF;
         nMin=DT[2]>>16;
         nSec=DT[3]&0x0000FFFF;
         
   //---- format date and time items
         sMonth=100+nMonth;
         sMonth=StringSubstr(sMonth,1);
         sDay=100+nDay;
         sDay=StringSubstr(sDay,1);
         sHour=100+nHour;
         sHour=StringSubstr(sHour,1);
         sMin=100+nMin;
         sMin=StringSubstr(sMin,1);
         sSec=100+nSec;
         sSec=StringSubstr(sSec,1);

   //----
         return(StrToTime(StringConcatenate(nYear,".",sMonth,".",sDay," ",sHour,":",sMin,":",sSec)));
  }
  
void OnInit(void){
  if (IsTesting()){
    SendMessageA(0x0000000000010288,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date From: ",TimeToString(FormatDateTime(SystemTime)));
    
    SendMessageA(0x000000000001028E,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date To: ",TimeToString(FormatDateTime(SystemTime)));
  }
  .....
}

void OnTick(void){
  .....
}
//+------------------------------------------------------------------+
 
mrumskiy:

谢谢,知道了!

它可能对某人有用。

然后是一个反问:为什么有必要获得测试间隔日期,它能在哪里派上用场?

 
Artyom Trishkin:

如果i是2的倍数。

这是i的余数 除以2的结果。

谢谢你。在指标中,如何将19点到11点的蜡烛从计算中排除?

 
PolarSeaman:

谢谢你。该指标如何将19点和11点之间的蜡烛从其计算中排除?

观察时间,如果不在设定的限度内就跳过,这很容易。

逻辑很简单:你知道商店在下午2点到3点之间不营业,是为了吃午饭。你看一下手表,如果是午餐时间,你就不会去商店。那么你为什么在这里感到困惑呢?有什么区别呢?

 
你好,我想创建一个条件,据此
在0-8步的时间段内,将等于5个点,在一天的其余时间内,将等于10个点。但如果我有前一天的订单,那么在0-8的时间段内,也会有10个点。


 
Artyom Trishkin:

观察时间,如果不在设定的限度内就跳过,这很容易。

逻辑很简单:你知道在14:00和15:00之间,商店是关门吃午饭的。你看一下手表,如果是午餐时间,你就不会去商店。那么你为什么在这里感到困惑呢?有什么区别呢?

问题是,如果你设置一个时间间隔,就像在EA中那样

if(Hour()>=17&&Hour()<=11)return(0);

我需要从历史中排除处于区间内的蜡烛图,并将其排除在计算之外。

 
Tigerfreerun:
你好,我想创建一个条件,据此
在0-8步的时间段内,将等于5个点,在一天的其余时间内,10个点。但如果有前一天开出的订单,那么在0-8步的时间段也将等于10点。


情况可能是这样的。

  if(Hour()>=0&&Hour()<=8&&OrdersTotal()==0)step = 5; else step =10;
原因: