價格突破通道策略(TB版)_第1頁
價格突破通道策略(TB版)_第2頁
價格突破通道策略(TB版)_第3頁
價格突破通道策略(TB版)_第4頁
價格突破通道策略(TB版)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

價格突破通道策略(TB版)該策略主要基于價格通道的突破以及動態(tài)跟蹤止損來制定交易決策,其核心交易思路可概括為以下幾點:1.**價格通道構(gòu)建**:首先,策略計算了一定周期長度內(nèi)的平均真實波動范圍(ATR),并以此為基礎(chǔ)構(gòu)建通道上下軌。上軌為N周期前高點的均線,下軌為N周期前低點的均線,同時計算中軌作為參考。2.**入場條件**:-**多頭入場**:當上一根K線的中點(MedianPrice)位于前一根K線的最高點之上,且當前K線振幅大于前一根,表明強勢突破,若此時收盤價高于N周期前高點的均線加上一個特定倍數(shù)的ATR,且存在成交量支持,則開倉買入。-**空頭入場**:與多頭入場類似,但條件相反,即當上一根K線中點低于前一根K線低點,且當前K線收盤價低于N周期前低點的均線減去特定倍數(shù)的ATR,同時伴隨成交量,開倉賣出做空。3.**動態(tài)止損**:-入場后,策略采用動態(tài)止損機制。最初幾根K線內(nèi),止損設(shè)在中軌附近;之后,止損線會根據(jù)行情變化動態(tài)調(diào)整,使用一種類似拋物線止損的方法,隨著盈利增加,止損線逐漸收緊,但若價格回調(diào),止損線的收緊速度也會加快。4.**出場條件**:-對于多頭倉位,當價格跌破動態(tài)跟蹤的止損價時,策略執(zhí)行平倉操作。-對于空頭倉位,當價格升破動態(tài)跟蹤的止損價時,策略執(zhí)行平倉買入操作。5.**盈利跟蹤與加速機制**:-在持有多頭或空頭倉位時,策略會跟蹤盈利的最高點(HighValue)或最低點(LowValue),并根據(jù)這些點位動態(tài)調(diào)整止損水平。當盈利繼續(xù)擴大時,止損點位的調(diào)整會更加激進(加速因子AF會逐步增加),以保護更多的盈利。綜上,該策略通過識別價格突破通道的信號來決定入場,并利用動態(tài)跟蹤止損來管理風險和鎖定利潤,特別強調(diào)了在趨勢延續(xù)過程中的盈利保護與適時退出機制。做多代碼ParamsNumericLength(10);NumericTrigger(0.79);NumericAcceleration(0.05);NumericFirstBarMultp(5);VarsNumericSeriesATR;NumericSeriesStopPrice;NumericSeriesHighValue;NumericSeriesAF;BoolSeriesCondition1(False);NumericStopATR;BeginIf(!CallAuctionFilter())Return;ATR=AvgTrueRange(Length);Condition1=High>Highest(High[1],Length);If(Condition1[1]){If(High>=Close[1]+ATR[1]*TriggerAndVol>0){Buy(0,Max(Open,Close[1]+ATR[1]*Trigger));}}StopATR=Average(TrueRange,3);If(MarketPosition==1AndBarsSinceEntry==0){StopPrice=Low-StopATR*FirstBarMultp;AF=Acceleration;HighValue=High;}ElseIf(MarketPosition==1AndBarsSinceEntry>0){If(High>HighValue)HighValue=High;If(HighValue>HighValue[1]AndAF<0.2){AF=AF+Min(Acceleration,0.2-AF);}StopPrice=StopPrice+AF*(HighValue-StopPrice);}PlotNumeric("StopPrice",StopPrice);If(MarketPosition==1AndBarsSinceEntry>0AndLow<=StopPrice[1]AndVol>0){Sell(0,Min(Open,StopPrice[1]));}End做多代碼解讀:ParamsNumericLength(10);//聲明數(shù)值參數(shù)Length,初值10,用于計算ATR和新高價的Bar數(shù)。//NumericTrigger(0.79);//聲明數(shù)值參數(shù)Trigger,初值0.79,用于計算多頭進場價的驅(qū)動系數(shù)。//NumericAcceleration(0.05);//聲明數(shù)值參數(shù)Acceleration,初值0.05,拋物線的加速系數(shù)。//NumericFirstBarMultp(5);//聲明數(shù)值參數(shù)FirstBarMultp,初值5,用于計算在進場Bar設(shè)置止損價的系數(shù)。//VarsNumericSeriesATR;//聲明數(shù)值序列變量ATR。//NumericSeriesStopPrice;//聲明序列變量StopPrice,即跟蹤止損價。//NumericSeriesHighValue;//聲明數(shù)值序列變量HighValue,即多頭進場之后的盈利峰值價。//NumericSeriesAF;//聲明數(shù)值序列變量AF。//BoolSeriesCondition1(False);//聲明布爾型序列變量Condition1,初值為假。//NumericStopATR;//聲明數(shù)值變量StopATR。//BeginIf(!CallAuctionFilter())Return;//集合競價和小節(jié)休息過濾。////初始設(shè)置。//ATR=AvgTrueRange(Length);//變量ATR的求法,就是之前解讀的拋物線了。//Condition1=High>Highest(High[1],Length);//先求Highest(High[1],Length)值,再與當前High比較,判斷當前最高價大于成立的,則把值賦值給布爾型變量Condition1值。////上一根Bar創(chuàng)新高后且當前Bar最高價突破上一根Bar收盤價加上ATR的一定倍數(shù)多頭入場。//If(Condition1[1])//假如前一個布爾型序列變量Condition1[1]為真。//{If(High>=Close[1]+ATR[1]*TriggerAndVol>0)//假如當前最高價>=前一收盤價Close[1]+前一ATR[1]*0.79,并且成交量Vol>0.//{Buy(0,Max(Open,Close[1]+ATR[1]*Trigger));//開倉買入了。//}}//記錄盈利峰值價和跟蹤止損價。//StopATR=Average(TrueRange,3);//函數(shù)TrueRange,求真實波動值了。函數(shù)Average,求平均值。這些都是前面解讀過的,都是把相應(yīng)數(shù)值代回去求值就行。//If(MarketPosition==1AndBarsSinceEntry==0)//假如持有多單,并且建倉位等于0.//{StopPrice=Low-StopATR*FirstBarMultp;//止損價StopPrice=最低價Low-變量StopATR*5.//AF=Acceleration;//代入值,即AF=0.05//HighValue=High;//序列變量HighValue=當前最高價High。//}ElseIf(MarketPosition==1AndBarsSinceEntry>0)//假如持有多單,并且建倉位大于0.//{If(High>HighValue)HighValue=High;//假如當前最高價大于變量HighValue值,則變量HighValue=當前High值。//If(HighValue>HighValue[1]AndAF<0.2)//假如當前變量HighValue值大于前一個HighValue[1]值的,并且AF<0.2//{AF=AF+Min(Acceleration,0.2-AF);//代入相應(yīng)值了,依據(jù)起始建倉位AF=Acceleration=0.05,這代碼意思先求括號里的最小值,再加上AF值,最后再賦值給系數(shù)AF了。//}StopPrice=StopPrice+AF*(HighValue-StopPrice);//這個StopPrice也是依據(jù)起始建倉位算得的值,這里也就是把相應(yīng)值給代進去算了。//}PlotNumeric("StopPrice",StopPrice);//畫出跟蹤止損價。////向下突破跟蹤止損價多頭出場。//If(MarketPosition==1AndBarsSinceEntry>0AndLow<=StopPrice[1]AndVol>0)//假如持有多單,并且建倉位大于0,并且最低價小于等于前一個止損價StopPrice值,并且成交量大于0.//{Sell(0,Min(Open,StopPrice[1]));//賣出平倉。//}End策略說明:1.計算價格通道2.收盤價加上ATR的一定倍數(shù)作為進場價入場條件:1.上一根Bar創(chuàng)新高2.當前Bar最高價突破上一根Bar收盤價加上ATR的一定倍數(shù)出場條件:1.記錄多頭進場后的跟蹤止損價2.價格向下突破跟蹤止損價多頭出場做空代碼ParamsNumericLength(10);NumericTrigger(0.5);NumericAcceleration(0.06);NumericFirstBarMultp(2);VarsNumericSeriesATR;NumericSeriesStopPrice;NumericSeriesLowValue;NumericSeriesAF;BoolSeriesCondition2(False);NumericStopATR;BeginIf(!CallAuctionFilter())Return;ATR=AvgTrueRange(Length);Condition2=Low<Lowest(Low[1],Length);If(Condition2[1]){If(Low<=Close[1]-ATR[1]*TriggerAndVol>0){SellShort(0,Min(Open,Close[1]-ATR[1]*Trigger));}}StopATR=Average(TrueRange,3);If(MarketPosition==-1AndBarsSinceEntry==0){StopPrice=High+StopATR*FirstBarMultp;AF=Acceleration;LowValue=Low;}ElseIf(MarketPosition==-1AndBarsSinceEntry>0){If(Low<LowValue)LowValue=Low;If(LowValue<LowValue[1]AndAF<0.2){AF=AF+Min(Acceleration,0.2-AF);}StopPrice=StopPrice-AF*(StopPrice-LowValue);}PlotNumeric("StopPrice",StopPrice);If(MarketPosition==-1AndBarsSinceEntry>0AndHigh>=StopPrice[1]AndVol>0){BuyToCover(0,Max(Open,StopPrice[1]));}End做空代碼解讀Params//定義數(shù)值型參數(shù)Length并初始化為10,用于計算ATR和判斷新低價的Bar數(shù)NumericLength(10);//定義數(shù)值型參數(shù)Trigger并初始化為0.5,用于計算空頭進場價的驅(qū)動系數(shù)NumericTrigger(0.5);//定義數(shù)值型參數(shù)Acceleration并初始化為0.06,拋物線的加速系數(shù)NumericAcceleration(0.06);//定義數(shù)值型參數(shù)FirstBarMultp并初始化為2,用于計算在進場Bar設(shè)置止損價的系數(shù)NumericFirstBarMultp(2);Vars//聲明數(shù)值序列變量ATR,用于存儲平均真實波動范圍值NumericSeriesATR;//聲明數(shù)值序列變量StopPrice,用于存儲跟蹤止損價NumericSeriesStopPrice;//聲明數(shù)值序列變量LowValue,用于存儲空頭進場之后的盈利低谷價NumericSeriesLowValue;//聲明數(shù)值序列變量AFNumericSeriesAF;//聲明布爾型序列變量Condition2并初始化為FalseBoolSeriesCondition2(False);//聲明數(shù)值變量StopATRNumericStopATR;Begin//如果不滿足集合競價過濾條件,則返回If(!CallAuctionFilter())Return;//計算平均真實波動范圍(ATR),使用指定的Length參數(shù)ATR=AvgTrueRange(Length);//判斷當前最低價是否小于過去Length個周期中的最低價,結(jié)果存儲在Condition2中Condition2=Low<Lowest(Low[1],Length);//如果前一周期的Condition2為真If(Condition2[1]){//如果當前最低價小于等于前一收盤價減去ATR乘以Trigger且成交量大于0If(Low<=Close[1]-ATR[1]*TriggerAndVol>0){//以最小的開盤價或前一收盤價減去ATR乘以Trigger的值進行賣空操作SellShort(0,Min(Open,Close[1]-ATR[1]*Trigger));}}//計算真實波動范圍的平均值,并存儲在StopATR中StopATR=Average(TrueRange,3);//如果當前倉位為空頭且建倉周期為0If(MarketPosition==-1AndBarsSinceEntry==0){//計算止損價為最高價加上StopATR乘以FirstBarMultpStopPrice=High+StopATR*FirstBarMultp;//將Acceleration的值賦給AFAF=Acceleration;//將當前最低價賦給LowVa

溫馨提示

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

最新文檔

評論

0/150

提交評論