- 显示:
- 233
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
当接收到新条形码 或新蜡烛 码时,该代码块将对其进行检测。
代码的基本原理非常简单。首先,代码会存储 上一个条形图/蜡烛图的时间。(然后在前一个条形图的时间基础上增加60 秒(相当于1 分钟, 您可以根据需要增加时间),得出 当前条形图/蜡烛图的收盘时间值。
一次
当前时间 = 当前条形图/蜡烛图的收盘时间值。 这意味着新的条形图/蜡烛 图已经收盘。
在此代码中,标志(bool 类型变量 "NewBarRecivedNewBarRecived') 这意味着每个条形图/蜡烛图只执行一次代码块。Comment(); 和playsound("ok.wav") ; 用于检查代码块的准确性。如果需要,可以将其删除。
一旦当前时间高于当前蜡烛的收盘时间,该标志就会重置为 false,以检查下一交易日的到来。(请观看注释)。
//+------------------------------------------------------------------+ //|新条检测。mq5 //|作者:H A T Lakmal | //|https://t.me/Lakmal846 | | //+------------------------------------------------------------------+ bool NewBarRecived = false; // 法尔格进行控制。 //+------------------------------------------------------------------+ //| 专家初始化函数| //+------------------------------------------------------------------+ int OnInit() { //--- 创建计时器 EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 专家去初始化函数| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- 销毁计时器 EventKillTimer(); } //+------------------------------------------------------------------+ //| 专家勾选功能| //+------------------------------------------------------------------+ void OnTick() { datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); datetime TimeCurrentClose = TimePreviousBar + 60; // 当前条形图的收盘时间。 datetime Time_Current = TimeCurrent(); if(Time_Current == TimeCurrentClose && NewBarRecived == false) { PlaySound("ok.wav"); // 对于不是的声明工作。 NewBarRecived = true; // 更新标志以避免多次调用。 // 您的代码放在这里 -----(做某事) } else if(Time_Current > TimeCurrentClose) { NewBarRecived = false; // 为下一个打开的栏位设置标记。 // 您的代码放在这里 -----(做某事) } Comment("\n" + "\n" + "Time Current Bar -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Time Current Close -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Time Current -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" +"\n" + "A New Bar Recived -: " + NewBarRecived); // 用于检查计算 } //+------------------------------------------------------------------+ //| 定时器功能| //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| 贸易功能| //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+ //| 图表事件函数| //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/49018
Code Block for "Trailing Stop" based on current market price. (Ask / Bid)
该代码块循环浏览所有已开仓头寸,并根据卖出价和买入价进行追踪。
ConvertServerTime
将服务器时间从一个经纪人时区转换为另一个时区的功能。