突破策略之參數(shù)自動(dòng)化[程序化老手]
剛開始進(jìn)入程式交易世界時(shí),很多人會(huì)用最佳化參數(shù)的方式來挑選參數(shù)使用,但是隨著環(huán)境的不同,就會(huì)開始自己一直去調(diào)整參數(shù)。當(dāng)然,也不是所有參數(shù)都需要一直去做調(diào)整,但是,如果可以讓自己的程式中的參數(shù),隨著環(huán)境改變而自動(dòng)去調(diào)整變化,這樣也許可以讓程式變得更有彈性。
先介紹一個(gè)簡單的交易策略當(dāng)作范例,那就是N天的區(qū)間突破策略,其實(shí)也可以看成N根K棒的突破策略。
一般這種順勢突破策略在什么市場最容易賺大錢呢?
那當(dāng)然是在趨勢明顯走一段的大多頭或大空頭市場,
但是如果遇到盤整格局的走勢時(shí),可能會(huì)有多空訊號(hào)反覆的問題。
不過盤整盤是所有順勢策略的死穴,不單單是這策略的問題。
N天的區(qū)間突破策略的問題在于N
那這個(gè)N會(huì)有什么問題呢?你想想,當(dāng)你設(shè)定N為5時(shí),
如果現(xiàn)在趨勢明顯,很好,進(jìn)場會(huì)進(jìn)的很快,
可是當(dāng)趨勢混沌不明,忽上忽下時(shí),這時(shí)候不就慘了,
一下作多一下作空,每天都被殺好玩的。
所以,如果在趨勢明顯的時(shí)候,可以讓N小一點(diǎn),
在盤整的時(shí)候,可以讓N變得大一點(diǎn),這樣多有彈性阿!
重點(diǎn)來了,你要怎么讓N去自動(dòng)變化呢?
首先,想要決定N的大小,關(guān)鍵在于趨勢是否明顯。
如果趨勢明顯,也表示指數(shù)的波動(dòng)會(huì)比較大。
如果趨勢是盤整,就表示指數(shù)會(huì)一直在某個(gè)區(qū)間整理,
這樣的波動(dòng)會(huì)比較小,所以大家想到了嗎?
換句話來說,關(guān)鍵在于波動(dòng)的大小。
假設(shè)我們一開始所設(shè)定的N是20,
因此也可以算出20根K棒的標(biāo)準(zhǔn)差,叫V20好了。
但是我們想用短一點(diǎn)的時(shí)間來衡量標(biāo)準(zhǔn)差,10根K棒好了,
所以也可以得到10根K棒的標(biāo)準(zhǔn)差,就叫做V10吧! 。
那如何藉由波動(dòng)率的變化來改變N?
請看以下策略源碼體會(huì)體會(huì)
N天的區(qū)間突破策略原理:當(dāng)今天的價(jià)格的高點(diǎn)突破過去N天的最高點(diǎn)時(shí)買入,當(dāng)今天的低點(diǎn)跌破過去的N天的最低點(diǎn)時(shí)賣出。此策略適合趨勢比較明顯的商品,尤其是單邊商品。
測試商品股指IF,使用兩圖表,子圖1周期為1 hour,子圖2周期為1 day。源碼如下:
inputs: x(20),y(10) ;//定義波動(dòng)率參數(shù)Vars: V20(10),V10(10),N2(10),N1(10),N(10);//定義變量
V20=Volatility(x)of data2;V10=Volatility(y)of data2;//定義波動(dòng)率取日線數(shù)據(jù),取子圖2的日線線數(shù)。這個(gè)Volatility函數(shù)是分別取20日跟10日ATR的移動(dòng)平均數(shù)值 if V10<>0 and N2<>0 then beginN1=(N*V20)/V10;//定義N1的值,前提讓分母不為0時(shí)執(zhí)行,//這N1=(N*V20)/V10是此參數(shù)自動(dòng)化的核心, 代表你將原本固定N天的參考值改成會(huì)/根據(jù)V20和V10而變動(dòng)的N1值, V20是較長期的,而V10是近期,大家看到這個(gè)公式應(yīng)該可以發(fā)現(xiàn),當(dāng)你近期的波動(dòng)率變大時(shí),表示趨勢出現(xiàn),你的N1就會(huì)變小,而近期的波動(dòng)率變得越小時(shí),表示在盤整,N1就會(huì)變大,這樣新的N變化似乎比較合理一點(diǎn)。// www.tumamayizhan.com
N2=IntPortion(N1);//給N1取整賦值給N2end;
value1=Average(high of data2,N2)of data2;value2=Average(low of data2,N2)of data2;//定義前N2天的高點(diǎn)跟低點(diǎn)的值給value1和value2
if close crosses above value1 then beginbuy next bar at market;end;//當(dāng)價(jià)格上穿高點(diǎn)時(shí)買入或者反向
if close crosses below value2 then beginsellshort next bar at market;end;//當(dāng)價(jià)格下穿低點(diǎn)時(shí)開空或者反向
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
- 上一篇:【風(fēng)險(xiǎn)控制】3種有效的止損方法一覽
- 下一篇:沒有了!
相關(guān)文章
-
沒有相關(guān)內(nèi)容