请老师帮忙编写一个简单策略:
MA10金叉MA20开1手多单,不设止损,当死叉时平仓。多单盈利20个点时加仓1手同时设止损在第一单开单处。
MA10死叉MA20开1手空单,不设止损,当金叉时平仓。空单盈利20个点时加仓1手同时设止损在第一单开单处。
最大盈利10000元时平仓当前所有仓位。
1.后台还是图表程序化
2.“多单盈利20个点时加仓1手同时设止损在第一单开单处。” 红字部分是指止损价设置在开仓价位置?
是的 第一单的时候不设止损,当开第二单的时候才设,设在第一单的开单位置。@
FireScript
ma10:ma(c,10);
ma20:ma(c,20);
majc:cross(ma10,ma20);
masc:cross(ma20,ma10);
if majc then //金叉
begin
sellshort(holding<0,holding,market);//平空仓
buy(holding=0,1,market); //开多仓
end
if masc then //死叉
begin
sell(holding>0,holding,market);//平多仓
buyshort(holding=0,1,market); //开空仓
end
if holding>0 and c-ENTERPRICE>=20*MINDIFF then //加仓
begin
buy(holding<>2,1,market);
end
if holding<0 and ENTERPRICE-c>=20*MINDIFF then //加仓
begin
buyshort(holding<>-2,1,market);
end
p1:=ref(ENTERPRICE,ENTERBARS+2);//如果有2次开仓,这里获取第一次开仓价
if holding=2 and c<p1 then
begin
sell(holding>0,holding,market);
end
if holding=-2 and c>p1 then
begin
sellshort(holding<0,holding,market);
end
大致范例如上所示:
[此贴子已经被作者于2018/8/30 16:11:19编辑过]
这个不行的,图表上做不到同一个K开仓 ,并在此基础上根据这个开仓的盈利情况进行加仓的。
每一个K线就四个价格:开高低收,你判断开仓条件用的价格和你判断加仓条件用的价格都是一样的价格,显然无法在同一个K上同时成立的。
选择了 但是只有不到一整年的数据。我选择的跨度是六七年呢