以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  图表模型转后台模型的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=100299)

--  作者:never827
--  发布时间:2016/7/7 11:07:21
--  图表模型转后台模型的问题
//输入参数
       INPUT:SS(1,1,10000,1);
             手数:=SS;
       INPUT:周期参数(22,10,50,1);
       INPUT:过滤参数(3,1,5,1);
//交易条件
       多空线:=50-((100 * ( HHV(HIGH,周期参数) - CLOSE))/ (HHV(HIGH,周期参数) - LLV(LOW,周期参数)));
       做多线:=45;
       做空线:=-45;
//引入其他公式
       BBI1:=STKINDI(\'if13\',\'趋势指标.yy1\',0,6);
       BBI2:=STKINDI(\'if13\',\'趋势指标.yy2\',0,6);
       BBI3:=STKINDI(\'if13\',\'趋势指标.yy3\',0,6);
       bbi4:=STKINDI(\'if13\',\'趋势指标.yy4\',0,6);
       B1:=STKINDI(\'if13\',\'yyy.bbi1\',0,6);
       B2:=STKINDI(\'if13\',\'yyy.bbi2\',0,6);
//时间参数
开仓时间:=TIME>=091500  AND TIME<151300;
平仓时间:=TIME>151300;
    //交易条件
       
       开多平空条件1:=OPEN>=REF(HHV(H,22),1)+0.2 AND 开仓时间;
       开多平空条件2:=HIGH>=REF(HHV(H,22),1)+0.2 AND 开仓时间;
   
       开空平多条件1:=OPEN<=REF(LLV(L,22),1)-0.2 AND 开仓时间;
       开空平多条件2:=LOW<=REF(LLV(L,22),1)-0.2 AND 开仓时间;
   
   //平仓
       ////////////////////////////////////
         IF 平仓时间 AND HOLDING>0  THEN BEGIN
           收盘平多:SELL(1,手数,LIMITR,O);
           TSELL(1,手数,MKT);
         END
   
        IF 平仓时间 AND HOLDING<0  THEN BEGIN
          收盘平空:sellshort(1,手数,LIMITR,O);
          TSELLshort(1,手数,MKT);
        END
   
      特殊参数1:=REF(HHV(H,22),1)+0.2;
      IF OPEN>=REF(HHV(H,22),1)+0.2 AND HOLDING<0 AND REF(HOLDING,1)<0  THEN BEGIN
          平空1:sellshort(1,手数,LIMITR,max(OPEN,特殊参数1));
          Tsellshort(1,手数,MKT);
      END
      
      特殊参数2:=REF(HHV(H,22),1)+0.2;
      IF HIGH>=REF(HHV(H,22),1)+0.2 AND HOLDING<0 AND REF(HOLDING,1)<0   THEN BEGIN
          平空2:sellshort(1,手数,LIMITR,特殊参数2);
          Tsellshort(1,手数,MKT);
      END
   
      /////////////////////////////////////////////////////////////
      特殊参数3:=REF(LLV(L,22),1)-0.2;
      IF OPEN<=REF(LLV(L,22),1)-0.2 AND HOLDING>0 AND REF(HOLDING,1)>0   THEN BEGIN
          平多1:sell(1,手数,LIMITR,min(OPEN,特殊参数3));
          Tsell(1,手数,MKT);
      END
      
      特殊参数4:=REF(LLV(L,22),1)-0.2;
      IF LOW<=REF(LLV(L,22),1)-0.2 AND HOLDING>0 AND REF(HOLDING,1)>0   THEN BEGIN
          平多2:sell(1,手数,LIMITR,特殊参数4);
          Tsell(1,手数,MKT);
      END

    //开仓
    ////////////////////////////////////////////////////////////
      特殊参数5:=REF(LLV(L,22),1)-0.2;
      IF 开空平多条件1 AND HOLDING=0 AND REF(COUNT(开空平多条件1,10)>=2,1)  AND (BBI1>BBI2 AND BBI2>BBI3 or bbi1<bbi2 and bbi2>bbi3 and bbi3>bbi4)  AND REF(COUNT((多空线 < 做空线),10)>=过滤参数,1) THEN BEGIN
          开空1:buyshort(1,手数,LIMITR,min(OPEN,特殊参数5)),IGNORECHECKPRICE;
          Tbuyshort(1,手数,MKT);
      END

      特殊参数6:=REF(LLV(L,22),1)-0.2;
      IF 开空平多条件2 AND HOLDING=0 AND REF(COUNT(开空平多条件2,10)>=2,1)AND (BBI1>BBI2 AND BBI2>BBI3 or bbi1<bbi2 and bbi2>bbi3 and bbi3>bbi4) AND REF(COUNT((多空线 < 做空线),10)>=过滤参数,1) THEN BEGIN
          开空2:buyshort(1,手数,LIMITR,特殊参数6),IGNORECHECKPRICE;
          Tbuyshort(1,手数,MKT);
       END                         

      特殊参数7:=REF(HHV(H,22),1)+0.2;
      IF 开多平空条件1 AND HOLDING=0  AND REF(COUNT(开多平空条件1,10)>=3,1)AND BBI1>BBI2 AND BBI2>BBI3 and b1<b2  AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
          开多1:buy(1,手数,LIMITR,max(OPEN,特殊参数7)),IGNORECHECKPRICE;
        Tbuy(1,手数,MKT);
       END
 
      特殊参数8:=REF(HHV(H,22),1)+0.2;
      IF 开多平空条件2 AND HOLDING=0  AND REF(COUNT(开多平空条件2,10)>=3,1)AND BBI1>BBI2 AND BBI2>BBI3 and b1<b2 AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
          开多2:buy(1,手数,LIMITR,特殊参数8),IGNORECHECKPRICE;
          Tbuy(1,手数,MKT);
      END
      
     特殊参数7:=REF(HHV(H,22),1)+0.2;
      IF 开多平空条件1 AND HOLDING=0 AND BBI1>BBI2 AND BBI2<BBI3 AND B1>B2 AND REF(COUNT(开多平空条件1,10)>=3,1) AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
          开多3:buy(1,手数,LIMITR,max(OPEN,特殊参数7)),IGNORECHECKPRICE;
        Tbuy(1,手数,MKT);
      END
     
       特殊参数8:=REF(HHV(H,22),1)+0.2;
      IF 开多平空条件2 AND HOLDING=0 AND BBI1>BBI2 AND BBI2<BBI3 AND B1>B2 AND REF(COUNT(开多平空条件2,10)>=3,1) AND REF(COUNT((多空线 > 做多线),10)>=过滤参数,1) THEN BEGIN
          开多4:buy(1,手数,LIMITR,特殊参数8),IGNORECHECKPRICE;
          Tbuy(1,手数,MKT);
      END 

--  作者:jinzhe
--  发布时间:2016/7/7 11:08:16
--  
请问用户碰到啥问题了?
--  作者:never827
--  发布时间:2016/7/7 11:10:49
--  
IF 平仓时间 AND HOLDING<0  THEN BEGIN
收盘平空:sellshort(1,手数,LIMITR,O);
TSELLshort(1,手数,MKT);
END
这个系统是几年前别人帮我把图表转后台,我在后台也使用过,可以用,我想问上面代码为什么不是tholding<0
我还想问下我现在编的图标系统照着上面的抄,可以实现后台吗?

--  作者:jinzhe
--  发布时间:2016/7/7 11:18:26
--  

这代码是用来按照图表的信号在后台下单的意思。

如果你只想转后台不想按照图表信号下单,那么就不用在后台代码里面加上图表语句,然后用tholding等一系列后台函数写代码


--  作者:never827
--  发布时间:2016/7/7 11:18:49
--  
问下老师,我现在把图表模型编好了,想变成后台模型,把交易系统直接照着上面的抄可以实现后台程序化交易吗?
--  作者:never827
--  发布时间:2016/7/7 11:24:15
--  
IF 平仓时间 AND HOLDING<0  THEN BEGIN
收盘平空:sellshort(1,手数,LIMITR,O);
TSELLshort(1,手数,MKT);
END
意思就是说,这样是可以完成后台交易的,即使不锁定图表界面,我可以这样理解吗?

IF 平仓时间 AND THOLDING<0  THEN BEGIN
TSELLshort(1,手数,MKT);
END

不想在图表显示,这样就可以了是吗?

--  作者:jinzhe
--  发布时间:2016/7/7 11:26:50
--  
以下是引用never827在2016-7-7 11:24:15的发言:
IF 平仓时间 AND HOLDING<0  THEN BEGIN
收盘平空:sellshort(1,手数,LIMITR,O);
TSELLshort(1,手数,MKT);
END
意思就是说,这样是可以完成后台交易的,即使不锁定图表界面,我可以这样理解吗?

IF 平仓时间 AND THOLDING<0  THEN BEGIN
TSELLshort(1,手数,MKT);
END

不想在图表显示,这样就可以了是吗?

是的,完全转后台就是这样,后台代码里面不再有图表语句了


--  作者:never827
--  发布时间:2016/7/7 11:28:13
--  
图表信号,即使我当时不在那个出信号的图标上,这个图表信号也会出现,我不照着图表buy,照着图表信号tbuy,一样可以实现后台程序化交易,而且还方便测试,可以这么理解吗?老师。
--  作者:jinzhe
--  发布时间:2016/7/7 11:30:22
--  
不懂你想要讲什么
--  作者:never827
--  发布时间:2016/7/7 11:37:06
--  
我想讲的是
IF 平仓时间 AND HOLDING<0  THEN BEGIN
收盘平空:sellshort(1,手数,LIMITR,O);
TSELLshort(1,手数,MKT);
END
我把我图表的交易系统就按照这个加,能不能交易的上,就是能不开着,能不能平着,能不能买着,能不能卖着的意思。