




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
加權(OBV)指標策略(TB版)一個基于波動加權后的OBV(On-BalanceVolume)指標的交易策略。該策略通過分析市場中的成交量和價格變化來生成買賣信號。其核心思想是利用OBV指標的變化來判斷市場的趨勢和動能,從而確定買入或賣出的時機。首先,策略通過計算波動加權的OBV值來反映市場的活躍程度。波動加權的OBV計算考慮了價格的波動范圍,使得OBV能夠更準確地反映市場的真實情況。具體來說,OBV值的計算基于收盤價與開盤價的差值除以最高價與最低價的差值,再乘以成交量。這種計算方法能夠更好地捕捉到市場的波動性。其次,策略使用簡單移動平均線(SMA)對波動加權的OBV進行平滑處理。通過計算OBV的SMA,策略能夠識別出OBV的趨勢變化。當OBV上穿其SMA時,表明市場動能增強,可能形成上升趨勢;反之,當OBV下穿其SMA時,表明市場動能減弱,可能形成下降趨勢。在買入方面,策略在OBV上穿其SMA時,會檢查是否滿足特定的條件來觸發買入信號。這些條件通常包括當前的最高價是否超過某個預設的觸發價,并且確保當前沒有持倉。如果條件滿足,策略會在當前最高價或更高位置建立多頭頭寸。在賣出方面,策略在OBV下穿其SMA時,會檢查是否滿足特定的條件來觸發賣出信號。這些條件通常包括當前的最低價是否低于某個預設的觸發價,并且確保當前沒有持倉。如果條件滿足,策略會在當前最低價或更低位置建立空頭頭寸。此外,策略還包含出場條件:當市場持有多頭頭寸時,如果OBV再次下穿其SMA,策略會在下一個開盤價平掉多頭頭寸。同樣地,當市場持有空頭頭寸時,如果OBV上穿其SMA,策略會在下一個開盤價平掉空頭頭寸??傮w而言,這個策略通過結合OBV指標和SMA,利用市場波動性和動能的變化來生成買賣信號。它能夠在市場趨勢明顯時提供有效的入場和出場機會,適用于那些希望通過技術分析來指導交易的投資者。做多信號代碼:ParamsNumericAvgLength(25);VarsNumericSeriesWOBV(0);NumericSeriesSSMA(0);boolSeriesBuySetup(False);NumericSeriesLEPrice(0);boolcon;boolcon2;boolSeriescon3;Numericminpoint;BeginIf(!CallAuctionFilter())Return;minpoint=Minmove*PriceScale;If(High-Low<>0)WOBV=WOBV+(((Close-Open)/(High-Low))*Vol);SSMA=Average(WOBV,AvgLength);con=CrossOver(WOBV,SSMA);If(con){BuySetup=True;LEPrice=High;}con2=CrossUnder(WOBV,SSMA);If(con2)BuySetup=False;If(MarketPosition==1)BuySetup=False;If(MarketPosition==0){If(BuySetup[1]andHigh>=LEPrice[1]+minpoint)Buy(0,max(Open,LEPrice[1]+minpoint));}con3=CrossUnder(WOBV,SSMA);If(MarketPosition==1andBarsSinceEntry>0){If(con3[1])Sell(0,Open);}End策略說明:本策略基于用波動加權后的OBV進行判斷入場條件,結合高低點突破入場系統要素:1.計算波動加權WOBV,根據WOBV預期均值關系,設定觸發條件單入場條件:1.當WOBV上穿它的MA時,在當根K線高點建立做多觸發單2.當WOBV下穿它的MA時,在當根K線低點建立做空觸發單出場條件:1.當WOBV上穿它的MA時,次根K線開盤平空倉2.當WOBV下穿它的MA時,次根K線開盤平多倉做多代碼解讀:ParamsNumericAvgLength(25);//聲明數值參數AvgLength,初值25,為計算WOBV的ma周期值。VarsNumericSeriesWOBV(0);//聲明數值序列變量WOBV,初值0,即指標變量。NumericSeriesSSMA(0);//聲明數值序列變量SSMA,初值0,即WOBV指標均值變量。boolSeriesBuySetup(False);//聲明布爾型序列變量BuySetup,初值為假,開多標識。NumericSeriesLEPrice(0);//聲明數值序列變量LEPrice,初值0,多頭觸發線。boolcon;//聲明布爾型變量con。boolcon2;//聲明布爾型變量con2.boolSeriescon3;//聲明布爾型序列變量con3.Numericminpoint;//聲明數值變量minpoint,即最小變動價位。BeginIf(!CallAuctionFilter())Return;//集合競價和小節休息過濾。minpoint=Minmove*PriceScale;//計算最小變動價位。//WOBV指標計算。If(High-Low<>0)//假如最高價High-最低價Low不等于0{WOBV=WOBV+(((Close-Open)/(High-Low))*Vol);//代入相應初始數值,計算波動加權后的OBV,即得WOBV值。}SSMA=Average(WOBV,AvgLength);//計算25周期的WOBV的MA均線。//多空觸發條件計算con=CrossOver(WOBV,SSMA);//變量WOBV上穿SSMA均線。If(con)//假如條件con為真。{BuySetup=True;//開多標識BuySetup賦值為真。LEPrice=High;//變量LEPrice=當前最高價High。}con2=CrossUnder(WOBV,SSMA);//變量WOBV跌穿SSMA均線。If(con2)//假如條件con2為真。{BuySetup=False;//開多標識BuySetup賦值為假。}//做多標識初始化If(MarketPosition==1)//假如當前持有多單。BuySetup=False;//則開多標識賦值為假,即初始化。//系統入場If(MarketPosition==0)//當前沒有持倉。{If(BuySetup[1]andHigh>=LEPrice[1]+minpoint)//假如前一個開多標識為真,且當前最高價大于等于前一變量LEPrice值加上一跳價格。{Buy(0,max(Open,LEPrice[1]+minpoint));//開多,兩價格比較取較大值。}}//系統出場con3=CrossUnder(WOBV,SSMA);//變量WOBV跌穿SSMA均線。If(MarketPosition==1andBarsSinceEntry>0)//當前持有多單,且建倉數位大于0.{If(con3[1])//假如條件con3[1]成立。{Sell(0,Open);//以開盤價平倉。}}End做空信號代碼:ParamsNumericAvgLength(25);VarsNumericSeriesWOBV(0);NumericSeriesSSMA(0);boolSeriesSellSetup(False);NumericSeriesSEPrice(0);boolcon;boolcon2;boolSeriescon3;Numericminpoint;BeginIf(!CallAuctionFilter())Return;minpoint=Minmove*PriceScale;If(High-Low<>0){WOBV=WOBV+(((Close-Open)/(High-Low))*Vol);}SSMA=Average(WOBV,AvgLength);con=CrossOver(WOBV,SSMA);If(con){SellSetup=False;}con2=CrossUnder(WOBV,SSMA);If(con2){SellSetup=True;SEPrice=Low;}If(MarketPosition==-1)SellSetup=False;If(MarketPosition==0){If(SellSetup[1]andLow<=SEPrice[1]-minpoint){SellShort(0,min(Open,SEPrice[1]-minpoint));}}con3=CrossOver(WOBV,SSMA);If(MarketPosition==-1andBarsSinceEntry>0){If(con3[1]){Buytocover(0,Open);}}End做空代碼注解:Params//定義策略參數的開始NumericAvgLength(25);//定義一個名為AvgLength的數值參數,用于設置WOBV移動平均線的周期,初始值為25。Vars//聲明變量的開始NumericSeriesWOBV(0);//聲明一個數值序列變量WOBV,初始化為0,用于存儲加權OBV值。NumericSeriesSSMA(0);//聲明一個數值序列變量SSMA,初始化為0,用于存儲WOBV的簡單移動平均值。boolSeriesSellSetup(False);//聲明一個布爾序列變量SellSetup,初始化為False,用于標識是否設置做空觸發條件。NumericSeriesSEPrice(0);//聲明一個數值序列變量SEPrice,初始化為0,用于記錄做空觸發價。boolcon;//聲明一個布爾變量con,用于存儲WOBV上穿SSMA的條件。boolcon2;//聲明一個布爾變量con2,用于存儲WOBV下穿SSMA的條件。boolSeriescon3;//聲明一個布爾序列變量con3,用于記錄WOBV上穿SSMA的條件。Numericminpoint;//聲明一個數值變量minpoint,用于存儲最小變動價位。Begin//策略邏輯的開始If(!CallAuctionFilter())Return;//如果當前不是交易時間,則退出策略。minpoint=Minmove*PriceScale;//根據最小變動價位和價格刻度計算minpoint。If(High-Low<>0)//如果當前K線的高低價差不為0。{WOBV=WOBV+(((Close-Open)/(High-Low))*Vol);//計算加權OBV值。}SSMA=Average(WOBV,AvgLength);//計算WOBV的AvgLength周期簡單移動平均值。con=CrossOver(WOBV,SSMA);//判斷WOBV是否上穿SSMA。If(con)//如果WOBV上穿SSMA。{SellSetup=False;//設置SellSetup為False,表示不做空。}con2=CrossUnder(WOBV,SSMA);//判斷WOBV是否下穿SSMA。If(con2)//如果WOBV下穿SSMA。{SellSetup=True;//設置SellSetup為True,表示可以做空。SEPrice=Low;//記錄當前最低價為做空觸發價。}If(MarketPosition==-1)//如果當前持有空頭頭寸。SellSetup=False;//重置SellSetup為False,表示不繼續做空。If(MarketPosition==0)//如果當前沒有持倉。{If(SellSetup[1]andLow<=SEPrice[1]-minpoint)//如果前一根K線的SellSetup為True,并且當前最低價小于前一根K線的SEPrice減去最小變動價位。{SellShort(0,min(Open,SEPrice[1]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論