以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 金字塔软件问题提交 (http://222.73.7.161/bbs/list.asp?boardid=2) ---- 信号有减仓,但是不会执行平仓 (http://222.73.7.161/bbs/dispbbs.asp?boardid=2&id=153954) |
-- 作者:qq代人发帖 -- 发布时间:2017/5/23 16:26:10 -- 信号有减仓,但是不会执行平仓 代码如下: variable:ki=0,dj=0; Tr1:=max(max(high-low),abs(ref(close,1)-high)),abs(ref(close,1))-low)); atr:=ma(tr1,14); xsg:=ma(c,20)+o.5*atr; |
-- 作者:gxx978 -- 发布时间:2017/5/23 16:29:42 -- 你使用的是固定时间间隔的模式还是走完K线的模式。若是固定时间间隔的模式,则可能存在信号闪烁,可能这个信号是之后才出现的。 |
-- 作者:单刀赴会 -- 发布时间:2017/5/23 16:37:57 -- 我用的逐K模式,仅刷新最后一根线, 固定时间模拟。 还有别的模式都试过了 都不行 信号是实时出现的,就是不平仓 是不是我的代码有问题啊? |
-- 作者:单刀赴会 -- 发布时间:2017/5/23 16:39:02 -- 信号有减仓 但是不会执行平仓动作 代码如下:
VARIABLE:kj=0,dj=0; TR1 :=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR :=MA(TR1,14); XSG:=MA(c,20)+0.5*atr; XXG:=MA(c,20)-0.5*atr; DSG:=MA(c,60)+0.5*atr; DXG:=MA(c,60)-0.5*atr; XSG1:MA(c,20)+0.5*atr;//显示 XXG1:MA(c,20)-0.5*atr; DSG1:MA(c,60)+0.5*atr; DXG1:MA(c,60)-0.5*atr; 开多:=ref(C,1)>XSG AND ref(C,1)>DSG; 平多:=ref(C,1) <=XXG OR ref(C,1)<=DXG; 开空:=ref(C,1)<XXG AND ref(C,1)<DXG; 平空:=ref(C,1)>=XSG OR ref(C,1)>=DSG; 交易时间:=TIME>090000 AND TIME<143900; 平仓时间:= TIME>145400; //图表日内交易模块: //平空 if holding=-p and l<=kj THEN SELLSHORT(1,p/2,limitr,kj); IF 平空 THEN SELLSHORT(1,HOLDING,LIMITr,OPEN); // 空头全平 IF 平仓时间 THEN SELLSHORT(1,HOLDING,LIMITr,OPEN); //空头收盘平仓 ///////////////////////////////////////////////////////// //开多 IF 交易时间 AND 开多 and STATE<>1 THEN BEGIN BUY(1,P,LIMITr,OPEN); dj:=AVGENTERPRICE+s*MINDIFF; END ////////////////////////////////// if HOLDING=p and h>=dj then sell(1,p/2,LIMITR,dj); IF 平多 THEN SELL(1,HOLDING,LIMITr,OPEN); //多头全平; IF 平仓时间 THEN SELL(1,HOLDING,LIMITr,OPEN); //多头收盘平仓 /////////////////////////////////////////////////////// //开空 IF 交易时间 AND 开空 and STATE<>-1 THEN BEGIN BUYSHORT(1,P,LIMITr,OPEN); kj:=AVGENTERPRICE-s*MINDIFF; END 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; |
-- 作者:shq -- 发布时间:2017/5/23 17:01:14 -- if HOLDING=p and h>=dj then sell(1,p/2,LIMITR,dj); 这句话是减仓语句? 按照下列调试方法: sell(1,p/2,LIMITR,dj); 改为 平多1:sell(1,p/2,LIMITR,dj); 其他开平仓语句同理,加载到图表上看每一处信号是哪一个语句触发的。
|
-- 作者:王锋 -- 发布时间:2017/5/23 17:02:11 -- 建议你认真看看下面这个帖子,如果你无法掌握基本的调试知识,那么你是很难编写出好一些策略的。
DEBUGFILE----使用日志方式完善您的策略 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=49428 |
-- 作者:lcy00000 -- 发布时间:2020/1/31 6:40:59 -- 可以 |
-- 作者:lcy00000 -- 发布时间:2020/1/31 6:41:15 -- 可以了你可以 |