2 頁面的第 562 頁 FirstFirst 12
Results 11 to 13 of 13

Thread: StrToTime函数

  1. #11

    Quote Originally Posted by ;
    那些使用经过午夜的范围的人们呢?
    插入的代码stringTimeStart = 22:00;/10PM stringTimeEnd = 10:00;/第二天的10AM stringBrokerDate; int_TimeStart,_TimeEnd;/这些应该在start()之内从不在init if(TimeCurrent()gt; _TimeEnd){//第一次这将始终为真确保BrokerDate有效//为什么我们要这样做?以确保BrokerDate和_TimeEnd不会以mouse比赛结束BrokerDate = TimeToStr(TimeCurrent(),TIME_DATE); } _TimeStart = StrToTime(BrokerDate TimeStart); _TimeEnd = StrToTime(BrokerDate TimeEnd); if(_TimeStart gt; _TimeEnd){_TimeEnd = _TimeEnd 86400;/添加1天}/现在可以自由使用_TimeStart和_TimeEnd与TimeCurrent()进行比较此代码是为EAScript编写的。根据你想使用的位置,它可能会有不同的效果。

  2. #12
    下面是几个月前为客户端写的一个盒子突破EA的代码片段:插入的代码::::::::extern string StartTime = 07:00;/开始建立价格窗口的时间extern string EndTime = 08:00;/时间结束价格建立窗口extern字符串ExpiryTime = 06:00;/挂单的到期时间,以及任何仍然打开的订单关闭extern int Clearance = 5;/入口价格'安全'容差高于窗口高度,低于窗口低位extern double MinWinHgt = 0;/如果价格窗口(包括清除)lt;这个值,今天不允许下单。extern double MaxWinHgt = 9999;/如果价格窗口(包括清仓)GT;这个值,今天不允许下单:::::::int start(){double dt0 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) 00:00:00); double dt1 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) StartTime :00); double dt2 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) EndTime :00); double dt3 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) ExpiryTime :00);如果(dt3 lt; dt2)dt3 = 86400; int ib1 = iBarShift(NULL,0,dt1); int ib2 = iBarShift(NULL,0,dt2); if(TimeCurrent())= dt2 TimeCurrent()lt; = dt3){double vHigh = 0,vLow = 999; for(int j = ib1; jgt; ib2; j--){vHigh = MathMax(vHigh,High#91; j#93; Clearance * pnt); vLow = MathMin(vLow,Low#91; j#93; -Clearance * pnt); }如果(vHigh-vLow <= MaxWinHgt * pnt vHigh-vLow gt; = MinWinHgt * pnt){:::::::dt0是当天的午夜(MT4时间)dt1是开始时间(MT4时间)dt2是接线盒的结束时间(MT4时间)dt3是到期时间(MT4时间)订单只能放置在dt2(接线盒的末端)和dt3(指定的到期时间)之间, 。因此,如果需要,我会在dt3中添加86400(24小时制中的秒数),以确保它始终大于dt2(就像Ragnakore一样)。然后,如果TimeCurrent()位于dt2和dt3之间,则EA仅发出订单。 (vHigh和vLow是突破框中获得的最高和最低价格,以及指定的用户提供的清仓)。希望这可以帮助。

  3. #13
    哇汉诺威!非常感谢你的代码块。不过,我想知道,除了初始化之外,我没有看到变量dt0。那么,你如何通过午夜工作?假设我希望范围的开始时间为昨天23:00,范围的结束时间为今天的3:00。这块代码如何做到这一点?我大胆添加了一个片段,试图完成我正在尝试做的事情。插入的代码::::::::extern string StartTime = 07:00;/开始建立价格窗口的时间extern string EndTime = 08:00;/时间结束价格建立窗口extern字符串ExpiryTime = 06:00;/挂单的到期时间,以及任何仍然打开的订单关闭extern int Clearance = 5;/入口价格'安全'容差高于窗口高度,低于窗口低位extern double MinWinHgt = 0;/如果价格窗口(包括清除)lt;这个值,今天不允许下单。extern double MaxWinHgt = 9999;/如果价格窗口(包括清仓)GT;这个值,今天不允许下单:::::::int start(){double dt0 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) 00:00:00); double dt1 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) StartTime :00); double dt2 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) EndTime :00); double dt3 = StrToTime(TimeToStr(TimeCurrent(),TIME_DATE) ExpiryTime :00);如果(dt3 lt; dt2)dt3 = 86400; #91; b#93; if(dt1> dt2)dt1 = StrToTime(TimeToStr(TimeCurrent() - 86400,TIME_DATE) StartTime :00);#91;b#93;/如果StartTime在同一天大于EndTime,则代码假定预期的开始时间为86400秒。 int ib1 = iBarShift(NULL,0,dt1); int ib2 = iBarShift(NULL,0,dt2); if(TimeCurrent())= dt2 TimeCurrent()lt; = dt3){double vHigh = 0,vLow = 999; for(int j = ib1; jgt; ib2; j--){vHigh = MathMax(vHigh,High#91; j#93; Clearance * pnt); vLow = MathMin(vLow,Low#91; j#93; -Clearance * pnt); } if(vHigh-vLow lt; = MaxWinHgt * pnt vHigh-vLow gt; = MinWinHgt * pnt){:::::::

發布權限

  • 您不可發布新主題
  • 您不可回复
  • 您不可發布附件
  • 您不可編輯您的帖子
  •  
  • BB代碼是打開的
  • 表情符號是打開的
  • [IMG]代碼是打開的
  • [視頻]代碼是打開的
  • HTML代碼是關閉的