布林軌道策略(TB版)_第1頁
布林軌道策略(TB版)_第2頁
布林軌道策略(TB版)_第3頁
布林軌道策略(TB版)_第4頁
布林軌道策略(TB版)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

布林軌道策略(TB版)主要邏輯1.布林通道策略概述布林通道策略是一種基于統(tǒng)計(jì)學(xué)的技術(shù)分析策略,主要通過計(jì)算價(jià)格的移動平均和標(biāo)準(zhǔn)差來確定價(jià)格的波動范圍,即上軌道、中軌道和下軌道。該策略常用于判斷市場的超買超賣狀態(tài),并據(jù)此進(jìn)行買賣操作。2.函數(shù)詳解VariancePS(估計(jì)方差函數(shù))參數(shù):*Price:數(shù)值型序列參數(shù),表示價(jià)格數(shù)據(jù)。*Length:數(shù)值型參數(shù),表示計(jì)算周期,默認(rèn)為10。*DataType:數(shù)值型參數(shù),控制計(jì)算細(xì)節(jié),默認(rèn)為1。邏輯:根據(jù)DataType計(jì)算Divisor(除數(shù))。計(jì)算Length周期內(nèi)的價(jià)格平均值(Mean)。遍歷每個(gè)周期,計(jì)算每個(gè)價(jià)格與平均值的差的平方和(SumSqr)。返回SumSqr除以Divisor的結(jié)果,即方差。StandardDev(標(biāo)準(zhǔn)差函數(shù))參數(shù):同VariancePS。邏輯:調(diào)用VariancePS函數(shù)計(jì)算方差。對方差取平方根,得到標(biāo)準(zhǔn)差。返回標(biāo)準(zhǔn)差,用于布林通道的計(jì)算。3.布林通道公式參數(shù):Length:計(jì)算移動平均和標(biāo)準(zhǔn)差的周期數(shù),默認(rèn)為20。Offset:確定布林帶寬度的系數(shù),默認(rèn)為2。變量:UpLine:上軌道。DownLine:下軌道。MidLine:中軌道(移動平均線)。Band:布林帶寬度。邏輯:使用AverageFC(或Average)函數(shù)計(jì)算Length周期的收盤價(jià)移動平均,作為中軌道。調(diào)用StandardDev函數(shù)計(jì)算標(biāo)準(zhǔn)差,并乘以O(shè)ffset得到布林帶寬度。計(jì)算上軌道和下軌道(中軌道加減布林帶寬度)。在圖表上繪制上軌道、下軌道和中軌道。4.策略信號代碼參數(shù):包括Length、Offset,以及新增的止損止盈點(diǎn)參數(shù)。變量:包括UpLine、DownLine、MidLine、Band,以及用于跟蹤止損的HighestAfterEntry、LowestAfterEntry等。邏輯:買賣條件基于價(jià)格突破布林帶上軌或下軌。止損設(shè)置為固定點(diǎn)數(shù)(如30個(gè)點(diǎn))。跟蹤止損根據(jù)開倉后的最高價(jià)或最低價(jià)動態(tài)調(diào)整。止盈可另行設(shè)置。5.修改后的策略代碼要點(diǎn)開倉條件保持不變。引入固定止損和跟蹤止損。記錄開倉后的最高價(jià)和最低價(jià),用于跟蹤止損的計(jì)算。根據(jù)市場位置和價(jià)格變動,執(zhí)行相應(yīng)的買賣動作。函數(shù)VariancePS求估計(jì)方差。ParamsNumericSeriesPrice(1);//聲明數(shù)值型序列參數(shù)Price,賦值為1.NumericLength(10);//聲明數(shù)值型參數(shù)Length,賦值10.NumericDataType(1);//聲明數(shù)值型參數(shù)DataType,賦值為1.VarsNumericDivisor;//聲明數(shù)值型變量Divisor。NumericSumSqr(0);//聲明數(shù)值型變量SumSqr,賦值為0.NumericMean;//聲明數(shù)值型變量Mean。Numerici;//聲明數(shù)值型變量i。BeginDivisor=Length-1;//變量Divisor的值等于參數(shù)Length減去1.If(DataType==1)//假如參數(shù)DataType等于1,執(zhí)行下列語句。Divisor=Length;//變量Divisor的值則等于參數(shù)Length。If(Divisor>0)//假如變量Divisor的值大于0。{Mean=Average(Price,Length);//變量Mean的值等于10個(gè)周期的平均價(jià)。fori=0toLength-1//循環(huán)的條件,就是從0開始到Length-1結(jié)束,就是在這期間的k線反復(fù)執(zhí)行下列的語句。{SumSqr=SumSqr+Sqr(Price[i]-Mean);//又一個(gè)累加的語句,SumSqr賦值為0,Sqr是一個(gè)平方的意思,則Sqr(Price[i]-Mean)等同于(Price[i]-Mean)*(Price[i]-Mean),把這連起來意思就是SumSqr的值逐步累加}ReturnSumSqr/Divisor;//計(jì)算SumSqr總值除以變量Divisor的值,把相除得到的值返回給主函數(shù)。}Else//假如變量Divisor的值小于等于0,執(zhí)行下列語句。{Return0;//返回的是0。}End求標(biāo)準(zhǔn)差函數(shù)StandardDev:ParamsNumericSeriesPrice(1);//聲明數(shù)值型序列參數(shù)Price,賦值為1.NumericLength(10);//聲明數(shù)值型參數(shù)Length,賦值為10.NumericDataType(1);//聲明數(shù)值型參數(shù)DataType,賦值為1.VarsNumericVarPSValue;//聲明數(shù)值型變量VarPSValue。BeginVarPSValue=VariancePS(Price,Length,DataType);//變量VarPSValue等于10k線的價(jià)格方差。If(VarPSValue>0)//假如變量VarPSValue大于0.{ReturnSqrt(VarPSValue);//求得正平方根,如果Sqrt里數(shù)字為負(fù),則函數(shù)Sqrt返回?zé)o效值。這個(gè)就是把VarPSValue的平方返回給主函數(shù),即布林通道計(jì)算可調(diào)用的值。}Else//假如VarPSValue小于或等于0的。{Return0;//返回給主函數(shù)就是0}End布林通道公式代碼:ParamsNumericLength(20);//聲明數(shù)值型參數(shù)Length,賦值為20.NumericOffset(2);//聲明數(shù)值型參數(shù)Offset,賦值為2.VarsNumericUpLine;//上軌道,聲明它為變量UpLine。NumericDownLine;//下軌道,聲明它為變量DownLine。NumericSeriesMidLine;//中間線,聲明它為序列變量MidLine。NumericBand;//聲明變量Band。BeginMidLine=AverageFC(Close,Length);//中間線MidLine的值就是求它20個(gè)周期的收盤價(jià)均值。Band=StandardDev(Close,Length,2);//變量Band的值,直接調(diào)用StandardDev函數(shù)求出來,就是把收盤價(jià),周期及數(shù)字2返回去求得。UpLine=MidLine+OffsetBand;//上軌道=20均線的值+系數(shù)值2*標(biāo)準(zhǔn)差。DownLine=MidLine-OffsetBand;//下軌道=20均線的值-系數(shù)值2*標(biāo)準(zhǔn)差。PlotNumeric("UpLine",UpLine);//畫出上軌道。PlotNumeric("DownLine",DownLine);//畫出下軌道。PlotNumeric("MidLine",MidLine);//畫出中間線,即20日均線。End突破上下軌道進(jìn)行買賣,止損就放在中間帶上。策略信號代碼:ParamsNumericLength(20);NumericOffset(2);VarsNumericSeriesUpLine;NumericSeriesDownLine;NumericSeriesMidLine;NumericBand;BeginMidLine=Average(Close,Length);Band=StandardDev(Close,Length,2);UpLine=MidLine+Offset*Band;DownLine=MidLine-Offset*Band;PlotNumeric("UpLine",UpLine);PlotNumeric("DownLine",DownLine);PlotNumeric("MidLine",MidLine);If(MarketPosition!=1&&Close[1]>UpLine[1]){Buy(1,Open);}If(MarketPosition!=-1&&Close[1]<DownLine[1]){SellShort(1,Open);}If(MarketPosition==1&&Close[1]<MidLine[1]){Sell(1,Open);}If(MarketPosition==-1&&Close[1]>MidLine[1]){BuyToCover(1,Open);}信號代碼的注解:Params定義參數(shù)段,用于設(shè)置策略中使用的變量的初始值。NumericLength(20);定義一個(gè)名為

Length

的數(shù)值型變量,并初始化為20,用于計(jì)算移動平均和標(biāo)準(zhǔn)差。NumericOffset(2);定義一個(gè)名為

Offset

的數(shù)值型變量,并初始化為2,用于確定布林帶的寬度。Vars定義變量段,用于聲明策略中使用的變量。NumericSeriesUpLine;聲明一個(gè)名為

UpLine

的數(shù)值型序列,用于存儲布林帶的上軌。NumericSeriesDownLine;聲明一個(gè)名為

DownLine

的數(shù)值型序列,用于存儲布林帶的下軌。NumericSeriesMidLine;聲明一個(gè)名為

MidLine

的數(shù)值型序列,用于存儲布林帶的中軌。NumericBand;聲明一個(gè)名為

Band

的數(shù)值型變量,用于存儲布林帶的寬度。Begin開始策略的主體部分。MidLine=Average(Close,Length);計(jì)算中軌,即收盤價(jià)的

Length

周期移動平均。Band=StandardDev(Close,Length,2);計(jì)算布林帶的寬度,即收盤價(jià)的

Length

周期標(biāo)準(zhǔn)差乘以2。UpLine=MidLine+Offset*Band;計(jì)算上軌,即中軌加上

Offset

倍的布林帶寬度。DownLine=MidLine-Offset*Band;計(jì)算下軌,即中軌減去

Offset

倍的布林帶寬度。PlotNumeric("UpLine",UpLine);在圖表上繪制名為"UpLine"的布林帶上軌。PlotNumeric("DownLine",DownLine);在圖表上繪制名為"DownLine"的布林帶下軌。PlotNumeric("MidLine",MidLine);在圖表上繪制名為"MidLine"的布林帶中軌。If(MarketPosition!=1&&Close[1]>UpLine[1]){...}如果當(dāng)前市場位置不是多頭且上一根K線的收盤價(jià)大于上軌,則執(zhí)行以下操作。Buy(1,Open);執(zhí)行買入操作。If(MarketPosition!=-1&&Close[1]<DownLine[1]){...}如果當(dāng)前市場位置不是空頭且上一根K線的收盤價(jià)小于下軌,則執(zhí)行以下操作。SellShort(1,Open);執(zhí)行賣出開空操作。If(MarketPosition==1&&Close[1]<MidLine[1]){...}如果當(dāng)前市場位置是多頭且上一根K線的收盤價(jià)小于中軌,則執(zhí)行以下操作。Sell(1,Open);執(zhí)行賣出平多操作。If(MarketPosition==-1&&Close[1]>MidLine[1]){...}如果當(dāng)前市場位置是空頭且上一根K線的收盤價(jià)大于中軌,則執(zhí)行以下操作。BuyToCover(1,Open);執(zhí)行買入平空操作。End結(jié)束修改一下:開倉條件不變,只改止損止盈點(diǎn)。給個(gè)固定止損最小變動的30個(gè)點(diǎn)。修改后信號代碼ParamsNumericLength(20);NumericOffset(2);NumericStopPoint(45);NumericProfitPoint(100);NumericTrailingStart1(50);//跟蹤止損啟動設(shè)置1NumericTrailingStart2(80);//跟蹤止損啟動設(shè)置2NumericTrailingStop1(30);//跟蹤止損設(shè)置1NumericTrailingStop2(20);//跟蹤止損設(shè)置2NumericStopLossSet(30);//固定止損30個(gè)點(diǎn)VarsNumericSeriesUpLine;NumericSeriesDownLine;NumericSeriesMidLine;NumericBand;NumericSeriesHighestAfterEntry;//開倉后出現(xiàn)的最高價(jià)。NumericSeriesLowestAfterEntry;//開倉后出現(xiàn)的最低價(jià)。NumericMinPoint;NumericMyEntryPrice;Numericmyprice;Numericmyexitprice;BeginMidLine=Average(Close,Length);Band=StandardDev(Close,Length,2);UpLine=MidLine+Offset*Band;DownLine=MidLine-Offset*Band;PlotNumeric("UpLine",UpLine);PlotNumeric("DownLine",DownLine);PlotNumeric("MidLine",MidLine);If(MarketPosition!=1&&Close[1]>UpLine[1]){Buy(1,Open);}If(MarketPosition!=-1&&Close[1]<DownLine[1]){SellShort(1,Open);}If(BarsSinceentry==0){HighestAfterEntry=Close;LowestAfterEntry=Close;If(MarketPosition<>0){HighestAfterEntry=Max(HighestAfterEntry,AvgEntryPrice);//開倉的Bar,將開倉價(jià)和當(dāng)時(shí)的收盤價(jià)的較大值保留到HighestAfterEntry。LowestAfterEntry=Min(LowestAfterEntry,AvgEntryPrice);//開倉的Bar,將開倉價(jià)和當(dāng)時(shí)的收盤價(jià)的較小值保留到LowestAfterEntry。}}else{HighestAfterEntry=Max(HighestAfterEntry,High);//記錄下當(dāng)前Bar的最高點(diǎn),用于下一個(gè)Bar的跟蹤止損判斷。/,LowestAfterEntry=Min(LowestAfterEntry,Low);//記錄下當(dāng)前Bar的最低點(diǎn),用于下一個(gè)Bar的跟蹤止損判斷。}Commentary("HighestAfterEntry="+Text(HighestAfterEntry));Commentary("LowestAfterEntry="+Text(LowestAfterEntry));Commentary("MyEntryPrice="+Text(MyEntryPrice));MinPoint=MinMove*PriceScale;MyEntryPrice=AvgEntryPrice;If(MarketPosition==1)//有多倉的情況。{If(HighestAfterEntry[1]>=MyEntryPrice+TrailingStart2*MinPoint)//第二級跟蹤止損的條件表達(dá)式。{If(Low<=HighestAfterEntry[1]-TrailingStop2*MinPoint){MyExitPrice=HighestAfterEntry[1]-TrailingStop2*MinPoint;Sell(0,MyExitPrice);}}elseif(HighestAfterEntry[1]>=MyEntryPrice+TrailingStart1*MinPoint)//第一級跟蹤止損的條件表達(dá)式。{If(Low<=HighestAfterEntry[1]-TrailingStop1*MinPoint){MyExitPrice=HighestAfterEntry[1]-TrailingStop1*MinPoint;Sell(0,MyExitPrice);}}elseif(Low<=MyEntryPrice

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論