以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  信号有减仓,但是不会执行平仓


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

代码如下:

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
--  
可以了你可以