7周期策略(TB平臺)_第1頁
7周期策略(TB平臺)_第2頁
7周期策略(TB平臺)_第3頁
7周期策略(TB平臺)_第4頁
7周期策略(TB平臺)_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

7周期策略(TB版)策略概述類型:交易策略,包括做多和做空邏輯參數設置RangeLen:7,定義時間周期長度RngPcnt:200,定義波動百分比參數ATRs:8,定義ATR的倍數ATRLen:2,定義ATR的計算周期變量定義RangeH:7周期內的最高價序列RangeL:7周期內的最低價序列TRange:7周期的交易范圍(RangeH-RangeL)NoTrades:7周期內未交易的點數ATR:真實波動范圍(ATR)ATRMA:7周期ATR的移動平均LongRisk/ShortRisk:初始止損價(多頭/空頭)LongHigh/ShortLow:跟蹤止盈價(多頭盈利峰值/空頭盈利最低點)Condition1-4:入場和出場條件的布爾序列入場條件多頭入場7周期區間“空隙”之和>7周期區間高度的2倍(Condition1)當前K線的真實波動范圍>7周期ATR的移動平均(Condition2)收盤價創7周期高點,且K線中點高于前K線最高價(Condition3)滿足以上三個條件時,若當前無持倉且成交量大于0,則以開盤價開倉買入。空頭入場7周期區間“空隙”之和>7周期區間高度的2倍(Condition1)當前K線的真實波動范圍>7周期ATR的移動平均(Condition2)收盤價創7周期低點,且K線中點低于前K線最低價(Condition4)滿足以上三個條件時,若當前無持倉且成交量大于0,則以開盤價賣空。出場條件多頭出場收盤價創7周期低點,且K線中點低于前K線最低價(Condition4),以開盤價平倉。跌破初始止損價,以開盤價或初始止損價中較低者平倉。盈利峰值價回落ATR一定倍數,以開盤價或盈利峰值價回落ATR倍數后的價格中較低者平倉。空頭出場收盤價創7周期高點,且K線中點高于前K線最高價(Condition3),以開盤價平倉。價格達到或超過初始風險價,以開盤價或初始風險價中較高者平倉。價格達到或超過盈利目標價,以開盤價或盈利目標價中較高者平倉。策略邏輯初始化:計算7周期內的最高價、最低價、交易范圍、ATR及其移動平均。計算未交易點數:循環計算7周期內各K線最高最低價與區間高低點的距離之和。判斷入場條件:根據Condition1-3(多頭)/Condition1-2,4(空頭)判斷是否入場。執行交易:滿足入場條件時,根據當前持倉和成交量情況執行買入或賣空操作。更新止盈止損:持倉期間根據價格變動更新止盈止損價格。判斷出場條件:根據Condition3(多頭)/Condition4(空頭)及止盈止損條件判斷是否出場。執行出場:滿足出場條件時,執行平倉操作。注意事項策略中包含集合競價和小節休息時間的過濾邏輯,以避免在這些時段進行交易。策略中的ATR和ATRMA計算分別基于不同的周期(ATRLen和RangeLen),以捕捉不同時間尺度的市場波動。止盈止損條件的設置旨在保護盈利和限制虧損,增強策略的穩健性。策略做多代碼ParamsNumericRangeLen(7);NumericRngPcnt(200);NumericATRs(8);NumericATRLen(2);VarsNumericSeriesRangeH(0);NumericSeriesRangeL(0);NumericSeriesTRange(0);NumericSeriesNoTrades(0);NumericSeriesLongRisk(0);NumericSeriesLongHigh(0);NumericSeriesATR;NumericSeriesATRMA;Numericvalue1;BoolSeriesCondition1;BoolSeriesCondition2;BoolSeriesCondition3;BoolSeriesCondition4;BeginIf(!CallAuctionFilter())Return;RangeH=Highest(High[1],RangeLen);RangeL=Lowest(Low[1],RangeLen);TRange=RangeH-RangeL;ATR=AvgTrueRange(ATRLen);NoTrades=0;ATRMA=AvgTrueRange(RangeLen);Forvalue1=1ToRangeLenIf(High[value1]<=RangeH)NoTrades=NoTrades+(RangeH-High[value1]);If(Low[value1]>=RangeL)NoTrades=NoTrades+(Low[value1]-RangeL);EndCondition1=NoTrades>=TRange*(RngPcnt*0.01);Condition2=TrueRange>ATRMA[1];Condition3=Close>RangeHAnd(High+Low)*0.5>High[1];Condition4=Close<RangeLAnd(High+Low)*0.5<Low[1];If(Condition1[1]AndCondition2[1])If(Condition3[1]AndMarketPosition==0AndVol>0)Buy(0,Open);LongRisk=RangeL;LongHigh=High;If(MarketPosition==1AndBarsSinceEntry>0)LongHigh=Max(LongHigh,High);If(MarketPosition==1AndBarsSinceEntry>0AndVol>0)If(Condition4[1])Sell(0,Open);If(Low<=LongRisk)Sell(0,Min(Open,LongRisk));If(Low<=LongHigh[1]-(ATRs*ATR[1]))Sell(0,Min(Open,LongHigh[1]-(ATRs*ATR[1])));End規則說明用特定時間周期內的最高價位和最低價位計算交易范圍,然后計算真實的波動范圍和周期內的ATR對比,如果當前k線的波動范圍比n*交易范圍的值大,并且真實波動范圍比ATR大,這就滿足了前兩個系統掛單的條件入場條件:1.7周期區間“空隙”之和>7周期區間高度的2倍當前的k線比交易范圍的最高值大,而且如果當前k線的中間價格高于之前一根k線的最高值做多2.7周期區間“空隙”之和>7周期區間高度的2倍當前的k線比交易范圍的最低值小,而且如果當前k線的中間價格低于之前一根k線的最低值做空出場條件:1.初始止損2.跟蹤止損(盈利峰值價回落ATR的一定倍數)3.收盤價創7周期低點,且K線中點低于前K線最低價多頭出場做多代碼解讀:ParamsNumericRangeLen(7);//聲明數值參數RangeLen,初值7.//NumericRngPcnt(200);//聲明數值參數RngPcnt,初值200.//NumericATRs(8);//聲明數值參數ATRs,初值8.//NumericATRLen(2);//聲明數值參數ATRLen,初值2.//VarsNumericSeriesRangeH(0);//聲明數值序列變量RangeH,初值0,即7周期高點。//NumericSeriesRangeL(0);//聲明數值序列變量RangeL,初值0,即7周期低點。//NumericSeriesTRange(0);//聲明數值序列變量TRange,初值0,即7周期區間。//NumericSeriesNoTrades(0);//聲明數值序列變量NoTrades,初值0,即記錄7周期高低點分別與7周期內各K線最高最低值的距離之和。//NumericSeriesLongRisk(0);//聲明數值序列變量LongRisk,初值0,即初始止損價。//NumericSeriesLongHigh(0);//聲明數值序列變量LongHigh,初值0,即跟蹤止盈價。//NumericSeriesATR;//聲明數值序列變量ATR,即2周期ATR均值。//NumericSeriesATRMA;//聲明數值序列變量ATRMA,即7周期ATR均值。//Numericvalue1;//聲明數值變量value1.//BoolSeriesCondition1;//聲明布爾型序列變量Condition1.//BoolSeriesCondition2;//聲明布爾型序列變量Condition2.//BoolSeriesCondition3;//聲明布爾型序列變量Condition3.//BoolSeriesCondition4;//聲明布爾型序列變量Condition4.//BeginIf(!CallAuctionFilter())Return;//集合競價和小節休息過濾。////初始設置。//RangeH=Highest(High[1],RangeLen);//把前一最高價與參數7代入函數Highest求值,即可求得變量RangeH值。//RangeL=Lowest(Low[1],RangeLen);//把前一最低價與參數7代入函數Lowest求值,即可求得變量RangeL值。//TRange=RangeH-RangeL;//把求得的值代入公式,即可求得變量TRange值了。//ATR=AvgTrueRange(ATRLen);//指標ATR求值公式了,具體可參考之前的拋物線解讀。//NoTrades=0;//變量NoTrades初值0了。//ATRMA=AvgTrueRange(RangeLen);//同上的,可參考之前的拋物線解讀。//Forvalue1=1ToRangeLen//循環語句了,即1-7循環。//{If(High[value1]<=RangeH)//先看第一個值,假如前高價High[1]<=RangeH了。//NoTrades=NoTrades+(RangeH-High[value1]);//代入第一個值NoTrades=0+(RangeH-High[1]),循環連續算7周期高點與7周期內各K線最高值的距離之和了。//If(Low[value1]>=RangeL)//還是第一個值,假如前低價Low[1]>=RangeL。//NoTrades=NoTrades+(Low[value1]-RangeL);//代入第一個值NoTrades=0+(Low[1]-RangeL),同樣循環連續算7周期低點與7周期內各K線最低值的距離之和。//}Condition1=NoTrades>=TRange*(RngPcnt*0.01);//7周期區間“空隙”之和>7周期區間高度的2倍。//Condition2=TrueRange>ATRMA[1];//函數TrueRange即當根K線ATR>前根7周期均值。//Condition3=Close>RangeHAnd(High+Low)*0.5>High[1];//收盤價創7周期高點,且K線中點高于前K線最高價。//Condition4=Close<RangeLAnd(High+Low)*0.5<Low[1];//收盤價創7周期低點,且K線中點低于前K線最低價。////多頭入場。//If(Condition1[1]AndCondition2[1])//假如前一變量Condition1[1]和前一變量Condition2[1]條件成立的。//{If(Condition3[1]AndMarketPosition==0AndVol>0)//假如Condition3[1]條件成立,且當前沒有持倉,且成交量大于0.//{Buy(0,Open);//以開盤價開倉買入。//LongRisk=RangeL;//記錄初始止損價。//LongHigh=High;//記錄跟蹤止盈價。//}}//更新盈利峰值價。//If(MarketPosition==1AndBarsSinceEntry>0)//假如當前持有多單,且建倉數位大于0.//LongHigh=Max(LongHigh,High);//對比取大值了。////多頭出場。//If(MarketPosition==1AndBarsSinceEntry>0AndVol>0)//假如持有多單,且建倉數位大于0,且成交量大于0.//{If(Condition4[1])//前一變量Condition4[1]條件成立,即收盤價創7周期低點,且K線中點低于前K線最低價多頭出場。//{Sell(0,Open);//以開盤價平倉。//}If(Low<=LongRisk)//跌破初始止損價多頭出場了。//{Sell(0,Min(Open,LongRisk));//平倉。//}If(Low<=LongHigh[1]-(ATRs*ATR[1]))//盈利峰值價回落ATR一定倍數多頭出場。//{Sell(0,Min(Open,LongHigh[1]-(ATRs*ATR[1])));//平倉。//}}End策略做空代碼ParamsNumericRangeLen(7);NumericRngPcnt(200);NumericATRs(8);NumericATRLen(2);VarsNumericSeriesRangeH(0);NumericSeriesRangeL(0);NumericSeriesTRange(0);NumericSeriesNoTrades(0);NumericSeriesShortRisk(0);NumericSeriesShortLow(0);NumericSeriesATR;NumericSeriesATRMA;Numericvalue1;BoolSeriesCondition1;BoolSeriesCondition2;BoolSeriesCondition3;BoolSeriesCondition4;BeginIf(!CallAuctionFilter())Return;RangeH=Highest(High[1],RangeLen);RangeL=Lowest(Low[1],RangeLen);TRange=RangeH-RangeL;ATR=AvgTrueRange(ATRLen);NoTrades=0;ATRMA=AvgTrueRange(RangeLen);Forvalue1=1ToRangeLen{If(High[value1]<=RangeH)NoTrades=NoTrades+(RangeH-High[value1]);If(Low[value1]>=RangeL)NoTrades=NoTrades+(Low[value1]-RangeL);}Condition1=NoTrades>=TRange*(RngPcnt*0.01);Condition2=TrueRange>ATRMA[1];Condition3=Close>RangeHAnd(High+Low)*0.5>High[1];Condition4=Close<RangeLAnd(High+Low)*0.5<Low[1];If(Condition1[1]AndCondition2[1]){If(Condition4[1]AndMarketPosition==0Andvol>0){SellShort(0,Open);ShortRisk=RangeH;ShortLow=Low;}}If(MarketPosition==-1AndBarsSinceEntry>0)ShortLow=Min(ShortLow,Low);If(MarketPosition==-1AndBarsSinceEntry>0AndVol>0){If(Condition3[1]){BuyToCover(0,Open);}If(High>=ShortRisk){BuyToCover(0,Max(Open,ShortRisk));}If(High>=ShortLow[1]+(ATRs*ATR[1])){BuyToCover(0,Max(Open,ShortLow[1]+(ATRs*ATR[1])));}}End做空代碼注解://定義參數,設置初始值。ParamsNumericRangeLen(7);//定義時間周期長度為7。NumericRngPcnt(200);//定義波動百分比參數為200。NumericATRs(8);//定義ATR的倍數為8。NumericATRLen(2);//定義ATR的計算周期為2。//定義變量,初始化為0。VarsNumericSeriesRangeH(0);//7周期內的最高價序列。NumericSeriesRangeL(0);//7周期內的最低價序列。NumericSeriesTRange(0);//7周期的交易范圍。NumericSeriesNoTrades(0);//7周期內未交易的點數。NumericSeriesShortRisk(0);//空頭交易的初始風險。NumericSeriesShortLow(0);//跟蹤空頭交易的最低價。NumericSeriesATR;//真實波動范圍(ATR)。NumericSeriesATRMA;//7周期ATR的移動平均。Numericvalue1;//循環變量。BoolSeriesCondition1;//條件1的布爾序列。BoolSeriesCondition2;//條件2的布爾序列。BoolSeriesCondition3;//條件3的布爾序列。BoolSeriesCondition4;//條件4的布爾序列。//開始策略邏輯。Begin//過濾掉集合競價和小節休息時間。If(!CallAuctionFilter())Return;//計算7周期內的最高價和最低價。RangeH=Highest(High[1],RangeLen);RangeL=Lowest(Low[1],RangeLen);//計算交易范圍。TRange=RangeH-RangeL;//計算ATR。ATR=AvgTrueRange(ATRLen);//初始化未交易點數。NoTrades=0;//計算7周期ATR的移動平均。ATRMA=AvgTrueRange(RangeLen);//循環計算7周期內未交易的點數。Forvalue1=1ToRangeLen{If(High[value1]<=RangeH)NoTrades=NoTrades+(RangeH-High[value1]);If(Low[value1]>=RangeL)NoTrades=NoTrades+(Low[value1]-RangeL);}//定義入場和出場條件。Conditi

溫馨提示

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

評論

0/150

提交評論