您現(xiàn)在的位置:程序化交易>> 期貨公式>> 交易開(kāi)拓者(TB)>> 開(kāi)拓者知識(shí)>>正文內(nèi)容

TBV4公式升級(jí)說(shuō)明 [開(kāi)拓者 TB]

  • 咨詢(xún)內(nèi)容: 經(jīng)過(guò)很長(zhǎng)一段時(shí)間的開(kāi)發(fā)和調(diào)試工作,TBV4終于快要正式發(fā)布了,感謝各位朋友一路以來(lái)的關(guān)注和支持,這次升級(jí)主要是公式平臺(tái)的升級(jí),修改可謂天翻地覆,杯具的就是,由于改動(dòng)太多,沒(méi)法直接兼容TBV3的公式以及導(dǎo)入導(dǎo)出文件,請(qǐng)大家諒解!

    一、公式升級(jí)取消的功能點(diǎn):
    1、內(nèi)建平倉(cāng)指令:
        已刪除8個(gè)內(nèi)建平倉(cāng)函數(shù),準(zhǔn)備等新版本穩(wěn)定后以用戶(hù)函數(shù)的形式提供類(lèi)似功能。
    2、保證金不足強(qiáng)平機(jī)制:
        舊版公式在測(cè)試和實(shí)際交易中,如果出現(xiàn)保證金不足的情況,會(huì)產(chǎn)生強(qiáng)制平倉(cāng)的指令。考慮到保證金不足是以虛擬資金計(jì)算,如果設(shè)置不正確可能會(huì)導(dǎo)致實(shí)盤(pán)平倉(cāng)的嚴(yán)重后果,所以取消該功能。
    3、延遲發(fā)單機(jī)制:
        舊版通過(guò)交易函數(shù)中使用delay參數(shù)達(dá)到延遲到下一個(gè)Bar開(kāi)盤(pán)發(fā)單的效果,在實(shí)際應(yīng)用中,通過(guò)Delay參數(shù)只能使用NextOpen等未來(lái)函數(shù)來(lái)獲取價(jià)格,整個(gè)設(shè)計(jì)過(guò)于復(fù)雜。考慮到可以通過(guò)獲取上一個(gè)Bar的條件值來(lái)進(jìn)行判斷,在當(dāng)前Bar開(kāi)盤(pán)交易這種方法替代延遲發(fā)單的機(jī)制,決定取消該功能。
    4、公式類(lèi)型調(diào)整:
        用戶(hù)字段,技術(shù)指標(biāo),K線型態(tài),特征走勢(shì),交易指令這5種類(lèi)型公式統(tǒng)一為公式應(yīng)用,公式應(yīng)用既可以輸出線條,也可以進(jìn)行交易。
    5、公式的條件表達(dá)式取消無(wú)效值傳遞機(jī)制:
        舊版本中,如果 a = 無(wú)效值 , b = 100, 則 a + b = 無(wú)效值。+-*/等數(shù)學(xué)運(yùn)算及> < 等邏輯運(yùn)算表達(dá)式都支持無(wú)效值傳遞機(jī)制。
        新版本中,如果 a = 無(wú)效值,b = 100,則 a + b <> 無(wú)效值。所以不能再用舊版本的方法來(lái)進(jìn)行無(wú)效值判斷。
       進(jìn)行這種調(diào)整是因?yàn)榕f版本對(duì)所有的運(yùn)算符進(jìn)行了重載,但這種重載浪費(fèi)大量的計(jì)算時(shí)間,導(dǎo)致公式執(zhí)行效率低下,為了提高公式的運(yùn)行效率,決定取消這種機(jī)制。
       在舊版本系統(tǒng)中,可能有以下類(lèi)似的寫(xiě)法:
       bInBoardRange = (Open < Q_LowerLimit + 10*MinMove*PriceScale) Or (Open > Q_UpperLimit - 10*MinMove*PriceScale);
       在不是當(dāng)天的Bar上,因?yàn)镼_LowerLimit和Q_UpperLimit是無(wú)效值,因此整個(gè)表達(dá)式都是無(wú)效值。bInBoardRange的值為False,所以能夠正常使用。
       同樣的代碼,在新版中,由于沒(méi)有無(wú)效值的傳遞機(jī)制,在不是當(dāng)天的Bar上,bInBoardRange的值可能是True,系統(tǒng)不能正常的運(yùn)行。
       為了處理這種情況,需要進(jìn)行有效性判斷,大致代碼如下:
       bInBoardRange  = false;
       If(Q_UpperLimit != InvalidNumeric && Q_LowerLimit != InvalidNumeric)
       {
          bInBoardRange = (Open < Q_LowerLimit + 10*MinMove*PriceScale) Or (Open > Q_UpperLimit - 10*MinMove*PriceScale);
      }

    二、公式升級(jí)增加的功能點(diǎn):
    1、疊加商品可以進(jìn)行交易和測(cè)試:
        舊版本只能使用Buy(1,MyPrice);這樣的語(yǔ)句進(jìn)行交易,新版本可以使用Data1.Buy(1,MyPrice),以及Data1.MarketPosition這樣的函數(shù)獲取交易狀態(tài)。大部分函數(shù)都支持使用Data#.前綴進(jìn)行調(diào)用。
       這樣可以方便的實(shí)現(xiàn)多個(gè)商品的,單個(gè)系統(tǒng)的組合測(cè)試,可以測(cè)試套利和對(duì)沖系統(tǒng)。
    2、PlotNumeric,PlotString,PlotBool畫(huà)線輸出函數(shù)增加定位點(diǎn)參數(shù):
        以PlotNumeric距離,其他類(lèi)似,PlotNumeric的前兩個(gè)參數(shù)保持不變,第三個(gè)參數(shù)修改為定位點(diǎn)參數(shù),默認(rèn)參數(shù)為0,其他的參數(shù)和舊版一致。
        當(dāng)我們使用定位點(diǎn)函數(shù)時(shí),對(duì)于PlotNumeric,將輸出一條線段,連接定位點(diǎn)和輸出值的點(diǎn);PlotBool和PlotString將在指位置畫(huà)出相應(yīng)的內(nèi)容。
    3、增加投資組合函數(shù):
        增加portfolio_XXX類(lèi)型的函數(shù),用戶(hù)獲取當(dāng)前圖表,當(dāng)前公式應(yīng)用對(duì)應(yīng)的投資組合的狀態(tài)和性能信息,原CurrentCapital用Portfolio_CurrentCapital代替。
    4、序列變量自動(dòng)傳遞最新值:【new】
         舊版本中為了序列變量的上一個(gè)Bar值,需要編寫(xiě)語(yǔ)句 MyVar = MyVar[1];
         新版本中變?yōu)樽詣?dòng)傳遞,即可以省略這條語(yǔ)句,但隨之帶來(lái)的變化就是,序列變量的默認(rèn)值,只會(huì)在第一個(gè)Bar有效。
    5、Bar數(shù)據(jù)和序列變量在回溯越界時(shí)取值調(diào)整:【new】
         舊版本中,Bar數(shù)據(jù)和序列變量,序列參數(shù)等值,當(dāng)回溯的索引越界是,即Value[nOffset]的nOffset > CurrentBar時(shí),會(huì)是無(wú)效值。
         新版本中,這種情況下會(huì)用該數(shù)據(jù)源的第1個(gè)值代替。
    6、疊加數(shù)據(jù)時(shí)補(bǔ)齊數(shù)據(jù)方式:【new】
         多個(gè)商品進(jìn)行疊加時(shí),可能在數(shù)據(jù)的前段出現(xiàn)某個(gè)商品有數(shù)據(jù),但其他商品無(wú)數(shù)據(jù),舊版本會(huì)使用無(wú)效值填充。
         新版本使用第一個(gè)有效的Bar的Open填充高開(kāi)低收,成交量設(shè)置為0,持倉(cāng)量設(shè)置為第一個(gè)有效Bar的持倉(cāng)量。
    7、公式應(yīng)用全局變量擴(kuò)容:
        單個(gè)公式應(yīng)用的全局變量從50個(gè)擴(kuò)充500個(gè)。
    8、單個(gè)圖表內(nèi)多個(gè)公式之間的相關(guān)性:
       舊版本中,單個(gè)圖表中的多個(gè)交易指令會(huì)相互影響,形成干擾。雖然利于將開(kāi)平倉(cāng)等指令進(jìn)行模塊化,但不利于利用資源。
       新版本中,單個(gè)圖表中的多個(gè)公式應(yīng)用就像以前的多個(gè)技術(shù)指標(biāo)一樣,不再有相關(guān)性。這樣就可以很容易的單個(gè)圖表驅(qū)動(dòng)多個(gè)交易系統(tǒng),節(jié)省電腦資源。
    9、公式編譯提速:
       調(diào)整舊版本所有公式聯(lián)編的架構(gòu),客戶(hù)修改用戶(hù)函數(shù)時(shí),需要重新編譯所有的自定義公式應(yīng)用,編譯公式應(yīng)用時(shí),只需要編譯當(dāng)前公式應(yīng)用即可。
       如果客戶(hù)完全了解用戶(hù)函數(shù)和公式應(yīng)用的調(diào)用關(guān)系,在開(kāi)發(fā)調(diào)試用戶(hù)函數(shù)過(guò)程中先選擇單獨(dú)編譯用戶(hù)函數(shù),等用戶(hù)函數(shù)算法穩(wěn)定之后,再全部編譯一次,這樣可以大幅提升系統(tǒng)開(kāi)發(fā)速度。
    10、交易策略參數(shù)優(yōu)化提速:
       通過(guò)調(diào)整價(jià)格,公式運(yùn)行速度得到近10倍的提升,并增加了多線程測(cè)試,在性能強(qiáng)勁的電腦上,可以達(dá)到舊版本幾十倍的測(cè)試速度。可以考慮攢錢(qián)買(mǎi)32核電腦進(jìn)行測(cè)試了。
       另外,交易策略的參數(shù)優(yōu)化增加了參數(shù)淘汰率,要使用淘汰算法,需要將重要的參數(shù)放在前面,測(cè)試完一個(gè)參數(shù)之后,按比例淘汰較差的參數(shù)。提升測(cè)試效率。
    11、投資組合測(cè)試報(bào)告:
       單個(gè)圖表可以支持多個(gè)交易系統(tǒng)的執(zhí)行,同時(shí)我們?cè)黾恿藢?duì)多個(gè)交易系統(tǒng)的測(cè)試報(bào)告組合分析。方便評(píng)估多個(gè)系統(tǒng)的組合效果。
    12、公式導(dǎo)入導(dǎo)出中增加無(wú)源碼模式:
        對(duì)于用戶(hù)的公式應(yīng)用,考慮到安全問(wèn)題,我們?cè)黾恿藷o(wú)源碼加密的方式,將執(zhí)行文件直接導(dǎo)入導(dǎo)出,方便交易系統(tǒng)的應(yīng)用。為了控制時(shí)間和權(quán)限,用戶(hù)可以在公式代碼中增加時(shí)間驗(yàn)證和賬戶(hù)驗(yàn)證,這樣編譯后的公式在應(yīng)用過(guò)程中再無(wú)后顧之憂(yōu)。
    13、訊號(hào)消失的處理機(jī)制調(diào)整:
        舊版本中,如果出現(xiàn)系統(tǒng)的訊號(hào)消失,會(huì)反復(fù)開(kāi)倉(cāng),導(dǎo)致頭寸完全混亂,并可能出現(xiàn)巨大的虧損。
        新版本中,對(duì)于用戶(hù)操作失誤寫(xiě)出的訊號(hào)消失的系統(tǒng),第一次發(fā)單之后,不在重復(fù)發(fā)單,當(dāng)出現(xiàn)訊號(hào)消失時(shí),還會(huì)彈出提示,提醒用戶(hù)修改系統(tǒng)代碼。
    14、循環(huán)代碼體內(nèi)調(diào)用序列函數(shù)的支持:
        函數(shù)代碼內(nèi)有使用序列變量或序列參數(shù)進(jìn)行計(jì)算的稱(chēng)為序列函數(shù),舊版本中在循環(huán)體內(nèi)調(diào)用序列函數(shù)會(huì)出現(xiàn)計(jì)算出錯(cuò)的問(wèn)題,新版本對(duì)于這種情況進(jìn)行了修復(fù)。
        但要確保這種寫(xiě)法的正確執(zhí)行,必須保證每個(gè)Bar,這個(gè)循環(huán)體的執(zhí)行次數(shù)都是一樣的。否則仍然會(huì)出現(xiàn)錯(cuò)誤。同樣的原理,If條件語(yǔ)句里面不能使用序列函數(shù)進(jìn)行計(jì)算。
       下面是一個(gè)錯(cuò)誤寫(xiě)法的例子:
       If(MarketPosition!=1 && CrossOver(Avg1,Avg2))
       {
           Buy....   
       }
       因?yàn)镸arketPosition在等于1的情況下,會(huì)導(dǎo)致后面的語(yǔ)句不被執(zhí)行,這樣,就不是每個(gè)Bar都調(diào)用了該序列函數(shù)。就會(huì)出現(xiàn)數(shù)據(jù)計(jì)算出錯(cuò)。
       正確的寫(xiě)法如下:
        MyBuyCondition = CrossOver(Avg1,Avg2);
       If(MarketPosition!=1 && MyBuyCondition )
       {
          Buy...
       }
    15、函數(shù)序列參數(shù)的輸入值驗(yàn)證:
         舊版本中,CrossOver這樣的函數(shù),因?yàn)閮蓚€(gè)參數(shù)都是序列參數(shù),只能使用兩個(gè)序列變量,比如Avg1,Avg2作為參數(shù)進(jìn)行傳入。不能使用CrossOver(Close,1000)這樣的寫(xiě)法。為此,舊版本中還增加了CrossOverHor這樣的函數(shù)來(lái)處理這種情況。
         新版本中,可以直接傳入普通值進(jìn)行計(jì)算,甚至傳入數(shù)據(jù)的回溯值。舊版本中CrossOver(Close[1],Avg1);這樣的寫(xiě)法是正確的,但CrossOver(Close[1],Avg1[1])則是錯(cuò)誤的,新版本則可以支持后面的寫(xiě)法。
    16、用戶(hù)函數(shù)中可以使用所有系統(tǒng)函數(shù):
        這樣可以很方便的封裝交易指令和算法。
    17、訊號(hào)發(fā)生的時(shí)間如果不在圖表最后Bar時(shí)間的附近,將會(huì)被忽略。
        日線及以上周期要求訊號(hào)發(fā)生的日期和最后Bar的日期相同;
        1分鐘及以上周期要求訊號(hào)發(fā)生的時(shí)間和最后Bar的時(shí)間誤差不超過(guò)5分鐘。
        Tick和10秒周期要求訊號(hào)發(fā)生的時(shí)間和最后Bar的時(shí)間誤差不超過(guò)1分鐘。
         通過(guò)這個(gè)時(shí)間限定,防止最后Bar上較早前的訊號(hào)在重新啟動(dòng)時(shí)發(fā)單。
    18、使用引用參數(shù)的函數(shù)【new】
        舊版本在使用引用參數(shù)時(shí)可以傳入序列變量,普通變量和引用參數(shù)值。
        新版本在使用引用參數(shù)時(shí)只能傳入普通變量和引用參數(shù)值。
       

    公式升級(jí),改動(dòng)較多,未能一一列出,等待繼續(xù)完善!

     

  • TB技術(shù)人員: 好期待新版本啊  ,

     

  • TB客服: 非常需要:
    1、疊加商品可以進(jìn)行交易和測(cè)試:
        舊版本只能使用Buy(1,MyPrice);這樣的語(yǔ)句進(jìn)行交易,新版本可以使用Data1.Buy(1,MyPrice),以及Data1.MarketPosition這樣的函數(shù)獲取交易狀態(tài)。大部分函數(shù)都支持使用Data#.前綴進(jìn)行調(diào)用。這樣可以方便的實(shí)現(xiàn)多個(gè)商品的,單個(gè)系統(tǒng)的組合測(cè)試,可以測(cè)試套利和對(duì)沖系統(tǒng)。
    3、增加投資組合函數(shù):
        增加portfolio_XXX類(lèi)型的函數(shù),用戶(hù)獲取當(dāng)前圖表,當(dāng)前公式應(yīng)用對(duì)應(yīng)的投資組合的狀態(tài)和性能信息。
    只是希望TBV4比以前的版本皮實(shí)點(diǎn),總感覺(jué)TB很好甚至是精美,可有點(diǎn)脆弱不皮實(shí),也可能精美復(fù)雜的東西都不皮實(shí),是我的要求太高了吧。

     

  • 網(wǎng)友回復(fù): 期待新版本。
    “最終目標(biāo)文件編譯錯(cuò)誤”這個(gè)問(wèn)題有沒(méi)有解決?

     

  • 網(wǎng)友回復(fù): 回復(fù) 4# CFXQM

    應(yīng)該是解決了

 

有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 1145508240  點(diǎn)擊這里給我發(fā)消息進(jìn)行 有償 編寫(xiě)!不貴!點(diǎn)擊查看價(jià)格!


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒(méi)有相關(guān)內(nèi)容
主站蜘蛛池模板: 国内大片在线免费看| 最新国产精品视频| 国产精品扒开做爽爽爽的视频| 大乳女人做受视频免费观看| 成人3d动漫网址在线观看| 日日插人人插天天插| 全部免费的毛片视频观看| 成人看片黄在线观看| 在线综合亚洲欧美自拍| 中文字幕在线成人免费看| 果冻传媒麻豆电影| 亚洲蜜芽在线精品一区| 色偷偷人人澡人人爽人人模| 国产精品videossex另类| a一级日本特黄aaa大片| 搡女人真爽免费影院| 久青草中文字幕精品视频| 正在播放暮町ゆう子在线观看| 印度精品性hd高清| 韩国免费人成在线观看网站| 国产精品老女人精品视| maya玛雅□一亚洲电影| 无码av中文一区二区三区桃花岛| 五月婷婷综合色| 欧美日韩精品视频一区二区| 免费在线黄网站| 美美女高清毛片视频免费观看 | 欧美sss视频| 亚洲精品无码久久毛片 | 色吊丝最新网站| 国产无遮挡又黄又爽网站| 88aa四虎影成人精品| 女人被两根一起进3p在线观看 | 国产成视频在线观看| 69久久夜色精品国产69| 天天干天天爽天天操| 两根大肉大捧一进一出好爽视频| 日韩亚洲av无码一区二区不卡| 亚洲人成人77777网站| 水蜜桃视频在线观看免费| 免费人成网站在线观看欧美|