最新价上穿60日均线 平空并开多并设20个点止损(以股指为例)
最新价下破60日均线 平多并开空并设20个点止损
要求:1·持续持仓;
2·确保成交(信号一出就交易,不等到此周期结束,平空或开多用卖出价,平多或开空用买入价);
3·当天同一品种连续5次亏损,此品种当日不再交易;
4·本程序适用于金字塔决策普通版图表程序化交易和标准版后台程序化交易;
5·本程序适用于各种周期;
再加两点
6·周末清空所有持仓;
7·隔夜或隔午跳空后,最新价与均价差20个点以上只平仓不开仓;
6不好判断一周的最后一天是否交易,也不好判断哪天是一周的最后一天,请楼主自己手动平仓吧.
7.请楼主了解之后自己实现吧
//K线走完模式----固定时间间隔会信号消失,推荐用K线走完,
//适用版本:标准版
//适用日线以下周期
runmode:0;
variable:lossnum=0;// 全局变量,平仓时判断一下是否亏损,若亏损lossnum就加1
ma60:ma(close,60);
if CROSS(close,ma60) and holding<0 and enterbars>0 then
begin
sellshort(1,1,market),orderqueue;
if c>enterprice then lossnum:=lossnum+1;
end
if CROSS(close,ma60) and holding=0 and lossnum<5 then
begin
buy(1,1,market),orderqueue;
end
if CROSS(ma60,close) and holding>0 and enterbars>0 then
begin
sell(1,1,market),orderqueue;
if c<enterprice then lossnum:=lossnum+1;
end
if CROSS(ma60,close) and holding=0 and lossnum<5 then
begin
buyshort(1,1,market),orderqueue;
end
//止损平仓
if holding>0 and enterbars>0 then
begin
sell(low<enterprice-20*mindiff,0,market);
if c<enterprice then lossnum:=lossnum+1;
end
if holding<0 and enterbars>0 then
begin
sellshort(high>enterprice+20*mindiff,0,market);
if c>enterprice then lossnum:=lossnum+1;
end
if time=151500 then begin
lossnum:=0;//每天收盘时要重新赋值为0
end
测试过不去呀,新旧版混用
两个或两个以上周期连续上穿或下破时就失真
从信号上看,只会在第一次上穿或下破时开仓或者平仓.
您可以从策略角度,好好在思量思量,完善一下自己的策略.
//止赢平仓
if holding>0 and enterbars>0 then
begin
sell(low>enterprice+50*mindiff,0,market);
end
if holding<0 and enterbars>0 then
begin
sellshort(high<enterprice-50*mindiff,0,market);
end