飛狐金魔方大交易師使用教程(2)-交易指令進(jìn)階 [飛狐金魔方]
以多頭開平倉函數(shù)為例:
Buy('Symbol'='',Size=DEFAULT,Price=0,Slippage=0,OT=OT_MARKET,OB=OB_NEXTBAR,EntryName='')
Sell('Symbol'='',Size=DEFAULT,Price=0,Slippage=-1,OT=OT_MARKET,OB=OB_NEXTBAR,ExitName='')<from 'EntryName'>
括號(hào)里面表示函數(shù)的參數(shù),之所以見到有賦值,表示如果不寫這個(gè)參數(shù),其默認(rèn)值為等號(hào)后面的值,實(shí)際應(yīng)用時(shí)填入需要指定的值,而不是寫賦值語句。
例如:
Buy; 等價(jià)于 Buy('', DEFAULT, 0, 0,OT_Market, OB_NextBar, '');
Buy('',2); 等價(jià)于 Buy('', 2, 0, 0,OT_Market, OB_NextBar, '');
Buy('',2, 0,1); 等價(jià)于 Buy('', 2, 0, 1,OT_Market, OB_NextBar, '');
Buy('',2, 1000,0,OT_LIMIT); 等價(jià)于 Buy('', 2, 1000, 0,OT_LIMIT, OB_NextBar, '');
也就是說,如果你不寫從后到前的參數(shù),系統(tǒng)會(huì)自動(dòng)替你填進(jìn)那些參數(shù),怎么填呢?就是格式中等號(hào)后面的那些值。
平倉函數(shù)后有尖括號(hào)括起來的<from 'EntryName'>,表示這是可選的,需要用到時(shí)才寫。
這類函數(shù)可以設(shè)置交易商品、委托類型、時(shí)機(jī)、數(shù)量、價(jià)格、滑移價(jià)差,還可以指定一個(gè)開倉名EntryName,用于標(biāo)識(shí)不同的交易信號(hào)所開的倉,以及今后的單獨(dú)控制;平倉函數(shù)則可指定一個(gè)平倉名ExitName,并且用from 表示平其中某種信號(hào)開的倉。
函數(shù)的參量后若有等號(hào),表示等號(hào)后的值是默認(rèn)值,這樣的參數(shù)按照從后到前的順序,可以省略不寫。省略所有參數(shù)的交易指令,其委托數(shù)量是取用【策略設(shè)置】中的數(shù)值,可以為固定數(shù)量,也可以由資金自動(dòng)計(jì)算下單量。缺省的交易時(shí)機(jī)和類型是次周期(OB_NEXTBAR)市價(jià)單(OT_MARKET),市價(jià)單是要求立即成交的委托單,次周期市價(jià)單在歷史測評(píng)時(shí)以下一周期的開盤價(jià)作為委托成交價(jià),在實(shí)際交易中以周期開始時(shí)的市價(jià)下單,委托價(jià)格一般在買入時(shí)為賣一價(jià),賣出時(shí)為買一價(jià),有時(shí)再加減允許的滑移價(jià)差,以保證立即成交。
更詳細(xì)的參數(shù)說明可參看公式編輯器里的函數(shù)說明,我們還是多做些實(shí)驗(yàn)吧。
//-------金魔方智能交易公式--------------
//例2_1 一目均衡多空策略
{策略:
1.轉(zhuǎn)換線金叉基準(zhǔn)線,本周期收盤時(shí)平空反手做多
2.轉(zhuǎn)換線死叉基準(zhǔn)線,本周期收盤時(shí)平多反手做空
3.多頭自開倉20周期后平倉
}
input:
SN(26), FN(9);
基準(zhǔn)線: (HHV(H,SN)+LLV(L,SN))/2;
轉(zhuǎn)換線: (HHV(H,FN)+LLV(L,FN))/2;
bEnterLong := CrossOver(轉(zhuǎn)換線, 基準(zhǔn)線);
bEnterShort := CrossUnder(轉(zhuǎn)換線, 基準(zhǔn)線);
if bEnterLong then Buy('', DEFAULT, 0, 0, OT_CLOSE, OB_THISBAR);
if bEnterShort then SellShort ('', DEFAULT, 0, 0, OT_CLOSE, OB_THISBAR);
if BarsSinceEntry(0) >= 20 then Sell;
if BarsSinceEntry(0) >= 20 then BuyToCover;
{
注解:
1.CrossOver函數(shù)等同于Cross函數(shù)
2.開倉DEFAULT指定的下單量為[策略設(shè)置]中的委托數(shù)量
平倉函數(shù)里的DEFAULT表示全部平倉
3.OT_CLOSE 與 OB_THISBAR 配合指定本周期收盤時(shí)交易,歷史回測時(shí)以本周期收盤價(jià)作為成交價(jià)格,
實(shí)盤自動(dòng)交易時(shí),對(duì)于分鐘線周期,其實(shí)是在本周期結(jié)束,下一周期開始時(shí)下市價(jià)單的,
對(duì)于日線周期,或者對(duì)于分鐘線當(dāng)天收盤的最后一個(gè)周期,
則下單時(shí)機(jī)在[策略設(shè)置]-[自動(dòng)交易]中的“日收盤交易在(n)秒前下單”指定。
}
對(duì)于例1_3的布林通道振蕩策略,若想在價(jià)格達(dá)到上下軌或均線時(shí)下單,公式如下:
//-------金魔方智能交易公式--------------
//例2_2 布林通道振蕩策略之二
{策略:
1.價(jià)格跌至下軌時(shí)開多,價(jià)格升至中線時(shí)平多
2.價(jià)格升至上軌時(shí)開空,價(jià)格跌至中線時(shí)平空
}
input:
M(20,5,200,5), N(2), S(3);
Mid : MA(C,M);
Upper: Mid + N*STD(C,M),Shift1;
Lower: Mid - N*STD(C,M),Shift1;
Buy('', 1, Lower, 0, OT_LIMIT);
Sell('', 1, Mid, 0, OT_LIMIT);
SellShort('', 1, Upper, 0, OT_LIMIT,OB_NEXTBAR);
BuyToCover('', 1, Mid, 0, OT_LIMIT,OB_NEXTBAR);
{
注解:
1.Shift1 使指標(biāo)線向右偏移1個(gè)周期,使得它顯示時(shí)與NEXTBAR的交易時(shí)機(jī)對(duì)上。
}
如圖所示,當(dāng)價(jià)格跌到前周期的下軌值時(shí)買入,然后價(jià)格達(dá)到前周期的均線值時(shí)賣出,因本周期未結(jié)束時(shí),指標(biāo)值是不定的,所以我們用上一周期的指標(biāo)值,那么,交易指令的OB參數(shù)還是OB_NEXTBAR,可省略,表示在下一周期用本周期的指標(biāo)值下單,下單類型為OT_LIMIT限價(jià)單,限定價(jià)格Price參數(shù)為布林線下軌Lower等指標(biāo)值。
這個(gè)策略在行情盤整時(shí)看起來不錯(cuò),但在趨勢行情時(shí)會(huì)虧損,那么,我們?cè)賮韨€(gè)反向操作策略,并且把布林通道改為肯特納(Keltner)通道,公式如下:
//-------金魔方智能交易公式--------------
//例2_3 肯特納(Keltner)通道趨勢策略
{策略:
1.價(jià)格升破上軌時(shí)開多,價(jià)格跌至中線時(shí)平多
2.價(jià)格跌破下軌時(shí)開空,價(jià)格升至中線時(shí)平空
}
input:
M(20,5,200,5), N(2);
Mid : EMA(C,M);
Upper: Mid + N*ATR(10),Shift1;
Lower: Mid - N*ATR(10),Shift1;
Comment('突破買入價(jià): ', Upper[1]:8:2), ColorRed;
Comment('突破賣空價(jià): ', Lower[1]:8:2), ColorBlue;
Buy('', 2, Upper+MinDiff, -1, OT_STOP);
Sell('', DEFAULT, Mid, -1, OT_STOP);
SellShort('', 2, Lower-MinDiff, -1, OT_STOP);
BuyToCover('', DEFAULT, Mid, -1, OT_STOP);
{
注解:
1.ATR(10)為10周期平均真實(shí)波幅,均線加減ATR倍數(shù)即形成肯特納(Keltner)通道
2.Comment('突破買入價(jià): ', Upper[1]:8:2)在主圖左上角顯示提示信息,
此處指定輸出的數(shù)字串為8個(gè)字符長度,帶2位小數(shù);可以指定顏色
3.平倉函數(shù)委托數(shù)量為DEFAULT表示全部平倉
}
如圖所示,這次的開平倉正好和前例是反著的,因?yàn)橄聠晤愋蜑镺T_STOP停損單,它與限價(jià)單正好是相反的,當(dāng)我們要買入時(shí),限價(jià)單是埋在當(dāng)前市價(jià)的下方,等待價(jià)格下跌到限價(jià)時(shí)成交,而停損單是在當(dāng)前市價(jià)的上方,等待價(jià)格向上突破時(shí)成交。賣出時(shí)方向相反。對(duì)于停損單這個(gè)術(shù)語,賣出停損容易明白,對(duì)于買入開倉,可以這樣理解,因?yàn)槲沂且I入的,價(jià)格在不斷往上行,少賺也是一種虧損,所以在價(jià)格升到一定位置時(shí)買入“停損”。
需要注意的是,停損價(jià)之后的Slippage參數(shù)都被設(shè)為-1,這表示只要價(jià)格突破停損價(jià)就交易,例如次日跳空高開,不管多高都要買入。如果要限制交易價(jià)格,太高了就不買入,那就設(shè)置Slippage參數(shù)為允許的范圍,這種單叫做停損限價(jià)單,請(qǐng)自行修改測試。
這次我們?cè)诠降慕灰字噶詈瘮?shù)中指定委托數(shù)量為2,可以把鼠標(biāo)移到交易箭頭處或查看測評(píng)報(bào)告中的交易明細(xì)。
以上的趨勢和振蕩策略實(shí)例在貼圖中都用于日線周期,自動(dòng)交易常用于日內(nèi)交易,這類公式有些什么特殊的編制技巧呢?
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容