欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]后台,每次突破都开仓。HOLDING一直等于0?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有5607人关注过本帖树形打印复制链接

主题:[求助]后台,每次突破都开仓。HOLDING一直等于0?

帅哥哟,离线,有人找我吗?
伍星亮
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:421 积分:1318 威望:0 精华:0 注册:2011/1/19 22:31:12
[求助]后台,每次突破都开仓。HOLDING一直等于0?  发帖心情 Post By:2011/8/29 16:08:07    Post IP:113.72.112.98[显示全部帖子]

INPUT:FIXLOT(1,1,10,1),
      DON@(61,1,100,10),
      AMA@(6,1,50,5),
      ATR@(20,10,55,10),
      ATRSL(10,5,40,5),
      RISK(40000,1,1000000,1),
      ATRPS(20,0,20,5);

//Donchain
UP :HHV(HIGH,DON@);
DOWN :LLV(LOW,DON@);
//AMA
DIR:=ABS(CLOSE-REF(CLOSE,AMA@));
VIR:=SUM(ABS(CLOSE-REF(CLOSE,1)),AMA@);
ER:=DIR/VIR; CS:=ER*(2/3-2/31)+2/31; CQ:=CS*CS;
AMA:=DMA(CLOSE,CQ);

//AMA_TTS

//ATR
ATR :=MA(TR,ATR@);

//止盈值
TP:REF(AMA,1)-REF(ATR,1)*ATRPS*0.1;
TM:REF(AMA,1)+REF(ATR,1)*ATRPS*0.1;

//LOTS
//LOT:=ROUND(RISK/(REF(ATR,1)*0.1*ATRSL*300));
//MAXLOT:=FLOOR(cash(0)*0.8/(H*0.12*300));
//MINLOT:=1;
//LOTS:=IFELSE(BETWEEN(LOT,MAXLOT,MINLOT),LOT,IFELSE(LOT>MAXLOT,MAXLOT,MINLOT));
LOTS:=FIXLOT;

//止损值
STOP_LOSS:=ATRSL*0.1*REF(ATR,TENTERBARS+1);


//最大账面盈利
//LUP:=REF(UP,TENTERBARS+1);
//MONEYL:=UP-LUP;

//SDOWN:=REF(DOWN,TENTERBARS+1);
//MONEYS:=SDOWN-DOWN;

//多头止损,平仓,开仓
LSL:=TENTERPRICE-STOP_LOSS;
LTP:=L<=TP;

LO :=H>=REF(UP,1);
LONG:=REF(UP,1);

//空头止损,平仓,开仓
SSL:=TENTERPRICE+STOP_LOSS;
STM:=H>=TM;

SO :=L<=REF(DOWN,1);
SHORT:=REF(DOWN,1);

// 仓位
MYHOLDING:=HOLDING;

//调试输出
KD:=MYHOLDING=0 AND LO>0;
KK:=MYHOLDING=0 AND SO>0;
ZSD:=MYHOLDING>0 AND C<=LSL;
ZSK:=MYHOLDING<0 AND C>=SSL;
ZYD:=MYHOLDING>0 AND LTP>0;
ZYK:=MYHOLDING<0 AND STM>0;
DEBUGFILE('E:\编程学习\金字塔\模型\NTTS后台调试\TEST.TXT','开多=%.0f',KD);
DEBUGFILE('E:\编程学习\金字塔\模型\NTTS后台调试\TEST.TXT','开空=%.0f',KK);
DEBUGFILE('E:\编程学习\金字塔\模型\NTTS后台调试\TEST.TXT','止损多=%.0f',ZSD);
DEBUGFILE('E:\编程学习\金字塔\模型\NTTS后台调试\TEST.TXT','止损空=%.0f',ZSK);
DEBUGFILE('E:\编程学习\金字塔\模型\NTTS后台调试\TEST.TXT','止盈多=%.0f',ZYD);
DEBUGFILE('E:\编程学习\金字塔\模型\NTTS后台调试\TEST.TXT','止盈空=%.0f',ZYK);


//IF VALID(REF(ATR,1))=1 && VALID(REF(AMA,1))=1 THEN BEGIN

//多头平仓
IF MYHOLDING>0 THEN
  
   BEGIN IF LTP>0 THEN
            BEGIN
                 SELL(1,MYHOLDING,LIMITR,CLOSE);
                 TSELL(1,LOTS,MKT,0,0,'800166'); //ELSE SELL(LDR>0,HOLDING,STOPR,LDRDEAL);(保证这是止盈)
            END  
         IF L<=LSL THEN
            BEGIN
                 SELL(1,MYHOLDING,LIMITR,CLOSE);
                 TSELL(1,LOTS,MKT,0,0,'800166');
            END
   END

//空头平仓  
IF MYHOLDING<0 THEN
  
   BEGIN IF STM>0 THEN
         BEGIN
              SELLSHORT(1,MYHOLDING,LIMITR,CLOSE);//发信号给HOLDING
              TSELLSHORT(1,MYHOLDING,MKT,0,0,'800166'); //ELSE SELLSHORT(SDR>0,HOLDING,STOPR,SDRDEAL);
         END
        
         IF H>=SSL THEN
         BEGIN
              SELLSHORT(1,MYHOLDING,LIMITR,CLOSE);//发信号给HOLDING
              TSELLSHORT(1,MYHOLDING,MKT,0,0,'800166');
         END    
   END
  
//开仓
IF MYHOLDING=0 THEN
   BEGIN
        IF LO>0 THEN
        BEGIN
             BUY(1,LOTS,LIMITR,CLOSE);//发信号给HOLDING
             TBUY(1,LOTS,MKT,0,0,'800166');
        END
       
        IF SO>0 THEN
        BEGIN
              BUYSHORT(1,LOTS,LIMITR,CLOSE);//发信号给HOLDING
              TBUYSHORT(1,LOTS,MKT,0,0,'800166');
        END
   END
//END   

 

由于多账户以及使用多系统关系。用THOLDING暂无法写条件,故暂用系统移植的方法写。

但问题是,今天测试,每次向下突破都开仓,这样说,是不是HOLDING在后台逐周期时,过了一支K线就HOLDING就重新变成零呢?

 

 


  


 回到顶部
帅哥哟,离线,有人找我吗?
伍星亮
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:421 积分:1318 威望:0 精华:0 注册:2011/1/19 22:31:12
  发帖心情 Post By:2011/8/30 9:44:54    Post IP:113.69.143.148[显示全部帖子]

那个MYHOLDING是因为之前写MYHOLDING=THOLDING.所以统一改而已。哦,这样的话,我想到用全局变量来判断是否开了仓,代替HOLDING的做用。老师觉得可行嘛?


 回到顶部
帅哥哟,离线,有人找我吗?
伍星亮
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:421 积分:1318 威望:0 精华:0 注册:2011/1/19 22:31:12
  发帖心情 Post By:2011/8/30 9:45:43    Post IP:113.69.143.148[显示全部帖子]

好。我对你们有信心

 回到顶部