高低點均線(TB版)_第1頁
高低點均線(TB版)_第2頁
高低點均線(TB版)_第3頁
高低點均線(TB版)_第4頁
高低點均線(TB版)_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

高低點均線(TB版)該交易策略的核心思路圍繞著“高低點均線通道”與“K線中值突破”來進行判斷,旨在捕捉市場趨勢并管理風險。1.高低點均線通道構建:-計算過去N周期內(由參數AvgLen定義)的最高價和最低價的移動平均線,分別得到上軌(UpperAvg)和下軌(LowerAvg),以此形成價格通道。-計算過去N周期內K線中點的移動平均線作為通道中軌(ExitAvg),用以輔助判斷和止損。2.識別RangeLeader:-判斷當前K線是否為“RangeLeader”,即其K線中點(MedianPrice)位于前一根K線的高點之上,且當前K線的振幅大于前一根K線,這表明市場具有較強的向上或向下突破潛力。3.入場條件:-當上一根K線是RangeLeader,且收盤價相對于N周期前的高點或低點均線有顯著偏離時,采取行動。-如果上一根K線收盤價高于上軌均線,且當前無多倉,則開立多頭倉位。-如果上一根K線收盤價低于下軌均線,且當前無空倉,則開立空頭倉位。4.出場條件:-開倉后,策略設置了動態的止損機制。-在開倉后的前ExitBar根K線內,如果價格觸及中軌(ExitAvg),則平倉止損。-超過ExitBar根K線后,若價格觸及上軌減去最小變動價位(對于多頭),或下軌加上最小變動價位(對于空頭),則以更寬的止損標準平倉。5.風險管理:-結合市場位置和時間,動態調整止損位置,初期采用較為保守的中軌止損,隨后轉為更寬泛的上下軌止損,反映了對市場波動性的適應性管理。總結來說,該策略利用通道突破和K線形態來捕捉趨勢啟動點,并通過靈活的止損策略來管理風險,是一種結合趨勢追蹤和止損優化的交易思路。做多信號代碼:ParamsNumericAvgLen(20)NumericAbsDisp(5)NumericExitBar(5)VarsNumericSeriesUpperAvg(0)NumericSeriesLowerAvg(0)NumericSeriesExitAvg(0)BoolSeriesRangeLeadB(False)NumericSeriesMedianPriceNumericminpointNumericSeriesrangeBeginIf(!CallAuctionFilter())Returnminpoint=Minmove*PriceScalerange=High-LowUpperAvg=Average(High[AbsDisp],AvgLen)LowerAvg=Average(Low[AbsDisp],AvgLen)MedianPrice=(High+Low)*0.5ExitAvg=Average(MedianPrice[AbsDisp],AvgLen)RangeLeadB=MedianPrice>High[1]andRange>Range[1]If(MarketPosition==0){If(RangeLeadB[1]andClose[1]>UpperAvg[1]){Buy(0,Open)}}If(MarketPosition==1andBarsSinceEntry>0){If(BarsSinceEntry<=ExitBar){If(Low<=ExitAvg){Sell(0,Min(Open,ExitAvg))}}ElseIf(BarsSinceEntry>ExitBar){If(Low<=UpperAvg-minpoint){Sell(0,Min(Open,UpperAvg-minpoint))}}}End策略說明:基于平移的高點和低點均線通道與K線中值突破進行判斷系統要素:1.RangeLeader是個當前K線的中點在之前K線的最高點上,且當前K線的振幅大于之前K線的振幅的K線2.計算高點和低點的移動平均線入場條件:1、上根K線為RangeLead,并且上一根收盤價大于N周期前高點的MA,當前無多倉,則開多倉2、上根K線為RangeLead,并且上一根收盤價小于N周期前低點的MA,當前無空倉,則開空倉出場條件:1.開倉后,5個K線內用中軌止損,5個K線后用外軌止損做多代碼解讀如下:ParamsNumericAvgLen(20);//聲明數值參數AvgLen,初值為20,即高低點均線計算周期NumericAbsDisp(5);//聲明數值參數AvsDisp,初值為5,即高低點均線前移周期NumericExitBar(5);//聲明數值參數ExitBar,初值為5,即為止損周期參數,該周期以前中軌止損,以后外軌止損。VarsNumericSeriesUpperAvg(0);//聲明序列變量UpperAvg,初值0,即通道上軌NumericSeriesLowerAvg(0);//聲明序列變量LowerAvg,初值0,即通道下軌NumericSeriesExitAvg(0);//聲明序列變量ExitAvg,初值0,即通道中軌BoolSeriesRangeLeadB(False);//聲明序列布爾型變量RangeLeadB,初值為假NumericSeriesMedianPrice;//聲明序列變量MedianPrice,即K線中價Numericminpoint;//聲明序列變量minpoint,即最小變動價位。NumericSeriesrange;//聲明序列變量range,即為振幅。BeginIf(!CallAuctionFilter())Return;//集合競價和小節休息過濾。//指標計算minpoint=Minmove*PriceScale;//最小變動價位。range=High-Low;//變量range=高價-低價。UpperAvg=Average(High[AbsDisp],AvgLen);//把相應值返回函數Average求值,即計算N周期前高點的均線,N=參數AbsDisp值為5。LowerAvg=Average(Low[AbsDisp],AvgLen);//把相應值返回函數Average求值,計算N周期前低點的均線,N=參數AbsDisp值為5.MedianPrice=(High+Low)*0.5;//代入相應值,計算得變量MedianPrice值,即為計算K線中點。ExitAvg=Average(MedianPrice[AbsDisp],AvgLen);//同樣的,把相應值返回函數Average求值,即計算N周期前K線中點的均線,N=參數AbsDisp值為5.RangeLeadB=MedianPrice>High[1]andRange>Range[1];//當K線中點大于前一根K線高點并且振幅大于上一根振幅時,RangeLeadB為真。//開倉買賣系統入場If(MarketPosition==0)//沒有持倉情況下。{If(RangeLeadB[1]andClose[1]>UpperAvg[1])//假如上根K線RangeLeadB為真,并且上一根收盤價大于N周期前高點的均線,當前無多倉,則開多倉。{Buy(0,Open);//以開盤價,開倉買入。}}//平倉出場If(MarketPosition==1andBarsSinceEntry>0)//持有多單,并且建倉位置的k線數位大于0.{If(BarsSinceEntry<=ExitBar)//開倉后N根K線內用中軌止損,N根K線后用上軌止損,N=參數ExitBar,其實就是建倉位置小于等于5.{If(Low<=ExitAvg)//假如低價小于等于變量ExitAvg值,即中軌。{Sell(0,Min(Open,ExitAvg));//取開盤價與中軌價的小值,平倉。}}ElseIf(BarsSinceEntry>ExitBar)//假如建倉位置位數大于5{If(Low<=UpperAvg-minpoint)//假如低價小于等于上軌減去最小跳動價{Sell(0,Min(Open,UpperAvg-minpoint));//平倉}}}End做空信號代碼:ParamsNumericAvgLen(20);NumericAbsDisp(5);NumericExitBar(5);VarsNumericSeriesUpperAvg(0);NumericSeriesLowerAvg(0);NumericSeriesExitAvg(0);BoolSeriesRangeLeadS(False);NumericSeriesMedianPrice;Numericminpoint;NumericSeriesrange;BeginIf(!CallAuctionFilter())Return;minpoint=Minmove*PriceScale;range=High-Low;UpperAvg=Average(High[AbsDisp],AvgLen);LowerAvg=Average(Low[AbsDisp],AvgLen);MedianPrice=(High+Low)*0.5;ExitAvg=Average(MedianPrice[AbsDisp],AvgLen);RangeLeadS=MedianPrice<Low[1]andRange>Range[1];If(MarketPosition==0){If(RangeLeadS[1]andClose[1]<LowerAvg[1]){Sellshort(0,Open);}}If(MarketPosition==-1andBarsSinceEntry>0){If(BarsSinceEntry<=ExitBar){If(High>=ExitAvg){Buytocover(0,Max(Open,ExitAvg));}}ElseIf(BarsSinceEntry>ExitBar){If(High>=LowerAvg+minpoint){Buytocover(0,Max(Open,LowerAvg+minpoint));}}}End做空代碼注解://定義參數,這些參數可以由用戶根據需要進行調整ParamsNumericAvgLen(20);//計算移動平均線的周期長度NumericAbsDisp(5);//移動平均線前移的周期數NumericExitBar(5);//止損周期參數,決定何時使用中軌或外軌進行止損//定義變量,這些變量在策略中被計算和使用VarsNumericSeriesUpperAvg(0);//通道上軌的移動平均線NumericSeriesLowerAvg(0);//通道下軌的移動平均線NumericSeriesExitAvg(0);//通道中軌的移動平均線BoolSeriesRangeLeadS(False);//標記是否為RangeLeader的布爾序列NumericSeriesMedianPrice;//K線中點的價格序列Numericminpoint;//最小變動價位NumericSeriesrange;//K線的振幅序列//策略的開始Begin//過濾掉集合競價時段If(!CallAuctionFilter())Return;//計算最小變動價位minpoint=Minmove*PriceScale;//計算當前K線的振幅range=High-Low;//計算N周期前高點的移動平均線作為上軌UpperAvg=Average(High[AbsDisp],AvgLen);//計算N周期前低點的移動平均線作為下軌LowerAvg=Average(Low[AbsDisp],AvgLen);//計算當前K線的中點MedianPrice=(High+Low)*0.5;//計算N周期前K線中點的移動平均線作為中軌ExitAvg=Average(MedianPrice[AbsDisp],AvgLen);//判斷當前K線是否為RangeLeader,即中點低于前一根K線的低點且振幅大于前一根RangeLeadS=MedianPrice<Low[1]andRange>Range[1];//檢查當前沒有空倉時的開倉條件If(MarketPosition==0){//如果上根K線為RangeLeader,并且上一根收盤價低于N周期前低

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論