- 精华
- 0
- 在线时间
- 64 小时
- UID
- 15026
- 积分
- 243
- 帖子
- 5
- 阅读权限
- 40
- 注册时间
- 2010-8-2
- 最后登录
- 2013-5-17
- 精华
- 0
- UID
- 15026
- 积分
- 243
- 帖子
- 5
- 主题
- 1
- 阅读权限
- 40
- 注册时间
- 2010-8-2
- 最后登录
- 2013-5-17
|
隔夜15分钟周期,为了避免最后一根线出信号时(14:45-1500之间),延时到第二天开盘动作,采用如下语句,因为需要显示信号,又不想错过最后一根线发出信号导致第二天开平仓高低开的损失,
思路是最后一根线用A_SendOrder,其它时候用BYU,SELL,请版主帮忙看看是否可行,如果有问题,请帮我修改下,谢谢!
MyOffset = MinMove*PriceScale;
If(BarStatus==0)
{
SetGlobalVar(1,0);
}
//静态测试------------------------------------------------------------------------------------
IF(BarStatus==1)
{
IF(GetGlobalVar(1) == 0)
{
IF(ZDKC[1]&&MarketPosition!=1)//zdkc是做多开仓条件,为避免信号消失,前置
{
BUY(1,OPEN);
}
IF(ZKKC[1]&&MarketPosition!=-1)//zKkc是做空开仓条件,为避免信号消失,前置
{
SELLSHORT(1,OPEN);
}
IF(zdpc[1]&&MarketPosition==1)//zdpc是做多平仓条件,为避免信号消失,前置
{
sell(1,OPEN);
}
IF(zkpc[1]&&MarketPosition==-1)//zKpc是做空平仓条件,为避免信号消失,前置
{
BUYTOCOVER(1,OPEN);
}
}
}
//动态---------------------------------------------------------------------------------------------------------
If (BarStatus==2)
{
IF((GetGlobalVar(1) == 0)&&TIME>=0.091500&&TIME<=0.144500)
{
IF(ZDKC[1]&&MarketPosition!=1)//zdkc是做多开仓条件,为避免信号消失,前置
{
BUY(1,CLOSE+ MyOffset);
}
IF(ZKKC[1]&&MarketPosition!=-1)//zKkc是做空开仓条件,为避免信号消失,前置
{
SELLSHORT(1,CLOSE+ MyOffset);
}
IF(zdpc[1]&&MarketPosition==1)//zdpc是做多平仓条件,为避免信号消失,前置
{
sell(1,CLOSE+ MyOffset);
}
IF(zkpc[1]&&MarketPosition==-1)//zKpc是做空平仓条件,为避免信号消失,前置
{
BUYTOCOVER(1,CLOSE+ MyOffset);
}
}
if((GetGlobalVar(1) == 0)&& (currenttime==0.145900))//最后一根15分钟线出信号,为了避开第二天开盘损失,当根线动作
{
if(NTHCON(zdkc,1)==0)//信号在当根K线
{
SetGlobalVar(1,1);
A_SendOrder(Enum_Buy, Enum_Entry, 1 ,Q_AskPrice + MyOffset) ; //多头开仓
}
if((NTCON(zdpc,1)==0&&MarketPosition==1)
{
A_SendOrder(Enum_Sell, Enum_Exit, 1 ,Q_BidPrice - MyOffset); //多头平仓
SetGlobalVar(1,2);
}
if(NTHCON(zkkc,1)==0)
{
SetGlobalVar(1,-1);
A_SendOrder(Enum_Sell, Enum_Entry, 1,Q_BidPrice - MyOffset); //空头开仓
}
if(NTHCON(zkpc,1)==0&&MarketPosition==-1)
{
SetGlobalVar(1,-2)
A_SendOrder(Enum_Buy,Enum_Exit, 1 , Q_AskPrice + MyOffset); //空头平仓
}
} |
|