大伊人青草狠狠久久-大伊香蕉精品视频在线-大伊香蕉精品一区视频在线-大伊香蕉在线精品不卡视频-大伊香蕉在线精品视频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  有需要幫忙請點擊這里留言?。?!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 日本免费不卡视频一区二区三区 | 国产91在线播放边 | 5388国产亚洲欧美在线观看 | 五月天婷婷在线视频国产在线 | 免费观看日本污污ww网站精选 | 亚洲国产天堂久久九九九 | 日韩精品免费一级视频 | 国产高清国内精品福利 | 青青免费视频精品一区二区 | 99精品热视频 | 天天看片天天爽 | 国产成人 免费观看 | 国产精品免费入口视频 | 四虎国产永久在线观看 | 国产99视频精品一区 | 思99热精品久久只有精品 | 国内精品久久久久影院免费 | 97视频hd | 日本黄色mv| av亚洲男人天堂 | 日韩在线看片中文字幕不卡 | 日产国语一区二区三区在线看 | 狠狠插狠狠干 | 精品久久久久久中文字幕女 | 国产激情一区二区三区成人91 | 天天干天操 | 99久久免费观看 | 日韩欧美毛片免费观看视频 | 日本成本人在线观看免费视频 | 五月色婷婷琪琪综合伊人 | 国产伦码精品一区二区三区 | 国产免费福利视频 | 亚洲人精品| 加勒比一本大道在线 | 日本视频中文字幕一区二区 | 夜色亚洲| 九九99久久精品在免费线bt | 99婷婷 | 日本一区二区三区在线 观看网站 | 国产高清视频在线免费观看 | 99久久国产综合精品女小说 |