




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
海龜通道策略(TBQ版)海龜通道策略,作為著名的趨勢跟蹤策略之一,其核心思想在于利用市場波動性和趨勢持續(xù)性來實現盈利。該策略通過設定一系列參數和條件,自動判斷市場趨勢,并據此進行買賣操作。策略概述海龜通道策略是一種基于技術分析的趨勢跟蹤策略,它結合了唐奇安通道、平均波動率(ATR)以及風險管理等要素。該策略通過計算特定周期內的最高價、最低價和平均波動率,構建出上下兩條通道線,以此作為買賣信號的觸發(fā)點。交易邏輯詳解1.頭寸計算:-根據設定的頭寸模式(如海龜風險度、固定頭寸等),計算出當前應持有的交易單位數(TurtleUnits)。這一過程涉及到初始資金、風險比例、平均波動率等多個參數的綜合考量。2.開倉條件:-當市場價格突破唐奇安通道的上軌或下軌時,視為買入或賣出的信號。具體來說,若當前市場處于多頭趨勢(即價格高于唐奇安通道上軌),且交易單位數滿足條件,則執(zhí)行買入操作;反之,若市場處于空頭趨勢(即價格低于唐奇安通道下軌),則執(zhí)行賣出操作。3.加倉條件:-在已持有多頭或空頭頭寸的情況下,若市場價格繼續(xù)朝有利方向移動,并超過預設的增倉點(如開倉價加上0.5倍的N值),則進行加倉操作。這一過程旨在捕捉市場的持續(xù)趨勢,提高盈利空間。4.止損與離市條件:-為了控制風險,策略設定了止損和離市條件。當市場價格觸及止損點(如多頭頭寸時價格下跌至開倉價減去2倍的N值)時,策略會自動平倉以鎖定損失。此外,策略還根據設定的離市周期(TrailingExitLength)動態(tài)調整離市點,以適應市場波動性的變化。5.風險管理:-策略通過多種方式來管理風險,包括設定最大建倉次數、固定頭寸大小、風險比例等。這些參數共同構成了策略的風險控制體系,確保在追求盈利的同時,能夠有效控制潛在損失。策略特點1.趨勢跟蹤:-海龜通道策略的核心在于捕捉市場趨勢,并跟隨趨勢進行交易。這種策略在趨勢明顯的市場環(huán)境中表現尤為出色,能夠充分把握市場的盈利機會。2.風險管理:-該策略注重風險管理,通過設定止損點、離市點以及頭寸規(guī)模等參數來控制潛在風險。這有助于在市場波動較大時保持穩(wěn)定的收益水平。3.自動化交易:-海龜通道策略是一種自動化交易策略,能夠自動執(zhí)行買賣操作。這降低了人為干預和情緒影響的可能性,提高了交易的客觀性和準確性。4.靈活性:-該策略提供了多種頭寸模式和參數設置選項,使得投資者可以根據自己的風險承受能力和市場情況靈活調整策略參數,以適應不同的交易需求。海龜通道策略是一種基于技術分析的趨勢跟蹤策略,它通過結合唐奇安通道、平均波動率以及風險管理等要素來構建交易邏輯。該策略具有趨勢跟蹤、風險管理、自動化交易以及靈活性等特點,能夠在不同市場環(huán)境下實現穩(wěn)定的盈利。策略代碼:ParamsNumericnEntries(2);//最大建倉次數NumericATRLength(26);//平均波動周期ATRLengthNumericboLength(20);//短周期BreakOutLengthNumericteLength(10);//離市周期TrailingExitLengthNumericRiskRatio(0.2);//①風險度or比例%NumericLots(1);//②固定頭寸NumericFund(50);//③初始資金:萬Enum<String>Pos_Mode(["海龜風險度","固定頭寸","固定金額","固定風險度"]);//頭寸模式Vars//原參數NumericfsLength(55);//長周期FailSafeLengthNumericMinPoint;//最小變動單位NumericN;//N值NumericTotalEquity;//按最新收盤價計算出的總資產NumericTurtleUnits;//交易單位NumericExitHighestPrice;//離市時判斷需要的N周期最高價NumericExitLowestPrice;//離市時判斷需要的N周期最低價NumericmyEntryPrice;//開倉價格NumericmyExitPrice;//平倉價格Series<Numeric>AvgTR;//ATRSeries<Numeric>DonchianHi;//唐奇安通道上軌,延后1個BarSeries<Numeric>DonchianLo;//唐奇安通道下軌,延后1個BarSeries<Numeric>fsDonchianHi;//唐奇安通道上軌,延后1個Bar,長周期Series<Numeric>fsDonchianLo;//唐奇安通道下軌,延后1個Bar,長周期Series<Numeric>preEntryPrice(0);//前一次開倉的價格BoolL4En(False);//多進BoolL4Ex(False);//賣平BoolS4En(False);//空進BoolS4Ex(False);//買平BoolSendOrderThisBar(False);//當前Bar有過交易Series<Bool>PreBreakoutFailure(false);//前一次突破是否失敗Defs//集合競價過濾BoolR_JHJJ(){If(BarStatus==2){If(Time==0.090000&&CurrentTime<0.090000)ReturnTrue;If(Time==0.093000&&CurrentTime<0.093000)ReturnTrue;If(Time==0.210000&&CurrentTime<0.210000)ReturnTrue;}ReturnFalse;}//漲跌停板過濾BoolR_ZDT(){If(BarStatus==2&&((Close==Q_LowerLimit)or(Close==Q_UpperLimit))){ReturnTrue;}ReturnFalse;}Events//此處實現事件函數//初始化事件函數,策略運行期間,首先運行且只有一次,應用在訂閱數據等操作OnInit(){//多圖層訂閱行情//freqString訂閱頻率'mon':月,'w':周,'d':日,'h':時,'m':分,'s':秒,'tick':tick,字符串前面可以添加數字,如'3d'表示周期是3天;//flagIntegerEnum_Data_OnlyNight()表示僅夜盤,Enum_Data_OnlyDay()表示僅日盤,Enum_Data_RolloverBackWard()表示后復權,可做或運算,表示多種情況//SubscribeBar(Data0.Symbol,"1h",Data0.BeginDateTime);//按樣本數訂閱//SubscribeBarCounts(Data0.Symbol,"1h",1000);//與數據源有關Range[0:DataCount-1]{//=========數據源相關設置==============AddDataFlag(Enum_Data_RolloverBackWard());//設置后復權AddDataFlag(Enum_Data_RolloverRealPrice());//設置映射真實價格AddDataFlag(Enum_Data_AutoSwapPosition());//設置自動換倉AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());//設置忽略換倉信號計算/*備注:Enum_Data_IgnoreSwapSignalCalc,對于一個策略來說,換倉的這筆交易并不是策略規(guī)則產生的,所以將換倉前后的這兩筆交易合并為一筆能更好的統(tǒng)計策略性能。合并之后,交易盈虧依舊是真實的,只不過換倉前后的這兩筆交易算一筆交易,但是手續(xù)費會從測試報告中扣除。忽略換倉時,換倉后的開倉市值為原始的開倉市值。開倉均價按照原始開倉市值計算得來。*/SetSwapPosVolType(2);//換月時頭寸:1=等市值,2=等持倉量//AddDataFlag(Enum_Data_NotGenReport());//設置數據源不參與生成報告標志//=========交易相關設置==============//SetOrderPriceOffset(2);//設置委托價為叫買/賣價偏移2跳//SetOrderMap2MainSymbol();//設置委托映射到主力}//與數據源無關//SetBeginBarMaxCount(10);//設置最大起始bar數為10//SetBackBarMaxCount(10);//設置最大回溯bar數為10//=========交易相關設置==============SetInitCapital(Fund*10000);//設置初始資金}OnReady(){Array<CodeProperty>props;//獲取指定合約的所有合約屬性Boolret=GetProperty(Symbol,props);Print("GetProperty:"+IIFString(ret,"True","False")+","+TextArray(props));}OnBarOpen(ArrayRef<Integer>indexs){}OnBar(ArrayRef<Integer>indexs){Range[0:DataCount-1]{If(BarStatus==0){preEntryPrice=InvalidNumeric;PreBreakoutFailure=false;}MinPoint=MinMove*PriceScale;AvgTR=XAverage(TrueRange,ATRLength);N=AvgTR[1];//頭寸計算If(Pos_Mode=="海龜風險度"){TotalEquity=Portfolio_CurrentCapital()+Portfolio_UsedMargin();TurtleUnits=(TotalEquity*RiskRatio/100)/(N/ROLLOVER*ContractUnit()*BigPointValue());TurtleUnits=IntPart(TurtleUnits);//對小數取整}ElseIf(Pos_Mode=="固定風險度"){TotalEquity=Fund*10000;TurtleUnits=(TotalEquity*RiskRatio/100)/(N/ROLLOVER*ContractUnit()*BigPointValue());TurtleUnits=IntPart(TurtleUnits);//對小數取整}ElseIf(Pos_Mode=="固定頭寸"){TurtleUnits=Lots;}ElseIf(Pos_Mode=="固定金額"){TurtleUnits=(Fund*10000*RiskRatio/100)/(O/ROLLOVER*MarginRatio*ContractUnit()*BigPointValue());TurtleUnits=IntPart(TurtleUnits);//對小數取整//Commentary("TT0="+Text((Fund*10000*RiskRatio/100)));//Commentary("TT1="+Text((O/ROLLOVER*MarginRatio*ContractUnit()*BigPointValue())));}Else{//Numericmylots=MAX(1,INTPART(Fund/(C[1]/Rollover()*ContractUnit()*BigPointValue()*0.10)));//簡單的通用性測試保證金比例10%TurtleUnits=0;}TurtleUnits=Max(1,TurtleUnits);//限定最小為1DonchianHi=HighestFC(High[1],boLength);DonchianLo=LowestFC(Low[1],boLength);//fsDonchianHi=HighestFC(High[1],fsLength);//fsDonchianLo=LowestFC(Low[1],fsLength);ExitLowestPrice=LowestFC(Low[1],teLength);ExitHighestPrice=HighestFC(High[1],teLength);//開平條件Booll4e=High>DonchianHi&&TurtleUnits>=1;//多進Booll4x=False;//賣平Bools4e=False;//空進Bools4x=False;//買平//進出場價格Numericl4e_price=min(high,DonchianHi+MinPoint);//開多價格Numericl4x_price=Open;//平多價格Numerics4e_price=Open;//開空價格Numerics4x_price=Open;//平空價格//開平處理//If(MarketPosition!=1&&l4e)//{//Buy(lots,l4e_price);//}If(MarketPosition!=-1&&s4e){SellShort(lots,s4e_price);}If(MarketPosition==1&&BarsSinceEntry>0&&l4x){Sell(0,l4x_price);}If(MarketPosition==-1&&BarsSinceEntry>0&&s4x){BuyToCover(0,s4x_price);}Commentary("N="+Text(N));Commentary("MinPoint="+Text(MinPoint));Commentary("preEntryPrice="+Text(preEntryPrice));Commentary("PreBreakoutFailure="+IIFString(PreBreakoutFailure,"True","False"));PlotNumeric("DonchianHi",DonchianHi);PlotNumeric("DonchianLo",DonchianLo);//設定畫線類型,如:Enum_Dot,Enum_Line,Enum_Bar,Enum_Cross,默認為屬性框中設定//設定畫線風格,如:Enum_Solid,Enum_Dash,Enum_Broken,Enum_Dash_Dot,默認為屬性框中設定//設定畫線線寬,如:Enum_1Pix,Enum_2Pix,Enum_3Pix,Enum_4Pix,Enum_5Pix,Enum_6Pix,Enum_7Pix,默認為屬性框中設定//PlotAuto("preEntryPrice",preEntryPrice,0,White,Enum_Line,Enum_Dash,Enum_2Pix);//開倉信號交易處理If(MarketPosition==0){//突破開倉//If(High>DonchianHi&&TurtleUnits>=1)If(l4e){//開倉價格取突破上軌+一個價位和最高價之間的較小值,這樣能更接近真實情況,并能盡量保證成交//myEntryPrice=min(high,DonchianHi+MinPoint);myEntryPrice=l4e_price;myEntryPrice=IIF(myEntryPrice<Open,Open,myEntryPrice);//大跳空的時候用開盤價代替preEntryPrice=myEntryPrice;Buy(TurtleUnits,myEntryPrice);SendOrderThisBar=True;PreBreakoutFailure=False;}If(Low<DonchianLo&&TurtleUnits>=1){//開倉價格取突破下軌-一個價位和最低價之間的較大值,這樣能更接近真實情況,并能盡量保證成交myEntryPrice=max(low,DonchianLo-MinPoint);myEntryPrice=IIF(myEntryPrice>Open,Open,myEntryPrice);//大跳空的時候用開盤價代替preEntryPrice=myEntryPrice;SellShort(TurtleUnits,myEntryPrice);SendOrderThisBar=True;PreBreakoutFailure=False;}}//持倉處理If(MarketPosition==1)//有多倉的情況{Commentary("ExitLowestPrice="+Text(ExitLowestPrice));If(Low<ExitLowestPrice){myExitPrice=max(Low,ExitLowestPrice-MinPoint);myExitPrice=IIF(myExitPrice>Open,Open,myExitPrice);//大跳空的時候用開盤價代替Sell(0,myExitPrice);//數量用0的情況下將全部平倉}Else{If(preEntryPrice!=InvalidNumeric&&TurtleUnits>=1){If(Open>=preEntryPrice+0.5*N&&CurrentEntries<nEntries)//如果開盤就超過設定的1/2N,則直接用開盤價增倉。{myEntryPrice=Open;preEntryPrice=myEntryPrice;Buy(TurtleUnits,myEntryPrice);SendOrderThisBar=True;}while(High>=preEntryPrice+0.5*N&&CurrentEntries<nEntries)//以最高價為標準,判斷能進行幾次增倉{myEntryPrice=preEntryPrice+0.5*N;preEntryPrice=myEntryPrice;if(False==Buy(TurtleUnits,myEntryPrice)){break;}SendOrderThisBar=True;}}//止損指令If(Low<=preEntryPrice-2*N&&SendOrderThisBar==false)//加倉Bar不止損{myExitPrice=preEntryPrice-2*N;myExitPrice=IIF(myExitPrice>Open,Open,myExitPrice);//大跳空的時候用開盤價代替Sell(0,myExitPrice);//數量用0的情況下將全部平倉PreBreakoutFailure=True;}}}ElseIf(MarketPosition==-1)//有空倉的情況{//求出持空倉時離市的條件比較值Commentary("ExitHighestPrice="+Text(ExitHighestPrice));If(High>ExitHighestPrice){myExitPrice=Min(High,ExitHighestPrice+MinPoint);myExitPrice=IIF(myExitPrice<Open,Open,myExitPrice);//大跳空的時候用開盤價代替BuyToCover(0,myExitPrice);//數量用0的情況下將全部平倉}Else{If(preEntryPrice!=InvalidNumeric&&TurtleUnits>=1){If(Open<=preEntryPrice-0.5*N&&CurrentEntries<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長春工業(yè)大學人文信息學院《企業(yè)組織與文化》2023-2024學年第二學期期末試卷
- 2025春季學期國開電大本科《人文英語3》一平臺在線形考綜合測試(形考任務)試題及答案
- 山西農業(yè)大學《移動平臺開發(fā)技術》2023-2024學年第二學期期末試卷
- 2025企業(yè)員工續(xù)簽勞動合同申請書(制造業(yè))
- 長春中醫(yī)藥大學《分鏡頭畫面設計》2023-2024學年第二學期期末試卷
- 古代文學史的批判性試題及答案
- 安徽省安慶市2025屆高三下學期3月第二次模擬試題 化學 含解析
- 云南省沾益縣一中2025屆高三第一次診斷性測試物理試題文試題含解析
- 常州機電職業(yè)技術學院《地質災害與防治》2023-2024學年第一學期期末試卷
- 阿克蘇職業(yè)技術學院《極限飛盤》2023-2024學年第一學期期末試卷
- 案件審計服務投標方案(技術標)
- 英語語言與文化智慧樹知到課后章節(jié)答案2023年下華僑大學
- 2024年中考化學復習教學建議-把握中考方向、共研備考策略課件
- 【數字普惠金融的發(fā)展研究-以螞蟻集團為例12000字(論文)】
- 外教社新編英語語法教程(第6版)PPT課件Unit-22
- 2023年陜西特崗學前教育學科真題真題
- 痕跡檢驗概述
- 塔里木河課件
- 麻醉科省級臨床重點??平ㄔO項目申報標準
- ASTM B658 B658M-11(2020) 無縫和焊接鋯和鋯合金管標準規(guī)格
評論
0/150
提交評論