请教各位大神,为什么我写个时间限制,在EA中运行实现不了,可以帮忙看一下是哪里有问题吗?

 
bool can_trade_by_time=true;
int OnInit()
  {

   return(INIT_SUCCEEDED);
  }

void OnTick()
  {

     Can_Trade();
}


 //Can_Trade 函数,用于进行交易相关的判断
void Can_Trade()
{
    // 定义订单开盘时间变量
    datetime PopenTime;
    // 如果成功选择到第 0 个订单(按位置选择,交易模式)
    if (OrderSelect(0, SELECT_BY_POS, MODE_TRADES) == true)
    {
        // 将订单的开盘时间赋值给 PopenTime
        PopenTime = OrderOpenTime();
    }
    // 获取当前货币对在当前周期下第 10 根 K 线的开盘时间
    datetime openTime = iOpen(Symbol(), PERIOD_CURRENT, 10);
    // 获取当前货币对在当前周期下第 0 根 K 线的收盘时间
    datetime closeTime = iClose(Symbol(), PERIOD_CURRENT, 0);
    // 定义一个表示当前是否可以交易的布尔变量,并初始化为 false
    bool can_trade_by_time_now = false;
    // 如果第 10 根 K 线的开盘时间大于等于订单开盘时间且订单开盘时间大于等于第 0 根 K 线的收盘时间
    if (openTime >= PopenTime && PopenTime >= closeTime)
    {
        // 将可以交易标志设置为 true
        can_trade_by_time_now = true;
    }
    // 将当前是否可以交易的结果赋值给 can_trade_by_time
    can_trade_by_time = can_trade_by_time_now;
}
 
if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES))
   if(OrderOpenTime()>iTime(_Symbol,PERIOD_CURRENT,10) && OrderOpenTime()<iTime(_Symbol,PERIOD_CURRENT,0))
      can_trade_by_time_now = true;

簡單一點 試一下看看

 
Hung Wen Lin #:

簡單一點 試一下看看

非常感謝你的解答,我剛剛測試了一下,在測試中還是不可以,達不到限制的效果,或許是我使用的方法不對

 

我不明白你的實際需求 根據你代碼的文意

開單時間介於10K線與0K線之間有作用編輯的

或許你的實際需求並不是這樣 另外我也沒有實際去測試 代碼也可能是錯的