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

開拓者OLS交易系統策略源碼,日內技術[開拓者公式]

  • 寄語:

    組合交易方法不光包括品種的組合,還包括交易系統的組合和交易周期的組合。
    沒有什么能夠阻擋我對自由的向往。
    資金管理是期市生存第一鐵律,要在這個市場生存下去,資金管理永遠是第一位的。
    執著和程序化交易讓我重拾信心。
    我是技術交易者,任何一個市場在我眼中都是獨立的,關注好各自的價格即可。
    日內短線的核心是贏率的重要性。
    日內的最大優勢是積小勝為大盈。
    短線交易的優點是充分利用資金,缺點是往往會錯過大段跳空利潤。
    科學、客觀地制定交易計劃。
    在這個市場上評判高手的界定標準是:能操盤大資金并長期穩定獲利,并且不限定行情。
    做期貨至今找到了幸福感,但缺乏成就感。
    順大勢逆小勢,永遠跟著趨勢走。
     
  • 源碼


    //------------------------------------------------------------------------
    // 簡稱: OLS
    // 名稱: 最小二乘估計回歸均線
    // 類別: 公式應用
    // 類型: 用戶應用
    // 輸出: 程序化交易
    //------------------------------------------------------------------------

    // 應用周期:分鐘級別,最好是1分鐘

    Params
            Numeric Length(5);
    Vars
            NumericSeries n;
            Numeric iN;
            Numeric B0;
            Numeric B1;
            NumericSeries X;
            Numeric y;
            NumericSeries OlsValue;
            Numeric i;
            Numeric Sum1(0);
            Numeric Sum2(0);
            Numeric Sum3(0);
            Numeric Sum4(0);
            Numeric Sum5(0);
            Numeric Sum6(0);
            Numeric Sum7(0);
            Numeric Sum8(0);
            Numeric Sum9(0);
            Numeric Sum10(0);
            Numeric Sum11(0);
            Numeric Sum12(0);
            NumericSeries Y0;
            Numeric Yi;
            Numeric YA;
            Numeric SY;
            Numeric X0;
            Numeric XA;
            Numeric TA(2);
            Numeric R;
            Numeric EndTime;
            Numeric UpperBrand;
            Numeric LowerBrand;
    Begin
            n = n[1];
            X = X[1];
            OlsValue = OlsValue[1];
            Y0 = Y0[1];
            If(BarType == 1 || Left(Symbol,2) != "IF")
                    EndTime = 0.1460 - 0.0001*BarInterval;
           
            // ------------------ 計算擬合回歸 ------------------
            If(BarStatus == 0 || Date != Date[1])
            {
                    n = 1;
                    X = 1;
                    y = Close;
                    Y0 = y;
            }
            Else
            {
                    n = n + 1;
                    iN = n;
                    If(BarType == 1)
                    {
                            X = X + BarInterval;
                    }
                    Else
                    {
                            Alert("請選擇分鐘周期");
                            Return;
                    }

                    For i = 1 to iN
                    {
                            Sum1 = Sum1 + X[n-i]*Close[n-i];
                    }
                    For i = 0 to iN-1
                    {
                            Sum2 = Sum2 + X[i];
                    }
                    For i = 1 to iN
                    {
                            Sum3 = Sum3 + Close[n-i];
                    }
                    For i = 0 to iN-1
                    {
                            Sum4 = Sum4 + X[i]*X[i];
                    }
                    Sum5 = Sum2*Sum2;
                    B1 = (n*Sum1 - Sum2*Sum3)/(n*Sum4 -Sum5);
                    B0 = Sum3/n - B1*(Sum2/n);
                    //y  = B0 + B1*n;
                    y  = B0 + B1*n*0.75;
                    //y  = B0 + B1*(n+1);
            }
            OlsValue = y;
            PlotNumeric("曲線:", y, 0, Cyan);
            If(BarStatus == 0 || BarStatus == 2 || Date != Date[1] || Time == EndTime)
                    PlotNumeric("直線:", y, 0, Magenta);
            Else
            {
                    y = InvalidNumeric;
                    PlotNumeric("直線:", y, 0, Magenta);
            }
            PlotNumeric("開盤:", OpenD(0), 0, White);
           
            // ------------------ 預測置信區間 ------------------
            X0 = X[n-1];
            XA = Sum2/iN;
            Sum6 = Sqr(X0 - XA);
            For i = 0 to iN-1
            {
                    Sum7 = Sum7 + Sqr(X[i] - XA);
            }
            Sum8 = Sqrt(1 + 1/iN + Sum6/Sum7);
            For i = 0 to iN-1
            {
                    Yi = B0 + B1*i;
                    Sum9 = Sum9 + Sqr(Close[i] - Yi);
            }
            If(iN <= 2)
                    SY = 10;
            Else
                    SY = Sqrt(Sum9/(iN-2));
            //UpperBrand = OlsValue + TA*SY*Sum8;
            //LowerBrand = OlsValue - TA*SY*Sum8;
            UpperBrand = OlsValue + TA*SY*Sum8*0.6;
            LowerBrand = OlsValue - TA*SY*Sum8*0.6;
            PlotNumeric("上軌:", UpperBrand, 0, Red);
            PlotNumeric("下軌:", LowerBrand, 0, Green);
           
            // ------------------ 判定擬合系數 ------------------
            For i = 0 to iN-1
            {
                    Sum10 = Sum10 + OlsValue[i];
            }
            YA = Sum10/n;
            //FileAppend("F:\\OLS"+"-"+Symbol+".txt", Text(date)+"   "+Text(time));
            For i = 0 to iN-1
            {
                    Yi = B0 + B1*i;
                    Sum11 = Sum11 + Sqr(Yi - YA);
            }
            For i = 0 to iN-1
            {
                    Sum12 = Sum12 + Sqr(Close[i] - YA);
            }
            R = Sum11/Sum12;
            //FileAppend("F:\\OLS"+"-"+Symbol+".txt", "R = "+Text(R));
    End

    //------------------------------------------------------------------------
    // 編譯版本        GS2010.12.08
    // 用戶版本        2011/06/24 15:52
    // 更改聲明:TB小揚程序化交易
    //每一版本的TrabeBlazer公式修改和重寫的權利
    //------------------------------------------------------------------------

     


  •  

 

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

可聯系技術人員 QQ: 262069696  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!

 


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

相關文章

    沒有相關內容
  排列五千神机器人软件