人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

您現在的位置:程序化交易>> 期貨公式>> (MC)multicharts>> MC知識>>正文內容

精華 回測中如何處理K線跳空問題 [MC]

  • MC用戶求助: 回測中如何處理K線跳空問題
    (原創:Alex)

    K線跳空的問題,對于主力合約來說,多數是由于換月造成的,其它情況則是由于市場巨大波動造成的;對于這個問題,我們只能在回測中想辦法使它對回測報告不產生影響,但是在實時行情中,這個沒有辦法自動避免,也就是說,如果是主力換月,那么可能需要您提前平倉處理一下,如果是市場巨大波動,那么這個是沒有辦法避免的。下面我們將對回測中出現的跳空進行探討并且提出解決方案,使其過濾掉由于換月導致的回測報告不真實的部分。

    一、關鍵字ChangeMarketPosition

    關鍵字ChangeMarketPosition可以在圖表上標注一個指定名稱、價格和手數的指令信號。無論是否開啟自動交易,此關鍵字產生的指令信號不會發到經紀商。完全的語句是ChangeMarketPosition(Delta, Price, Name),參數Delta表示指定要標注在圖上的信號手數,參數Price表示價格,參數Name表示信號名稱。

    二、測試代碼 如下是在雙均線交易策略中加入了處理K線跳空的代碼。 inputs:?Price(?Close?),?FastLength(?9?),?SlowLength(?18?)?; variables:?var0(?0?),?var1(?0?)?; ? var0?=?AverageFC(?Price,?FastLength?)?; var1?=?AverageFC(?Price,?SlowLength?)?; ? condition1?=?CurrentBar?>?1?and?var0?crosses?over?var1?; if?condition1?then? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ? ?? ?? ???Buy?(?"MA2CrossLE"?)?next?bar?at?market?; ? condition1?=?CurrentBar?>?1?and?var0?crosses?under?var1?; if?condition1?then? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ? ?? ?? ???Sell?Short?(?"MA2CrossSE"?)?next?bar?at?market?; {以上都是雙均線交易策略部分,下面是所加入的處理K線跳空的代碼} ? if?open?next?bar>=close*1.008?or?open?next?bar<=close*0.992?then?begin {利用open next bar來獲取下一根bar的開盤價,并且將它與當根bar的收盤價進行比較,當下一根bar的開盤價超過當根bar的收盤價0.008時,表示向上跳空;當下一根bar的開盤價低于當根bar的收盤價0.008時,表示向下踏空} ? value2=0; for?value1=0?to?currententries-1?begin value2=value2+openentrycontracts(value1); end; {通過for循環來統計一下當前未平倉部位(也就是當前持倉)總共有多少手數} ? if?marketposition=1?then?changemarketposition(-value2,close,"sell"); {如果當前持倉value2手數時,并且產生跳空,那么在當根bar的收盤價處執行關鍵字ChangeMarketPosition(也就是在圖表上產生一個平倉指令),指定的手數是value2,方向是賣出,指令名稱是”sell”} ? if?marketposition=-1?then?changemarketposition(value2,close,"buytocover"); end; {如果當前持倉是-value2手數時,并且產生跳空,那么在當根bar的收盤價處執行關鍵字ChangeMarketPosition(也就是在圖表上產生一個平倉指令),指定的手數是value2,方向是買入,指令名稱是”buytocover”}

    ?

  • MC回復討論一: if?marketposition=1?then?changemarketposition(-value2,close,"sell"); {如果當前持倉value2手數時,并且產生跳空,那么在當根bar的收盤價處執行關鍵字ChangeMarketPosition(也就是在圖表上產生一個平倉指令),指定的手數是value2,方向是賣出,指令名稱是”sell”} ? “在圖表上產生一個平倉命令”,即回測的時候會把跳空后的開倉的部位平掉,但是實盤中不會發送到交易所,只在本地執行,這樣理解對吧?

    ?

  • MC回復討論二:

    比如下一根bar(為方便敘述,下一根bar的編號為20)的開盤價與當根bar(為方便敘述,當根bar的編號為19)的收盤價對比,有很大跳空,那么可以在當根bar上執行關鍵字changemarketposition,使圖表上當根bar(bar的編號為19)上平倉,這種只會對圖表部位產生影響,不會實際發送委托單到交易所;通過這種方式,使回測績效更接近策略本身的邏輯;即使是開啟自動交易,也只是在圖表上平倉,不會實際發送委托單到交易所。

    ?

  • MC回復討論三:

    第一、您可以在公式編譯器中查看關鍵字changemarketposition,它只會改變圖表部位,也就是在當根bar上買賣一定的手數,也可以將之前圖表的持倉平倉,但是不會實際發送委托單到交易所。只是改變圖表部位。

    第二、無論是回測還是實盤交易中,都可以使用;舉例,目前當根bar的編號為10(之前有持倉多頭3手),而下一根bar人編號為11,并且這編號為11的bar相對于編號為10的bar有一個跳空,那么利用上面的代碼使編號為10的bar上產生3手多頭平倉,之后在編號為11的bar上,持倉就會為0。但是這只是改變圖表部位的信息,并不會在跳空時將經紀商持倉3手平倉,而且策略代碼很多關鍵字是根據圖表進行取值,這樣圖表部位更改之后,策略代碼的計算邏輯也相應的改變了。

    第三、上面的這個跳空做法,建議只使用在回測中,使績效更接近實際。

    ?

  • MC回復討論四:

    第一、您可以在公式編譯器中查看關鍵字changemarketposition,它只會改變圖表部位,也就是在當根bar上買賣一定的手數,也可以將之前圖表的持倉平倉,但是不會實際發送委托單到交易所。只是改變圖表部位。

    第二、無論是回測還是實盤交易中,都可以使用;舉例,目前當根bar的編號為10(之前有持倉多頭3手),而下一根bar人編號為11,并且這編號為11的bar相對于編號為10的bar有一個跳空,那么利用上面的代碼使編號為10的bar上產生3手多頭平倉,之后在編號為11的bar上,持倉就會為0。但是這只是改變圖表部位的信息,并不會在跳空時將經紀商持倉3手平倉,而且策略代碼很多關鍵字是根據圖表進行取值,這樣圖表部位更改之后,策略代碼的計算邏輯也相應的改變了。

    第三、上面的這個跳空做法,建議只使用在回測中,使績效更接近實際。

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 511411198  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 国产男女自拍视频 | 美女一级a毛片免费观看 | 亚洲综合一二三区 | 午夜影院免费在线观看 | 久久91亚洲精品中文字幕 | 在线免费一区二区 | 日日碰日日操 | 国产日韩欧美不卡www | 久久久久免费精品国产 | 亚洲图片欧美色图 | 成人a毛片久久免费播放 | 99精品免费观看 | 最近最好的中文字幕2019免费 | 在线观看老湿视频福利 | 日本中文字幕永久在线 | 717影院理伦午夜论八戒 | 寡妇一级a毛片免费播放 | 五月婷婷丁香色 | 又大又粗又爽的三级小视频 | 色综合五月天 | 制服诱惑中文字幕 | 天天躁狠狠躁 | 五月综合色婷婷影院在线观看 | h视频免费观看 | 欧美精品一区二区三区视频 | 亚洲精品香蕉婷婷在线观看 | 久久精品国产91久久麻豆自制 | 一级毛片在播放免费 | 国产精品天天在线 | 天天射天天干天天 | 波多野结衣最新 | 黄色午夜网站 | 亚洲欧美日本韩国综合在线观看 | 日韩高清特级特黄毛片 | 欧美另类jizzhd | 成人 ftp | 国产精品一一在线观看 | 久草免费手机视频 | 青青青亚洲精品国产 | 青青草国产三级精品三级 | 青草视频青年娱乐 |