您現在的位置:程序化交易>> 期貨公式>> 交易開拓者(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  有需要幫忙請點擊這里留言?。?!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 主人啊灬啊别停灬用力啊视频| 宅男噜噜噜66网站高清| 国产99视频在线观看| 337p日本欧洲亚洲大胆精品555588 | а√最新版在线天堂| 日本v片免费一区二区三区| 亚州av综合色区无码一区| 欧美成人在线视频| 亚洲精品无码久久久久秋霞| 精品久久人人爽天天玩人人妻| 国产youjizz| 青草视频网站在线观看| 国产无遮挡色视频免费视频 | 日本精品一卡二卡≡卡四卡| 亚洲av福利天堂一区二区三| 欧美日韩亚洲视频| 亚洲色婷婷一区二区三区| 米兰厉云封免费阅读完结| 啊灬啊灬别停啊灬用力啊免费 | 国产激情一区二区三区| 18禁止午夜福利体验区| 精品人妻潮喷久久久又裸又黄| 国产精品午夜福利在线观看地址| 99久久精品费精品国产| 奇米影视7777狠狠狠狠色| 一本大道在线无码一区| 成人性开放大片| 中文字幕在线网址| 无码精品人妻一区二区三区中| 久久午夜无码鲁丝片午夜精品| 日韩高清免费在线观看| 亚洲av永久无码精品天堂久久 | 欧洲精品码一区二区三区免费看| 亚洲日本久久一区二区va| 没带罩子让他玩儿了一天| 日韩美女视频一区| 亚洲国产精品成人AV在线| 欧美特黄三级在线观看| 亚洲男人的天堂在线播放| 污污小视频在线观看| 亚洲综合在线一区二区三区|