有请小米,网校老师介绍的跟踪止损,加载后只有开多平多 [开拓者 TB]
- 咨询内容:
本帖最后由 abc123wh 于 2014-4-25 21:09 编辑
按照老师讲解的跟踪止盈的公式抄了一遍,然后加载到图标上发现只有做多和平多的信号,但是公式里面有开空的语句,不知道为什么不能执行,请斑竹看看问题在什么地方?
Params
Numeric length1(10);
Numeric length2(20);
Numeric lots(1);
Numeric ATRlength(20);
Numeric trailstop(2);
Vars
NumericSeries ma1;
NumericSeries ma2;
NumericSeries ATRvalue;
NumericSeries HIAfterEnetry;
NumericSeries Loafterentry;
Numeric stopline;
BoolSeries blongstoped(False);
BoolSeries bshortstoped(false);
Begin
ATRvalue=AvgTrueRange(atrlength);
ma1=AverageFC(close,length1);
ma2=AverageFC(close,length2);
PlotNumeric ("ma1",ma1);
PlotNumeric ("ma2",ma2);
if (!blongstoped and MarketPosition<>1 and ma1[1]>ma2[1])
{
Buy(lots,open);
bshortstoped=False;
}
if (!bshortstoped And MarketPosition<>-1 and ma1[1]<ma2[1])
{
SellShort(lots,open);
blongstoped=False;
}
If(blongstoped And MarketPosition<>1 and High>=HIAfterEnetry)
{
buy(lots,Max(open,HIAfterEnetry));
blongstoped=False;
}
If (bshortstoped and MarketPosition<>-1 And low <=Loafterentry)
{
SellShort(lots,Min(open,Loafterentry));
bshortstoped=False;
}
if (MarketPosition==1 and BarsSinceEntry==0) HIAfterEnetry=High;
if (MarketPosition==1 and BarsSinceEntry>=1)HIAfterEnetry=max(HIAfterEnetry,High);
If (MarketPosition==-1 and BarsSinceEntry==0)Loafterentry=Low;
if (MarketPosition==-1 and BarsSinceEntry>=1)
Loafterentry=Min(Loafterentry,Low);
if (BarsSinceEntry>0 and MarketPosition==1)
{
stopline=HIAfterEnetry[1]-trailstop*ATRvalue[1];
If(low<=stopline)
{
Sell(0,min(open,stopline));
blongstoped=True;
}
}Else if (BarsSinceEntry>0 and MarketPosition==-1);
{
stopline=Loafterentry[1]+trailstop*ATRvalue[1];
If(high>=stopline)
{
BuyToCover(0,Max(open,stopline));
bshortstoped=True;
}
}
End
下面是截图
222222222222222222222.jpg (98.68 KB, 下载次数: 0) 2014-4-25 11:06:31 上传 - TB技术人员:
问题在于倒数第十行代码里,最后边多 了一个分号。去掉那个if( )后面的分号即可。
- TB客服:
小米 发表于 2014-4-25 13:17
问题在于倒数第十行代码里,最后边多 了一个分号。去掉那个if( )后面的分号即可。 ...
3q
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容