求助一个关于海龟策略问题,请大神帮忙 [开拓者 TB]
-
咨询内容:
想表达最高价>=50日高点就开多
最低价<=50日最低点就开空
平多:最低价<=20日最低点
平空:最高价>=20日最高点
这是我从MC语言翻译过来的,回测记录不对,谁能帮我看看是哪写错了,拜托
Params
Numeric Lots(1);
Vars
NumericSeries MA1;
NumericSeries MA2;
NumericSeries MA3;
NumericSeries MA4;
Begin
//集合竞价和小节休息过滤
If (!CallAuctionFilter())Return;
MA1=Highest(High,50);
MA2=Lowest(Low,50);
MA3=Highest(High,20);
MA4=Lowest(Low,20);
PlotNumeric("MA1",MA1);
PlotNumeric("MA2",MA2);
PlotNumeric("MA3",MA3);
PlotNumeric("MA4",MA4);
//进场条件
if (MarketPosition!=1 And High[1]>=MA1[2])//多
{
Buy(Lots,Max(open,MA1[1]));
}
if (MarketPosition!=-1 And Low[1]<=MA2[2])//空
{
SellShort(Lots,Min(open,MA2[1]));
}
//出场条件
if (marketposition==1 And Low[1]<=MA4[2])//平多
{
BuyToCover(0,Min(open,MA4[1]));
}
if (marketposition==-1 And High[1]>=MA3[2])//平空
{
Sell(0,Max(open,MA3[1]));
}
End来源:CXH99.COM
-
TB技术人员:
不清楚你所讲的不对,是指哪个地方不对。
只是看到你的回溯数据看是否可以修改:
high/low是拿最新k线的high,还是上一根k线的high?
均线,是从前一个周期的bar开始算,还是从前两根bar开始算? -
TB客服:
spring_abc 发表于 2017-8-30 08:22
不清楚你所讲的不对,是指哪个地方不对。
只是看到你的回溯数据看是否可以修改:
high/low是拿最新k线的hig ...
拿开多举例:如果最高价>=50日最高点,第二天就开多,那么所提到的最高价就是前一天的最高价吧,而最高价又不能和当天的MA1比较,应该和前五十跟Bar的最高点比较较,所以是 High[1]>=MA1[2],再open,对吗?我是这样理解,这样写的。
if (MarketPosition!=1 And High[1]>=MA1[2])//多
{
Buy(Lots,Max(open,MA1[1]));
} -
网友回复:
marialeng 发表于 2017-8-30 10:14
拿开多举例:如果最高价>=50日最高点,第二天就开多,那么所提到的最高价就是前一天的最高价吧,而最高价 ...
1. 最高价>=50日最高点,是否可这样去解?
上一周期的高点high,就是近50个周期的最高点--->可以做成high[1] == MA1[1]
2. 对于多头,当出现最高价时,去下多单会有多大的风险,这个要看情况。空头反之亦然.
如果是突破行情或行情中继,应该可以。在底部有点像就是蛟龙出海(收盘价突然拉高并配合量,一下子高出前面几根均线)
但如果到行情结束,则应该需要注意。
总的来讲,大部分情况下,高于近期最高点后,后面可能会回抽。 - 网友回复:
spring_abc 发表于 2017-8-30 12:34
1. 最高价>=50日最高点,是否可这样去解?
上一周期的高点high,就是近50个周期的最高点---> ...
就算改成这样:high[1] == MA1[1],结果还是一样。
其实不想问策略本身的问题,因为我是负责翻译的,只想问我代码哪里写的不对。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容