版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序化交易實(shí)戰(zhàn)連載8:策略編寫(xiě)陷阱信號(hào)閃爍1. 信號(hào)閃爍概念介紹信號(hào)閃爍是指程序發(fā)出了不穩(wěn)定的交易信號(hào)。一旦出現(xiàn)這種情況,程序會(huì)在極短的時(shí)間之內(nèi),反復(fù)多次進(jìn)行開(kāi)平倉(cāng)操作。換句話說(shuō),在策略研發(fā)者預(yù)期程序不該發(fā)出開(kāi)平倉(cāng)交易信號(hào)的時(shí)候,程序“自己”反復(fù)發(fā)出交易信號(hào)。對(duì)于交易員來(lái)說(shuō),這是非常危險(xiǎn)的,如果不立即進(jìn)行應(yīng)急處理,程序很可能一直進(jìn)行這種不合理的操作,產(chǎn)生大量的交易手續(xù)費(fèi)成本和滑點(diǎn)成本,造成交易事故。原因解析信號(hào)閃爍主要由以下兩個(gè)原因造成:第一,所使用的判斷條件不穩(wěn)定,即判斷條件時(shí)而成立時(shí)而不成立。第二,雖然判斷條件固定,但是開(kāi)倉(cāng)和平倉(cāng)條件出現(xiàn)交集,即某些情況既滿足開(kāi)倉(cāng)條件也滿足平倉(cāng)條件。這會(huì)導(dǎo)
2、致程序先判斷開(kāi)倉(cāng)條件成立,于是開(kāi)倉(cāng)交易;同一個(gè)Tick內(nèi),又判斷平倉(cāng)條件成立,所以立即把剛開(kāi)的倉(cāng)位平掉。接下來(lái)推送過(guò)來(lái)一個(gè)新Tick,再次判斷開(kāi)倉(cāng)條件成立,程序會(huì)再次開(kāi)倉(cāng)然后平倉(cāng)。如此反復(fù),直到價(jià)格變動(dòng)到開(kāi)平倉(cāng)條件的交集之外時(shí),才會(huì)停下來(lái)。我們將對(duì)這兩種情況分別舉例說(shuō)明。案例一大部分程序化交易模型的信號(hào),都是由引用的價(jià)格滿足開(kāi)平倉(cāng)條件后發(fā)出的,常用的引用價(jià)格有:開(kāi)盤(pán)價(jià),收盤(pán)價(jià),最高價(jià),最低價(jià),均價(jià)等。我們用一個(gè)簡(jiǎn)單的例子來(lái)展示判斷條件不穩(wěn)定所導(dǎo)致的信號(hào)閃爍:根據(jù)5日均線和10日均線進(jìn)行判斷,金叉做多,死叉做空。即當(dāng)5日均線突破10日均線時(shí),做多;當(dāng)10日均線突破5日均線時(shí),做空。上面是Q語(yǔ)言關(guān)
3、于金叉做多、死叉做空的代碼,這里引用的是當(dāng)前Bar的五日均線ma50和十日均線ma100。但是在當(dāng)前Bar還沒(méi)走完的情況下,其最高價(jià)High0會(huì)不停變化,所對(duì)應(yīng)的ma50和ma100也都會(huì)變化。這樣一來(lái),可能一會(huì)出現(xiàn)ma50>ma100,一會(huì)又出現(xiàn)ma50<ma100的情況。因此,程序可能一會(huì)發(fā)出做多的交易信號(hào),一會(huì)發(fā)出做空的交易信號(hào)。也就是說(shuō),所觸發(fā)的交易信號(hào)不穩(wěn)定,出現(xiàn)信號(hào)閃爍。這種情況在程序后驗(yàn)的時(shí)候,是不會(huì)察覺(jué)到的,因?yàn)榇蟛糠值能浖M(jìn)行后驗(yàn)的時(shí)候,不是以Tick驅(qū)動(dòng),而是以Bar驅(qū)動(dòng)。所以在涉及到信號(hào)觸發(fā)那根Bar的時(shí)候,High0 會(huì)被默認(rèn)為這根Bar的最高價(jià),是一個(gè)常數(shù)
4、,所以ma50也是一個(gè)常數(shù)。這樣做的好處是減少了后驗(yàn)的運(yùn)算量,大大節(jié)省了后驗(yàn)的時(shí)間成本,但這樣也會(huì)帶來(lái)后驗(yàn)過(guò)程中無(wú)法發(fā)現(xiàn)信號(hào)閃爍問(wèn)題的弊端。下面這幅圖是這個(gè)信號(hào)閃爍的例子在價(jià)格以Tick驅(qū)動(dòng)時(shí)產(chǎn)生的結(jié)果,我們可以清楚地看到,在同一根Bar中程序反復(fù)開(kāi)平倉(cāng)。下面我們來(lái)看一下這段代碼的修正方法:引用上一根Bar的五日均線ma51和十日均線ma101,以及前一根Bar的最高價(jià)High1。因?yàn)樗鼈兪且呀?jīng)成為歷史的數(shù)據(jù),是常數(shù)。在這種情況下,一旦出現(xiàn)ma51>ma101或者ma51<ma101,信號(hào)就會(huì)固定下來(lái),不會(huì)反復(fù)發(fā)生改變。案例二下面我們以Hans123為例,展示一個(gè)常見(jiàn)的錯(cuò)誤:策略的
5、開(kāi)倉(cāng)條件和平倉(cāng)條件有交集,導(dǎo)致程序連續(xù)不斷地反復(fù)開(kāi)平倉(cāng)。Hans123在開(kāi)盤(pán)后一段時(shí)間(HansTime)后,確定高低點(diǎn)。隨后價(jià)格突破高點(diǎn)做多,跌破低點(diǎn)做空。為了避免隔夜持倉(cāng),我們?cè)诔绦蛑屑尤胍粋€(gè)新的參數(shù),離場(chǎng)時(shí)間ExTime。由于之前對(duì)這個(gè)策略進(jìn)行過(guò)詳細(xì)解釋,我們?cè)谶@里省略了中間部分代碼,僅列出關(guān)鍵代碼。為了避免上面的信號(hào)閃爍問(wèn)題,我們可以加入一個(gè)新的參數(shù),停止開(kāi)倉(cāng)時(shí)間ExitOnCloseMins,并令它的值比離場(chǎng)時(shí)間ExTime稍微早一些。對(duì)于開(kāi)倉(cāng)條件,我們也設(shè)定一個(gè)新的限制:只有在Bar.Time < ExitOnCloseMins時(shí),即當(dāng)前K線時(shí)間小于停止開(kāi)倉(cāng)時(shí)間時(shí),程序才開(kāi)倉(cāng)
6、。加入了這個(gè)條件后,當(dāng)K線時(shí)間超過(guò)離場(chǎng)時(shí)間ExTime之后程序平倉(cāng)離場(chǎng),同時(shí)由于此時(shí)已經(jīng)超過(guò)了停止開(kāi)倉(cāng)時(shí)間ExitOnCloseMins,即使現(xiàn)在的價(jià)格仍然在UpperBand以上或LowerBand以下,程序也不會(huì)再次開(kāi)倉(cāng)。這里僅將調(diào)整的代碼部分展示出來(lái):運(yùn)行修改之后的程序,從K線圖中可以看出,我們已經(jīng)將信號(hào)閃爍的問(wèn)題解決了。案例三在案例二的修正版本中我們?cè)陂_(kāi)倉(cāng)條件中使用了Bar.Count > Pos.LastExitBar這一語(yǔ)句,這一段代碼也是為了避免信號(hào)閃爍的問(wèn)題。為了讓大家了解這行代碼的重要性,我們?cè)倥e一個(gè)信號(hào)閃爍的例子,并討論如何利用Pos.LastEntryBar和Pos
7、.LastExitBar來(lái)解決這個(gè)問(wèn)題。上面這段代碼中同時(shí)存在未來(lái)函數(shù)和信號(hào)閃爍的問(wèn)題,在后驗(yàn)的K線中可以清楚地看出來(lái)。其中的未來(lái)函數(shù)問(wèn)題我們?cè)谖磥?lái)函數(shù)案例四中討論過(guò),是無(wú)法判斷開(kāi)多倉(cāng)和開(kāi)空倉(cāng)先后順序的問(wèn)題,這里就不再贅述。我們?cè)谶@里只專門討論信號(hào)閃爍的問(wèn)題:1)后驗(yàn)時(shí),這段代碼在某些bar上會(huì)出現(xiàn)開(kāi)平倉(cāng)各兩次的情況,因?yàn)橛锌赡艽嬖赽ar上High0 >= Open0 + 3和Low0 <= Open0 3同時(shí)被滿足的情況。2)如果將這個(gè)策略用于實(shí)盤(pán),情況會(huì)更加糟糕。在實(shí)盤(pán)中,如果價(jià)格“上躥下跳”,多次突破Open0 + 3之上,又被打回Open0 3以下,那么在這根bar內(nèi)就會(huì)多
8、次發(fā)出買賣的交易信號(hào),產(chǎn)生嚴(yán)重的信號(hào)閃爍。為了解決這個(gè)問(wèn)題,避免在同一個(gè)Bar上反復(fù)開(kāi)平倉(cāng),我們可以引入兩個(gè)全局變量:上一次開(kāi)倉(cāng)時(shí)的bar序號(hào)Pos.LastEntryBar和上一次平倉(cāng)時(shí)的bar序號(hào)Pos.LastExitBar。我們準(zhǔn)備平倉(cāng)時(shí),需要滿足當(dāng)前Bar的索引Bar.Count必須大于上次開(kāi)倉(cāng)時(shí)的bar序號(hào)Pos.LastEntryBar,即Bar.Count > Pos.LastEntryBar。同樣的,我們準(zhǔn)備開(kāi)倉(cāng)時(shí),需要滿足當(dāng)前Bar的索引Bar.Count必須大于上一次平倉(cāng)時(shí)的bar序號(hào)Pos.LastExitBar,即Bar.Count > Pos.LastE
9、xitBar。加入這兩個(gè)條件之后,就可以確保不會(huì)在同一根bar上反復(fù)開(kāi)平倉(cāng)了。總結(jié)在編寫(xiě)bar策略時(shí),如果存在邏輯不嚴(yán)密的漏洞,就很可能導(dǎo)致信號(hào)閃爍的問(wèn)題。使用天語(yǔ)軟件的Tick后驗(yàn)功能來(lái)進(jìn)行后驗(yàn)是一個(gè)能夠有效檢測(cè)這一問(wèn)題的方法。在此建議各位讀者,在實(shí)盤(pán)之前需要認(rèn)真檢查策略的邏輯,讓策略思想成為一個(gè)閉合的環(huán)路,避免因?yàn)槌霈F(xiàn)信號(hào)閃爍的問(wèn)題向市場(chǎng)支付高昂的學(xué)費(fèi)。2. 程序化交易陷阱的避免方法在本節(jié)中我們主要介紹了三個(gè)類型的程序化交易陷阱,偷價(jià)格、未來(lái)函數(shù)和信號(hào)閃爍。這些陷阱會(huì)導(dǎo)致后驗(yàn)與實(shí)盤(pán)不一致,使得后驗(yàn)結(jié)果失去意義;如果進(jìn)行實(shí)盤(pán),會(huì)失去“虛假的利潤(rùn)”,或者產(chǎn)生大量的交易費(fèi)用導(dǎo)致虧損。這些陷阱在初
10、學(xué)程序化交易的過(guò)程中,非常容易出現(xiàn)。但是,只要在編寫(xiě)代碼時(shí)時(shí)常提醒自己并養(yǎng)成良好的習(xí)慣,并從多方面檢查策略的邏輯,它們都是可以避免的。具體方法我們之前在進(jìn)行案例分析時(shí),介紹過(guò)一些,這里再進(jìn)行一下總結(jié)。首先,寫(xiě)開(kāi)平倉(cāng)條件時(shí),可以將索引值大于或等于1的Bar信息寫(xiě)進(jìn)判斷條件,慎用索引值為0的Bar信息,然后以最新Bar的開(kāi)盤(pán)價(jià)Open0下單。因?yàn)樵跉v史回驗(yàn)時(shí),Bar的所有信息都是已知的,但在實(shí)際交易中,在當(dāng)前Bar沒(méi)有走完前,它的收盤(pán)價(jià)/最高價(jià)/最低價(jià)/成交量這些信息都是未知的,并在不斷改變。如果以Close0,High0,Low0,Volume0作為判斷條件,在實(shí)盤(pán)交易時(shí)策略信號(hào)就會(huì)閃爍不定,判
11、斷條件就可能時(shí)而成立時(shí)而不成立。如果以收盤(pán)價(jià)Close0、最高價(jià)High0或者最低價(jià)Low0下單,就容易引入未來(lái)函數(shù)。因?yàn)樵趯?shí)時(shí)行情中,Close0,High0,Low0的值,直到Bar走完才會(huì)固定下來(lái)。值得注意的是,這里有一個(gè)例外:將High0大于等于某個(gè)固定值,或Low0小于等于某個(gè)固定值作為判斷條件是可行的,并不會(huì)出現(xiàn)未來(lái)函數(shù)和信號(hào)閃爍的問(wèn)題。因?yàn)檫@個(gè)條件一旦發(fā)生,便會(huì)固定下來(lái),而不會(huì)再改變。但是,不能將High0和Low0都寫(xiě)入判斷條件,這也是一種未來(lái)函數(shù),因?yàn)槲覀儾恢肋@兩個(gè)條件的發(fā)生順序。其次,在引入指標(biāo)時(shí),大部分時(shí)候也只能將索引值大于等于1的指標(biāo)信息寫(xiě)進(jìn)判斷條件,需要慎用索引值為
12、0的值,否則也容易出現(xiàn)未來(lái)函數(shù)。例如布林帶指標(biāo)的上軌線為UpBand,移動(dòng)平均線指標(biāo)為MA,在實(shí)時(shí)行情中,UpBand0和MA0也是不斷變化的,只有當(dāng)前Bar走完,其值才會(huì)固定下來(lái)成為UpBand1和MA1。因此我們只能將Upband1或MA1以及之前的信息寫(xiě)進(jìn)判斷條件和開(kāi)平倉(cāng)條件,而不能將UpBand0或MA0寫(xiě)進(jìn)判斷條件和開(kāi)平倉(cāng)條件。再次,設(shè)定成交價(jià)格時(shí)需要周全考慮,以防止偷價(jià)格的問(wèn)題出現(xiàn)。這點(diǎn)在突破類策略中尤其需要注意,要分別考慮在bar內(nèi)突破和跳空突破兩種情況,還要注意開(kāi)平倉(cāng)條件中等號(hào)的精確使用。另外,后驗(yàn)時(shí)畫(huà)出輔助線,并結(jié)合輔助線在K線上看開(kāi)平倉(cāng)的點(diǎn)位,這也是一個(gè)能夠有效解決大部分偷價(jià)格問(wèn)題的方法。最后,不要在同一根bar內(nèi)的不同價(jià)格上進(jìn)行開(kāi)平倉(cāng)操作。因?yàn)樵诤篁?yàn)中我們并不知道開(kāi)倉(cāng)條件和平倉(cāng)條件哪一個(gè)會(huì)先觸發(fā),這可能造成后驗(yàn)的失真。另外,在比較特殊的行情下,同一根bar內(nèi)開(kāi)平倉(cāng)還存在造成著信號(hào)閃爍的可能。值得注意的是,這里也有一個(gè)特例:我們可以在bar內(nèi)的同一個(gè)價(jià)位上進(jìn)行平倉(cāng)并反手開(kāi)倉(cāng)的操作,這也正是反手策略的一個(gè)典
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市綠化養(yǎng)護(hù)管理合同7篇
- 二零二五年度新能源汽車共享平臺(tái)合作協(xié)議4篇
- 2025年離婚協(xié)議中子女監(jiān)護(hù)權(quán)確定合同范本3篇
- 2025年船舶股份合作協(xié)議標(biāo)準(zhǔn)文本4篇
- 2025年度電器產(chǎn)品綠色供應(yīng)鏈管理合作協(xié)議12篇
- 2025年度農(nóng)業(yè)機(jī)械智能化生產(chǎn)線設(shè)計(jì)合同3篇
- 2025年度某工業(yè)園區(qū)水電暖設(shè)施建設(shè)及運(yùn)營(yíng)管理合同4篇
- 2025年度區(qū)塊鏈創(chuàng)業(yè)項(xiàng)目合伙人協(xié)議書(shū)模板3篇
- 二零二五年度物流運(yùn)輸派遣勞務(wù)服務(wù)協(xié)議4篇
- 二零二五年度高端酒店門窗鋁型材定制及安裝服務(wù)合同4篇
- 2025年溫州市城發(fā)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 2025版高考物理復(fù)習(xí)知識(shí)清單
- 除數(shù)是兩位數(shù)的除法練習(xí)題(84道)
- 2025年度安全檢查計(jì)劃
- 2024年度工作總結(jié)與計(jì)劃標(biāo)準(zhǔn)版本(2篇)
- 全球半導(dǎo)體測(cè)試探針行業(yè)市場(chǎng)研究報(bào)告2024
- 反走私課件完整版本
- 2024年注冊(cè)計(jì)量師-一級(jí)注冊(cè)計(jì)量師考試近5年真題附答案
- 【可行性報(bào)告】2023年電動(dòng)自行車行業(yè)項(xiàng)目可行性分析報(bào)告
- 臨床見(jiàn)習(xí)教案COPD地診療教案
評(píng)論
0/150
提交評(píng)論