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

請版主老師幫忙看看問題何在 [開拓者 TB]

  • 咨詢內容: 本帖最后由 torowills 于 2013-12-5 18:53 編輯

    Params
    BOOL lastprofitabletradefilter(True);

    Vars
    NumericSeries ma1;
    NumericSeries ma2;
    boolSeries lastbuy(false);
    boolSeries lastsell(false);
    NumericSeries takeprofitset(10);
    Numeric myentryprice;
    Numeric myexitprice;
    Numeric minpoint;


    Begin
    If(barstatus==0)
    {
    lastbuy=true;
    lastsell=true;
    }
    Commentary("lastbuy="+iifstring(lastbuy,"true","False"));
    Commentary("lastsell="+iifstring(lastsell,"true","False"));
    minpoint=MinMove*PriceScale;

    ma1=AverageFC(close,5);
    PlotNumeric("MA1",ma1);
    ma2=AverageFC(close,10);
    PlotNumeric("MA2",ma2);


    If(marketposition==0)
       {      If(CrossOver(ma1[1],ma2[1])  && ((!lastprofitabletradefilter)or(lastbuy)))
                            {Buy(1,open);
                            lastbuy=False;
                            lastsell=true;
                            MyEntryPrice=open;}
                    if(crossunder(ma1[1],ma2[1])  && ((!lastprofitabletradefilter)or(lastsell)))
                        {SellShort(1,open);
                            lastsell=false;
                            lastbuy=True;
                            MyEntryPrice=open;}
            }

    if(marketposition==1)
         { if(high>=myentryprice+TakeProfitSet*minpoint)
                    {     myexitprice=myentryprice+TakeProfitSet*minpoint;
                            If(Open > MyExitPrice)
                {MyExitPrice = Open;                       
                Sell(0,MyExitPrice);
                            lastbuy=False;
                            lastsell=true;}
                            }else
                     {
                                                             if(CrossUnder(ma1[1],ma2[1]))
                                                             {Sell(0,open);       
                                                              lastbuy=False;
                                              lastsell=true;}
                                  
                     }
    }
    else if(marketposition==-1 )
        {  If(Low <= MyEntryPrice - TakeProfitSet*MinPoint)   
            {   MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint;
                If(Open < MyExitPrice)
                {MyExitPrice = Open;                       
                BuyToCover(0,MyExitPrice);
                            lastsell=false;
                            lastbuy=True;}
                    }else
                            {
                                             if(CrossOver(ma1[1],ma2[1]))         
                                             {BuyToCover(0,open);
                                              lastsell=false;
                                      lastbuy=True;}
                 }        
        }
    End
    希望達到的效果是,5分鐘K線情況下,
    5均線上穿10均線,開多,10跳止盈,(開倉后若下穿止損)。不管是止盈還是止損,不再開多,坐等開空
    5均線下穿10均線,開空,10跳止盈,(開倉后若上穿止損)。不管是止盈還是止損,不再開空,坐等開多


    請老師幫忙看看這模型編寫上有沒有什么問題,個人發現的問題如下,請老師幫忙修改
    存在幾個問題:
    1,編譯的時候跳出來4個邏輯錯誤,
    2,回溯:舉了能看得見的例子IF1312,12月3號15.00開空,為什么在9.15分滿足了10跳的利潤,為什么它沒止盈,反而到了9.35去止損了?
    3,  回溯:舉了能看得見的例子IF1312,  12月4號9.35 明顯5均線上穿10均線,為什么沒開多?


    本人新人再次希望得到老師的幫助與提點

     

  • TB技術人員: 本帖最后由 jerrywind 于 2013-12-5 16:39 編輯

    1,編譯的時候跳出來4個邏輯錯誤
    >>>>>這個只是警告信息,不是錯誤信息,可以忽略;

    if(high>=myentryprice+TakeProfitSet*minpoint)
    >>>>>myentryprice<-該變量在沒有被賦值的情況下就被使用了,即該值為0,所以似乎止盈的情況從未被觸發;做空時也是一樣的;

    lastbuy和lastsell
    >>>>>這兩個變量聲明成了數組,就是說在開倉后想保存是否可以再開多或者空的標志(想用在 不管是止盈還是止損,不再開多/空,坐等開空/多),但是并沒有被用到過,例如lastbuy[1];所以這兩個變量根本沒有起到數組的作用;
    是想表達如下的意思嗎?

    /*lastbuy=True;
    lastsell=true;
    */
    if (not (lastbuy || lastsell)) {//說明之前還從沒有產生過開倉信號
            lastbuy=True;
            lastsell=true;
    } else {
            lastbuy=lastbuy[1];
            lastsell=lastsell[1];
    }


    NumericSeries takeprofitset(10);
    >>>>> 聲明這個數組變量的意思是?是否是想聲明一個代表10個跳的變量?-----> Numeric takeprofitset(10);?

    問題挺多的,沒法改,修改的量和重新編碼差不多,再仔細琢磨琢磨吧。

     

  • TB客服: if(high>=myentryprice+TakeProfitSet*minpoint)
    >>>>>myentryprice<-該變量在沒有被賦值的情況下就被使用了,即該值為0,所以似乎止盈的情況從未被觸發;做空時也是一樣的;-------------原文中的表達已經做了修正,確實漏了


    lastbuy和lastsell  抄襲了海龜中的 :
    boolseries prebreakoutlaiure(false)    以及長周期的開倉  if(marketposion==0  && ((lastprofitabletradefilter)or (prebreakoutfailure)))
    希望在lastbuy在等于true的時候才去開多。

    NumericSeries takeprofitset(10);
    >>>>> 聲明這個數組變量的意思是?是否是想聲明一個代表10個跳的變量?-----> Numeric takeprofitset(10);?-------------這是從“交易策略進階”中直接抄襲下來的

    不過好像抄襲的出問題了,依舊不是很明白,問題出在了哪



     

  • 網友回復: 文華的麥語言我也試過了,不過總覺得沒有TB的適合個人,不過文華有人會出來幫大家解決問題,管理員們,我想你們上班一定也很辛苦,但好歹出來幫助一下像我這樣不是非常精通TB的人,畢竟TB要做的更大更好,需要更多的人,金字塔沒有了基層漲不高。我希望用TB做交易,為此做好了所有的準備,只差策略代碼化,再次希望得到大家和管理員的幫助,謝謝

     

  • 網友回復: 望老師指點

 

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

可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言!!!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 全部免费毛片在线| 国精品无码一区二区三区在线| 亚洲成AV人片在线观看ww| 美女被免网站在线视频| 国产精品三级av及在线观看| yy6080新视觉午夜伦被窝| 日韩在线看片免费人成视频播放 | 全彩无翼口工漫画大全3d| 黄色网址免费大全| 国产香蕉精品视频| 东京热无码一区二区三区av| 最新国产成人ab网站| 亚洲精品中文字幕乱码三区| 色偷偷8888欧美精品久久| 国产特黄特色一级特色大片| 99热免费精品| 成人自拍视频网| 久久怡红院亚欧成人影院| 欧美成人三级一区二区在线观看| 免费在线观看h| 老鸭窝在线免费视频| 国产成人精品综合| 91av在线导航| 好吊操这里只有精品| 中文字幕无码不卡免费视频| 日韩精品成人一区二区三区| 亚洲日本久久一区二区va| 男人j进入女人j内部免费网站| 四虎影视久久久免费观看| 高清中国一级毛片免费| 国产精品久久久久鬼色| 99久久精品费精品国产一区二区| 性色av无码不卡中文字幕| 久久久精品人妻一区二区三区 | 欧美视频在线免费看| 免费高清a级毛片在线播放| 虎白女粉嫩尤物福利视频| 国产日本韩国不卡在线视频| 91chinese在线| 大胸喷奶水的www的视频网站| 中文字幕+乱码+中文乱码www|