協(xié)整理論在期指套利中的運(yùn)用及策略源碼[開(kāi)拓者公式]
- 咨詢(xún)內(nèi)容:
目前大家都是用滬50ETF和深100ETF組合模擬現(xiàn)貨指數(shù),用基差做期限套利,隨著套利人群的增多,基差逐漸變
小,不足以覆蓋成本,所以機(jī)會(huì)很少,為此,需要修正基差。
計(jì)量經(jīng)濟(jì)學(xué)中有個(gè)協(xié)整理論,今天拋磚引玉,和大家一起探討。
不同市場(chǎng)上的同質(zhì)或相似商品的價(jià)格存在長(zhǎng)期均衡關(guān)系,當(dāng)價(jià)格偏離均衡時(shí),由于套利交易的存在,偏離會(huì)迅速
回到均衡。在一定的門(mén)限值以外,二者服從協(xié)整關(guān)系,在門(mén)限值以?xún)?nèi),二者沒(méi)有協(xié)整關(guān)系,這種關(guān)系稱(chēng)為門(mén)限協(xié)
整。
用滬50ETF和深100ETF組合模擬的現(xiàn)貨指數(shù),和HS300指數(shù)確實(shí)存在長(zhǎng)期的均衡關(guān)系,但很可惜,模擬的現(xiàn)貨指數(shù)
和期貨指數(shù)不具備長(zhǎng)期的均衡關(guān)系,因?yàn)殡S時(shí)間推移,他們之間的價(jià)差會(huì)逼近0,那么,就無(wú)意義了嗎?
一個(gè)期指合約的存續(xù)期大約25天,如果從合約剛誕生,在極小的周期上,如10秒級(jí)別,在一定的存續(xù)期內(nèi),是存
在這種協(xié)整關(guān)系的。并且這種機(jī)會(huì)出現(xiàn)的頻率遠(yuǎn)高于正常的期限基差,這樣就可以套利了。
程序源碼如下:
Params
Numeric AjustmentRatio(804507); // 協(xié)整系數(shù)
Numeric AjustmentLength(2000); // 協(xié)整周期
Numeric Weight1(1); // 現(xiàn)貨權(quán)重
Numeric Weight2(1);
Numeric Band(1.25); //目標(biāo)價(jià)差曲線開(kāi)倉(cāng)上下限
Numeric Lots(1); //每次開(kāi)倉(cāng)手?jǐn)?shù)
Vars
NumericSeries St; //指數(shù)自然對(duì)數(shù)變換曲線
NumericSeries St1; // 目標(biāo)價(jià)差曲線
Numeric MinPoint; // 最小變動(dòng)單位
Bool SellEntrysignal(False); // 正向套利信號(hào)
Bool BuyEntrysignal(False); // 反向套利信號(hào)
Bool SellExitsignal(False); // 正向套利出場(chǎng)信號(hào)
Bool BuyExitsignal(False); // 反向套利出場(chǎng)信號(hào)
Numeric myEntryPrice;
Begin
St=10000*ln(Data0.close*ContractUnit)-AjustmentRatio*ln((Data1.close*Weight1+Data2.close*Weight2)/(Weight1+Weight2))/100;
st1=(st-XAverage(st,AjustmentLength))/StandardDev(st,AjustmentLength,0);
PlotNumeric("St1",St1);
PlotNumeric("零軸",0);
PlotNumeric("正向",Band);
PlotNumeric("反向",(-1)*Band);
MinPoint=MinMove*PriceScale;
SellEntrysignal=st1[1]>Band;
If (SellEntrysignal) // 正向套利,期指開(kāi)空單,買(mǎi)入現(xiàn)貨
{
// 開(kāi)倉(cāng)價(jià)格取開(kāi)盤(pán)價(jià)加上一個(gè)單位滑點(diǎn),這樣能更接近真實(shí)情況,并能盡量保證成交
myEntryPrice = Open-MinPoint;
Sellshort(Lots,myEntryPrice);
}
BuyEntrysignal=st1[1]<(-1)*Band;
If (BuyEntrysignal) // 反向套利,期指開(kāi)多單,賣(mài)出現(xiàn)貨
{
// 開(kāi)倉(cāng)價(jià)格取開(kāi)盤(pán)價(jià)加上一個(gè)單位滑點(diǎn),這樣能更接近真實(shí)情況,并能盡量保證成交
myEntryPrice = Open+MinPoint;
Buy(Lots,myEntryPrice);
}
SellExitsignal=CrossUnder(st1[1],0);
if( SellExitsignal && MarketPosition == -1 ) // 正向套利平倉(cāng),期指空單平,賣(mài)出現(xiàn)貨
{
// 開(kāi)倉(cāng)價(jià)格取開(kāi)盤(pán)價(jià)加上一個(gè)單位滑點(diǎn),這樣能更接近真實(shí)情況,并能盡量保證成交
myEntryPrice = Open+MinPoint;
BuyToCover(Lots,myEntryPrice);
}
BuyExitsignal=CrossOver(st1[1],0);
if (BuyExitsignal && marketposition==1) // 反向套利平倉(cāng),期指多單平,買(mǎi)入現(xiàn)貨
{
// 開(kāi)倉(cāng)價(jià)格取開(kāi)盤(pán)價(jià)加上一個(gè)單位滑點(diǎn),這樣能更接近真實(shí)情況,并能盡量保證成交
myEntryPrice = Open-MinPoint;
Sell(Lots,myEntryPrice);
}
End
理論上年收益100%以上。
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫(xiě)!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容