以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 利润回撤提问 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=151788) |
-- 作者:a383623133 -- 发布时间:2017/4/18 10:00:33 -- 利润回撤提问 //该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!! //该模型运行于后台程序化模式 ZH1:\'1000\'; PZ1:\'IF00\'; VARIABLE:A=0; //条件判断 MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); CONDBUY:=CROSS(MA5,MA10); CONDSELL:=CROSS(MA10,MA5); //开仓和平仓 TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,LMT,CLOSE,0,ZH1,PZ1 ); TSELL(CONDSELL,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1); //移动止损模块部分******************************* //A有三种数值状态:1,0,最新价; //当A=1时表示当前有持仓,A=0时表示移动止损执行完毕,A=最新价时用于比较价格是否回落 //将A赋值为1,表示当前有持仓 IF TBUYHOLDINGEX( \'\',\'\' ,0 )>0 AND EXTGBDATA(\'a\' )=0 THEN BEGIN EXTGBDATASET( \'a\',1 ); END //使A始终表示监控开始后的最高价 IF DYNAINFO( 7)>EXTGBDATA(\'a\' ) and EXTGBDATA(\'a\' )>0 THEN BEGIN EXTGBDATASET( \'a\',DYNAINFO( 7)); END //发现价格回落止损,并将A赋值为0表示移动止损动作完成 IF EXTGBDATA(\'a\' )-DYNAINFO( 7)>5*MINDIFF and EXTGBDATA(\'a\' )>0 THEN BEGIN TSELL(1,1,MKT ); EXTGBDATASET( \'a\',0); END //******************************* 这是系统自带的移动止盈,不是很理解,想修改成最高盈利超过1%,回撤一半就平仓,该怎么修改??
|
-- 作者:qq代人发帖 -- 发布时间:2017/4/18 10:22:58 -- 用的后台交易吗? |
-- 作者:a383623133 -- 发布时间:2017/4/18 10:25:25 -- 对的 |
-- 作者:qq代人发帖 -- 发布时间:2017/4/18 11:07:25 -- hh:=hhv(h,tenterbars); ydzs:=2*(hh-tavgenterprice)>=hh-tavgenterprice;//移动止盈条件 |
-- 作者:a383623133 -- 发布时间:2017/4/18 14:28:21 -- 策略有时候会多空仓都有开并同时持有,好像会错乱。。。 |
-- 作者:FexTel -- 发布时间:2017/4/18 14:34:42 -- 看下后台监控日志,是不是监控里面有触发。实际账户没下单? |
-- 作者:a383623133 -- 发布时间:2017/4/18 14:40:59 -- 有先开了多仓,用debugout函数观察到tenterbars函数开始从0开始计数,当计数到3的时候,开空单条件触发,之后tenterbars函数输出又变0了
|
-- 作者:FexTel -- 发布时间:2017/4/18 14:46:13 -- 你自己加的空单?把你改后的代码发下,上面代码就一个多头 |
-- 作者:a383623133 -- 发布时间:2017/4/18 14:47:05 -- 账号:=\'\'; 多仓均价:=TAVGENTERPRICEEX2(账号 ,\'\',0 )linethick0; 空仓均价:=TAVGENTERPRICEEX2(账号 ,\'\',1 )linethick0; 多仓:TBUYHOLDINGEX(账号 , \'\', 0)linethick0; 空仓:TSELLHOLDINGEX(账号 ,\'\' ,0 )linethick0; 未成多仓:TBUYHOLDINGEX(账号 , \'\', 3)linethick0; 未成空仓:TSELLHOLDINGEX(账号 ,\'\' ,3 )linethick0; 买一价:=DYNAINFO( 28);卖一价:=DYNAINFO( 34); hh:hhv(h,tenterbars); 多仓最高盈利:=if(多仓>0,(hhv(h,tenterbars)-多仓均价)/多仓均价*100,0),linethick0;//得出% 空仓最高盈利:=if(空仓>0,(空仓均价-llv(l,tenterbars))/空仓均价*100,0),linethick0;//得出% debugout(\'持仓以来最高价:%.2f\',hh); debugout(\'多仓最高盈利:%.2f\',多仓最高盈利); debugout(\'空仓最高盈利:%.2f\',空仓最高盈利); debugout(\'持仓时长:%.2f\',tenterbars); ydzs:=2*(hh-tavgenterprice)>=hh-tavgenterprice;//移动止盈条件 if c>ref(c,1) and 多仓=0 then TBUY(1,手数,lmt,卖一价,0,账号,\'\');//开多 if c<ref(c,1) and 空仓=0 then TBUYSHORT(1,手数,lmt,买一价,0,账号,\'\');//开空 tSELL(tenterbars>5,0,lmt,买一价,0,账号,\'\');//平多(限价) tSELLSHORT(tenterbars>10,0,lmt,卖一价,0,账号,\'\');//平空(限价)
|
-- 作者:FexTel -- 发布时间:2017/4/18 14:59:16 -- 你这个代码 多空仓同时存在很正常啊! 看开平仓条件 |