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

歷史回測不能下單 [開拓者 TB]

  • 咨詢內容: 本帖最后由 wblsjhmxuhongbo 于 2018-11-20 17:27 編輯

    1分鐘圖上,根據信號下單和平倉。
    為確保1個bar只執行1次。我將所有代碼都放在如下的判斷語句中:
    If(T()<>GetGlobalVar(99))
    ? ? ? ? {
    ? ? ? ? ? ? ? ? SetGlobalVar(99,T());

    代碼根據信號下單:
    if(v_orient==1)
    ? ? ? ? {? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? Buy(1,0);
    ? ? ? ? ? ? ? ? XHBLog("buy","",v_programName,Date(),Time());
    ? ? ? ? }
    ? ? ? ? Else if(v_orient==-1)
    ? ? ? ? {? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? SellShort(1,0);
    ? ? ? ? ? ? ? ? XHBLog("sell","",v_programName,Date(),Time());
    ? ? ? ? }
    ? ? ? ? Else if(v_orient==0)
    ? ? ? ? {
    ? ? ? ? ? ? ? ? Sell();
    ? ? ? ? ? ? ? ? BuyToCover();
    ? ? ? ? ? ? ? ? XHBLog("kill","",v_programName,Date(),Time());
    ? ? ? ? }

    日志顯示幾乎每分鐘都有交易:
    2018-11-20 09:01:00 TestOrder??:sell
    2018-11-20 09:02:00 TestOrder??:sell
    2018-11-20 09:03:00 TestOrder??:sell
    2018-11-20 09:04:00 TestOrder??:sell
    2018-11-20 09:05:00 TestOrder??:sell
    2018-11-20 09:06:00 TestOrder??:sell
    2018-11-20 09:07:00 TestOrder??:sell
    2018-11-20 09:08:00 TestOrder??:sell
    2018-11-20 09:09:00 TestOrder??:sell
    2018-11-20 09:10:00 TestOrder??:sell
    2018-11-20 09:11:00 TestOrder??:sell
    2018-11-20 09:12:00 TestOrder??:sell
    2018-11-20 09:13:00 TestOrder??:sell
    2018-11-20 09:14:00 TestOrder??:sell
    2018-11-20 09:15:00 TestOrder??:sell
    2018-11-20 09:16:00 TestOrder??:sell
    2018-11-20 09:17:00 TestOrder??:sell
    2018-11-20 09:18:00 TestOrder??:sell
    2018-11-20 09:19:00 TestOrder??:sell
    2018-11-20 09:20:00 TestOrder??:sell
    2018-11-20 09:21:00 TestOrder??:sell
    2018-11-20 09:22:00 TestOrder??:sell
    2018-11-20 09:23:00 TestOrder??:sell
    2018-11-20 09:24:00 TestOrder??:sell
    2018-11-20 09:25:00 TestOrder??:sell
    2018-11-20 09:26:00 TestOrder??:sell
    2018-11-20 09:27:00 TestOrder??:sell
    2018-11-20 09:28:00 TestOrder??:sell
    2018-11-20 09:29:00 TestOrder??:sell
    2018-11-20 09:30:00 TestOrder??:sell
    2018-11-20 09:31:00 TestOrder??:sell
    2018-11-20 09:32:00 TestOrder??:sell
    2018-11-20 09:33:00 TestOrder??:sell
    可是回測記錄全天卻只有4條:
    #? ? ? ? 公式應用? ? ? ? 類型? ? ? ? 商品? ? ? ? 建倉時間? ? ? ? 建倉價格? ? ? ? 平倉時間? ? ? ? 平倉價格? ? ? ? 數量? ? ? ? 交易成本
    1? ? ? ? TestOrder? ? ? ? 空頭? ? ? ? m1903? ? ? ? 2018/11/20 9:01? ? ? ? 3055? ? ? ? 2018/11/20 10:07? ? ? ? 3064? ? ? ? 1? ? ? ? 6
    2? ? ? ? TestOrder? ? ? ? 多頭? ? ? ? m1903? ? ? ? 2018/11/20 10:07? ? ? ? 3064? ? ? ? 2018/11/20 10:08? ? ? ? 3060? ? ? ? 1? ? ? ? 6
    3? ? ? ? TestOrder? ? ? ? 多頭? ? ? ? m1903? ? ? ? 2018/11/20 10:14? ? ? ? 3060? ? ? ? 2018/11/20 10:50? ? ? ? 3070? ? ? ? 1? ? ? ? 6
    4? ? ? ? TestOrder? ? ? ? 空頭? ? ? ? m1903? ? ? ? 2018/11/20 10:50? ? ? ? 3070? ? ? ? 2018/11/20 14:59? ? ? ? 3080? ? ? ? 1? ? ? ? 6

    也就是說,其中大部分下單信號都沒有執行。請高手指點,這到底是為什么?我理解歷史回測不是應該都能成交嗎?

    ?

    ?來源:CXH99.COM

  • TB技術人員: 本帖最后由 wblsjhmxuhongbo 于 2018-11-21 11:43 編輯

    我把源碼貼出來,請高手幫忙看下,這是什么原因。先不用管程序邏輯(大概邏輯是以同品種不同期合約價差(m1903-m1901)均線為參考依據,收盤價超過上限賣,低于下限買,否則平倉),我主要目的是用來了解下單函數的。現在的現象是,在信號變化的地方會下單,比如第一次出現buy信號時下單,其后連續的buy信號都不下單:

    //------------------------------------------------------------------------
    // 簡稱: TestOrder
    // 名稱: 測試下單函數
    // 類別: 公式應用
    // 類型: 用戶應用
    //------------------------------------------------------------------------

    Params
    Numeric MALength(100);
    ? ? ? ? Numeric FirstStep(50);//警戒線
    ? ? ? ? Numeric pBuyLots(1);
    ? ? ? ? numeric pStartDate(20181110);

    Vars

    string v_programName;
    ? ? ? ? NumericSeries ma;
    ? ? ? ? NumericSeries maQuick;
    ? ? ? ? NumericSeries CloseDif;
    ? ? ? ? numeric v_orient;

    ? ? ? ? numeric lv_lot;

    ? ? ? ? Numeric ShiftUnit(10);
    Begin
    ? ? ? ? if(Date()<pStartDate){return;}
    ? ? ? ?
    ? ? ? ? If(T()<>GetGlobalVar(99))
    ? ? ? ? {
    ? ? ? ? ? ? ? ? //利用全局變量,確保每個bar只執行一次
    ? ? ? ? ? ? ? ? SetGlobalVar(99,T());
    ? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? if (CurrentBar <MALength)
    ? ? ? ? {
    ? ? ? ? ? ? ? ? return ;
    ? ? ? ? }
    ? ? ? ? v_programName="TestOrder";
    ? ? ? ?
    ? ? ? ? ? ? ? ? CloseDif=Data0.Close-Data1.Close;
    ? ? ? ? ? ? ? ? ma=Average( CloseDif, MALength );


    ? ? ? ? If(CloseDif>(ma+FirstStep))
    ? ? ? ? {
    ? ? ? ? ? ? ? ? //超過均線上限則賣出
    ? ? ? ? ? ? ? ? v_orient=-1;
    ? ? ? ? }
    ? ? ? ? else If(CloseDif<(ma-FirstStep))
    ? ? ? ? {
    ? ? ? ? ? ? ? ? //超過均線下限則買入
    ? ? ? ? ? ? ? ? v_orient=1;
    ? ? ? ? }
    ? ? ? ? Else
    ? ? ? ? {
    ? ? ? ? ? ? ? ? //平倉
    ? ? ? ? ? ? ? ? v_orient=0;? ? ? ? ? ? ? ?
    ? ? ? ? }
    ? ? ? ?
    ? ? ? ? PlotNumeric("orient",v_orient);
    ? ? ? ?
    ? ? ? ? if(v_orient==1)
    ? ? ? ? {? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? Buy(1,0);
    ? ? ? ? ? ? ? ? //XHBLog("buy","",v_programName,Date(),Time());
    ? ? ? ? ? ? ? ? FileAppend("C:\\temp\\log.txt",DateToString(Date)+" "+TimeToString(Time)+" "+"buy");
    ? ? ? ? }
    ? ? ? ? Else if(v_orient==-1)
    ? ? ? ? {? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? SellShort(1,0);
    ? ? ? ? ? ? ? ? //XHBLog("sell","",v_programName,Date(),Time());
    ? ? ? ? ? ? ? ? FileAppend("C:\\temp\\log.txt",DateToString(Date)+" "+TimeToString(Time)+" "+"sell");
    ? ? ? ? }
    ? ? ? ? Else if(v_orient==0)
    ? ? ? ? {
    ? ? ? ? ? ? ? ? Sell();
    ? ? ? ? ? ? ? ? BuyToCover();
    ? ? ? ? ? ? ? ? //XHBLog("kill","",v_programName,Date(),Time());
    ? ? ? ? ? ? ? ? FileAppend("C:\\temp\\log.txt",DateToString(Date)+" "+TimeToString(Time)+" "+"kill");
    ? ? ? ? }
    ? ? ? ? }
    End

    //------------------------------------------------------------------------
    // 編譯版本? ? ? ? GS2015.12.25
    // 用戶版本? ? ? ? 2018/10/22 12:16:33
    // 版權所有? ? ? ?
    // 更改聲明? ? ? ? TradeBlazer Software保留對TradeBlazer平臺
    //? ? ? ? ? ? ? ? ? ? ? ? 每一版本的TradeBlazer公式修改和重寫的權利
    //------------------------------------------------------------------------

    ?

  • TB客服:
    wblsjhmxuhongbo 發表于 2018-11-21 11:39
    我把源碼貼出來,請高手幫忙看下,這是什么原因。先不用管程序邏輯(大概邏輯是以同品種不同期合約價差(m1 ...

    同一個公式里面,系統默認是不能連續建倉的吧(我也不知道tb為什么要這樣設定)。在全局交易設置里面允許連續建倉試試?

    ?

  • 網友回復:
    colin10g 發表于 2018-11-21 13:01
    同一個公式里面,系統默認是不能連續建倉的吧(我也不知道tb為什么要這樣設定)。在全局交易設置里面允許 ...

    謝謝,正是這個原因!問題已解決!

 

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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 国产男女插插一级| 成年人在线免费观看视频网站| 免费国内精品久久久久影院| 黑人啊灬啊灬啊灬快灬深| 天堂网在线资源www最新版| 久久国产成人精品| 欧美特黄三级电影aaa免费| 啊轻点灬大ji巴太粗太长h | 啊灬啊别停灬用力啊公视频| 中文字幕制服丝袜| 夜恋全部国产精品视频| 国产亚洲美女精品久久久久| 中文字幕在线观看亚洲日韩| 欧美乱大交xxxxx| 体育生开房互操| 色播在线永久免费视频| 国产精品999| 99热精品久久| 成人国产精品一级毛片视频| 五月综合色婷婷在线观看| 波多野结衣bt| 动漫卡通精品3d一区二区| 青青国产成人久久激情91麻豆| 国产精品天天在线| AAA级久久久精品无码片| 成人美女黄网站色大色下载| 久久精品中文字幕第一页| 欧美性色欧美a在线播放| 伊人久热这里只精品视频| 老鸦窝在线视频2021| 国产成a人片在线观看视频下载| 4hc88四虎www在线影院短视频| 婷婷久久综合网| 久久se精品一区精品二区| 最好看的最新中文字幕2018免费视频| 亚洲狠狠ady亚洲精品大秀 | 夜夜偷天天爽夜夜爱| 一级做a爰性色毛片免费| 无遮无挡爽爽免费视频| 久久精品日韩Av无码| 欧美另类69xxxx|