以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 亏损加仓的代码问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=168558) |
-- 作者:火焱14895 -- 发布时间:2019/3/4 9:46:22 -- 亏损加仓的代码问题 请教:我想在以下的基础上加上亏损加仓,怎么写?我试了两天都没搞定!谢谢。 代码: VARIABLE:ct1:=0,ct2:=0; jc1:holding>0 and MID>AvGENTERPRICE;//多头加仓条件if jc1 then begin buy(holding>0 and ct1<2,1,market); ct1:=ct1+1; end jc2:holding<0 and AvGENTERPRICE<MID;//空头加仓条件 if jc2 then begin buyshort(holding<0 and ct2<2,1,market); ct2:=ct2+1; end zs1:holding>0 and MID<AvGENTERPRICE;//多头止损条件 if zs1 then begin sell(holding>0,holding,market); ct1:=0; end zs2:holding<0 and MID>AvGENTERPRICE;//空头止损条件 if zs2 then begin sellshort(holding<0,holding,market); ct2:=0; end 我要加入的是:连续亏损两次后,在后面的交易开始,每亏损一次加一手单,直到盈利为止。而原来的加仓条件不变。(上面颜色部分)十分感谢!
|
-- 作者:FireScript -- 发布时间:2019/3/4 9:53:52 -- 你只要把你这里的所有开仓语句里面的手数参数换成:ss+NUMLOSSTRADE 比如这里: ss定义成1 buyshort(holding<0 and ct2<2,ss+NUMLOSSTRADE,market); 不过现在有个问题。这个函数能获取亏损次数,但是这个是不区分多空的,多头亏损和空头亏损都统计在内的。
|
-- 作者:火焱14895 -- 发布时间:2019/3/4 10:49:21 -- 老师:这里是加仓的条件喔。我要的是第一次开单,平仓后,亏损了,下一手单还是亏,第三手单开多一手单。而多头加仓只是盈利后才加的。 |
-- 作者:FireScript -- 发布时间:2019/3/4 14:21:03 -- 1. 你这里的亏损统计是多头和空头一并统计在一起吗?比如最近开过一次多 亏损 一次空 亏损,那么如果是合并统计的话,那就已经算是2次亏损了。第三次无论开多空都会增加开仓手数。 2.“每亏损一次加一手单,直到盈利为止。” 这里的盈利是指总的资金的盈利还是说单笔交易的盈利?
[此贴子已经被作者于2019/3/4 14:21:27编辑过]
|
-- 作者:火焱14895 -- 发布时间:2019/3/4 14:29:36 -- 1.总资金盈利怎么写? 2.如果是单笔盈利又怎么写? 我把现在的代码写给您看看,应该改? VARIABLE: ct1:=0, ct2:=0; K:=2; MID: MA(CLOSE,M);//布林中轨 UPPER: MID + K*STD(CLOSE,M);//布林上轨 LOWER: MID - K*STD(CLOSE,M);//布林下轨 ss1:CEILING(30/(UPPER-MID)); ss2:CEILING(30/(MID-LOWER)); ss3:=(30/(UPPER-MID)); ss4:=(30/(MID-LOWER)); buycond1:h>=UPPER; buycond2:l<=LOWER; 开多:buy(buycond1 and holding=0,ss1+NUMLOSSTRADE,market); 开空:buyshort(buycond2 and holding=0,NUMLOSSTRADE+SS2,market); jc1:=holding>0 and MID>=AVGENTERPRICE and ct1<2;//多头加仓条件 if jc1 then begin 加仓1:buy(holding>0 and ct1<2,SS3,market); ct1:=ct1+1; end jc2:=holding<0 and AVGENTERPRICE>=MID and ct2<2 ;//空头加仓条件 if jc2 then begin 加仓2:buyshort(holding<0 and ct2<2,ss4,market); ct2:=ct2+1; end ydzs1:l<MID and holding>0;//多头止损条件 if ydzs1 then begin 止损1:sell(holding>0,holding,market); ct1:=0; end ydzs2:h>MID and holding<0;//空头止损条件 if ydzs2 then begin 止损2:sellshort(holding<0,holding,market); ct2:=0; end 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; 非常感谢!!!!!!!!!!!! |
-- 作者:火焱14895 -- 发布时间:2019/3/4 14:32:09 -- 现在的这个代码是做不到我想要的。 |
-- 作者:火焱14895 -- 发布时间:2019/3/4 14:41:00 -- 还有,是连亏2次后,才开起开多一手单。謝 |
-- 作者:FireScript -- 发布时间:2019/3/4 15:27:10 -- 你先解决下我4楼的疑问,不然没办法帮你处理。 |
-- 作者:火焱14895 -- 发布时间:2019/3/4 17:35:37 -- 十分感谢你的回答: 1. 你这里的亏损统计是多头和空头一并统计在一起吗?比如最近开过一次多 亏损 一次空 亏损,那么如果是合并统计的话,那就已经算是2次亏损了。第三次无论开多空都会增加开仓手数。 答:是的。是多头和空头一并统计在一起。 2.“每亏损一次加一手单,直到盈利为止。” 这里的盈利是指总的资金的盈利还是说单笔交易的盈利? 答:总资金盈利。 可以的话,我想看看“总的资金的盈利”和“单笔交易的盈利”的差别,和写法上的不同。
|
-- 作者:loubo899 -- 发布时间:2019/3/4 22:56:30 -- 我服一楼,你亏损加仓,这是什么操作?千万不可啊 |