




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
動能與均線策略(TB版)本交易策略主要基于均線與均線間的動能變化來構建交易系統:系統要素1.趨勢判斷:利用長期均線(如18日均線)來判斷市場的主要趨勢。2.動能變化:通過比較短期均線(如9日均線)與長期均線之間的差值變化來揭示市場的動能變化。入場條件多頭入場-當市場價格高于長期均線時,表明市場處于上升趨勢。-同時,如果短期均線相對于長期均線向上移動(即動能變強),則視為多頭動能增強,此時可考慮入場做多。空頭入場-當市場價格低于長期均線時,表明市場處于下降趨勢。-同時,如果短期均線相對于長期均線向下移動(即動能變弱),則視為空頭動能增強,此時可考慮入場做空。出場條件多頭出場-在多頭持倉期間,如果動能開始減弱(如短期均線相對于長期均線向下移動),并且市場價格跌破最近`ExitStopN`根K線的低點,則平倉多頭倉位。空頭出場-在空頭持倉期間,如果動能開始增強(如短期均線相對于長期均線向上移動),并且市場價格漲破最近`ExitStopN`根K線的高點,則平倉空頭倉位。振蕩函數PriceOscillator該函數用于計算短期均線與長期均線之間的差值,從而反映市場的動能變化。-`Price`:輸入的價格序列,用于計算均線。-`FastLength`:短期均線的周期長度,如9。-`SlowLength`:長期均線的周期長度,如18。-`POValue`:輸出變量,表示短期均線與長期均線之間的差值,即動能值。該策略通過結合長期均線的趨勢判斷和短期均線相對于長期均線的動能變化,提供了明確的入場和出場條件。在實際應用中,可以根據自身的風險承受能力和市場情況,調整均線周期長度和`ExitStopN`的值來優化策略表現。入場條件:1.當價格高于長期均線且動能相對之前變強時做多2.當價格低于長期均線且動能相對之前變弱時做空出場條件:1.當動能減弱時,價格低于ExitStopN根K線低點多頭平倉2.當動能增強時,價格高于ExitStopN根K線高點空頭平倉振蕩函數PriceOscillator:ParamsNumericSeriesPrice(1);//聲明數值序列參數Price,初值1。NumericFastLength(9);//聲明數值參數FastLength,初值9.NumericSlowLength(18);//聲明數值參數SlowLength,初值18.VarsNumericPOValue;//聲明數值變量POValue。BeginPOValue=Average(Price,FastLength)-Average(Price,SlowLength);//先把相應的價格參數,與相應快慢周期,代入函數Average求得均值,再把這兩結果相互減。即可求得變量POValue值。ReturnPOValue;//把這變量POValue值返回給主函數。End策略做多代碼:ParamsNumericSeriesPrice(1);NumericFastLength(9);NumericSlowLength(18);VarsNumericPOValue;BeginPOValue=Average(Price,FastLength)-Average(Price,SlowLength);ReturnPOValue;EndParamsNumericFastMALength(5);NumericSlowMALength(20);NumericTrendMALength(50);NumericExitStopN(3);VarsNumericSeriesTrendMA(0);NumericSeriesPriceOsci(0);NumericSeriesExitL;NumericSeriesMP;BeginIf(!CallAuctionFilter())Return;TrendMA=AverageFC(C,TrendMALength);PriceOsci=PriceOscillator(C,FastMALength,SlowMALength);PlotNumeric("TrendMA",TrendMA);If(MarketPosition<>1andTrendMA[1]<>0){If(C[1]>TrendMA[1]andPriceOsci[1]<=0andPriceOsci[1]>PriceOsci[2]AndVol>0){Buy(0,Open);}}ExitL=LowestFC(L,ExitStopN);If(MarketPosition==1andMP[1]==1){If(PriceOsci[1]<PriceOsci[2]andLow<=ExitL[1]AndVol>0){Sell(0,Min(Open,ExitL[1]));}}MP=MarketPosition;End做多的代碼注釋:ParamsNumericFastMALength(5);//聲明數值參數FastMALength,初值5,即動能計算中的快均線值。NumericSlowMALength(20);//聲明數值參數SlowMALength,初值20,即動能計算中的慢均線值。NumericTrendMALength(50);//聲明數值參數TrendMALength,初值50,即顯示趨勢的均線值。NumericExitStopN(3);//聲明數值參數ExitStopN,初值3,即求高低點的bar數值。VarsNumericSeriesTrendMA(0);//聲明數值序列變量TrendMA,初值0,即趨勢線。NumericSeriesPriceOsci(0);//聲明數值序列變量PriceOsci,初值0,即均線的動能。NumericSeriesExitL;//聲明數值序列變量ExitL,即出場價格。NumericSeriesMP;//聲明數值序列變量MP,即MarketPosition狀態記錄。BeginIf(!CallAuctionFilter())Return;//集合競價和小節休息過濾。TrendMA=AverageFC(C,TrendMALength);//計算趨勢線,即把收盤價與周期50代入函數AverageFC求值,即可求得變量TrendMA值。PriceOsci=PriceOscillator(C,FastMALength,SlowMALength);//計算均線動能,代入相應三個參數,返回求振蕩函數求得值,再把值賦值給變量PriceOsci。PlotNumeric("TrendMA",TrendMA);//這兩線,在tb里是不顯示,但畫出來好分析,畫線趨勢線。//系統入場If(MarketPosition<>1andTrendMA[1]<>0)//假如當前沒有持有多單,并且前一趨勢線值不等于0.{If(C[1]>TrendMA[1]andPriceOsci[1]<=0andPriceOsci[1]>PriceOsci[2]AndVol>0)//當上根K線的收盤價格高于前一TrendMA線值,并且如果上根K線的動能相對于上上根為增強且動能仍未負,則在本根K線開盤價做多。{Buy(0,Open);//以開盤價開多單。}}//系統出場。ExitL=LowestFC(L,ExitStopN);//出場價的算法,把相應數值返回函數LowestFC,快速求出最低價If(MarketPosition==1andMP[1]==1)//假如當前持有多單,并且前一變量MP等于1{If(PriceOsci[1]<PriceOsci[2]andLow<=ExitL[1]AndVol>0)//當均線動能減弱時,如果價格跌穿過去ExitStopN根K線的低點后平倉。{Sell(0,Min(Open,ExitL[1]));//平倉,開盤價與出場價比較取小值。}}MP=MarketPosition;//把當前持倉狀態賦值給變量MP。End做空信號代碼:ParamsNumericFastMALength(5);NumericSlowMALength(20);NumericTrendMALength(50);NumericExitStopN(3);VarsNumericSeriesTrendMA(0);NumericSeriesPriceOsci(0);NumericSeriesExitS;NumericSeriesMP;BeginIf(!CallAuctionFilter())Return;TrendMA=AverageFC(C,TrendMALength);PriceOsci=PriceOscillator(C,FastMALength,SlowMALength);PlotNumeric("TrendMA",TrendMA);If(MarketPosition<>-1andTrendMA[1]<>0){If(C[1]<TrendMA[1]andPriceOsci[1]>=0andPriceOsci[1]<PriceOsci[2]AndVol>0){SellShort(0,Open);}}ExitS=HighestFC(H,ExitStopN);If(MarketPosition==-1andMP[1]==-1){If(PriceOsci[1]>PriceOsci[2]andHigh>=ExitS[1]AndVol>0){BuyToCover(0,Max(Open,ExitS[1]));}}MP=MarketPosition;End做空信號代碼注解://參數聲明ParamsNumericFastMALength(5);//快速移動平均線周期NumericSlowMALength(20);//慢速移動平均線周期NumericTrendMALength(50);//趨勢移動平均線周期NumericExitStopN(3);//退出止損周期//變量聲明VarsNumericSeriesTrendMA(0);//趨勢移動平均線NumericSeriesPriceOsci(0);//價格振蕩器NumericSeriesExitS;//退出點NumericSeriesMP;//市場位置//策略開始Begin//過濾掉集合競價和小節休息時間If(!CallAuctionFilter())Return;//計算趨勢移動平均線TrendMA=AverageFC(C,TrendMALength);//計算價格振蕩器PriceOsci=PriceOscillator(C,FastMALength,SlowMALength);//繪制趨勢移動平均線PlotNumeric("TrendMA",TrendMA);//如果當前沒有空頭倉位,并且趨勢移動平均線不為0If(MarketPosition<>-1andTrendMA[1]<>0){//如果上一根K線的收盤價低于趨勢移動平均線,價格振蕩器大于等于0且小于當前周期的價格振蕩器,并且成交量大于0If(C[1]<TrendMA[1]andPriceOsci[1]>=0andPriceOsci[1]<PriceOsci[2]AndVol>0){//做空SellShort(0,Open);}}//計算退出點為過去N根K線的最高價ExitS=HighestFC(H,ExitStopN);//如果當前有空頭倉位,并且市場位置記錄器MP的上一個值等于-1If(MarketPosition==-1andMP[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論