以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师修改策略  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=175060)

--  作者:yzhybw
--  发布时间:2020/3/20 8:47:34
--  请老师修改策略
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//策略:唐奇安通道
//简介:唐奇安通道(Donchian channel)这个策略可以称得上是所有日内策略的鼻祖。
//类型:皆可
//周期:
//使用市场:
//详情介绍网址:http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=30353
//版本:1.0
//修订时间:2012.11.3
//DESIGNED BY ROGARZ
 
//中间变量
INPUT:X(20,1,100,1),NMIN(10,1,100,1),SS(1,1,10000,1);
X周期高点:=REF(HHV(H,X),1);//X是参数,自行调整
X周期低点:=REF(LLV(L,X),1);
手数:=SS;
开仓时间:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
平仓时间:=TIME>=CLOSETIME(0)-NMIN*100;
{NMIN为参数,CLOSETIME(0)-NMIN*100表示 收盘时间-提前N分钟 N由NMIN控制}
 
//交易条件:
开多平空条件:=High>=X周期高点 and 开仓时间 and holding<=0;
开空平多条件:=Low<=X周期低点 and 开仓时间 and holding>=0;
//交易系统
收盘平多:sell(平仓时间 and holding>0, 0, thisclose);
收盘平空:sellshort(平仓时间 and holding<0,0,thisclose);
平空:sellshort(开多平空条件 and holding<0, 手数,limitr,X周期高点);
平多:sell(开空平多条件 and holding>0,手数,limitr,X周期低点);
开空:buyshort(开空平多条件 and holding=0,手数,limitr,X周期低点);
开多:buy(开多平空条件 and holding=0, 手数,limitr,X周期高点);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值


请老师把上面的策略改成股票可用的中长线策略。

--  作者:FireScript
--  发布时间:2020/3/20 9:10:50
--  
具体修改的逻辑需要用户提供下。你只说改成中长线策略,我们这边是无法处理的。
--  作者:yzhybw
--  发布时间:2020/3/20 9:14:15
--  
把当天开仓平仓去掉
--  作者:yzhybw
--  发布时间:2020/3/20 9:16:43
--  
改成象布林强盗系统就可以了,每个周期都可以用。
--  作者:yzhybw
--  发布时间:2020/3/20 9:18:06
--  
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//策略:布林强盗系统
//简介:布林带(BOLL)是由John Bollinger在20世纪60年代创建的。
//类型:中长期通道突破
//周期:
//使用市场:
//详情介绍网址:http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=30382
//修订时间:2012.11.4
//版本:1.0
//DESIGNED BY ROGARZ
 
//中间变量
INPUT:M(50,5,300,1),N(1.25,0.1,2,0.1),D(30,1,30,1),SS(99000,1,99000,1);
VARIABLE:X:=50;
MID :  MA(CLOSE,M);//布林中轨
UPPER:MID + N*STD(CLOSE,M);//布林上轨
LOWER:MID - N*STD(CLOSE,M);//布林下轨
CYC:=ENTERBARS+1,NOAXIS;//开仓至今的周期数
HC30:=REF(HHV(C,D),1);//30周期收盘价高点
LC30:=REF(LLV(C,D),1);//30周期收盘价低点
手数:=SS;
出场MA:MA(CLOSE,IF(HOLDING<>0,IF(CYC>=40,10,51-CYC),50));
 
//交易条件
开多平空条件:=C>HC30 AND H>REF(UPPER,1);//收盘价大于30周期收盘价最高值,且最高价上穿上轨
开空平多条件:=C<LC30 AND L<REF(LOWER,1);//收盘价小于30周期收盘价最高值,且最低价下穿下轨
多头出场条件:=C<出场MA AND 出场MA<UPPER;
空头出场条件:=C>出场MA AND 出场MA>LOWER;
//交易系统
多头出场:SELL(多头出场条件 AND HOLDING>0,手数,marketr,C);
空头出场:SELLSHORT(空头出场条件 AND HOLDING<0,手数, marketr,C);
 
平多:SELL(开空平多条件 AND HOLDING>0,手数, marketr,C);
开多:BUY(开多平空条件 AND HOLDING<=0,手数, marketr,C);
//注意先平后开原则
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值

--  作者:yzhybw
--  发布时间:2020/3/20 9:18:38
--  
象上面的策略就可以
--  作者:wenarm
--  发布时间:2020/3/20 9:22:07
--  

CLOSEPOSMODE:1; //指定图表理论平仓模式为优先平老仓
ODDLOTSMODE:1;  //不允许零股交易,例如股票将按照最小100股单位调整
//中间变量
INPUT:X(20,1,100,1),NMIN(10,1,100,1),SS(1,1,10000,1);
X周期高点:=REF(HHV(H,X),1);//X是参数,自行调整
X周期低点:=REF(LLV(L,X),1);
手数:=SS;


可平:=HOLDING-DAYHOLDING;

//交易条件:
开多条件:=High>=X周期高点  and holding=0;
平多条件:=Low<=X周期低点  and 可平>0;
//交易系统

平多:sell(平多条件,手数,limitr,X周期低点);
开多:buy(开多条件, 手数,limitr,X周期高点);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值

[此贴子已经被作者于2020/3/20 9:27:48编辑过]

--  作者:FireScript
--  发布时间:2020/3/20 9:23:25
--  
 INPUT:X(20,1,100,1),NMIN(10,1,100,1),SS(1,1,10000,1);
X周期高点:=REF(HHV(H,X),1);//X是参数,自行调整
X周期低点:=REF(LLV(L,X),1);
手数:=SS;
开仓时间:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
平仓时间:=TIME>=CLOSETIME(0)-NMIN*100;
{NMIN为参数,CLOSETIME(0)-NMIN*100表示 收盘时间-提前N分钟 N由NMIN控制}
 
//交易条件:
老仓:HOLDING-DAYHOLDING;
开仓条件:=High>=X周期高点 and 开仓时间 and DAYHOLDING=0;
平仓条件:=Low<=X周期低点 and 开仓时间 and 老仓>=0;
//交易系统
收盘平多:sell(平仓时间 and 老仓>0, 0, thisclose);
平多:sell(平仓条件 and 老仓>0,手数,limitr,X周期低点);
开多:buy(开仓条件 and HOLDING=0, 手数,limitr,X周期高点);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值


这样就差不多了。

--  作者:yzhybw
--  发布时间:2020/3/20 9:39:41
--  
wenarm老师修改的可以用,FireScript老师修改的没法优化。
--  作者:yzhybw
--  发布时间:2020/3/20 9:40:59
--  
谢谢两位老师。