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

TB寫了兩個(gè)交易指令來克服重啟重發(fā)單,盤中測試不成功, [開拓者 TB]

  • 咨詢內(nèi)容: 我參照帖子,寫了兩個(gè)交易指令來克服重啟重發(fā)單,結(jié)果測試部成功;請問問題出在哪?
    分別是
    Params
    Numeric SetPositionValue(0);                            //設(shè)置倉位值
    Numeric lots(1);
    Numeric length(2);
    Vars
    Numeric Position;                                        //1表示持有多頭,-1表示持有空頭,0為沒有持倉
    NumericSeries Ma;
    NumericSeries Ma1;
    NumericSeries cl;
    Begin
        If(Date != Date[1] && High == Low) Return;
    Ma = Average(Close,Length);                                 // 均線
    Ma1 = Ma[1];
    cl=close[1];
        If (Position==InvalidNumeric)                               //狀態(tài)初始化
        {
         Position = SetPositionValue;
        }
    SetTBProfileString("Trade","Position",Text(Position));
    Position = Value(GetTBProfileString("Trade","Position"));   //讀寫文件獲取Position
       If (Position!=1 And CrossOver(cl,Ma1))
        {
         Buy(lots,open);
         Position=1;
        }
       If (Position!=-1 And CrossOver(Ma1,cl))
        {
         SellShort(lots,open);
         Position=-1;
        }
       SetTBProfileString("Trade","Position",Text(Position));      //將Position重置寫入數(shù)據(jù)庫
    End



    Params
    Numeric lots(1);
    Numeric length(2);
    Vars
    NumericSeries Ma;
    NumericSeries Ma1;
        NumericSeries cl;
        String RiQiDo;
    String RiQi;
    Begin
    If(Date != Date[1] && High == Low) Return;
    Ma = Average(Close,Length); // 均線
    Ma1 = Ma[1];
    cl=close[1];
        if(RiQiDo==InvalidString)
        {
        RiQiDo=="000000000000000000";
        }
    SetTBProfileString("JcYi","ruDo",RiQiDo);                  //寫入文件
    RiQiDo=GetTBProfileString("JcYi","ruDo");                  // 初始化時(shí)設(shè)置
        If(MarketPosition==0 And CrossOver(cl,Ma1))
    {
               If (BarStatus==2)
               {
                 RiQi=DateTimeToString(Date+Time);
                 RiQi=Mid(RiQi,0,18);
                  If (RiQi==RiQiDo)
                 {
                     Return;
                  }
                }
                Buy(1,open);
                RiQiDo=DateTimeToString(Date+Time);
                RiQiDo=Mid(RiQiDo,0,18);
               SetTBProfileString("JcYi","ruDo",RiQiDo);        //重置后寫入文件
    }
        If(MarketPosition==1 And CrossOver(Ma1,cl))   
    {
               sell(1,open);
    }
    end

    望能迅速解答,謝謝。

     

  • TB技術(shù)人員: 本帖最后由 穿堂風(fēng) 于 2010-9-28 11:23 編輯

    程序里邊怎么控制都是沒用的,buy,sell這些是信號發(fā)單,你要出信號,它就會(huì)發(fā)單,除非你不要信號。我想了一個(gè)解決方法,就是barstatus==2的時(shí)候用A函數(shù),歷史行情用buy,sell這些,缺點(diǎn)就是當(dāng)前bar無信號,我還是比較喜歡有信號,所以目前就還那樣用著,真出現(xiàn)重啟軟件重復(fù)發(fā)單了,就手動(dòng)平掉,唉。

     

  • TB客服: 另外,感覺你這塊這樣處理邏輯性不好:
       If (Position==InvalidNumeric)                               //狀態(tài)初始化
        {
         Position = SetPositionValue;
        }
    SetTBProfileString("Trade","Position",Text(Position));//每次運(yùn)行都被初始化了,拿不到真實(shí)值
    Position = Value(GetTBProfileString("Trade","Position"));   //每次拿到的都是你參數(shù)里的固定值

    你這塊可以直接:
    if(barstatus == 0)
    {
    SetTBProfileString("Trade","Position",Text(SetPositionValue));
    }
    else
    {
    Position = Value(GetTBProfileString("Trade","Position"));
    }

     

  • 網(wǎng)友回復(fù): A函數(shù),試了一下,仍然無法控制

     

  • 網(wǎng)友回復(fù):
    A函數(shù),試了一下,仍然無法控制
    zhouqian 發(fā)表于 2010-9-28 14:35

    不會(huì)吧,你參考下我下邊的偽代碼,是不是你時(shí)間處理上有問題,記錄一個(gè)打印看看。
    riqi = Text(Date)+Text(Time*1000000);//拿到當(dāng)前bar的完整時(shí)間
    riqi = Mid(riqi,16);//取前16位
    riqido = GetTBProfileString(SymbolName,"riqido");//取上次發(fā)單時(shí)間,如果是第一個(gè)發(fā)單,結(jié)果就是無效值,沒關(guān)系
    If(BarStatus == 2)
    {
            If(riqi == riqido)//如果當(dāng)前bar已經(jīng)下過單
            {
                    //重復(fù)發(fā)單
                    Return;
            }
            A_SendOrder();
            SetTBProfileString(symbolname,"riqido",riqi);//當(dāng)前bar未下單,則下單,并記錄下單bar時(shí)間
    }

 

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

可聯(lián)系技術(shù)人員 QQ: 262069696  點(diǎn)擊在線交流進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!


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

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: 波多野结衣护士无删减| 免费在线观看色| www视频在线观看| 日本高清二区视频久二区| 亚洲福利一区二区| 美女内射无套日韩免费播放| 国产精品一二三区| aaaaaa级特色特黄的毛片| 扒开双腿疯狂进出爽爽爽动态图| 五月婷婷丁香网| 欧美精品一区二区三区视频| 国产mv在线天堂mv免费观看| 亚洲综合色区中文字幕| 天天摸天天做天天爽天天弄| 中文字幕永久在线视频| 欧美jizzhd极品欧美欧美xxxx18动漫| 人人看人人添人人谢| 精品福利一区二区免费视频| 国产区图片区小说区亚洲区| 浮力影院国产第一页| 在线观看无码AV网站永久免费| 中文午夜乱理片无码| 欧美手机在线视频| 人妻在线日韩免费视频| 精品视频中文字幕| 国产乡下三级全黄三级| 九九影视理伦片| 国产精品爽爽va在线观看无码| AV中文无码乱人伦在线观看| 少妇饥渴XXHD麻豆XXHD骆驼| 中文字幕高清在线| 日韩在线视频不卡| 亚洲av日韩aⅴ无码色老头| 欧美性色黄在线视频| 亚洲欧美国产一区二区三区| 永久免费无码日韩视频| 亚洲精品福利在线观看| 波多野结衣女上司| 亚洲精品99久久久久中文字幕| 激情内射亚洲一区二区三区 | 亚洲福利视频网|