您現(xiàn)在的位置:程序化交易>> 期貨公式>> 文華財經(jīng)>> 文華財經(jīng)公式>>正文內(nèi)容

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

三、編寫常見問題

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

Setting
??? AddTimes:5; ?
Params
??? Numeric Length(3); // 周期
Vars
??? NumericSeries BarN; //當日K線根數(shù)
??? NumericSeries myflag; // 交易次數(shù)
Begin
// ------------------- 取當日K線根數(shù)及交易次數(shù) -----------------
??? 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) //連續(xù)三根收陽,則開多單,最多連續(xù)開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) //連續(xù)三根收陰,則開空單,最多連續(xù)開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的運算結(jié)果,用于之后的計算
回測:不支持回測
(2)算法交易公式
Global_Numeric、Global_NumericArray、Global_String、Global_StringArray定義全局變量或使用GetGlobalVar(Index)、SetGlobalVar(Index,Val);GetGlobalVar2(Str)、SetGlobalVar2(Str,Val)
盤中運行:記錄下每筆TICK的運算結(jié)果,用于之后的計算
回測:支持算法交易回測
例子:通過全局變量,控制交易重復執(zhí)行
(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重新賦值,避免重復執(zhí)行
??? }
End


(2)(來源 www.tumamayizhan.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); //加倉后全局變量第一個位置重新賦值,避免重復執(zhí)行
??? }
End

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

Vars
NumericSeries ?Ma5; //5周期均線
NumericSeries ?Ma10; //10周期均線
Numeric ?Buytype(0);//是否啟用按資金比例下單
Numeric ?lots;//下單手數(shù)
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、如何定義數(shù)組型變量(來源 www.tumamayizhan.com
使用NumericArray、StringArray、Global_StringArray定義不同類型的數(shù)組變量
例子:取得最近10根K線內(nèi)最高價小于當前K線,最低價大于當前K線的K線數(shù)量

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線內(nèi)小于當根最高價的K線的最低價
??? }
}
??? For i =0 To j-1
{
??? If( Low<deep[i])
?k = k+1;
}
PlotNumeric("根數(shù)",k);
End

?

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

?

 

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

可聯(lián)系技術(shù)人員 QQ: 1145508240  點擊這里給我發(fā)消息進行 有償 編寫!不貴!點擊查看價格!

 


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

相關(guān)文章

    沒有相關(guān)內(nèi)容
  主站蜘蛛池模板: 女人把私密部位张开让男人桶| 男生和女生一起差差在线观看| 夜色私人影院永久入口| 久久精品国产欧美日韩| 狼色精品人妻在线视频| 国产又色又爽又刺激视频| 999在线视频精品免费播放观看| 日本一区二区三| 亚洲成a人片在线观看中文 | 成人福利视频app| 亚洲AV第一成肉网| 消息称老熟妇乱视频一区二区| 国产三级在线观看免费| 69av在线视频| 在线天堂中文官网| 一级特级黄色片| 日本精品少妇一区二区三区| 亚洲国产精品一区二区三区在线观看| 精品国产三上悠亚在线观看| 国产又黄又硬又粗| 日日夜夜嗷嗷叫| 天堂va视频一区二区| 中文字幕一区视频一线| 晓青老师的丝袜| 亚洲欧美日韩中文高清ww| 老少配老妇老熟女中文普通话| 国产精品亚洲专区一区| www.四虎影视| 日本护士xxxx视频免费| 亚洲欧洲第一页| 精品国产一区二区三区www| 国产又粗又长又更又猛的视频| 5060在线观看| 女人被男人桶爽| 久久99国产精品尤物| 柠檬福利第一导航在线| 亚洲美女视频免费| 精品在线视频一区| 国产亚洲美女精品久久久2020| 草莓在线观看视频| 在线播放国产一区二区三区|