加權(quán)均值策略(TB版)_第1頁
加權(quán)均值策略(TB版)_第2頁
加權(quán)均值策略(TB版)_第3頁
加權(quán)均值策略(TB版)_第4頁
加權(quán)均值策略(TB版)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

加權(quán)均值策略(TB版)該策略的主要交易思路:計(jì)算加權(quán)均值:首先,策略通過計(jì)算K線的加權(quán)均值來確定價(jià)格的一個(gè)基準(zhǔn)點(diǎn)。加權(quán)均值計(jì)算公式為(最高價(jià)+最低價(jià)+2*收盤價(jià))/4,這個(gè)值用于后續(xù)的支撐和阻力計(jì)算。確定支撐和阻力線:阻力線:基于加權(quán)均值計(jì)算得出,公式為(加權(quán)均值*2)-最低價(jià)。支撐線:同樣基于加權(quán)均值計(jì)算得出,公式為(加權(quán)均值*2)-最高價(jià)。入場條件:做多入場:當(dāng)當(dāng)前價(jià)格(通常是最高價(jià))突破前一周期的阻力線,并且成交量大于0時(shí),策略執(zhí)行買入操作。做空入場(多頭的相反邏輯可應(yīng)用于做空):當(dāng)當(dāng)前價(jià)格(通常是最低價(jià))跌破前一周期的支撐線,并且成交量大于0時(shí),執(zhí)行賣出做空操作。出場條件:止盈出場:對于多頭持倉,如果當(dāng)前價(jià)格達(dá)到或超過根據(jù)ATR(平均真實(shí)波幅)計(jì)算的止盈價(jià)格,則執(zhí)行賣出操作。止盈價(jià)格計(jì)算為入場價(jià)格加上ATR的一定倍數(shù)(該倍數(shù)由參數(shù)ATRs決定)。反轉(zhuǎn)出場(止損):對于多頭持倉,如果當(dāng)前價(jià)格跌破前一周期的支撐線,則執(zhí)行賣出操作作為止損或反轉(zhuǎn)出場的信號(hào)。交易執(zhí)行:在滿足入場條件時(shí),根據(jù)開盤價(jià)或突破價(jià)格附近的合適價(jià)格執(zhí)行買入或賣出操作。在滿足出場條件時(shí),同樣根據(jù)當(dāng)前市場價(jià)格或計(jì)算出的止盈/止損價(jià)格執(zhí)行平倉操作。過濾條件:策略中還包含了對集合競價(jià)和小節(jié)休息的過濾,即如果當(dāng)前處于這些時(shí)段,策略將不會(huì)執(zhí)行任何交易操作??梢暬翰呗酝ㄟ^繪制阻力線和支撐線來幫助交易者更直觀地觀察市場走勢,并輔助決策。策略邏輯:整體上,該策略利用加權(quán)均值計(jì)算支撐和阻力線,通過突破這些線來識(shí)別入場機(jī)會(huì),并結(jié)合ATR和價(jià)格反轉(zhuǎn)來管理持倉風(fēng)險(xiǎn)和利潤。做多信號(hào)代碼:ParamsNumericATRs(3);NumericATRLength(10);VarsNumericSeriesWAvgPrice;NumericSeriesResistance;NumericSeriesSupport;NumericATRVal;NumericSeriesmyExitPrice;BeginIf(!CallAuctionFilter())Return;WAvgPrice=(High+Low+(Close*2))/4;Resistance=(WAvgPrice*2)-Low;Support=(WAvgPrice*2)-High;PlotNumeric("Resistance",Resistance[1]);PlotNumeric("Support",Support[1]);ATRVal=AvgTrueRange(ATRLength);If(MarketPosition==0AndHigh>=Resistance[1]+MinMove*PriceScaleAndVol>0){Buy(0,Max(Open,Resistance[1]+MinMove*PriceScale));}If(MarketPosition==1AndBarsSinceEntry==0){myExitPrice=EntryPrice+ATRVal*ATRs;}If(MarketPosition==1AndBarsSinceEntry>0AndVol>0){If(High>=myExitPrice){Sell(0,Max(Open,myExitPrice));Commentary("止盈出場");}ElseIf(Low<=Support[1]-MinMove*PriceScale){Sell(0,Min(Open,Support[1]-MinMove*PriceScale));Commentary("反轉(zhuǎn)出場");}}End策略說明:本策略是基于K線加權(quán)均值的支撐阻力線突破系統(tǒng)系統(tǒng)要素:1.K線的加權(quán)均值=(最高價(jià)+最低價(jià)+2*收盤價(jià))/42.支撐線=K線加權(quán)均值-(最高價(jià)-K線加權(quán)均值)3.阻力線=K線加權(quán)均值+(K線加權(quán)均值-最低價(jià))入場條件:1.當(dāng)價(jià)格向上突破阻力線做多2.當(dāng)價(jià)格向下突破支撐線做空出場條件:1.趨勢反轉(zhuǎn)即反向突破時(shí)出場2.基于ATR的一定倍數(shù)的止盈做多代碼及解讀如下:ParamsNumericATRs(3);//聲明數(shù)值參數(shù)ATRs,初值3,幾倍ATR止盈。NumericATRLength(10);//聲明數(shù)值參數(shù)ATRLength,初值10,ATR周期。VarsNumericSeriesWAvgPrice;//聲明數(shù)值序列變量WAvgPrice,即K線加權(quán)均值。NumericSeriesResistance;//聲明數(shù)值序列變量Resistance,即阻力線。NumericSeriesSupport;//聲明數(shù)值序列變量Support,即支撐線。NumericATRVal;//聲明數(shù)值變量ATR(平均真實(shí)波幅)。NumericSeriesmyExitPrice;//聲明數(shù)值序列變量myExitPrice,即開倉BAR根據(jù)當(dāng)時(shí)的ATR計(jì)算出的止盈價(jià)。BeginIf(!CallAuctionFilter())Return;//集合競價(jià)和小節(jié)休息過濾。//計(jì)算當(dāng)前K線的加權(quán)均值、阻力線和支撐線。WAvgPrice=(High+Low+(Close*2))/4;//計(jì)算當(dāng)前k線的加權(quán)均值。Resistance=(WAvgPrice*2)-Low;//計(jì)算阻力線。Support=(WAvgPrice*2)-High;//計(jì)算支撐線。PlotNumeric("Resistance",Resistance[1]);//畫阻力線。PlotNumeric("Support",Support[1]);//畫支撐線。ATRVal=AvgTrueRange(ATRLength);//計(jì)算ATR。If(MarketPosition==0AndHigh>=Resistance[1]+MinMove*PriceScaleAndVol>0)//假如當(dāng)前沒有持倉,且當(dāng)前最高價(jià)大于等于前一阻力線加一跳的價(jià)格,且成交量大于0{Buy(0,Max(Open,Resistance[1]+MinMove*PriceScale));//開倉買入。}//開倉時(shí)根據(jù)開倉BAR的ATR計(jì)算止盈價(jià)。If(MarketPosition==1AndBarsSinceEntry==0)//當(dāng)前持有多單,且建倉數(shù)位等于0.{myExitPrice=EntryPrice+ATRVal*ATRs;//出場價(jià)=進(jìn)場價(jià)+3*ATRVal值。}If(MarketPosition==1AndBarsSinceEntry>0AndVol>0)//當(dāng)前持有多單,且建倉數(shù)位大于0,且成交量大于0.{//止盈出場If(High>=myExitPrice)//假如當(dāng)前最高價(jià)大于等于出場價(jià)。{Sell(0,Max(Open,myExitPrice));//平倉。Commentary("止盈出場");//在超級圖表上注釋“止盈出場”。}//反向突破止損出場.ElseIf(Low<=Support[1]-MinMove*PriceScale)//假如當(dāng)前最低價(jià)小于等于前一支撐線減去一跳的價(jià)格。{Sell(0,Min(Open,Support[1]-MinMove*PriceScale));//平倉。Commentary("反轉(zhuǎn)出場");//在超級圖表上注釋“反轉(zhuǎn)出場”。}}End做空信號(hào)代碼:ParamsNumericATRs(3);NumericATRLength(10);VarsNumericSeriesWAvgPrice;NumericSeriesResistance;NumericSeriesSupport;NumericATRVal;NumericSeriesmyExitPrice;BeginIf(!CallAuctionFilter())Return;WAvgPrice=(High+Low+(Close*2))/4;Resistance=(WAvgPrice*2)-Low;Support=(WAvgPrice*2)-High;PlotNumeric("Resistance",Resistance[1]);PlotNumeric("Support",Support[1]);ATRVal=AvgTrueRange(ATRLength);If(MarketPosition==0AndLow<=Support[1]-MinMove*PriceScaleAndVol>0){SellShort(0,Min(Open,Support[1]-MinMove*PriceScale));}If(MarketPosition==-1AndBarsSinceEntry==0){myExitPrice=EntryPrice-ATRVal*ATRs;}If(MarketPosition==-1AndBarsSinceEntry>0AndVol>0){If(Low<=myExitPrice){BuyToCover(0,Min(Open,myExitPrice));Commentary("止盈出場");}ElseIf(High>=Resistance[1]+MinMove*PriceScale){BuyToCover(0,Max(Open,Resistance[1]+MinMove*PriceScale));Commentary("反轉(zhuǎn)出場");}}End做空代碼注解:

Params

部分定義了策略參數(shù),可以調(diào)整這些參數(shù)以適應(yīng)不同的交易需求:

NumericATRs(3);

定義了一個(gè)名為

ATRs

的數(shù)值參數(shù),默認(rèn)值為3。

NumericATRLength(10);

定義了一個(gè)名為

ATRLength

的數(shù)值參數(shù),默認(rèn)值為10。

Vars

部分聲明了策略中使用的變量:

NumericSeriesWAvgPrice;

聲明了一個(gè)名為

WAvgPrice

的數(shù)值序列,用于存儲(chǔ)加權(quán)平均價(jià)格。

NumericSeriesResistance;

聲明了一個(gè)名為

Resistance

的數(shù)值序列,用于存儲(chǔ)阻力位。

NumericSeriesSupport;

聲明了一個(gè)名為

Support

的數(shù)值序列,用于存儲(chǔ)支撐位。

NumericATRVal;

聲明了一個(gè)名為

ATRVal

的數(shù)值變量,用于存儲(chǔ)平均真實(shí)波動(dòng)范圍(ATR)的值。

NumericSeriesmyExitPrice;

聲明了一個(gè)名為

myExitPrice

的數(shù)值序列,用于存儲(chǔ)自定義的退出價(jià)格。

Begin

標(biāo)識(shí)策略邏輯的開始。

If(!CallAuctionFilter())Return;

調(diào)用一個(gè)拍賣過濾器,如果返回

false

,則退出策略。

WAvgPrice

的計(jì)算公式是將最高價(jià)、最低價(jià)和收盤價(jià)的兩倍加起來,然后除以4,得到加權(quán)平均價(jià)格。

Resistance

Support

的計(jì)算公式是使用加權(quán)平均價(jià)格的兩倍減去最低價(jià)和最高價(jià),分別得到阻力位和支撐位。

PlotNumeric

函數(shù)用于在圖表上繪制數(shù)值序列。

AvgTrueRange

函數(shù)計(jì)算平均真實(shí)波動(dòng)范圍(ATR),

ATRLength

參數(shù)指定了計(jì)算ATR時(shí)使用的周期數(shù)。下面的

If

語句塊定義了交易邏輯:當(dāng)市場位置為0(即沒有持有任何頭寸)時(shí),如果價(jià)格跌破支撐位,并且成交量大于0,則執(zhí)行賣出做空操作。當(dāng)市場位置為-1(即持有空頭頭寸)且進(jìn)入市場后的第一根K線,計(jì)算退出價(jià)格為入場價(jià)格減去ATR乘以

ATRs

。當(dāng)市場位置為-1且持有頭寸超過一根K線時(shí),如果價(jià)格跌破自定義的退出價(jià)格,則執(zhí)行買入平倉操作,并注釋"止盈出場";如果價(jià)格突破阻力位,也執(zhí)行買入平倉操作,并注釋"反轉(zhuǎn)出場"。

Commentary

函數(shù)用于在圖表上添加注釋。

End

標(biāo)識(shí)策略邏輯的結(jié)束。另一加權(quán)策略版本:WAverage函數(shù)代碼說明:ParamsNumericSeriesPrice(10);//聲明數(shù)值序列參數(shù)Price,初始值為10NumericLength(10);//聲明數(shù)值參數(shù)Length,初始值為10.VarsNumericWtdSum(0);//聲明變量,WtdSum,初始值為0.NumericCumWt;//聲明變量CumWt。Numerici;//聲明變量iBeginfori=0toLength-1//循環(huán)結(jié)構(gòu),意思是變量i從0開始到9(10-1)依據(jù)下列代碼做循環(huán)計(jì)算.{WtdSum=WtdSum+(Length-i)*Price[i];//WtdSum初值為0,解讀第一個(gè)數(shù)值i=0,直接把數(shù)代進(jìn)公式,變量WtdSum=0+(10-0)*Price[0],第二個(gè)數(shù)值i=1,也就是WtdSum=(0+(10-0)*Price[0])+(10-1)*Price[1],第三個(gè)也是代數(shù)值進(jìn)去求值。直到循環(huán)條件i=10,不滿足條件,跳出這個(gè)循環(huán),也可以算出10周期變量WtdSum總值。}CumWt=(Length+1)*Length*1/2;//變量CumWt=(10+1)*10*1/2,其實(shí)這步就是算出一個(gè)依據(jù)不同周期變化的權(quán)重系數(shù)。ReturnWtdSum/CumWt;//用變量WtdSum總值/權(quán)重系數(shù)變量CumWt,計(jì)算得到的值返回給主函數(shù)。End函數(shù)代碼:ParamsNumericSeriesPrice(10)NumericLength(10)VarsNumericWtdSum(0)NumericCumWtNumericiBeginfori=0toLength-1WtdSum=WtdSum+(Length-i)*Price[i]NextiCumWt=(Length+1)*Length*0.5ReturnWtdSum/CumWtEnd在圖表上顯示的指標(biāo)代碼:ParamsNumericLength(9);//聲明數(shù)值參數(shù)Length,初值為9。BeginPlotNumeric("WMA",WAverage(Close,Length));//畫線加權(quán)線WMA,把收盤價(jià)Close跟周期Length=9,返回到函數(shù)WAverage里求出值來,再把數(shù)值反饋回來就是加權(quán)線值。End加權(quán)策略信號(hào)代碼:ParamsNumericFastLength(5);NumericSlowLength(20);NumericDslowLength(200);VarsNumericSeriesAvgValue1;NumericSeriesAvgValue2;NumericSeriesAvgValue3;BeginAvgValue1=WAverage(Close,FastLength);AvgValue2=WAverage(Close,SlowLength);AvgValue3=WAverage(Close,DslowLength);PlotNumeric("MA1",AvgValue1);PlotNumeric("MA2",AvgValue2);PlotNumeric("MA3",AvgValue3);//集合競價(jià)和小節(jié)休息過濾If(!CallAuctionFilter())Return;If(MarketPosition<>1&&AvgValue1[1]>AvgValue2[1]&&AvgValue1[1]>AvgValue3[1]){Buy(1,Open);}If(MarketPosition==1&&AvgValue1[1]<AvgValue2[1]){Sell(1,Open);}If(MarketPosition<>-1&&AvgValue1[1]<AvgValue2[1]&&AvgValue1[1]<AvgValue3[1]){SellShort(1,Open);}If(MarketPosition==-1&&AvgValue1[1]>AvgValue2[1]){BuyToCover(1,open);}End加權(quán)策略信號(hào)代碼解釋:Params參數(shù)部分NumericFastLength(5);//定義一個(gè)數(shù)值型參數(shù)FastLength,默認(rèn)值為5NumericSlowLength(20);//定義一個(gè)數(shù)值型參數(shù)SlowLength,默認(rèn)值為20NumericDslowLength(200);//定義一個(gè)數(shù)值型參數(shù)DslowLength,默認(rèn)值為200Vars變量部分NumericSeriesAvgValue1;//定義一個(gè)數(shù)值型序列變量AvgValue1NumericSeriesAvgValue2;//定義一個(gè)數(shù)值型序列變量AvgValue2NumericSeriesAvgValue3;//定義一個(gè)數(shù)值型序列變量AvgValue3Begin開始邏輯處理部分AvgValue1=WAverage(Close,FastLength);//計(jì)算收盤價(jià)的FastLength周期的加權(quán)移動(dòng)平均,結(jié)果賦給AvgValue1AvgValue2=WAverage(Close,SlowLength);//計(jì)算收盤價(jià)的SlowLength周期的加權(quán)移動(dòng)平均,結(jié)果賦給AvgValue2AvgValue3=WAverage(Close,DslowLength);//計(jì)算收盤價(jià)的DslowLength周期的加權(quán)移動(dòng)平均,結(jié)果賦給AvgValue3PlotNumeric("MA1",AvgValue1)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論