TB交易模型示例_第1頁(yè)
TB交易模型示例_第2頁(yè)
TB交易模型示例_第3頁(yè)
TB交易模型示例_第4頁(yè)
TB交易模型示例_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1TB程序化交易模型示例程序化交易模型示例蔡云華蔡云華深圳開拓者科技有限公司深圳開拓者科技有限公司內(nèi)容安排內(nèi)容安排介紹四套交易模型一、單均線加通道交易模型二、四周法則交易模型三、雙均線交叉交易模型四、RangeBreak日內(nèi)突破模型2 例例1:?jiǎn)尉€加通道突破系統(tǒng):?jiǎn)尉€加通道突破系統(tǒng)交易規(guī)則:以簡(jiǎn)單移動(dòng)平均線判斷趨勢(shì),收盤價(jià)在均線之上為多頭趨勢(shì),在均線之下為空頭趨勢(shì);為過濾均線假突破,在均線基礎(chǔ)上加減一定百分比形成圍繞均線的上下兩條通道;價(jià)格盤中突破上軌,進(jìn)場(chǎng)做多或平空反多;價(jià)格盤中突破下軌,進(jìn)場(chǎng)做空或平多反空;增加跟蹤止盈的功能(峰值價(jià)回落ATR倍數(shù));跟蹤止盈后突破出場(chǎng)前高(低)點(diǎn)再進(jìn)場(chǎng)

2、;交易頭寸暫為1手。3 策略設(shè)計(jì)策略設(shè)計(jì)(1)進(jìn)出場(chǎng)技術(shù)指標(biāo)的編寫:ATRValue = AvgTrueRange(ATRLength);Commentary(ATRValue=+text(ATRValue);MA = AverageFC(Close,Length);UpperBand = MA1 * (1 + FilterPercent / 10000 );LowerBand = MA1 * (1 - FilterPercent / 10000 );PlotNumeric(MA,MA);PlotNumeric(UpperBand,UpperBand);PlotNumeric(LowerBan

3、d,LowerBand);其中參數(shù)其中參數(shù):ATRLength - 平均真實(shí)波幅的計(jì)算周期 FilterPercent - 通道的比例(萬(wàn)分之幾)4 策略設(shè)計(jì)策略設(shè)計(jì)(2)為了讓系統(tǒng)的組合更靈活,把一個(gè)完整的交易模型分成做多和做空兩個(gè)模型分別編寫;初次進(jìn)場(chǎng)和再次進(jìn)場(chǎng),多空模型分別通過序列變量bLongStoped和bShortStoped來判斷;進(jìn)場(chǎng)后,兩個(gè)變量設(shè)為false,重新記錄跟蹤止損狀況跟蹤止盈觸發(fā)后,設(shè)置為true趨勢(shì)反轉(zhuǎn)后,有倉(cāng)位需要止損,但不設(shè)置標(biāo)志跟蹤止損和再次進(jìn)場(chǎng)創(chuàng)新高(低)的判斷,都需要記錄盈利峰值價(jià)( 也就是前高或前低),因此需要設(shè)置兩個(gè)序列變量HigherAfterE

4、ntry和LowerAfterEntry,進(jìn)場(chǎng)后及時(shí)記錄價(jià)格的新高(低)的變化;5 策略設(shè)計(jì)策略設(shè)計(jì)(3)跟蹤止盈采用的是盈利峰值價(jià)回落的一定比例后觸發(fā)止損,加上本身趨勢(shì)反轉(zhuǎn)時(shí)的止損,兩部分代碼合在一起,以多頭模型為例說明:止損價(jià)的設(shè)置StopLine = LowerBand;if (StopLine HigherAfterEntry - ATRValue1 * TrailStopNumATR)StopLine = HigherAfterEntry - ATRValue1 * TrailStopNumATR;止損的觸發(fā)If(Low = StopLine)MyPrice = StopLine;I

5、f(Open MyPrice) MyPrice = Open;Sell(0,MyPrice);bLongStoped = true;6 策略設(shè)計(jì)策略設(shè)計(jì)(4)集合競(jìng)價(jià)數(shù)據(jù)過濾集合競(jìng)價(jià)時(shí),會(huì)產(chǎn)生一個(gè)Tick,這個(gè)Tick會(huì)驅(qū)動(dòng)圖表中加載的公式應(yīng)用的運(yùn)算,如果這時(shí)符合交易條件,則會(huì)發(fā)送委托單。但交易所此時(shí)并未開市,從而產(chǎn)生廢單。為處理這種情況,我們需要在代碼中過濾這些數(shù)據(jù),我們?cè)诠街屑尤胍韵麓a:分鐘周期和Tick周期下If ( BarType = 1 or BarType = 2 ) & BarStatus = 2 & date != date1 & high = lo

6、w) return;日線周期If ( BarType = 0 & BarStatus = 2 & CurrentTime = HiBand1 ).多空分開設(shè)計(jì),跟蹤止盈的設(shè)計(jì)以及集合競(jìng)價(jià)數(shù)據(jù)的過濾都和例1的策略相同。11 模型參數(shù)說明模型參數(shù)說明vLength1:長(zhǎng)周期天數(shù),默認(rèn)值為20,即四周;vLength2:短周期天數(shù),默認(rèn)值為10,即兩周;vATRLength:ATR的周期,默認(rèn)值為20;vTrailStopNumATR:追蹤止損回撤ATR的倍數(shù),默認(rèn)值為2;vLots:頭寸大小,默認(rèn)為交易1手。12 例例3:雙均線交叉系統(tǒng):雙均線交叉系統(tǒng)交易規(guī)則:如果短期均線上穿長(zhǎng)期

7、均線,做多,如原來持有空單,則先平空單,再建多倉(cāng)如果短期均線下穿長(zhǎng)期均線,做空,如原來持有多單,則先平多單,再建空單短周期:10長(zhǎng)周期:20交易頭寸暫為1手13 出場(chǎng)部分設(shè)計(jì)出場(chǎng)部分設(shè)計(jì)我們使用三種類型的止損設(shè)置:進(jìn)場(chǎng)后設(shè)置初始止損;有一定盈利后設(shè)置保本止損;盈利增大后使用追蹤止盈(峰值價(jià)回落ATR倍數(shù));為此,設(shè)置三個(gè)止損參數(shù): Numeric InitialStop(20); / 初始止損(千分之N)Numeric BreakEvenStop(30); / 保本止損(千分之N)Numeric TrailingStop(50); / 追蹤止損(千分之N)三種止損的代碼可以放在一起處理,取最有

8、利的價(jià)格作為止損(贏)價(jià)。 多頭止損部分的代碼多頭止損部分的代碼/ 初始止損StopLine = EntryPrice * (1-InitialStop/1000);/ 達(dá)到保本止損條件,將止損位上移到保本的價(jià)位If (HigherAfterEntry = EntryPrice * (1+BreakEvenStop/1000)StopLine = EntryPrice;/ 追蹤止損的價(jià)位超過保本止損價(jià),止損價(jià)隨盈利峰值價(jià)的上升同步提高If (StopLine HigherAfterEntry*(1-TrailingStop/1000)StopLine = HigherAfterEntry*(1

9、-TrailingStop/1000);Commentary(止損價(jià):+Text(StopLine);/ 止損觸發(fā)If(Low = StopLine)MyPrice = StopLine;If(Open =UpperBand) vMyPrice = UpperBand;vIf(Open MyPrice) MyPrice = Open;vBuy(1,MyPrice);vReturn;vRBS_V1(2)vIf(MarketPosition!=-1 & Low=LowerBand)vvMyPrice = LowerBand;vIf(Open =ExitOnCloseMins/100)vvS

10、ell(1,Open);vBuyToCover(1,Open);vvSetExitOnClose;vEnd必須考慮的特殊情況必須考慮的特殊情況v如果前一日漲?;虻?,則會(huì)出現(xiàn)范圍很小。v解決方案:v設(shè)定一個(gè)范圍的最小值,假定為當(dāng)前價(jià)格的0.2%。代碼中的改動(dòng)代碼中的改動(dòng)vParamsv Numeric MinRange(0.2);vVarsv NumericSeries DayOpen;v Numeric preDayHigh;v Numeric preDayLow; v NumericSeries preDayRange;vBeginv preDayHigh = HighD(1);v pre

11、DayLow = LowD(1);v If(Date!=Date1)v v DayOpen = Open;v preDayRange = preDayHigh - preDayLow;v If(preDayRange Open*MinRange*0.01) v preDayRange = Open*MinRange*0.01;v Elsev v DayOpen = DayOpen1;v preDayRange = preDayRange1;v 增加止損增加止損v有可能通道會(huì)比較寬,難道非要等到反轉(zhuǎn)才平倉(cāng)?v考慮增加止損設(shè)置,有2種方案:v1、虧損固定點(diǎn)數(shù)。v2、虧損當(dāng)前價(jià)格的百分比。v考慮到商

12、品價(jià)格變化的差異,我們采取第二種方式。止損部分代碼止損部分代碼v 先增加一個(gè)變量StopLine,用來保存止損位置。v下面是做多時(shí)的止損代碼:vIf(MarketPosition=1)vvStopLine = AvgEntryPrice-DayOpen*StopLossSet*0.01;vIf(Low = StopLine)vvMyPrice = StopLine;vIf(Open = StopLine)vvMyPrice = StopLine;vIf(Open MyPrice) MyPrice = Open;vBuyToCover(Lots,MyPrice);vv入場(chǎng)時(shí)間的考慮入場(chǎng)時(shí)間的考慮

13、v突破的時(shí)效性,發(fā)生在上午和下午意義是不同的。v不同的商品時(shí)效屬性不盡相同v為此我們?cè)黾幼詈蠼灰讜r(shí)間參數(shù),可供優(yōu)化測(cè)試來確定最佳值。 實(shí)現(xiàn)代碼實(shí)現(xiàn)代碼v增加參數(shù):vNumeric LastTradeMins(14.00);v開倉(cāng)條件處增加一個(gè)時(shí)間條件。vIf(MarketPosition!=1 & High=UpperBand & Time LastTradeMins/100)vv/ 多頭開倉(cāng)vvIf(MarketPosition!=-1 & Low=LowerBand & Time =AvgEntryPrice+DayOpen*TrailingStart*0.

14、01)vvStopLine = HigherAfterEntry - DayOpen*TrailingStop*0.01;vElse / 止損vvStopLine = AvgEntryPrice-DayOpen*StopLossSet*0.01;vvvIf(Low = StopLine)vvMyPrice = StopLine;vIf(Open =UpperBand & High HigherAfterEntry & Time MyPrice) MyPrice = Open;vBuy(1,MyPrice);vbLongStoped = False;vReturn;vvv/ 做空

15、再次入場(chǎng)代碼:vIf(bShortStoped & MarketPosition=0 & Low=LowerBand & Low LowerAfterEntry & Time LastTradeMins/100 & bInBoardRange=false)vvMyPrice = Min(LowerAfterEntry,LowerBand) - MinPoint;vIf(Open MyPrice) MyPrice = Open;vSellShort(1,MyPrice);vbShortStoped = False;vReturn;v漲跌停的控制漲跌停的控制

16、接近漲跌停板不應(yīng)開倉(cāng)。若有持倉(cāng),價(jià)格到達(dá)漲跌停板馬上平倉(cāng)。判斷是否接近漲跌停判斷是否接近漲跌停v我們新建一個(gè)布爾變量bInBoardRange,默認(rèn)值設(shè)置為False。vbInBoardRange = v(Open Q_UpperLimit - DayOpen*StopLossSet*0.02);v在開倉(cāng)條件中加入(bInBoardRange=false)漲跌停板平倉(cāng)漲跌停板平倉(cāng)v為了在價(jià)格達(dá)到漲跌停價(jià)馬上平倉(cāng),我們需要在增加如下代碼:v做多時(shí):vIf(Open = Q_UpperLimit) Sell(1,Open);v做空時(shí):vIf(Open = Q_LowerLimit) BuyToCover(Lots,Open);交易次數(shù)控制交易次數(shù)控制增加失敗次數(shù)限制,防止單日虧損無限制擴(kuò)大。增加二個(gè)變量記錄失敗的次數(shù)。NumericSeries LongFailureCnts;NumericSeries ShortFailureCnts;增加一個(gè)參數(shù)設(shè)置最大

溫馨提示

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

評(píng)論

0/150

提交評(píng)論