波段突破策略 ATR波段突破策略[MC公式]
區間突破最常使用在日內程序里,不過波段的程序使用起來也不差,基本邏輯就是由開盤向上漲多少要突破作多,向下跌多少要突破做空,很單純,最主要的因素只有這個突破的臨界點是如何決定?
基本突破策略是以開盤點為準,漲XX點作多,跌XX點作空,如果沒翻就擺到收盤,這樣的邏輯在近年是很難獲利,但波段突破策略就不一樣了
Average True Range(ATR) 平均真實范圍,利用這個好用的指標,當行情波動大時,這個區間確認也應該放大,波動小時,則區間也小,因此加上波動性的指標有用處,ATR比其它波動性指標直接方便的是它本身就是價格的表示,而不是比例或無法對應的數字。例如ATR 100點,就是近期日高低點差平均在100點,而開盤后往上50點或往下50點的區間內都很正常,那我們設定的突破邏輯就是市價漲超過50點作多,跌超過50點作空。
代碼范例:此策略是波段突破策略。根據ATR要調用多少個周期,來求出開倉的委托價格,此策略適用于多商品多周期,可以自己調整參數跟周期測試即可,底下是測試的IF 20 min 的績效結果,手續費單邊100元,僅供參考。
input:atrlen(2),endtime(1500),m(2100),n(9300);var:j(0),atr(0),trx(0);array:tr[10](0);//定義變量、參數、以及一維數組 m.kzuj.com.cn
if date<>date[1] then begintrx=0;//當隔日時給trx賦值為0for j=0 to atrlen-1 beginvalue1=(highD(j+1)-lowD(j+1));value2=absvalue(highD(j+1)-closeD(j+2));value3=absvalue(lowd(j+1)-closed(j+2));//在一個循環中給value1、value2、value3變量賦值
tr[j]=maxlist(value1,value2,value3);//把三者的最大值依次儲存在數組中if j=atrlen-1 then begin for j=0 to (atrlen-1) begin trx=trx+tr[j]; end;//給trx賦值在一個循環運算后 atr=trx/atrlen;end;end;end;//對atr求平均
if time<endtime then beginbuy next bar at (openD(0)+atr/2 ) stop;sellshort next bar at (opend(0)-atr/2) stop;end;//在收盤前以當天的開盤價加減atr/2去委托限價單,滿足條件開倉
setstopcontract;setstoploss(m);setprofittarget(n);//設置止盈止損。
在策略設計的部份只有一個參數,是要決定ATR用多少期間,其中變數TRX是每日的TR值,ATR用來紀錄…ATR,TR的陣列和其中注記//replace AverageArray的部份是因為Multicharts內建的AverageArray用起來不對勁,就自己再寫進策略里,內容就是把TRX一個個放進TR陣列里,放到最后一個時順便算一下里面那些TR的平均值紀錄到ATR。
再詳細一點的說明程序,因為ATR在這個例子中使用的是日線層級,但實際運用的K線可能是10min、5min、8min之類的,會要再搭配其它的指標,所以才使用這種Array的方式將TR記錄下來,在新的一天開始時計算一次( date <> date[1] ),然后看是要多少個TR的平均,一個一個放進去,另外特別注意Array第一個位置是0起始,所以for回圈里目標值減一,這樣個數才對。
這個 Array+For 回圈的方法在使用不同k線層級的指標時蠻好用的,可以多加利用,如果是常coding的朋友可能會覺得一個地方怪怪的,平常都是for i=0 to X ,這邊因為i是Multicharts 的關鍵字所以不能用,常常都要再改成j….,是特別的習慣
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容