大伊人青草狠狠久久-大伊香蕉精品视频在线-大伊香蕉精品一区视频在线-大伊香蕉在线精品不卡视频-大伊香蕉在线精品视频75-大伊香蕉在线精品视频人碰人

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

關于論壇中R-Break策略中全局變量的幾點疑問 [開拓者 TB]

  • 咨詢內容: 最近在研究R-Break策略,關于全局變量SetGlobalVar和GetGlobalVar的使用還是很迷惑,在論壇里面也找了一些老的帖子研究,稍懂一點,但是看到全局變量的用法就又迷糊了。
    if(Date != Date[1])  
    {
             SetGlobalVar(0,0);  //設置全局變量
             SetGlobalVar(1,0);  //設置全局變量
             startnow=startnow+1;
             。。。
              。。。
    }
    在這里把位置0和位置1賦值為0。
    if(Time*100>=notbef and Time*100<notaft and startnow>=2 and rfilter)
    {

           if(Time != GetGlobalVar(1) and GetGlobalVar(1) != 0)
             {
                     SetGlobalVar(1,1 );
             }
             if(hitoday>=ssetup and marketposition>-1 and GetGlobalVar(1)<1)
             {
                     If(Low<=(senter+(hitoday-ssetup)/div))
                     {
                             SellShort(1,senter+(hitoday-ssetup)/div);
                             SetGlobalVar(1,Time);
                             Return;
                     }
             }
    這里紅色的IF句里面的條件明顯不能成立,GetGlobalVar(1)是調用第一個位置處的全局變量值本來前面就賦值為零了,這里條件又不等于零,感覺明顯不對呀。
    哪位大俠能夠解釋一下呀。不勝感激。

     

  • TB技術人員: 策略里面有其他位置有 SetGlobalVar的語句,在這些語句中全局變量被賦予了其他值

     

  • TB客服:
    darknesszeal 發表于 2013-11-13 14:18
    策略里面有其他位置有 SetGlobalVar的語句,在這些語句中全局變量被賦予了其他值 ...

    Params
    Numeric notbef(9.00);
    Numeric notaft(14.55);
    Numeric f1(0.35);
    Numeric f2(0.07);
    Numeric f3(0.25);
    Numeric reverse(1.00);
    Numeric rangemin(0.2);
    Numeric xdiv(3);

    Vars
    NumericSeries ssetup(0);
    NumericSeries bsetup(0);
    NumericSeries senter(0);
    NumericSeries benter(0);
    NumericSeries bbreak(0);
    NumericSeries sbreak(0);
    NumericSeries ltoday(0);
    NumericSeries hitoday(9999);
    NumericSeries startnow(0);
    NumericSeries div(0);
    BoolSeries rfilter(false);
    Numeric i_reverse;
    Numeric i_rangemin;
    Numeric i_vB;
    Numeric i_vS;

    Begin
    i_reverse = reverse*(OpenD(0)/100);
    i_rangemin = rangemin*(OpenD(0)/100);
    if(BarStatus==0)
    {
            startnow=0;
            div=max(xdiv,1);
    }

    if(Date != Date[1])
    {
            SetGlobalVar(0,0);
            SetGlobalVar(1,0);
            startnow=startnow+1;
            ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);
            senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];
            benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];
            bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);
            bbreak=ssetup+f3*(ssetup-bsetup);
            sbreak=bsetup-f3*(ssetup-bsetup);

            hitoday=High;
            ltoday=Low;

            rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;
    }

    if(High>hitoday)
    {
            hitoday=High;
    }
    if(Low<ltoday)
    {
            ltoday=Low;
    }
    if(Time*100>=notbef and Time*100<notaft and startnow>=2 and rfilter)
    {

           if(Time != GetGlobalVar(1) and GetGlobalVar(1) != 0)
            {
                    SetGlobalVar(1,10000);
            }
            if(hitoday>=ssetup and marketposition>-1 and GetGlobalVar(1)<1)
            {
                    If(Low<=(senter+(hitoday-ssetup)/div))
                    {
                            SellShort(1,senter+(hitoday-ssetup)/div);
                            SetGlobalVar(1,Time);
                            Return;
                    }
            }
            if(ltoday<=bsetup and marketposition<1  and GetGlobalVar(1)<1)
            {
                    If(High>=(benter-(bsetup-ltoday)/div))
                    {
                            Buy(1,benter-(bsetup-ltoday)/div);
                            SetGlobalVar(1,Time);
                            Return;
                    }
            }

            if(marketposition==-1)
            {
                    SetGlobalVar(0,1);
                    if(High-EntryPrice>=i_reverse)
                    {
                            BuyToCover(1,entryprice+i_reverse);
                            Return;
                    }
            }
            if(marketposition==1)
            {
                    SetGlobalVar(0,1);
                    if(EntryPrice-Low>=i_reverse)
                    {
                            Sell(1,entryprice-i_reverse);
                            Return;
                    }
            }

            if(marketposition==0)
            {
                    if(High>=bbreak and GetGlobalVar(0) == 0)
                    {
                            Buy(1,bbreak);
                            Return;
                    }
            }
            if(marketposition==0)
            {
                    if(low<=sbreak  and GetGlobalVar(0) == 0)
                    {
                            SellShort(1,sbreak);
                            Return;
                    }
            }

    }

    if(Time*100>=notaft and Time<0.1600)
    {

            if(marketposition==-1)
            {
                    BuyToCover(1,Open);
            }
            if(marketposition==1)
            {
                    Sell(1,Open);
            }

    }
    End
    上面是整個策略,使用全局變量的地方我已經用紅色標示出來了。SetGlobalVar設置全局變量時只用了0和1兩個位置,后面設置的SetGlobalVar會覆蓋前面位置設置的值,這個我知道,但是不明白首先給0位置和1位置設置值為0,這個0是數字零,還是有其他含義的,前面也沒有說明,那只能按照默認數字0理解了,那后面的條件Time != GetGlobalVar(1) and GetGlobalVar(1) != 0這個條件就明顯不合理了。很難理解。

     

  • 網友回復: 這個全局變量大家都看不懂嗎?怎么沒人解答一下呢。

 

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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 国产欧美日韩精品一区二区三区 | 午夜精品久久久久久久99 | 欧美精品v国产精品v | 午夜香蕉 | 九九热线有精品视频99 | 中文字幕一区二区三区亚洲精品 | 一区二区免费在线观看 | 麻豆久久精品免费看国产 | 青青影院一区二区免费视频 | 成人亚洲视频在线观看 | 亚洲性一级理论片在线观看 | 午夜影院一区二区 | 国产精品一区二区久久精品 | 成人在线免费视频 | 99久久免费精品高清特色大片 | 四虎国产精品永久在线网址 | 欧美一区二区三区成人看不卡 | 午夜香蕉成视频人网站高清版 | 国产成人亚洲精品大帝 | 国产精品91在线 | 五月天婷婷免费视频观看 | 国产综合久久久久影院 | 国产三级日产三级日本三级 | 免费一级特黄特色黄大任片 | 久青草国产高清在线视频 | 嫩模被xxxx视频在线观看 | 日韩欧美亚洲国产精品字幕久久久 | 五月综合激情久久婷婷 | 一区二区三区免费在线观看 | 99久久影视 | 欧美一级暴毛片 | 国产精品欧美一区二区三区 | 91精品国产免费久久国语麻豆 | 欧美另类网 | 在线播放免费一级毛片欧美 | 日韩欧美第一页 | 成人午夜啪啪免费网站 | 亚洲美女啪啪 | 色播99| 成人影院在线观看视频 | 亚洲免费观看视频 |