下载MetaTrader 5

大家帮帮忙!当这根K线上已完成一次平仓,则这根K线上不许开仓,程序代码应如何写?

要添加评论,请登录注册
您在市场已经发布程序了吗?也把它放到您的博客中 - 窗口小工具将帮到您!
alf_ssm
50
alf_ssm 2015.04.22 07:29 

谢谢您呢!我这这样的写法不知道正确否?

int  kongdan()
{
int a;
datetime time0;
if(OrderSelect(0,SELECT_BY_POS ,MODE_HISTORY)==TRUE)
  {
  time0=iTime(NULL,PERIOD_H1,0);
  if(time0!=OrderCloseTime())a=1;
  }
return a ;
}如果kongdan()==1则可以下单,否则不能下单?这样做有没有问题?

Ziheng Zhuang
1593
Ziheng Zhuang 2015.04.25 05:48  
alf_ssm:

谢谢您呢!我这这样的写法不知道正确否?

int  kongdan()
{
int a;
datetime time0;
if(OrderSelect(0,SELECT_BY_POS ,MODE_HISTORY)==TRUE)
  {
  time0=iTime(NULL,PERIOD_H1,0);
  if(time0!=OrderCloseTime())a=1;
  }
return a ;
}如果kongdan()==1则可以下单,否则不能下单?这样做有没有问题?

bool kongdan(int magic)
{
     static int tf =PERIOD_H1;
     for(int i=OrdersHistoryTotal()-1;i>=0;i--){
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
             if(OrderMagicNumber()==magic&&OrderSymbol()==Symbol()){
              if(iBarShift(NULL,tf,OrderCloseTime())==0)return(true);
            }
         }         
     }
     return(false);
}
luo jun
142
luo jun 2015.04.29 07:35  

我是这样写的orderselect中的第一个参数应该是total -1。然后用当前的时间与最后一次交易时间做比较,如果大于一个周期的时间那就说明不在一个线上,如果小于一个周期的时间则要考虑是小于多少,分为2种情况。

code不在身边所以没法贴出来。

enbo lu
版主
1947
enbo lu 2015.05.19 17:05  

获取历史订单要注意,如果用户改变了历史订单列表的时间段,可能造成获取错误。

BaiChun Li
842
BaiChun Li 2015.06.06 10:35  
enbo lu:

获取历史订单要注意,如果用户改变了历史订单列表的时间段,可能造成获取错误。

的确说的非常有道理!
要添加评论,请登录注册