以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 求老师改写金字塔交易模型 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=165052) |
-- 作者:博云 -- 发布时间:2018/8/21 9:00:34 -- 求老师改写金字塔交易模型 老师你好,,这是文华财经版本的交易系统,麻烦您给改成金字塔版本的交易系统,可以吗?万分感谢
BKVOL=0 AND BUYPK AND DIRECTION>=0,bpk(VAR1); BKVOL>0 AND BUYJ1,BK(VAR1); BKVOL>0 AND BUYJ2,BK(VAR1); SELLS,SP(BKVOL); |
-- 作者:FireScript -- 发布时间:2018/8/21 9:34:38 -- DIRECTION 是什么意思?我没有查到具体含义,是你自定义的变量还是什么? |
-- 作者:博云 -- 发布时间:2018/8/21 11:11:10 -- PARAM1:=5; FUND:=20000; |
-- 作者:博云 -- 发布时间:2018/8/21 11:16:09 -- PARAM1:=5; FUND:=20000; |
-- 作者:博云 -- 发布时间:2018/8/21 11:24:55 -- 是自己定义的变量
|
-- 作者:FireScript -- 发布时间:2018/8/21 14:01:24 -- 里面有部分变量没有定义,这个你需要自行去补充下,因为你上面贴的代码也没涉及到他们的定义 PARAM1:=5;
PARAM2:=40; PARAM3:=150; FUND:=20000; DIRECTION:=0; VAR1 : =MAX(1,INTPART(FUND/(O*MULTIPLIER*0.1))); if BUYPK AND DIRECTION>=0 then BEGIN SELLSHORT(holding<0,holding,market); buy(holding=0,1,market); END if SELLPK AND DIRECTION<=0 then BEGIN SELL(holding>0,holding,market); BUYSHORT(holding=0,1,market); END buy(HOLDING>0 AND BUYJ1,1,market); buyshort(HOLDING<0 AND SELLJ1,1,market); buy(HOLDING>0 AND BUYJ2,1,market); buyshort(HOLDING<0 AND SELLJ2,1,market); sell(SELLS and holding>0,holding,market); sellshort(BUYS and holding<0,holding,market); |
-- 作者:博云 -- 发布时间:2018/8/21 14:34:37 -- 老师 ,好像还是有点问题,我把全部策略的代码发给你看一下,可以吗 |
-- 作者:博云 -- 发布时间:2018/8/21 14:36:33 -- PARAM1:=5; PARAM2:=40; PARAM3:=150; FUND:=20000; DIRECTION:=0; VAR1 : =MAX(1,INTPART(FUND/(O*MULTIPLIER*0.1))); N_TR : =26; VAR2 : =MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); VAR3 : =MA(VAR2,N_TR); SHORT: =12; LONG : =26; M : =9; VAR4 : =EMA(CLOSE,SHORT*PARAM1) - EMA(CLOSE,LONG*PARAM1); VAR5 : =EMA(VAR4,M*PARAM1); VAR6 : =VAR4 - VAR5; VAR7 : =EMA(CLOSE,SHORT*PARAM2) - EMA(CLOSE,LONG*PARAM2); VAR8 : =EMA(VAR7,M*PARAM2); VAR9 : =VAR7 - VAR8; VAR10: =MA(HHV(HIGH,PARAM3),PARAM3); VAR11: =MA(LLV(LOW,PARAM3),PARAM3); VAR12: =(VAR10+VAR11)*0.5; VAR13: =REF(VAR12,BARSLAST(REF(BKVOL,1)=0 AND BKVOL>0)); VAR14: =REF(VAR12,BARSLAST(REF(SKVOL,1)=0 AND SKVOL>0)); BOOL1: =CROSS(CLOSE,VAR10); BOOL2: =CROSS(VAR11,CLOSE); VAR15: =BARSLAST(BOOL1); VAR16: =BARSLAST(BOOL2); BOOL3: =VAR15<VAR16; BOOL4: =VAR15>VAR16; BUYPK : =BARPOS>PARAM3 AND BOOL1; SELLPK: =BARPOS>PARAM3 AND BOOL2; BUYJ1 : =BARPOS>PARAM3 AND CLOSE>BKPRICE+VAR3; SELLJ1: =BARPOS>PARAM3 AND CLOSE<SKPRICE-VAR3; BUYJ2 : =BARPOS>PARAM3 AND VAR9>0 AND VAR6>0 AND BOOL3 AND CLOSE>BKPRICE; SELLJ2: =BARPOS>PARAM3 AND VAR9<0 AND VAR6<0 AND BOOL4 AND CLOSE<SKPRICE; SELLS : =CLOSE<=VAR13; BUYS : =CLOSE>=VAR14; BKVOL=0 AND BUYPK AND DIRECTION>=0,bpk(VAR1); SKVOL=0 AND SELLPK AND DIRECTION<=0,spk(VAR1); BKVOL>0 AND BUYJ1,BK(VAR1); SKVOL>0 AND SELLJ1,SK(VAR1); BKVOL>0 AND BUYJ2,BK(VAR1); SKVOL>0 AND SELLJ2,SK(VAR1); SELLS,SP(BKVOL); BUYS,BP(SKVOL); //TRADE_OTHER(\'AUTO\');
|
-- 作者:FireScript -- 发布时间:2018/8/21 14:44:19 -- PARAM1:=5; PARAM2:=40; PARAM3:=150; FUND:=20000; DIRECTION:=0; VAR1 : =MAX(1,INTPART(FUND/(O*MULTIPLIER*0.1))); N_TR : =26; VAR2 : =MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); VAR3 : =MA(VAR2,N_TR); SHORT: =12; LONG : =26; M : =9; VAR4 : =EMA(CLOSE,SHORT*PARAM1) - EMA(CLOSE,LONG*PARAM1); VAR5 : =EMA(VAR4,M*PARAM1); VAR6 : =VAR4 - VAR5; VAR7 : =EMA(CLOSE,SHORT*PARAM2) - EMA(CLOSE,LONG*PARAM2); VAR8 : =EMA(VAR7,M*PARAM2); VAR9 : =VAR7 - VAR8; VAR10: =MA(HHV(HIGH,PARAM3),PARAM3); VAR11: =MA(LLV(LOW,PARAM3),PARAM3); VAR12: =(VAR10+VAR11)*0.5; VAR13: =REF(VAR12,BARSLAST(REF(holding,1)=0 AND holding>0)); VAR14: =REF(VAR12,BARSLAST(REF(holding,1)=0 AND holding<0)); BOOL1: =CROSS(CLOSE,VAR10); BOOL2: =CROSS(VAR11,CLOSE); VAR15: =BARSLAST(BOOL1); VAR16: =BARSLAST(BOOL2); BOOL3: =VAR15<VAR16; BOOL4: =VAR15>VAR16; BUYPK : =BARPOS>PARAM3 AND BOOL1; SELLPK: =BARPOS>PARAM3 AND BOOL2; BUYJ1 : =BARPOS>PARAM3 AND CLOSE>ENTERPRICE+VAR3 and holding>0; SELLJ1: =BARPOS>PARAM3 AND CLOSE<ENTERPRICE-VAR3 and holding<0; BUYJ2 : =BARPOS>PARAM3 AND VAR9>0 AND VAR6>0 AND BOOL3 AND CLOSE>ENTERPRICE and holding>0; SELLJ2: =BARPOS>PARAM3 AND VAR9<0 AND VAR6<0 AND BOOL4 AND CLOSE<ENTERPRICE and holding<0; SELLS : =CLOSE<=VAR13; BUYS : =CLOSE>=VAR14; if BUYPK AND DIRECTION>=0 then BEGIN SELLSHORT(holding<0,holding,market); buy(holding=0,1,market); END if SELLPK AND DIRECTION<=0 then BEGIN SELL(holding>0,holding,market); BUYSHORT(holding=0,1,market); END buy(HOLDING>0 AND BUYJ1,1,market); buyshort(HOLDING<0 AND SELLJ1,1,market); buy(HOLDING>0 AND BUYJ2,1,market); buyshort(HOLDING<0 AND SELLJ2,1,market); sell(SELLS and holding>0,holding,market); sellshort(BUYS and holding<0,holding,market); 前面的代码做下修改就可以了,不过毕竟是不同软件的代码。软件的实现机制还是有差异的,这个需要悉知。
|
-- 作者:博云 -- 发布时间:2018/8/21 14:45:15 -- 好的,谢谢了,老师,您辛苦了
|