




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
正交分量交易系統(TS版)本策略的核心在于利用Hilbert變換來識別價格序列中的周期波動,并據此構建買賣信號。具體來說,策略首先通過HilbertPeriod函數計算價格的周期值,然后根據這個周期值來確定買入和賣出的通道邊界。當市場價格突破這些通道邊界時,策略會生成相應的交易信號。1.周期計算:使用HilbertPeriod函數對價格序列進行處理,以識別其潛在的周期波動。這個函數通過一系列復雜的數學運算(包括平滑、去趨勢、同相和正交分量的計算等)來提取價格的周期性特征,并最終得到一個周期值。2.通道構建:基于計算得到的周期值,策略動態地構建買入和賣出的通道。這些通道的寬度取決于周期值以及用戶定義的參數(如EntryVal、EntryK、ExitVal和ExitK)。通道的構建旨在捕捉價格波動的關鍵區域,從而為交易決策提供依據。3.買賣信號生成:當市場價格突破買入通道的上邊界時,策略認為市場處于超買狀態,此時應考慮賣出;相反,當市場價格跌破賣出通道的下邊界時,策略認為市場處于超賣狀態,此時應考慮買入。這種基于價格波動邊界的交易邏輯有助于捕捉市場的短期趨勢和反轉點。特點概述1.動態適應性:本策略能夠根據市場價格的波動情況動態調整通道的寬度和位置,從而適應不同市場環境下的交易需求。這種動態適應性使得策略在面對市場變化時具有較高的靈活性和魯棒性。2.趨勢捕捉與反轉點識別:通過結合Hilbert變換的周期識別能力和通道突破的交易邏輯,本策略不僅能夠捕捉市場的短期趨勢,還能在一定程度上識別價格的反轉點。這有助于投資者在復雜多變的市場環境中把握更多的交易機會。3.參數化設置:策略提供了多個可配置的參數(如EntryVal、EntryK、ExitVal和ExitK等),允許用戶根據自身的交易經驗和風險偏好進行個性化設置。這種參數化設計使得策略具有更廣泛的適用性和可定制性。4.直觀易懂的交易信號:策略通過簡單的通道突破邏輯生成買賣信號,使得交易決策過程直觀易懂。這有助于投資者更好地理解和執行交易策略,降低因復雜計算或模糊邏輯而導致的誤判風險。5.注釋與可視化支持:提供了詳細的注釋和可視化支持(如圖表上的通道和標記)。這不僅有助于開發者理解和維護代碼,還能幫助投資者更好地理解策略的運行邏輯和交易信號的產生過程。綜上所述,本策略以其動態適應性、趨勢捕捉與反轉點識別能力、參數化設置、直觀易懂的交易信號以及注釋與可視化支持等特點,為投資者提供了一個靈活且高效的交易工具。以下是對函數HilbertPeriod代碼的注解:一、輸入參數和局部變量定義-
Inputs:Price(numeric)
:定義輸入為價格數值序列。-
Vars:Smoother(0),Detrender(0),I1(0),Q1(0),jI(0),jQ(0),I2(0),Q2(0),X1(0),X2(0),Y1(0),Y2(0),Re(0),Im(0),Period(0)
:定義多個局部變量,用于存儲中間計算結果和最終的周期值。二、條件判斷和核心計算1.
IfCurrentBar>5thenbegin
:當當前柱狀線大于5時執行以下代碼塊。-
Smoother=(4*Price+3*Price[1]+2*Price[2]+Price[3])/10
:計算平滑后的價格值,通過對當前價格和之前幾個周期的價格進行加權平均。-
Detrender=(.25*Smoother+.75*Smoother[2]-.75*Smoother[4]-.25*Smoother[6])*(.046*Period[1]+.332)
:計算去趨勢值,基于平滑后的價格進行一系列運算,并考慮上一個周期的周期值。-接下來計算同相(InPhase)和正交(Quadrature)分量:-
Q1=(.25*Detrender+.75*Detrender[2]-.75*Detrender[4]-.25*Detrender[6])*(.046*Period[1]+.332)
:計算正交分量的中間值。-
I1=Detrender[3]
:將去趨勢值延遲三個周期作為同相分量的初始值。-
jI=.25*I1+.75*I1[2]-.75*I1[4]-.25*I1[6]
和
jQ=.25*Q1+.75*Q1[2]-.75*Q1[4]-.25*Q1[6]
:對同相和正交分量進行相位調整。-
I2=I1-jQ
和
Q2=Q1+jI
:通過相位調整后的分量進行計算,得到新的同相和正交分量。-
I2=.15*I2+.85*I2[1]
和
Q2=.15*Q2+.85*Q2[1]
:對新的同相和正交分量進行平滑處理。-
X1=I2*I2[1]
、
X2=I2*Q2[1]
、
Y1=Q2*Q2[1]
、
Y2=Q2*I2[1]
:進行復數共軛乘法運算,得到中間結果。-
Re=X1+Y1
和
Im=X2-Y2
:計算實部和虛部。-
Re=.2*Re+.8*Re[1]
和
Im=.2*Im+.8*Im[1]
:對實部和虛部進行平滑處理。-
IfIm<>0andRe<>0thenPeriod=360/ArcTangent(Im/Re)
:如果虛部和實部都不為0,則通過反正切函數計算周期值。-對計算得到的周期值進行一系列限制和平滑處理:-
IfPeriod>1.5*Period[1]thenPeriod=1.5*Period[1]
:如果當前周期值大于上一個周期值的1.5倍,則進行限制。-
IfPeriod<.67*Period[1]thenPeriod=.67*Period[1]
:如果當前周期值小于上一個周期值的0.67倍,則進行限制。-
IfPeriod<6thenPeriod=6
:如果周期值小于6,則設為6。-
IfPeriod>50thenPeriod=50
:如果周期值大于50,則設為50。-
Period=.2*Period+.8*Period[1]
:對周期值進行平滑處理。2.
HilbertPeriod=Period
:將計算得到的周期值賦給
HilbertPeriod
。以下是指標代碼的注釋:inputs:Price((H+L)/2),EntryVal(0),EntryK(0),ExitVal(0),ExitK(0);//定義輸入參數,包括Price(使用開盤價和收盤價的中間值作為價格數據)、EntryVal和ExitVal(用于設置通道的Entry和Exit值)、EntryK和ExitK(用于設置通道的寬度,以周期為單位)。vars:Period(0),count(0),EntryLookBack(0),ExitLookBack(0),EntryChannel(0),ExitChannel(0);//定義變量,包括Period(Hilbert周期數)、count(循環計數器)、EntryLookBack和ExitLookBack(Entry和Exit通道的回看周期)、EntryChannel和ExitChannel(Entry和Exit通道的值)。Period=HilbertPeriod(Price);//計算Hilbert周期數,用于確定通道的寬度。IfEntryVal<>0thenEntryLookBack=EntryValelseEntryLookBack=EntryK*Period;//如果EntryVal不為0,則使用EntryVal作為Entry通道的回看周期;否則,使用EntryK乘以Period。ifEntryLookBack<1thenEntryLookBack=1;//確保EntryLookBack至少為1。IfExitVal<>0thenExitLookBack=ExitValelseExitLookBack=ExitK*Period;//如果ExitVal不為0,則使用ExitVal作為Exit通道的回看周期;否則,使用ExitK乘以Period。ifExitLookBack<1thenExitLookBack=1;//確保ExitLookBack至少為1。EntryChannel=0;//初始化Entry通道值為0。forcount=1toEntryLookBackbeginifEntryChannel<High[count]thenEntryChannel=High[count];end;//遍歷EntryLookBack周期,找到最高價,作為Entry通道的值。ExitChannel=100000;//初始化Exit通道值為一個非常高的值,用于確保不會被突破。forcount=1toExitLookBackbeginifExitChannel>Low[count]thenExitChannel=Low[count];end;//遍歷ExitLookBack周期,找到最低價,作為Exit通道的值。plot1(EntryChannel,“EntryChannel”);//在圖表上繪制Entry通道。plot2(ExitChannel,“ExitChannel”);//在圖表上繪制Exit通道。IfHigh>EntryChannelthenplot3(EntryChannel,“Enter”);//如果當前周期的高價大于Entry通道的值,則在圖表上繪制一個“Enter”標記。IfLow<ExitChannelthenplot4(ExitChannel,“Exit”);//如果當前周期的低價小于Exit通道的值,則在圖表上繪制一個“Exit”標記。指標使用Hilbert周期數來確定通道的寬度,并通過Entry和Exit通道的值來判斷是否發出買入或賣出信號。Entry和Exit通道的值是通過回看周期內的最高價和最低價計算得出的。如果當前周期的高價大于Entry通道的值,則發出買入信號;如果當前周期的低價小于Exit通道的值,則發出賣出信號。以下是對策略代碼的注釋:inputs:Price((H+L)/2),EntryVal(15),EntryK(0),ExitVal(15),ExitK(0);注釋:定義輸入參數,價格為最高價和最低價的平均值,
EntryVal
和
ExitVal
可能是用于入場和出場的特定值,
EntryK
和
ExitK
可能是用于計算入場和出場時的系數。vars:Period(0),count(0),EntryLookBack(0),ExitLookBack(0),EntryChannel(0),ExitChannel(0);注釋:定義變量,
Period
用于存儲周期值,
count
用于循環計數,
EntryLookBack
和
ExitLookBack
分別用于存儲入場和出場的回溯周期數,
EntryChannel
和
ExitChannel
分別用于存儲入場和出場的通道值。Period=HilbertPeriod(Price);注釋:使用
HilbertPeriod
函數計算價格的周期值,并存儲在
Period
中。IfEntryVal<>0thenEntryLookBack=EntryValelseEntryLookBack=EntryK*Period;注釋:如果
EntryVal
不為0,則將
EntryLookBack
設為
EntryVal
,否則設為
EntryK
乘以周期值
Period
。ifEntryLookBack<1thenEntryLookBack=1;注釋:如果
EntryLookBack
小于1,則將其設為1。IfExitVal<>0thenExitLookBack=ExitValelseExitLookBack=ExitK*Period;注釋:如果
ExitVal
不為0,則將
ExitLookBack
設為
ExitVal
,否則設為
ExitK
乘以周期值
Period
。ifExitLookBack<1thenExitLookBack=1;注釋:如果
ExitLookBack
小于1,則將其設為1。EntryChannel=0;注釋:初始化入場通道值為0。forcount=1toEntryLookBackbeginifEntryChannel<High[count]thenEntryChannel=High[count];end;注釋:通過循環,在回溯的
EntryLookBack
周期內,找到最高價格并存儲在
EntryChannel
中。ExitChannel=100000;注釋:初始化出場通道值為一個較大的值。forcount=1toExitLookBackbeginifExitChannel>Low[count]thenExitChannel=Low[count];end;注釋:通過循環,在回溯的
ExitLookBack
周期內,找到最低價格并存儲在
ExitChannel
中。IfMarketPosition=0andHigh>EntryChannelthenBuy;注釋:如果當前沒有持倉,且當前最高價大于入場通道值,則買入。IfMarketPosition=1andLow<ExitChannelthenExitLong;注釋:如果當前持有多頭倉位,且當前最低價小于出場通道值,則平掉多頭倉位。##BeginCmtryvar:textString(“flat.”);IfCheckCommentarythenBEGINifMarketPosition=1thentextString=“long.”;ifMarketPosition=0thentextString=“flat.”;commentary(“Marketpositionis”,textString,NewLine);commentary(“Highis”,high,“,channel”,EntryChannel,“,lookback”,ceiling(EntryLookBack),“bars.”,NewLine);commentary(“Lowis”,low,“,channel”,ExitChannel,“,lookback”,ceiling(ExitLookBack),“bars.”,NewLine);End;##End;注釋:如果
CheckCommentary
為真,則根據市場持倉狀態設置
textString
的值,然后使用
commentary
函數輸出市場持倉狀態、當前最高價、入場通道值和入場回溯周期數、當前最低價、出場通道值和出場回溯周期數等信息。函數HilbertPeriod代碼:Inputs:Price(numeric);Vars:Smoother(0),Detrender(0),I1(0),Q1(0),jI(0),jQ(0),I2(0),Q2(0),X1(0),X2(0),Y1(0),Y2(0),Re(0),Im(0),Period(0);IfCurrentBar>5thenbeginSmoother=(4*Price+3*Price[1]+2*Price[2]+Price[3])/10;Detrender=(.25*Smoother+.75*Smoother[2]-.75*Smoother[4]-.25*Smoother[6])*(.046*Period[1]+.332);Q1=(.25*Detrender+.75*Detrender[2]-.75*Detrender[4]-.25*Detrender[6])*(.046*Period[1]+.332);I1=Detrender[3];jI=.25*I1+.75*I1[2]-.75*I1[4]-.25*I1[6];jQ=.25*Q1+.75*Q1[2]-.75*Q1[4]-.25*Q1[6];I2=I1-jQ;Q2=Q1+jI;I2=.15*I2+.85*I2[1];Q2=.15*Q2+.85*Q2[1];X1=I2*I2[1];X2=I2*Q2[1];Y1=Q2*Q2[1];Y2=Q2*I2[1];Re=X1+Y1;Im=X2-Y2;Re=.2*Re+.8*Re[1];Im=.2*Im+.8*Im[1];IfIm<>0andRe<>0thenPeriod=360/ArcTangent(Im/Re);IfPeriod>1.5*Period[1]thenPeriod=1.5*Period[1];IfPeriod<.67*Period[1]thenPeriod=.67*Period[1];IfPeriod<6thenPeriod=6;IfPeriod>50thenPeriod=50;Period=.2*Period+.8*Period[1];HilbertPeriod=Period;end;指標代碼:inputs:Price((H+L)/2),EntryVal(0),EntryK(0),ExitVal(0),ExitK(0);vars:Period(0),count(0),EntryLookBack(0),ExitLookBack(0),EntryChannel(0),ExitChannel(0);Period=HilbertPeriod(Price);IfEntryVal<>0thenEntryLookBack=EntryValelseEntryLookBack=EntryK*Period;ifEntryLookBack<1thenEntryLookBack=1;IfExitVal<>0thenExitLookBack=ExitValelseExitLookBack=ExitK*Period;ifExitLookBack<1thenExitLookBack=1;EntryChannel=0;forcount=1toEntryLookBackbeginifEntryChannel<High[count]thenEntryChannel=High[count];end;ExitChannel=100000;forcount=1toExitLookBackbeginifExitChannel>Low[count]thenExitChannel=Low[count];end;plot1(EntryChannel,“EntryChannel”);plot2(ExitChannel,“ExitChannel”);IfHigh>EntryChannelthenplot3(EntryChannel,“Enter”);IfLow<ExitChannelthenplot4(ExitChannel,“Exit”);策略代碼:inputs:Price((H+L)/2),EntryVal(15),EntryK(0),ExitVal(15),ExitK(0);vars:Period(0),count(0),EntryLookBack(0),ExitLookBack(0),EntryChannel(0),ExitChannel(0);Period
=HilbertPeriod(Price);IfEntryVal<>0thenEntryLookBack=EntryValelseEntryLookBack=EntryK*Period;if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東電力高等專科學校《口語寫作》2023-2024學年第二學期期末試卷
- 湖南工商職業學院《中國現當代文學3》2023-2024學年第二學期期末試卷
- 單抗導向藥物項目風險評估報告
- 寶雞中北職業學院《晉劇劇目賞析》2023-2024學年第一學期期末試卷
- 懷化職業技術學院《體育V》2023-2024學年第二學期期末試卷
- 山東省濟南市歷城2025年初三二診模擬考試物理試題試卷含解析
- 河北北方學院《生物基材料及化學品》2023-2024學年第二學期期末試卷
- 浙江中醫藥大學濱江學院《大學生職業發展與就業指導(就業指導)》2023-2024學年第二學期期末試卷
- 四川化工職業技術學院《醫學影像設備安裝與維修學實驗》2023-2024學年第二學期期末試卷
- 廈門軟件職業技術學院《商法(二)》2023-2024學年第二學期期末試卷
- 【初中生物】微生物的分布+課件2024-2025學年人教版生物七年級上冊
- 地方導游基礎知識電子教案 專題四 學習情境一 河南省課時教案
- 職工宿舍安全培訓
- 【農村電商物流最后一公里配送優化探究(論文)7600字】
- 2024年計算機軟件水平考試-高級系統架構師考試近5年真題附答案
- QSPI-9708-2016-光伏電站安裝施工質量驗收規定
- 公路水運工程施工企業主要負責人和安全生產管理人員考核大綱和模擬試題庫1
- 財政投資評審咨詢服務預算和結算評審項目 投標方案(技術方案)
- 燃煤發電廠液氨罐區安全管理規定
- 【全新】《重大行政決策程序暫行條例》(全文自2019年9月1日起施行)課件
- 《研學旅行課程設計》課件-1研學課程學生手冊設計
評論
0/150
提交評論