遞歸平滑策略(TS版)_第1頁
遞歸平滑策略(TS版)_第2頁
遞歸平滑策略(TS版)_第3頁
遞歸平滑策略(TS版)_第4頁
遞歸平滑策略(TS版)_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

遞歸平滑策略(TS版)主要介紹了TRIX(2線)指標及其在交易策略中的應用。詳細闡述了TRIX指標的計算方法,包括三個指數移動平均值(EMA)的遞歸計算,以及TRIX線和信號線的生成。通過具體的策略代碼,展示了如何利用TRIX指標進行交易決策,1.TRIX指標計算方法-EMA計算:TRIX指標的計算基于三個指數移動平均值(EMA),分別是EMA1、EMA2和EMA3。每個EMA都是對前一個EMA進行進一步平滑處理的結果。-TRIX線:TRIX線是通過計算EMA3與其前一天EMA3的差值,再除以前一天的EMA3,然后乘以10得到的。-信號線:信號線是對TRIX線進行平滑處理的結果,通常使用較小的移動平均長度(如3)。2.策略信號一-入場信號:-金叉:當TRIX線上穿信號線時,產生買入信號。-TRIX反彈:當TRIX線從下向上穿過其前一天的值時,產生買入信號。-出場信號:-TRIX下跌:當TRIX線下穿其前一天的值時,產生賣出信號。-死叉:當TRIX線下穿信號線時,產生賣出信號。3.策略信號二-成交量和價格變化:策略使用成交量百分比變化和價格百分比變化來確定當前條形的類型。-交易類型:根據成交量和價格變化的組合,確定交易類型,并執行相應的買入或賣出操作。-具體操作:在特定交易類型下,當前條形以收盤價買入,下一個條形以市價賣出。4.策略信號三(實時版)-時間控制:策略在特定的入場和退出時間點進行交易決策。-實時更新:策略在實時環境中運行,根據當前的交易類型和時間來決定是否買入或賣出。-具體操作:在特定交易類型和時間點下,當前條形以收盤價買入,下一個條形以市價賣出。5.策略特點總結-TRIX指標的應用:TRIX指標通過三個EMA的遞歸計算,能夠有效捕捉價格趨勢的變化,提供較為穩健的交易信號。-多種入場和出場方式:策略提供了多種入場和出場信號,包括金叉、TRIX反彈、TRIX下跌和死叉等,增加了策略的靈活性和適應性。-成交量和價格的結合:策略信號二和實時版策略通過結合成交量和價格變化,進一步提高了交易決策的準確性。-實時與回測的結合:策略信號三為實時版策略,能夠在實際交易中即時應用,而策略信號二則用于回測目的,驗證策略的有效性。本策略詳細介紹了TRIX(2線)指標及其在交易策略中的應用。通過具體的策略代碼,展示了如何利用TRIX指標進行交易決策,包括金叉、TRIX反彈、TRIX下跌和死叉等多種信號。此外,還介紹了基于成交量和價格變化的策略,以及實時版策略的具體實現。總體而言,TRIX指標及其相關策略在捕捉價格趨勢和提供交易信號方面表現出色,具有較高的實用價值。6.交易邏輯詳解-金叉與TRIX反彈:策略信號一提供了兩種入場方式,金叉和TRIX反彈,分別在TRIX線上穿信號線和TRIX線從下向上穿過前一天值時觸發買入。-TRIX下跌與死叉:同樣,策略信號一也提供了兩種出場方式,TRIX下跌和死叉,分別在TRIX線下穿前一天值和TRIX線下穿信號線時觸發賣出。-成交量與價格的綜合考量:策略信號二和實時版策略引入了成交量百分比變化和價格百分比變化,通過這些變化來確定當前條形的類型,并據此執行買入或賣出操作。-時間與交易類型的約束:實時版策略在特定的入場和退出時間點進行交易決策,進一步限制了交易的時機,提高了策略的時效性。7.策略的靈活性與適應性-多種信號的組合:通過結合不同的入場和出場信號,策略能夠適應不同的市場環境,提高交易的成功率。-實時與回測的驗證:實時版策略用于實際交易,而回測策略用于驗證歷史數據中的表現,兩者結合能夠全面評估策略的有效性。-交易類型的多樣性:策略信號二和實時版策略根據成交量和價格變化的組合,定義了多種交易類型,增加了策略的靈活性。8.策略的風險控制-信號的穩健性:通過多個EMA的平滑處理,TRIX指標能夠減少市場噪聲的影響,提供更為穩健的交易信號。-成交量的考量:引入成交量變化作為交易決策的一部分,能夠在價格變動中增加對交易量的考量,提高交易的安全性。-時間的約束:實時版策略通過設定特定的入場和退出時間,能夠在一定程度上控制交易風險,避免在市場波動較大時進行交易。本策略通過對TRIX(2線)指標及其相關策略的詳細解析,展示了其在交易決策中的應用價值。通過多種信號的組合、成交量和價格的結合、實時與回測的驗證,以及時間與交易類型的約束,策略能夠在不同的市場環境中提供穩健的交易信號,并有效控制風險。總體而言,TRIX指標及其相關策略為投資者提供了一套完整的交易體系,具有較高的實用性和參考價值。TRIX(2線)指標代碼解釋:inputs:TRIXLength(5),{TRIX長度輸入}SigLineXMALen(3);{信號線XMAL長度輸入}variables:EMA1(0),{存儲第一個指數移動平均值的變量}EMA2(0),{存儲第二個指數移動平均值的變量}EMA3(0),{存儲第三個指數移動平均值的變量}TRIXLine(0),{存儲TRIX線的變量}SignalLine(0);{存儲信號線的變量}EMA1=XAverage(Close,TRIXLength);{計算第一個指數移動平均值}EMA2=XAverage(EMA1,TRIXLength);{計算第二個指數移動平均值}EMA3=XAverage(EMA2,TRIXLength);{計算第三個指數移動平均值}ifEMA3[1]<>0then{確保不會除以零}beginTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];{計算TRIX線}end;SignalLine=XAverage(TRIXLine,SigLineXMALen);{計算信號線}Plot1(TRIXLine,"TRIXLine");{繪制TRIX線}Plot2(SignalLine,"SignalLine");{繪制信號線}以上代碼定義了一個名為TRIX(2線)的指標,它使用了三個指數移動平均值(EMA)來計算TRIX線和信號線,并繪制了這兩個線在圖表上。TRIX線用于指示趨勢的強度和方向,而信號線用于作為交易的觸發點。策略信號一代碼注解:{2-LineTRIX策略}inputs:TRIXLength(5),{TRIX長度輸入}SigLineXMALen(3),{信號線XMAL長度輸入}EntrySignal(1),{1=金叉,2=TRIX反彈}ExitSignal(1);{1=TRIX下跌,2=死叉}variables:EMA1(0),{存儲第一個指數移動平均值的變量}EMA2(0),{存儲第二個指數移動平均值的變量}EMA3(0),{存儲第三個指數移動平均值的變量}TRIXLine(0),{存儲TRIX線的變量}SignalLine(0);{存儲信號線的變量}EMA1=XAverage(Close,TRIXLength);{計算第一個指數移動平均值}EMA2=XAverage(EMA1,TRIXLength);{計算第二個指數移動平均值}EMA3=XAverage(EMA2,TRIXLength);{計算第三個指數移動平均值}ifEMA3[1]<>0then{確保不會除以零}beginTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];{計算TRIX線,乘以10以匹配作者圖表的縮放比例}end;SignalLine=XAverage(TRIXLine,SigLineXMALen);{計算信號線}ifEntrySignal=1andTRIXLinecrossesaboveSignalLinethenbuy("GC")thisbaronClose{在金叉時入場。}elseifEntrySignal=2andTRIXLine>TRIXLine[1]thenbuy("TB")thisbaronClose;{在TRIX反彈時入場。}ifExitSignal=1andTRIXLine<TRIXLine[1]thensell("TF")thisbaronClose{在TRIX下跌時退出。}elseifExitSignal=2andTRIXLinecrossesbelowSignalLinethensellthisbaronClose;{在死叉時退出。}以上代碼定義了一個名為'TRIX(2Line)'的策略,它使用三個指數移動平均值(EMA)來計算TRIX線和信號線,并基于這些指標的交叉來確定買入和賣出的時機。策略提供了兩種入場信號(金叉和TRIX反彈)以及兩種退出信號(TRIX下跌和死叉)。策略信號二代碼注解:{基于AnthonyTrongone的'HoldingPositionsOvernight'策略的'RisingDarkness'策略,用于回測目的}inputs:SampleWindow(375),{樣本窗口長度輸入}TradeType(1);{交易類型輸入}{TradeType1=顯著減少的成交量,顯著的價格上漲TradeType2=顯著減少的成交量,顯著的價格下跌TradeType3=顯著增加的成交量,顯著的價格上漲TradeType4=顯著增加的成交量,顯著的價格下跌}variables:Counter(0),{初始化計數器變量}MA8Vol(0),{初始化MA8Vol變量,用于存儲過去8個條形的平均成交量}VolPctChg(0),{初始化VolPctChg變量,用于存儲成交量百分比變化}PriPctChg(0),{初始化PriPctChg變量,用于存儲價格百分比變化}Rank(0),{初始化Rank變量,用于存儲排名}RankPct(0),{初始化RankPct變量,用于存儲排名百分比}DayType(0);{初始化DayType變量,用于存儲當前條形的類型}MA8Vol=Average(Volume,8);{計算過去8個條形的平均成交量}ifMA8Vol[1]>0then{確保MA8Vol不為零}beginVolPctChg=(MA8Vol-MA8Vol[1])/MA8Vol[1];{計算成交量百分比變化}end;ifClose[1]>0then{確保Close不為零}beginPriPctChg=100*(Close-Close[1])/Close[1];{計算價格百分比變化}end;Rank=0;{初始化Rank為0}forCounter=1toSampleWindow{從1遍歷到SampleWindow}beginifVolPctChg>VolPctChg[Counter]then{如果當前VolPctChg大于歷史值}Rank=Rank+1;{增加Rank值}end;RankPct=100*Rank/SampleWindow;{計算Rank的百分比}ifRankPct<=30andPriPctChg>1then{如果RankPct小于等于30且PriPctChg大于1}DayType=1;{設置DayType為1}elseifRankPct<=30andPriPctChg<-1then{如果RankPct小于等于30且PriPctChg小于-1}DayType=2;{設置DayType為2}elseifRankPct>=70andPriPctChg>1then{如果RankPct大于等于70且PriPctChg大于1}DayType=3;{設置DayType為3}elseifRankPct>=70andPriPctChg<-1then{如果RankPct大于等于70且PriPctChg小于-1}DayType=4;{設置DayType為4}elseDayType=0;{否則設置DayType為0}ifTradeType=DayTypethen{如果當前交易類型等于DayType}beginBuythisbaratclose;{在當前條形以收盤價買入}Sellnextbaratmarket;{在下一個條形以市價賣出}end;以上代碼定義了一個名為'RisingDarkness'的策略,用于回測目的。該策略使用成交量百分比變化和價格百分比變化來確定當前條形的類型,并根據交易類型執行買入或賣出的操作。策略信號三代碼注解:{實時版'RisingDarkness'策略-基于AnthonyTrongone的'HoldingPositionsOvernight'策略}inputs:SampleWindow(375),{樣本窗口長度輸入}TradeType(1),{交易類型輸入}MyExitTime(935),{退出時間輸入}MyEntryTime(1600);{入場時間輸入}{TradeType1=顯著減少的成交量,顯著的價格上漲TradeType2=顯著減少的成交量,顯著的價格下跌TradeType3=顯著增加的成交量,顯著的價格上漲TradeType4=顯著增加的成交量,顯著的價格下跌}variables:Counter(0),{初始化計數器變量}MA8Vol(0),{初始化MA8Vol變量,用于存儲過去8個條形的平均成交量}VolPctChg(0),{初始化VolPctChg變量,用于存儲成交量百分比變化}PriPctChg(0),{初始化PriPctChg變量,用于存儲價格百分比變化}Rank(0),{初始化Rank變量,用于存儲排名}RankPct(0),{初始化RankPct變量,用于存儲排名百分比}DayType(0),{初始化DayType變量,用于存儲當前條形的類型}MyVolume(0),{初始化MyVolume變量,用于存儲當前條形的成交量}OldMA8Vol(0),{初始化OldMA8Vol變量,用于存儲上一個MA8Vol值}array:MyDailyVol[8](0),{初始化MyDailyVol數組,用于存儲過去8個交易日的成交量}MyMA8VolArray[375](0);{初始化MyMA8VolArray數組,用于存儲過去375個條形的MA8Vol值}ifTime=SessionEndTime(0,1)then{如果時間等于交易日結束時間}beginForValue1=2to6{從2遍歷到6}beginMyDailyVol[8-Value1]=MyDailyVol[7-Value1];{復制MyDailyVol數組中的值}end;MyDailyVol[1]=MyVolume;{更新MyDailyVol數組中的最新成交量}MyVolume=0;{重置MyVolume為0}endelse{否則}MyVolume=MyVolume+Ticks;{累加Ticks值到MyVolume}ifTime=MyEntryTimethen{如果時間等于入場時間}beginOldMa8Vol=MA8Vol;{保存上一個MA8Vol值}Value2=0;{初始化Value2為0}ForValue1=1to7{從1遍歷到7}beginValue2=Value2+MyDailyVol[Value1];{計算過去7個交易日的總成交量}end;MA8Vol=(MyVolume+Value2)/8;{計算新的MA8Vol值}ifOldMA8Vol>0then{如果OldMA8Vol不為零}beginVolPctChg=(MA8Vol-OldMA8Vol)/OldMA8Vol;{計算成交量百分比變化}ForValue1=2toSampleWindow-2{從2遍歷到SampleWindow-2}beginMyMA8VolArray[SampleWindow-Value1]=MyMA8VolArray[SampleWindow-1-Value1];{復制MyMA8VolArray數組中的值}end;MyMA8VolArray[1]=VolPctChg;{更新MyMA8VolArray數組中的最新值}end;ifClose[1]>0then{如果Close不為零}PriPctChg=100*(CloseD(0)-CloseD(1))/CloseD(1);{計算價格百分比變化}Rank=0;{初始化Rank為0}forCounter=1toSampleWindow-1{從1遍歷到SampleWindow-1}beginifVolPctChg>MyMA8VolArray[Counter+1]then{如果當前VolPctChg大于歷史值}Rank=Rank+1;{增加Rank值}end;RankPct=100*Rank/SampleWindow;{計算Rank的百分比}ifRankPct<=30andPriPctChg>1then{如果RankPct小于等于30且PriPctChg大于1}DayType=1;{設置DayType為1}elseifRankPct<=30andPriPctChg<-1then{如果RankPct小于等于30且PriPctChg小于-1}DayType=2;{設置DayType為2}elseifRankPct>=70andPriPctChg>1then{如果RankPct大于等于70且PriPctChg大于1}DayType=3;{設置DayType為3}elseifRankPct>=70andPriPctChg<-1then{如果RankPct大于等于70且PriPctChg小于-1}DayType=4;{設置DayType為4}elseDayType=0;{否則設置DayType為0}{打印(日期,"",日期[1],"",時間,"",Daytype,"",MA8Vol,"",OldMA8Vol,"",VolPctchg,"",Rank,"",Rankpct,"",MyVolume,"",MyDailyvol[1],"",MyDailyVol[2]);}end;ifTradeType=DayTypeandTime=MyEntryTimethen{如果當前交易類型等于DayType且時間等于入場時間}Buythisbaratclose;{在當前條形以收盤價買入}ifMarketPosition=1andTime=MyExitTimethen{如果市場持倉為1且時間等于退出時間}Sellnextbaratmarket;{在下一個條形以市價賣出}以上代碼定義了一個名為’RisingDarkness-RT’的實時版策略,該策略在實時環境中運行,并根據當前的交易類型和時間來決定是否買入或賣出。策略使用成交量百分比變化和價格百分比變化來確定當前條形的類型,并根據交易類型執行買入或賣出的操作。指標代碼:inputs:TRIXLength(5),SigLineXMALen(3);variables:EMA1(0),EMA2(0),EMA3(0),TRIXLine(0),SignalLine(0);EMA1=XAverage(Close,TRIXLength);EMA2=XAverage(EMA1,TRIXLength);EMA3=XAverage(EMA2,TRIXLength);ifEMA3[1]<>0thenTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];SignalLine=XAverage(TRIXLine,SigLineXMALen);Plot1(TRIXLine,"TRIXLine");Plot2(SignalLine,"SignalLine");策略信號一代碼:inputs:TRIXLength(5),SigLineXMALen(3),EntrySignal(1),ExitSignal(1);variables:EMA1(0),EMA2(0),EMA3(0),TRIXLine(0),SignalLine(0);EMA1=XAverage(Close,TRIXLength);EMA2=XAverage(EMA1,TRIXLength);EMA3=XAverage(EMA2,TRIXLength);ifEMA3[1]<>0thenTRIXLine=10*(EMA3-EMA3[1])/EMA3[1];SignalLine=XAverage(TRIXLine,SigLineXMALen);ifEntrySignal=1andTRIXLinecrossesaboveSignalLinethenbuy("GC")thisbaronCloseelseifEntrySignal=2andTRIXLine>TRIXLine[1]thenbuy("TB")thisbaronClose;ifExitSignal=1andTRIXLine<TRIXLine[1]thensell("TF")thisbaronCloseelseifExitSignal=2andTRIXLinecrossesbelowSignalLinethensellthisbaronClose;策略信號二代碼:inputs:SampleWindow(375),TradeType(1);variables:Counter(0),MA8Vol(0),VolPctChg(0),PriPctChg(0),Rank(0),RankPct(0),DayType(0);MA8Vol=Average(Volume,8);ifMA8Vol[1]>0thenVolPctChg=(MA8Vol-MA8Vol[1])/MA8Vol[1];ifClose[1]>0thenPriPctChg=100*(Close-Close[1])/Close[1];Rank=0;forCounter=1toSampleWindowbeginifVolPctChg>VolPctChg[Counter]thenRank=Rank+1;end;RankPct=100*Rank/SampleWindow;ifRankPct<=30andPriPctChg>1thenDayType=1elseifRankPct<=30andPriPctChg<-1thenDayType=2elseifRankPct>=70andPriPctChg>1thenDayType=3elseifRankPct>=70andPriPctChg<-1thenDayType=4elseDayType=0;ifTradeType=DayTypethenbeginBuythisbaratclose;Sellnextbaratmarket;end;策略信號三代碼:inputs:SampleWindow(375),TradeType(1),MyExitTime(935),MyEntryTime(1600);variables:Counter(0),MA8Vol(0),VolPctChg(0),PriPctChg(0),Rank(0),RankPct(0),DayType(0),MyVolume(0),OldMA8Vol(0);array:MyDailyVol[8](0),MyMA8VolArray[375](0);ifTime=SessionEndTime(0,1)thenbeginForValue1

溫馨提示

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

評論

0/150

提交評論