以文本方式查看主题

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

--  作者:QFX36999
--  发布时间:2017/4/19 8:07:04
--  图表改后台交易
公式1只管开仓公式2只管平仓,上星期老师说图表不能实现后台可以,麻烦老师把策略改为后台交易。
公式1
    LC := REF(CLOSE,1);
    RSI:=SMA(MAX(CLOSE-LC,0),40,1)/SMA(ABS(CLOSE-LC),40,1)*100;
    rsi2:=STKINDI(\'\',\'RSIzj.RSI1\',0,4);


   上轨2:REF(HHV(H,130),1),COLORMAGENTA;
   下轨2:REF(LLV(L,130),1),colorgreen;


    开多条件:=H >=上轨2 and rsi>60 and rsi2>50 and holding=0 ;
    开空条件:=L<=下轨2 and rsi<40 and rsi2<50 and holding=0 ;
    平多条件:=rsi2<50;
    平空条件:=rsi2>50;


开多:buy(开多条件 ,1,LIMITR,CLOSE);
开空:buyshort(开空条件,1,LIMITR,CLOSE);
平多:sell(平多条件 and holding>0 ,0,MARKET);
平空:sellshort( 平空条件 and holding<0 ,0,MARKET);

公式2

    LC := REF(CLOSE,1);
    RSI:=SMA(MAX(CLOSE-LC,0),40,1)/SMA(ABS(CLOSE-LC),40,1)*100;
    rsi2:=STKINDI(\'\',\'RSIzj.RSI1\',0,4);
    kdj2:=STKINDI(\'\',\'kdjzj.kd\',0,4);


   上轨2:REF(HHV(H,130),1),COLORMAGENTA;
   下轨2:REF(LLV(L,130),1),colorgreen;


    开多条件:=H >=上轨2 and rsi>60 and rsi2>50 and holding=0 ;
    开空条件:=L<=下轨2 and rsi<40 and rsi2<50 and holding=0 ;
    平多条件1:=rsi2<50 and kdj2<0;
    平空条件1:=rsi2>50 and kdj2>0;


开多:buy(开多条件 ,1,LIMITR,CLOSE);
开空:buyshort(开空条件,1,LIMITR,CLOSE);
平多:sell(平多条件1 and holding>0 ,0,MARKET);
平空:sellshort( 平空条件1 and holding<0 ,0,MARKET);


--  作者:QFX36999
--  发布时间:2017/4/19 8:11:29
--  
公式2平仓后不用公式2开仓 ,而是用公式1开仓

公式1开仓后不用公式1平仓, 而是用公式2开仓.

--  作者:QFX36999
--  发布时间:2017/4/19 8:14:16
--  
上面写错了

公式2平仓后不用公式2开仓 ,而是用公式1开仓

公式1开仓后不用公式1平仓, 而是用公式2平仓.


--  作者:FexTel
--  发布时间:2017/4/19 8:42:13
--  
把上周的帖子发下,我先看看你的要求。如果单纯上面的要求,你只需要换下平仓条件即可
--  作者:QFX36999
--  发布时间:2017/4/19 8:57:15
--  
http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&replyID=438264&ID=151440&skin=1
--  作者:QFX36999
--  发布时间:2017/4/19 9:01:55
--  
平仓  图片点击可在新窗口打开查看 Post By:2017/4/13 13:48:17 [只看该作者


--  作者:FexTel
--  发布时间:2017/4/19 9:02:39
--  
看了下,是不是根据盈利和亏损选择平仓条件? 困亏损了用那个?盈利了用那个

上面代码有2个条件 平多条件与平多条件1

--  作者:QFX36999
--  发布时间:2017/4/19 9:04:24
--  

     上轨:REF(HHV(H,130),1),COLORMAGENTA;

   下轨:REF(LLV(L,130),1),colorgreen;

盈利d:=(h-ENTERPRICE)*multiplier>20000;

盈利k:=(ENTERPRICE-l)*multiplier>20000;

    开多条件:=H >=上轨  and holding=0 ;

    开空条件:=L<=下轨  and holding=0 ;

   

    平多条件1:=l<下轨;

    平空条件1:=h>上轨;

    平多条件2:=盈利d;

    平空条件2:=盈利k;

   

开多:buy(开多条件 ,p,LIMITR,CLOSE);

开空:buyshort(开空条件 ,p,LIMITR,CLOSE);

平多1:sell(平多条件1  and holding>0 ,0,MARKET);

平空1:sellshort( 平空条件1  and holding<0 ,0,MARKET);

 

如果

if yld then  sell(平多条件2  and holding>0 ,0,MARKET);

if ylk then  sellshort( 平空条件2  and holding<0 ,0,MARKET);


 成立平掉了单子

在图表交易仍旧显示仓位1怎么写?

就是说盈利大于20000平仓后仍就按照公式

INPUT:p(1,1,10,1);

  

   上轨:REF(HHV(H,130),1),COLORMAGENTA;

   下轨:REF(LLV(L,130),1),colorgreen;

盈利d:=(h-ENTERPRICE)*multiplier>20000;

盈利k:=(ENTERPRICE-l)*multiplier>20000;

    开多条件:=H >=上轨  and holding=0 ;

    开空条件:=L<=下轨  and holding=0 ;

   

    平多条件1:=l<下轨;

    平空条件1:=h>上轨;

    平多条件2:=盈利d;

    平空条件2:=盈利k;   

开多:buy(开多条件 ,p,LIMITR,CLOSE);

开空:buyshort(开空条件 ,p,LIMITR,CLOSE);

平多1:sell(平多条件1  and holding>0 ,0,MARKET);

平空1:sellshort( 平空条件1  and holding<0 ,0,MARKET);


做单

条件2只是附加。

是的
就是说盈利大于20000平仓后仍就按照下面的公式
你是要在图表上,一个策略单独做开仓,一个策略单独做平仓?
在图表上,一个策略单独做开仓,一个策略单独做平仓
就是这样


,图表的程序化种各个窗口都是互相独立的,且信号的触发跟历史上的信号和虚拟持仓都有关系。所以图表程序化不能拆成2个策略,一个只开,另一个只平。

2,你需求中的盈利大于20000,和盈利小于20000,是需要采用不同的平仓条件?


一个策略里有开仓和平仓才是完整的可以循环的,开仓平仓不要分成两个策略,分成两个的目的是什么?

能不能像20.闪灵交易者系统这样写呢


--  作者:QFX36999
--  发布时间:2017/4/19 9:11:25
--  
不是根据盈利和亏损选择平仓条件
公式1只管开仓公式2只管平仓,上星期老师说图表不能实现后台可以,麻烦老师把策略改为后台交易。
公式1
    LC := REF(CLOSE,1);
    RSI:=SMA(MAX(CLOSE-LC,0),40,1)/SMA(ABS(CLOSE-LC),40,1)*100;
    rsi2:=STKINDI(\'\',\'RSIzj.RSI1\',0,4);

   上轨2:REF(HHV(H,130),1),COLORMAGENTA;
   下轨2:REF(LLV(L,130),1),colorgreen;


    开多条件:=H >=上轨2 and rsi>60 and rsi2>50 and holding=0 ;
    开空条件:=L<=下轨2 and rsi<40 and rsi2<50 and holding=0 ;
  
开多:buy(开多条件 ,1,LIMITR,CLOSE);
开空:buyshort(开空条件,1,LIMITR,CLOSE);

公式2

    LC := REF(CLOSE,1);
    RSI:=SMA(MAX(CLOSE-LC,0),40,1)/SMA(ABS(CLOSE-LC),40,1)*100;
    rsi2:=STKINDI(\'\',\'RSIzj.RSI1\',0,4);
    kdj2:=STKINDI(\'\',\'kdjzj.kd\',0,4);


   上轨2:REF(HHV(H,130),1),COLORMAGENTA;
   下轨2:REF(LLV(L,130),1),colorgreen;
    平多条件1:=rsi2<50 and kdj2<0;
    平空条件1:=rsi2>50 and kdj2>0;

平多:sell(平多条件1 and holding>0 ,0,MARKET);
平空:sellshort( 平空条件1 and holding<0 ,0,MARKET);


--  作者:FexTel
--  发布时间:2017/4/19 9:13:00
--  

上轨:REF(HHV(H,130),1),COLORMAGENTA;

   下轨:REF(LLV(L,130),1),colorgreen;

yld:=(h-ENTERPRICE)*multiplier>20000;

ylk:=(ENTERPRICE-l)*multiplier>20000;

    开多条件:=H >=上轨  and holding=0 ;

    开空条件:=L<=下轨  and holding=0 ;

   

    平多条件1:=l<下轨;

    平空条件1:=h>上轨;

    平多条件2:=盈利d;

    平空条件2:=盈利k;

   

开多:buy(开多条件 ,p,LIMITR,CLOSE);

开空:buyshort(开空条件 ,p,LIMITR,CLOSE);

平多1:sell(平多条件1  and holding>0 ,0,MARKET);

平空1:sellshort( 平空条件1  and holding<0 ,0,MARKET);

sell(平多条件2  and holding>0 ,0,MARKET);

 sellshort( 平空条件2  and holding<0 ,0,MARKET);


//照您的意思不就是这部分代码?你平仓没仓位了,平仓也没意义