- 精华
- 0
- 在线时间
- 3 小时
- UID
- 152558
- 积分
- 4
- 帖子
- 1
- 阅读权限
- 10
- 注册时间
- 2012-12-20
- 最后登录
- 2015-7-28
- 精华
- 0
- UID
- 152558
- 积分
- 4
- 帖子
- 1
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2012-12-20
- 最后登录
- 2015-7-28
|
如题,设置的都是1手的套利,最后变成这样。经常说信号消失之类。
代码如下:
Params
Numeric uplimit(360);
Numeric dnlimit(330);
Numeric stoploss(20);
Numeric getprofit(40);
Numeric movestopstart(10);//移动止损起始位置
Numeric movestop(20);//移动止损
Vars
Numeric minpoint;
NumericSeries spread;
NumericSeries status;
NumericSeries HigherAfterEntry;
NumericSeries LowerAfterEntry;
Numeric MyPrice;
Begin
minpoint=minmove*PriceScale;
spread=Data0.Close-Data1.Close;
If(BarsSinceEntry == 1)
{
HigherAfterEntry = spread;
LowerAfterEntry = spread;
}
else
{
HigherAfterEntry = max(HigherAfterEntry[1],spread[1]);
LowerAfterEntry = min(LowerAfterEntry[1],spread[1]);
}
If(status==0 && spread>=uplimit && spread[1]<uplimit)
{
data1.Buy(1, Close+2*minpoint);
data0.SellShort(1,Close-2*minpoint);
status=1;
}
If(status==1 && spread<=uplimit-getprofit )
{
data1.sell(1,Close-2*minpoint);
data0.BuyToCover(1,Close+2*minpoint);
status=0;
}
//移动止损
If(status==1 && LowerAfterEntry<=uplimit-movestopstart && BarsSinceEntry>1)
{
myprice=LowerAfterEntry+movestop;
if(spread>myprice)
{
data1.sell(1,Close-2*minpoint);
data0.BuyToCover(1,Close+2*minpoint);
status=0;
}
}
If(status==1 && spread>=uplimit+stoploss && BarsSinceEntry>1)
{
data1.sell(1,Close-2*minpoint);
data0.BuyToCover(1,Close+2*minpoint);
status=0;
}
If(status==0 && spread<=dnlimit && spread[1]>dnlimit)
{
data1.SellShort(1,Close-2*minpoint);
data0.Buy(1, Close+2*minpoint);
status=2;
}
If(status==2 && spread>=dnlimit+getprofit)
{
data1.BuyToCover(1,Close+2*minpoint);
data0.Sell(1, Close-2*minpoint);
status=0;
}
//移动止损
If(status==2 && HigherAfterEntry>=Dnlimit+movestopstart && BarsSinceEntry>1)
{
myprice=HigherAfterEntry-movestop;
if(spread<myprice)
{
data1.BuyToCover(1,Close-2*minpoint);
data0.Sell(1, Close+2*minpoint);
status=0;
}
}
If(status==2 && spread<=dnlimit-stoploss && BarsSinceEntry>1)
{
data1.BuyToCover(1,Close-2*minpoint);
data0.Sell(1,Close+2*minpoint);
status=0;
}
PlotNumeric("价差",spread);
PlotNumeric("1",HigherAfterEntry);
PlotNumeric("2",LowerAfterEntry);
End
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|