- 显示:
- 1143
- 等级:
- 已发布:
- 2016.12.22 11:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
检查日期是否属于冬季或夏季时间段。函数判断时间 (夏季或冬季)。
在 10 月份最后一个周日的夜间转换到冬季, 在 3 月份最后一个周日的夜间转换到夏季。
没有更可靠的方法来测算夏天和冬天的时间。
代码是为新闻调试开发的。
// // 算法于 2014.10.09 改进 // // YURAZ yzh@mail.ru // 函数判断夏季或冬季时间 // 在 10 月份最后一个周日的夜间转换到冬季 // 在 3 月份最后一个周日的夜间转换到夏季 // 没有更可靠的方法来测算夏天和冬天的时间 // 返回 0 - 夏季时间 // 返回 1 - 冬季时间 // int YZ_summer_time(datetime pdt) { MqlDateTime dt; TimeToStruct(pdt,dt); int code=1; if(dt.mon>=11 || dt.mon<=2) // 冬季 { code=1; } if(dt.mon>=4 && dt.mon<=9) // 夏季 { code=0; } datetime tSeek; MqlDateTime dtf; if(dt.mon==10) // 十月份 { if(dt.day<25) // 十月份最后一周的夜间 - 转换到冬季时间 code=0; // 依旧是夏季 else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.year)+".10.31 02:00"); // 设置十月份的最后一日 TimeToStruct(tSeek,dtf); for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // 必须查找从周六到周日的夜晚 break; tSeek=tSeek-86400; // ( 精确查找早晨 2 点钟, 因为外汇市场从星期六到星期天闭市, 所以转移本身没有意义 ) TimeToStruct(tSeek,dtf); } if(pdt<tSeek) { code=0; // 夏季 } else code=1; // 冬季 } } if(dt.mon==3) // 三月份 { if(dt.day<25) // 3 月份最后一个周日的夜间 - 转换到夏季时间 code=1; // 依旧是冬季 else { TimeToStruct(pdt,dtf); tSeek=StringToTime(IntegerToString(dtf.day_of_year)+".03.31 03:00"); // 设置三月份的最后一日 for(int i=31; i>=25; i--) { if(dtf.day_of_week==0 ) // 必须查找从周六到周日的夜晚 break; tSeek=tSeek-86400; // ( 精确查找早晨 3 点钟, 因为外汇市场从星期六到星期天闭市, 所以转移本身没有意义 ) TimeToStruct(tSeek,dtf); } if(pdt>tSeek) { code=0; // 夏季 } else code=1; // 冬季 } } return( code); }
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/11932

用于在 MetaТrader5 中计算开仓所需保证金的库。

流行的 Ilan 1.6 Dynamic 属于 "摊薄" 类别。Ilan 使用先进的资金管理公式, 可令亏损仓位盈利。现在 Ilan 1.6 Dynamic 的 MetaTrader 5 源代码也已推出。