文華程序化交易-加減倉模型實現加倉、資金管理策略
作者:佚名 來源:本站原創 發布時間:2018年02月11日
? |
? |
? |
? |
一開一平信號過濾模型是開平對應的,開倉后只能是與之對應的平倉操作。可有時我們想實現加減倉等策略,顯然一開一平信號過濾模型無法實現,而加減倉模型開倉后可繼續加倉,實現了自由加減倉以及更高級的資金管理策略。 |
? |
|
? |
? |
? |
下圖是基于長短周期波段突破思想編寫的策略模型,在行情有效突破周期指定價格時開倉入場,入場后繼續判斷行情,若行情繼續向有利方向做有效突破,策略執行加倉動作,若行情向不利方向發展并滿足出場條件,清倉出場。(來源 www.kzuj.com.cn ) |
|
? |
上圖是該波段突破加倉模型的信號效果,圖中的指標線形是我們的突破判斷標準,當行情有效突破時,軟件會自動開倉和加倉。 |
? |
? |
? |
? |
|
? |
? |
? |
? |
資金管理在交易中是一個非常重要的思想,我們常用控制資金使用率、按資金的固定百分比下單等方式來控制交易的風險。這些策略都可通過加減倉模型的編寫來實現。
1、控制資金使用率思想:
交易思路:在已經有1手持倉的情況下,控制做多開倉交易的資金使用率不超過資金的百分之30
編寫方法:BKVOL>=1 && A && BARSBK>1?&&?MONEYRATIO<0.3,BK(1);(其中A為開倉條件,紅色為資金控制部分代碼,MONEYRATIO表示資金使用率)
2、按資金的固定百分比下單思想:
交易思路:在已經有1手持倉的情況下,每次加倉手數按照可用資金的20%計算
編寫方法:BUYVOL>=1 && A && BARSBK>1,BK(MONEY*0.2/(C*MARGIN*D +FEE)?);(其中A為開倉條件,紅色為資金控制部分代碼,MONEY表示模組資金余額)
注: MONEY*0.2/(C*MARGIN*D +FEE)解析:
用可用資金的百分之二十除以每一手開倉所需資金即可計算出下單手數。其中“每一手開倉所需資金”可用“(最新價*合約保證金比例*合約交易單位)+合約手續費算出”,D為合約的交易單位 。
(來源 www.kzuj.com.cn )
|
? |
? |
? |
? |
|
? |
? |
? |
? |
1、源碼中不能有AUTOFILTER一開一平信號過濾函數。
2、不支持不帶手數的開平倉指令(如,BK;)和反手指令(如,BPK、SPK)。
3、支持的指令BK(N)、BP(N)、SK(N)、SP(N)、SPK(N)、BPK(N)、CLOSEOUT;支持指令分組。 |
? |
? |
? |
? |
|
? |
? |
? |
? |
1、什么是加減倉模型?
答:加減倉模型,允許連續出開倉信號或者連續出平倉信號,可實現加倉、減倉。下圖為編寫示范及運行效果。
|
? |
? |
|
? |
? |
2、加減倉模型有哪些作用?
答:對于需要進行加、減倉操作的交易者,在策略執行的時候希望開倉后的下一個動作依然可以是開 倉,或者能夠連續分批平倉。如果是一開一平信號過濾模型,開倉后只能是與之對應的平倉操作,這樣就無法實現加倉、減倉策略。加減倉模型允許連續出開倉信號或者連續出平倉信號,可解決這個問題。
3、加減倉模型編寫時需要注意的問題有哪些?
答:A、加倉模型中,加倉語句需要判斷是否是第一次開倉
方法:可利用判斷當前是否有持倉或判斷上一個信號是否是相同信號的方法確定是否是第一次開倉。如,加倉條件&&BKVOL>0,BK(N);或者加倉條件&&ISLASTBK=1,BK(N);
B、減倉模型中,減倉語句需要判斷當前是否有可平持倉
方法:可利用BKVOL或SKVOL這樣的函數來判斷持倉情況。如,平倉條件&&BKVOL>0,SP(BKVOL);
C、要注意考慮前一信號的方向防止鎖倉
方法:在開倉語句中加入判斷前一信號方向的函數。如,開倉條件&&ISLASTBK=0,SK(N);
4、為什么加減倉模型編寫時指令后面一定要有手數?
答:由于加減倉模型中可進行加倉,或者減倉,每筆交易的手數可能會不一樣,所以需要具體指定。
5、為什么我的加減倉模型不加倉?
答:在加減倉模型運行時“一個指令行,在一次“開倉->平倉”交易過程中只發一次信號”。如果想讓加減倉模型的同一行開倉或平倉指令重復執行可在模型中加入TRADE_AGAIN(N)函數。
例: CLOSE>OPEN,BK(1); CLOSE<OPEN,SP(1); TRADE_AGAIN(5); 注:有TRADE_AGAIN(N)函數的模型支持同一指令連續發,因此能夠實現加減倉
來源:
?
?
http://www.kzuj.com.cn/2018/02/11/50090.shtml
|
|
?