• <menu id="iiemy"><menu id="iiemy"></menu></menu>
    您現在的位置:程序化交易>> 期貨公式>> 文華財經>> 文華財經公式>>正文內容

    文華MQ股票池程序化的編寫常見問題[文華財經公式]

    三、編寫常見問題

    1、如何定義策略中使用的全局變量
    (1)K線圖公式/TICK圖公式
    ①NumericSeries、StringSeries定義序列型變量
    盤中運行:記錄下每根K線的運算結果,用于下根K線的計算
    回測:支持回測
    注:TICK周期上每筆TICK一根K線,定義序列型變量,當根K線計算模型時使用上根K線的運算結果,相當于全局變量的用法
    例子:通過序列變量控制一天之內總的開倉次數(開多+開空)

    Setting
    ??? AddTimes:5; ?
    Params
    ??? Numeric Length(3); // 周期
    Vars
    ??? NumericSeries BarN; //當日K線根數
    ??? NumericSeries myflag; // 交易次數
    Begin
    // ------------------- 取當日K線根數及交易次數 -----------------
    ??? If(date!=date[1])
    ??? {
    ???BarN= 1 ;
    ???myflag =0;
    ??? }
    else BarN= BarN[1]+1; ?
    // ----------------------- 多頭開倉-------------------- ???
    ? If (MarketPosition!=-1 ?And Vol > 0 )
    ??? {
    ??If(Every(IsUp,Length) And BarN>=Length And CloseMinute>=5 And myflag<= 5) //連續三根收陽,則開多單,最多連續開5次。
    {
    ?Buy(0, Active_Order);
    ?myflag = myflag+1;
    ???}
    ??? }
    ??? // ------------------------ 空頭開倉-----------------
    ?? If (MarketPosition!=1 ?And Vol > 0 )
    ?? {
    ???If(Every(IsDown,Length) And BarN>=Length And CloseMinute>=5 And myflag<= 5) //連續三根收陰,則開空單,最多連續開5次。
    ???{ ?
    SellShort(0,Active_Order);
    myflag = myflag+1;
    ???}
    ??? }
    ?? If(CloseMinute<=5 And BarsSinceEntry > 0 And Vol > 0)
    {
    // ------------------------- 尾盤多頭平倉----------------
    ?If(MarketPosition == 1 )
    Sell(0, Active_Order);
    ? // ---------------------- 尾盤空頭平倉-------------
    ?If(MarketPosition == -1)
    ?BuyToCover(0, Active_Order);
    }
    End

    ②GetGlobalVar(Index)、SetGlobalVar(Index,Val);GetGlobalVar2(Str)、SetGlobalVar2(Str,Val)
    盤中運行:記錄下每筆TICK的運算結果,用于之后的計算
    回測:不支持回測
    (2)算法交易公式
    Global_Numeric、Global_NumericArray、Global_String、Global_StringArray定義全局變量或使用GetGlobalVar(Index)、SetGlobalVar(Index,Val);GetGlobalVar2(Str)、SetGlobalVar2(Str,Val)
    盤中運行:記錄下每筆TICK的運算結果,用于之后的計算
    回測:支持算法交易回測
    例子:通過全局變量,控制交易重復執行
    (1)

    Data ?
    ??? data0:"m1801";
    Vars
    ??? Global_Numeric type;
    Begin ?
    ??? If(data0.A_BuyProfitLoss()>5000&&type == 0) //如果該合約多頭盈虧大于5000,加倉1手
    ??? {
    ?????? data0.A_SendOrder(Enum_Buy,Enum_Entry,1,data0.price("Ask1"));
    ?????? type = 1; //加倉后type重新賦值,避免重復執行
    ??? }
    End


    (2)(來源 www.planetbokep.com

    Data ?
    ??? data0:"m1801";
    Begin ?
    ??? If(data0.A_BuyProfitLoss()>5000 && GetGlobalVar(0) == 0) //如果該合約多頭盈虧大于5000,加倉1手
    ??? {
    ?????? data0.A_SendOrder(Enum_Buy,Enum_Entry,1,data0.price("Ask1"));
    ?????? SetGlobalVar(0,1); //加倉后全局變量第一個位置重新賦值,避免重復執行
    ??? }
    End

    2、如何定義布爾型變量
    使用Numeric、NumericSeries定義數值型變量代替
    變量返回值:1代表True;0代表Flse
    例子:通過設置決定是否啟用按資金比例下單

    Vars
    NumericSeries ?Ma5; //5周期均線
    NumericSeries ?Ma10; //10周期均線
    Numeric ?Buytype(0);//是否啟用按資金比例下單
    Numeric ?lots;//下單手數
    Begin ?
    ??? If(Buytype ==0 )
    ??? {
    lots = 5;//固定5手開倉
    ??? }
    ?? Else If(Buytype == 1 )
    ??? {
    lots = MoneyTot*0.2/(Close*ContractUnit*MarginRatio);//按資金的百分之20開倉
    ??? }
    ??? Ma5 = Ma(Close,5);
    ??? Ma10 = Ma(Close,10);
    ??? If(Ref( CrossUp(Ma5,Ma10) ,1) )
    ??? {
    Buy(lots);
    ??? }
    ?? Else If(Ref( CrossDown(Ma5,Ma10) ,1) )
    ??? {
    SellShort(lots);
    ??? }

    End

    3、如何定義數組型變量(來源 www.planetbokep.com
    使用NumericArray、StringArray、Global_StringArray定義不同類型的數組變量
    例子:取得最近10根K線內最高價小于當前K線,最低價大于當前K線的K線數量

    Vars
    ??? NumericArray deep;
    ??? Numeric i;
    ??? Numeric j;
    ??? Numeric k;
    Begin
    ??? For i =0 To 9
    {
    ??? If( High>High[i])
    ??? {
    ?deep[j]=Low[i];
    ?j = j+1;//裝入最近的10根K線內小于當根最高價的K線的最低價
    ??? }
    }
    ??? For i =0 To j-1
    {
    ??? If( Low<deep[i])
    ?k = k+1;
    }
    PlotNumeric("根數",k);
    End

    ?

    來源http://www.planetbokep.com/2018/02/10/50054.shtml

    ?

     

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

    可聯系技術人員 QQ: 1145508240  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!

     


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

    相關文章

      沒有相關內容
      人妻专区免费视频,俄罗斯啪啪到高潮喷水,国色天香社区直播在线观看
  • <menu id="iiemy"><menu id="iiemy"></menu></menu>