- 精华
- 0
- 在线时间
- 49 小时
- UID
- 220924
- 积分
- 18
- 帖子
- 10
- 阅读权限
- 10
- 注册时间
- 2015-10-8
- 最后登录
- 2015-12-15
- 精华
- 0
- UID
- 220924
- 积分
- 18
- 帖子
- 10
- 主题
- 7
- 阅读权限
- 10
- 注册时间
- 2015-10-8
- 最后登录
- 2015-12-15
|
Params
Vars
Numeric Sets(1); //下单组数,每组包含Lots0\Lots1\Lots2
Numeric Threshold(125); //Threshold
Numeric Threshold_ping(100);
Numeric FastEMA(2); //快线参数
Numeric SlowEMA(11); //慢线参数
NumericSeries FastValue; //快线
NumericSeries SlowValue; //慢线
//data0 螺纹
//data1 铁矿
//data2 焦炭
NumericSeries Diff;
Numeric Minpoint0;
Numeric Minpoint1;
Numeric Lots0(10);//数量
Numeric Lots1(7);//数量
Bool SendOrderThisBar(False);
NumericSeries flag(0);
NumericSeries StartFlag(0);
NumericSeries Startflag_ping(0);
NumericSeries EndFlag(0);
NumericSeries HoldingPositions_0(0);
NumericSeries HoldingPositions_1(0);
BoolSeries Volcon(False);
Begin
// 集合竞价和小节休息过滤
If(!data0.CallAuctionFilter() Or!data1.CallAuctionFilter() ) Return;
MinPoint0 = data0.MinMove*data0.PriceScale;
MinPoint1 = data1.MinMove*data1.PriceScale;
diff=Data0.Close-0.7*Data1.Close+245-538;
FastValue=XAverage(diff,FastEMA);
SlowValue=XAverage(LinearRegSlope(diff,SlowEMA)*(SlowEMA-1)+diff,2*SlowEMA);
Volcon=data0.Vol>0 And data1.Vol>0 ;
PlotNumeric("diff",diff);
PlotNumeric("FastValue",FastValue);
PlotNumeric("SlowValue",SlowValue);
if(BarStatus==2)
{
//开始执行条件
if(diff[1]>=Threshold And startflag<>1)
{
Startflag=1;
Startflag_ping=0;
EndFlag=0;
}
//Threshold 以上才建立空单
if(Startflag==1 And Volcon[1])
{
//持仓为0
//平掉既有持仓
if(FastValue[1]>SlowValue[1] And diff[1]>Threshold)
{
flag=0;
//处理螺纹
if(HoldingPositions_0<>flag Or HoldingPositions_1<>-1*flag )
{
if(HoldingPositions_0==-1 Or HoldingPositions_1 ==1)
{
data0.BuyToCover(0,data0.Open+MinPoint0);
data1.Sell(0,data1.Open-MinPoint1);
HoldingPositions_0=0;
HoldingPositions_1=0;
}
Else if(HoldingPositions_0==1 Or HoldingPositions_1 ==-1)
{
data0.Sell(0,data0.Open-Minpoint0);
data1.BuyToCover(0,data1.Open+Minpoint1);
HoldingPositions_0=0;
HoldingPositions_1=0;
}
}
}
//持仓为-1
//建立空头头寸
Else
{
flag=-1;
//处理螺纹
if(HoldingPositions_0<>flag Or HoldingPositions_1<>-1*flag )
{
if(HoldingPositions_0==0 Or HoldingPositions_1==0)
{
data0.SellShort(Sets*lots0,data0.Open-MinPoint0);
data1.Buy(Sets*lots1,data1.Open+MinPoint1);
HoldingPositions_0=-1;
HoldingPositions_1=1;
}
Else if(HoldingPositions_0==1 Or HoldingPositions_1==-1)
{
data0.Sell(0,data0.Open-Minpoint0);
data0.SellShort(Sets*lots0,data0.Open-MinPoint0);
data1.BuyToCover(0,data1.Open+Minpoint1);
data1.Buy(Sets*lots1,data1.Open+MinPoint1);
HoldingPositions_0=-1;
HoldingPositions_1=1;
}
}
}
//开始执行条件
if(diff[1]<=Threshold_ping And Startflag_ping<>1)
{
Startflag_ping=1;
Startflag=0;
}
//Threshold 以下才平空单
if(Startflag_ping==1 And EndFlag==0 And Volcon[1])
{
if(FastValue[1]>SlowValue[1])
{
data0.BuyToCover(Sets*Lots0,data0.Open+Minpoint0);
data1.Sell(Sets*lots1,data1.Open-Minpoint1);
EndFlag=1;
}
}
}
}
Commentary(Text(flag));
Commentary(Text(Startflag));
Commentary(Text(BarStatus));
End
以上代码为什么会提示交易讯号有可能消失,且出现了重复发单的问题,谢谢版主! |
|