時間窗囗策略(TS版)_第1頁
時間窗囗策略(TS版)_第2頁
時間窗囗策略(TS版)_第3頁
時間窗囗策略(TS版)_第4頁
時間窗囗策略(TS版)_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

時間窗囗策略(TS版)一個基于時間窗口和價格波動的交易策略,涵蓋了從變量初始化、條件判斷到具體的交易執行和風險管理的全過程。策略概述該交易策略的核心思想是根據不同的日期區間動態調整交易參數,并在特定的時間窗口內根據當前市場價格與計算出的買賣限價價格的差異,選擇最優的交易方向(做多或做空)。策略還包括了入場和出場條件的設定,以及止損和止盈的管理。交易邏輯1.參數初始化與動態調整策略首先定義了一系列初始參數,包括時間窗口(`FirstTime`和`LastTime`)、波動率倍數(`ATRmult`和`TRmult`)、周期數(`Nb`和`NATR`)以及止損水平(`Stoplo`)。這些參數在策略的不同日期區間內會進行調整,以適應市場環境的變化。2.日期區間條件判斷策略根據當前日期(`date`)判斷所處的日期區間,并在每個區間內調整相應的參數值。例如,在某些日期區間內,`Nb`可能被調整為9或14,`NATR`可能被調整為83或93,`ATRmult`和`TRmult`也會相應變化。這些調整旨在優化策略在不同市場階段的性能。3.買賣限價價格計算在每個時間窗口內,策略計算做多和做空的限價價格。做多價格是通過計算`Nb`周期內最高價的平均值,然后減去`ATRmult`乘以`NATR`周期的平均真實波動范圍(ATR)得到的。做空價格則是通過計算`Nb`周期內最低價的平均值,再加上`ATRmult`乘以`NATR`周期的ATR得到的。4.交易方向選擇策略通過比較當前收盤價與計算出的做多和做空限價價格的差異,選擇最優的交易方向。具體來說,策略計算當前收盤價與做多價格以及做空價格的差值的絕對值,并根據這兩個差值的大小決定是進行做多還是做空操作。如果做多價格的差值較小,則選擇做多;反之,則選擇做空。5.入場與出場條件-入場條件:當日期在特定區間內,市場無持倉(`MarketPosition=0`),今日入場次數小于1,并且當前時間在設定的時間窗口內時,策略會根據前面計算出的`EntryToPick`值執行相應的買入或賣出操作。-出場條件:當市場持倉為做空狀態(`MarketPosition=-1`)時,策略計算賣空的目標平倉價格,并在下一根K線以該價格進行買入平倉操作。當市場持倉為做多狀態(`MarketPosition=1`)時,策略計算做多的目標平倉價格,并在下一根K線以該價格進行賣出平倉操作。6.止損與止盈管理策略設置了止損和止盈水平,其中止損水平根據`Stoplo`變量值進行調整。此外,策略還設置了在收盤時退出交易的機制(`SetExitOnClose`),以確保在市場未達到止損或止盈條件時,也能在收盤時平倉。特點分析1.動態參數調整:策略根據不同日期區間動態調整參數,增強了策略的適應性和靈活性。2.時間窗口限制:通過設定交易時間窗口(`FirstTime`和`LastTime`),策略能夠在特定時間段內執行交易,避免在非活躍時段進行不必要的操作。3.價格差異比較:通過比較當前價格與計算出的買賣限價價格的差異,策略能夠選擇更優的交易方向,提高交易成功率。4.明確的入場和出場條件:策略設定了明確的入場和出場條件,確保交易的執行更加規范和可控。5.止損和止盈管理:通過設置止損和止盈水平,策略能夠有效控制風險,保護資金安全。綜上所述,該交易策略通過動態調整參數、時間窗口限制、價格差異比較以及明確的入場和出場條件,實現了對市場變化的靈活應對,并通過止損和止盈管理有效控制了交易風險。代碼的逐行注釋:vars:FirstTime(1800),LastTime(2359),ATRmult(3),TRmult(.5),Nb(10),NATR(60),Stoplo(275);//定義多個變量,分別設定初始值,FirstTime初始值為1800(表示時間相關,比如小時分鐘等時間的一種表示形式),LastTime初始值為2359,ATRmult初始值為3,TRmult初始值為0.5,Nb初始值為10,NATR初始值為60,Stoplo初始值為275,這些變量后續用于交易策略中的不同參數設置及條件判斷FirstTime=1800;//將FirstTime變量賦值為1800,再次明確其值,用于限定交易可開始的時間范圍LastTime=2359;//將LastTime變量賦值為2359,用于限定交易可結束的時間范圍ifdate>=1090721anddate<1100104thenbegin//如果日期大于等于1090721且小于1100104,進入以下代碼塊,用于在這個特定日期區間內調整相關變量的值Nb=9;//將Nb變量賦值為9,改變其初始設定值,可能影響后續基于該變量的計算,比如計算平均價格等NATR=93;//將NATR變量賦值為93ATRmult=3.15;//將ATRmult變量賦值為3.15TRmult=0.51;//將TRmult變量賦值為0.51Stoplo=425;//將Stoplo變量賦值為425,用于調整止損相關參數end;ifdate>=1100104anddate<1100617thenbegin//如果日期大于等于1100104且小于1100617,進入此代碼塊,同樣是在該日期區間內對變量進行賦值調整Nb=9;NATR=93;ATRmult=2.55;TRmult=0.66;Stoplo=375;end;ifdate>=1100617anddate<1101129thenbegin//對應日期范圍(大于等于1100617且小于1101129)內的變量賦值操作Nb=14;NATR=83;ATRmult=2.75;TRmult=0.71;Stoplo=425;end;ifdate>=1101129anddate<1110515thenbegin//該日期區間(大于等于1101129且小于1110515)下的變量賦值調整Nb=14;NATR=83;ATRmult=2.75;TRmult=0.66;Stoplo=425;end;ifdate>=1110515anddate<1111026thenbegin//此日期區間(大于等于1110515且小于1111026)內的變量賦值Nb=19;NATR=93;ATRmult=3.15;TRmult=0.56;Stoplo=425;end;ifdate>=1111026anddate<1120412thenbegin//對應日期范圍(大于等于1111026且小于1120412)下的變量賦值操作Nb=14;NATR=83;ATRmult=2.95;TRmult=0.61;Stoplo=425;end;ifdate>=1120412anddate<1120924thenbegin//在日期區間(大于等于1120412且小于1120924)內進行變量賦值Nb=14;NATR=93;ATRmult=2.95;TRmult=0.61;Stoplo=425;end;ifdate>=1120924anddate<1130310thenbegin//此日期區間(大于等于1120924且小于1130310)對應的變量賦值操作Nb=19;NATR=73;ATRmult=3.15;TRmult=0.71;Stoplo=425;end;ifdate>=1130310anddate<1130826thenbegin//對應日期范圍(大于等于1130310且小于1130826)下的變量賦值調整Nb=14;NATR=93;ATRmult=2.95;TRmult=0.51;Stoplo=425;end;ifdate>=1130826anddate<1140101thenbegin//該日期區間(大于等于1130826且小于1140101)內的變量賦值Nb=14;NATR=93;ATRmult=2.55;TRmult=0.71;Stoplo=425;end;Var:LongPrice(0),ShortPrice(0),LongTarget(0),ShortTarget(0);//定義多個變量,初始值都設為0,分別用于記錄做多、做空的價格以及對應的目標價格等,用于后續交易操作相關設置//limitentrypricesShortPrice=Average(Low,Nb)+ATRmult*AvgTrueRange(NATR);//計算做空的限價價格,通過計算Nb周期內最低價的平均值,再加上ATRmult乘以NATR周期的平均真實波動范圍(ATR)得到做空價格LongPrice=Average(High,Nb)-ATRmult*AvgTrueRange(NATR);//計算做多的限價價格,用Nb周期內最高價的平均值減去ATRmult乘以NATR周期的平均真實波動范圍(ATR)得到做多價格{codetoensureonly1orderisenteredateachbar-orderclosesttoprice}var:diff1(0),diff2(0),EntrytoPick(0);//定義多個變量,初始值設為0,用于后續比較價格差異等操作,以確定選擇哪種交易操作(做多或做空)更接近當前價格EntrytoPick=0;//先將EntrytoPick變量初始賦值為0,表示還未確定選擇哪種交易操作diff1=absvalue(close-LongPrice);//計算當前收盤價與做多價格的差值的絕對值,用于后續比較與做空價格差值的大小diff2=absvalue(close-ShortPrice);//計算當前收盤價與做空價格的差值的絕對值Ifdiff1<=diff2thenEntryToPick=1;//如果做多價格與收盤價差值的絕對值小于等于做空價格與收盤價差值的絕對值,將EntryToPick賦值為1,表示選擇做多操作更合適Ifdiff1>diff2thenEntryToPick=2;//如果做多價格與收盤價差值的絕對值大于做空價格與收盤價差值的絕對值,將EntryToPick賦值為2,表示選擇做空操作更合適ifdate>=1090721andMarketPosition=0andEntriesToday(Date)<1andTime>=FirstTimeandTime<LastTimethenbegin//如果日期大于等于1090721,當前市場無持倉(MarketPosition為0),今日入場次數小于1(EntriesToday函數判斷今日入場情況),并且時間在FirstTime和LastTime限定的范圍內,進入以下代碼塊,這里是入場交易的條件判斷及操作執行部分IfEntryToPick=1thenbegin//如果EntryToPick為1,即前面判斷選擇做多操作更合適Buy(“LongEntry”)nextbaratLongPricelimit;//在下一根K線,以計算好的做多限價價格LongPrice進行買入操作,并添加“LongEntry”標識end;IfEntryToPick=2thenbegin//如果EntryToPick為2,即選擇做空操作更合適Sellshort(“ShortEntry”)nextbaratShortPricelimit;//在下一根K線,以計算好的做空限價價格ShortPrice進行賣空操作,并添加“ShortEntry”標識end;end;IfMarketPosition=-1thenbegin//如果當前市場持倉為賣空狀態(MarketPosition為-1),進入以下代碼塊,用于設置賣空交易的退出(平倉)相關操作ShortTarget=EntryPrice-TRmult*TrueRange;//計算賣空的目標平倉價格,用入場價格(EntryPrice)減去TRmult乘以當前真實波動范圍(TrueRange)得到Buytocover(“ShortExit”)nextbaratShortTargetlimit;//在下一根K線,以計算好的賣空目標平倉價格ShortTarget進行買入平倉操作,并添加“ShortExit”標識end;IfMarketPosition=1thenbegin//如果當前市場持倉為做多狀態(MarketPosition為1),進入以下代碼塊,用于設置做多交易的退出(平倉)相關操作LongTarget=EntryPrice+TRmult*TrueRange;//計算做多的目標平倉價格,用入場價格(EntryPrice)加上TRmult乘以當前真實波動范圍(TrueRange)得到Sell(“LongExit”)nextbaratLongTargetlimit;//在下一根K線,以計算好的做多目標平倉價格LongTarget進行賣出平倉操作,并添加“LongExit”標識end;Setstopposition;//設置止損止盈相關的一些基礎設置(可能涉及多空方向等通用設置,具體要看對應函數實現)setstoploss(Stoplo);//根據之前定義的Stoplo變量值來設置止損,控制虧損范圍SetExitOnClose;//設置在收盤時退出交易(平倉),即如果未達到止損止盈條件,收盤時也平倉

笫略代碼:vars:FirstTime(1800),LastTime(2359),ATRmult(3),TRmult(.5),Nb(10),NATR(60),Stoplo(275);FirstTime=1800;LastTime=2359;ifdate>=1090721anddate<1100104thenbeginNb=9;NATR=93;ATRmult=3.15;TRmult=0.51;Stoplo=425;end;ifdate>=1100104anddate<1100617thenbeginNb=9;NATR=93;ATRmult=2.55;TRmult=0.66;Stoplo=375;end;ifdate>=1100617anddate<1101129thenbeginNb=14;NATR=83;ATRmult=2.75;TRmult=0.71;Stoplo=425;end;ifdate>=1101129anddate<1110515thenbeginNb=14;NATR=83;ATRmult=2.75;TRmult=0.66;Stoplo=425;end;ifdate>=1110515anddate<1111026thenbeginNb=19;NATR=93;ATRmult=3.15;TRmult=0.56;Stoplo=425;end;ifdate>=1111026anddate<1120412thenbeginNb=14;NATR=83;ATRmult=2.95;TRmult=0.61;Stoplo=425;end;ifdate>=1120412anddate<1120924thenbeginNb=14;NATR=93;ATRmult=2.95;TRmult=0.61;Stoplo=425;end;ifdate>=1120924anddate<1130310thenbeginNb=19;NATR=73;ATRmult=3.15;TRmult=0.71;Stoplo=425;end;ifdate>=1130310anddate<1130826thenbeginNb=14;NATR=93;ATRmult=2.95;TRmult=0.51;Stoplo=425;end;ifdate>=1130826anddate<1140101thenbeginNb=14;NATR=93;ATRmult=2.55;TRmult=0.71;Stoplo=425;end;Var:LongPrice(0),ShortPrice(0),LongTarget(0),ShortTarget(0);ShortPrice=Average(Low,Nb)+ATRmult*AvgTrueRange(N

溫馨提示

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

評論

0/150

提交評論