以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=169248) |
-- 作者:一代天骄 -- 发布时间:2019/4/9 10:45:49 -- 加仓 加仓次数限制在2次,并且比上次开仓价格高2%如何写? |
-- 作者:FireScript -- 发布时间:2019/4/9 10:54:03 -- 加仓次数这个之前这个帖子回过你了的:http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=168920&skin=0 比上次开仓价格高2%这个意思是加仓条件吗?还是加仓价格。
[此贴子已经被作者于2019/4/9 10:59:23编辑过]
|
-- 作者:一代天骄 -- 发布时间:2019/4/9 10:54:24 -- 加仓条件 |
-- 作者:FireScript -- 发布时间:2019/4/9 11:00:38 -- buy(加仓条件 and c>ENTERPRICE*1.02 and holding>0,1,market); 限制加仓次数的,建议参考下之前回复你的帖子吧。当时给了解决方案的。
|
-- 作者:一代天骄 -- 发布时间:2019/4/9 13:44:11 -- 我自己写存在一些问题 我是这么写的,VARIABLE:NUM1=0; VARIABLE:NUM2=0; IF CLOSE>1.02*ENTERPRICE AND HOLDING>0 AND NUM1<2 THEN BEGIN BUY(1,1,LIMIT,CLOSE+3*MINDIFF),IGNORECHECKPRICE; NUM1:=NUM1+1; END IF CLOSE<0.98*ENTERPRICE AND HOLDING<0 AND NUM2<2 THEN BEGIN SELL(1,1,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE; NUM2:=NUM2+1; END 然后在每个平仓条件后面加上 NUM1:=0; NUM2:=0;, 这样写的话多头能自动加仓,空头不能自动加仓,这是哪里出问题?
|
-- 作者:FireScript -- 发布时间:2019/4/9 13:59:51 -- 给出完整代码吧。不完整代码我处理起来不方便的。 |
-- 作者:一代天骄 -- 发布时间:2019/4/9 14:11:18 -- INPUT:N1(12,5,250,1),N2(151,5,250,1),Z1(2,1,10,1),Z2(2,1,10,1),Z3(4,1,20,1),Z4(4,1,10,1); MA_D:=MA(CLOSE,N1); MA_K:=MA(CLOSE,N2); MA20:=MA(CLOSE,28); RSV:=(CLOSE-LLV(LOW,24))/(HHV(HIGH,24)-LLV(LOW,24))*100; K_D:=SMA(RSV,13,1); D_D:=SMA(K_D,4,1); K_K:=SMA(RSV,7,1); D_K:=SMA(K_K,3,1); VARIABLE:NUM1=0; VARIABLE:NUM2=0; MAXPROFIT_D:=(HHV(HIGH,ENTERBARS+2)-AVGENTERPRICE)/AVGENTERPRICE; CURRENTPROFIT_D:=(CLOSE-AVGENTERPRICE)/AVGENTERPRICE; CURRENTLOSS_D:=(AVGENTERPRICE-CLOSE)/AVGENTERPRICE; MAXPROFIT_K:=(AVGENTERPRICE-LLV(LOW,ENTERBARS+2))/AVGENTERPRICE; CURRENTPROFIT_K:=(AVGENTERPRICE-CLOSE)/AVGENTERPRICE; CURRENTLOSS_K:=(CLOSE-AVGENTERPRICE)/AVGENTERPRICE; CD1:=CURRENTLOSS_D>=0.01*Z1 AND HOLDING>0; CD2:=MAXPROFIT_D>=0.01*Z2 AND CLOSE<=AVGENTERPRICE AND HOLDING>0; CD3:=MAXPROFIT_D>=0.01*Z3 AND (HHV(HIGH,ENTERBARS+2)-CLOSE)/HHV(HIGH,ENTERBARS+2)>=0.01*Z4 AND HOLDING>0 ; CD4:=CURRENTLOSS_K>=0.01*Z1 AND HOLDING<0; CD5:=MAXPROFIT_K>=0.01*Z2 AND CLOSE>=AVGENTERPRICE AND HOLDING<0; CD6:=MAXPROFIT_K>0.01*Z3 AND (CLOSE-LLV(LOW,ENTERBARS+2))/LLV(LOW,ENTERBARS+2)>=0.01*Z4 AND HOLDING<0; //止盈止损 IF CD1=1 OR CD2=1 OR CD3=1 THEN BEGIN SELL(HOLDING>0,0,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE; DRAWTEXT( 1,LOW ,"平多" ); NUM1:=0; END IF CD4=1 OR CD5=1 OR CD6=1 THEN BEGIN SELLSHORT(HOLDING<0,0,LIMIT,CLOSE+3*MINDIFF),IGNORECHECKPRICE; DRAWTEXT( 1,LOW ,"平空" ); NUM2:=0; END //开仓条件 IF CLOSE>MA_D AND CROSS(K_D,D_D) THEN BEGIN BUY( HOLDING=0,1,LIMIT,CLOSE+3*MINDIFF),IGNORECHECKPRICE; DRAWTEXT( 1,LOW ,"开多" ); END IF CLOSE<MA_K AND CROSS(D_K,K_K) THEN BEGIN BUYSHORT(HOLDING=0,1,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE; DRAWTEXT( 1,HIGH ,"开空" ); END //加仓 IF CLOSE>1.02*ENTERPRICE AND HOLDING>0 AND NUM1<2 THEN BEGIN BUY(1,1,LIMIT,CLOSE+3*MINDIFF),IGNORECHECKPRICE; NUM1:=NUM1+1; END IF CLOSE<0.98*ENTERPRICE AND HOLDING<0 AND NUM2<2 THEN BEGIN SELL(1,1,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE; NUM2:=NUM2+1; END |
-- 作者:FireScript -- 发布时间:2019/4/9 14:22:40 -- 你加仓这里只有多头加仓么。没有空头加仓: IF CLOSE<0.98*ENTERPRICE AND HOLDING<0 AND NUM2<2 THEN BEGIN SELL(1,1,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE; NUM2:=NUM2+1; END 这是最后一段代码,是不是写错了,这是一个平多的操作。 |