文華MQ股票池程序化的信號(hào)執(zhí)行方式和模型類(lèi)型[文華財(cái)經(jīng)公式]
二、期貨模型的機(jī)制
模型默認(rèn)信號(hào)執(zhí)行方式為指令價(jià)(出信號(hào)立即下單),也支持編寫(xiě)多樣的信號(hào)執(zhí)行方式
模型默認(rèn)為一根K線一個(gè)信號(hào)的模型,也支持編寫(xiě)一根K線多個(gè)信號(hào)的模型
模型默認(rèn)為一次建倉(cāng)模型,也支持編寫(xiě)連續(xù)建倉(cāng)模型
(一)信號(hào)執(zhí)行方式
一根K線的第一個(gè)信號(hào)有效;
出信號(hào)立即下單,下單后到k線走完的的后續(xù)信號(hào)不再執(zhí)行,K線走完時(shí)按照那個(gè)時(shí)刻的信號(hào)做持倉(cāng)同步;
回測(cè)不考慮信號(hào)消失成本。
避免信號(hào)消失的編寫(xiě)要點(diǎn):
(1)K線走完確認(rèn)信號(hào)下單,使用REF判斷信號(hào)條件
(2)K線盤(pán)中執(zhí)行,使用High/Low判斷信號(hào)條件
例子:編寫(xiě)模型陽(yáng)線買(mǎi)入開(kāi)倉(cāng),陰線賣(mài)出平倉(cāng)
①
Begin
If(Ref(IsUp,1)) //前一根K線確認(rèn)為陽(yáng)線,買(mǎi)入開(kāi)倉(cāng)
buy;
If(Ref(IsDown,1))//前一根K線確認(rèn)為陰線,賣(mài)出平倉(cāng)
Sell;
End
②
Begin
If(High>Open)//當(dāng)根K線盤(pán)中為陽(yáng)線時(shí),買(mǎi)入開(kāi)倉(cāng)
buy;
If(Low<Open)//當(dāng)根K線盤(pán)中為陰線時(shí),賣(mài)出平倉(cāng)
Sell;
End
2、通過(guò)環(huán)境設(shè)置函數(shù)設(shè)定多樣化的信號(hào)執(zhí)行方式
(1)啟用信號(hào)消失計(jì)算
寫(xiě)入FinalSigging
一根K線的每一個(gè)信號(hào)都有效;
出信號(hào)立即下單,后續(xù)出現(xiàn)的信號(hào)依舊執(zhí)行下單,K線走完時(shí)按照那個(gè)時(shí)刻的信號(hào)做持倉(cāng)同步;
回測(cè)方式為逐筆或逐分鐘回測(cè),統(tǒng)計(jì)信號(hào)消失成本,回測(cè)與實(shí)盤(pán)運(yùn)行結(jié)果一致
例:
Setting
FinalSigging:2,0;//根據(jù)逐步回測(cè)的方式執(zhí)行出信號(hào)立即下單,K線走完持倉(cāng)同步
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy;
if(MA1<MA2)
Sell;
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
(2)設(shè)置一根k線多信號(hào)的指令價(jià)方式
寫(xiě)入MultSig/MultSig_Min
出信號(hào)N秒下單,不進(jìn)行信號(hào)復(fù)核;
可以設(shè)置一根K線多個(gè)信號(hào);
回測(cè)方式為逐筆或逐分鐘回測(cè),不存在信號(hào)消失,回測(cè)與實(shí)盤(pán)運(yùn)行結(jié)果一致
例:
Setting
MultSig:0,0,0,0,2,0;//出信號(hào)立即下單,不進(jìn)行復(fù)核,一根K線最多可以出現(xiàn)2個(gè)信號(hào)
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy;
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell;
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
(3)SignalNoTrading 設(shè)置模型信號(hào)是否執(zhí)行
如果軟件自帶的信號(hào)執(zhí)行方式還不能滿(mǎn)足您的需求,您可以通過(guò)自編信號(hào)執(zhí)行方式實(shí)現(xiàn)。
不支持回測(cè)
(來(lái)源 www.kzuj.com.cn )
1、默認(rèn)信號(hào)執(zhí)行方式一根K線的第一個(gè)信號(hào)有效;
出信號(hào)立即下單,下單后到k線走完的的后續(xù)信號(hào)不再執(zhí)行,K線走完時(shí)按照那個(gè)時(shí)刻的信號(hào)做持倉(cāng)同步;
回測(cè)不考慮信號(hào)消失成本。
避免信號(hào)消失的編寫(xiě)要點(diǎn):
(1)K線走完確認(rèn)信號(hào)下單,使用REF判斷信號(hào)條件
(2)K線盤(pán)中執(zhí)行,使用High/Low判斷信號(hào)條件
例子:編寫(xiě)模型陽(yáng)線買(mǎi)入開(kāi)倉(cāng),陰線賣(mài)出平倉(cāng)
①
Begin
If(Ref(IsUp,1)) //前一根K線確認(rèn)為陽(yáng)線,買(mǎi)入開(kāi)倉(cāng)
buy;
If(Ref(IsDown,1))//前一根K線確認(rèn)為陰線,賣(mài)出平倉(cāng)
Sell;
End
②
Begin
If(High>Open)//當(dāng)根K線盤(pán)中為陽(yáng)線時(shí),買(mǎi)入開(kāi)倉(cāng)
buy;
If(Low<Open)//當(dāng)根K線盤(pán)中為陰線時(shí),賣(mài)出平倉(cāng)
Sell;
End
2、通過(guò)環(huán)境設(shè)置函數(shù)設(shè)定多樣化的信號(hào)執(zhí)行方式
(1)啟用信號(hào)消失計(jì)算
寫(xiě)入FinalSigging
一根K線的每一個(gè)信號(hào)都有效;
出信號(hào)立即下單,后續(xù)出現(xiàn)的信號(hào)依舊執(zhí)行下單,K線走完時(shí)按照那個(gè)時(shí)刻的信號(hào)做持倉(cāng)同步;
回測(cè)方式為逐筆或逐分鐘回測(cè),統(tǒng)計(jì)信號(hào)消失成本,回測(cè)與實(shí)盤(pán)運(yùn)行結(jié)果一致
例:
Setting
FinalSigging:2,0;//根據(jù)逐步回測(cè)的方式執(zhí)行出信號(hào)立即下單,K線走完持倉(cāng)同步
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy;
if(MA1<MA2)
Sell;
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
(2)設(shè)置一根k線多信號(hào)的指令價(jià)方式
寫(xiě)入MultSig/MultSig_Min
出信號(hào)N秒下單,不進(jìn)行信號(hào)復(fù)核;
可以設(shè)置一根K線多個(gè)信號(hào);
回測(cè)方式為逐筆或逐分鐘回測(cè),不存在信號(hào)消失,回測(cè)與實(shí)盤(pán)運(yùn)行結(jié)果一致
例:
Setting
MultSig:0,0,0,0,2,0;//出信號(hào)立即下單,不進(jìn)行復(fù)核,一根K線最多可以出現(xiàn)2個(gè)信號(hào)
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy;
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell;
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
(3)SignalNoTrading 設(shè)置模型信號(hào)是否執(zhí)行
如果軟件自帶的信號(hào)執(zhí)行方式還不能滿(mǎn)足您的需求,您可以通過(guò)自編信號(hào)執(zhí)行方式實(shí)現(xiàn)。
不支持回測(cè)
(來(lái)源 www.kzuj.com.cn )
?
(二)模型類(lèi)型
1、一次建倉(cāng)模型
默認(rèn)為一次建倉(cāng)模型,不允許連續(xù)出開(kāi)倉(cāng)信號(hào),可以連續(xù)出平倉(cāng)信號(hào)。
只有在持倉(cāng)為0時(shí)才能開(kāi)新倉(cāng),一次交易只能建一次倉(cāng),有多個(gè)開(kāi)倉(cāng)信號(hào)都滿(mǎn)足條件的時(shí)候,取第一個(gè)信號(hào)作為有效信號(hào),后面的K線上的同樣信號(hào)將被過(guò)濾掉
編寫(xiě)要點(diǎn):
(1)一開(kāi)一平模型:開(kāi)倉(cāng)手?jǐn)?shù)與平倉(cāng)手?jǐn)?shù)一致
(2)減倉(cāng)模型:平倉(cāng)手?jǐn)?shù)小于開(kāi)倉(cāng)手?jǐn)?shù)
例子:
①開(kāi)平倉(cāng)手?jǐn)?shù)一致
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy;
if(CrossUp(MA1,MA2))
buy;
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell;
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
②平倉(cāng)手?jǐn)?shù)小于開(kāi)倉(cāng)手?jǐn)?shù)
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy(2);
if(CrossUp(MA1,MA2))
buy(1);
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell(1);
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
模型通過(guò)寫(xiě)入AddTimes控制一次交易過(guò)程中的最大建倉(cāng)次數(shù),允許連續(xù)出開(kāi)倉(cāng)信號(hào)和平倉(cāng)信號(hào);
達(dá)到最大連續(xù)建倉(cāng)次數(shù)后,平掉連續(xù)建倉(cāng)的首次建倉(cāng),才能另開(kāi)新倉(cāng)。
例:
Setting
AddTimes:3;
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy(2);
if(CrossUp(MA1,MA2))
buy(1);
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell(1);
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
默認(rèn)為一次建倉(cāng)模型,不允許連續(xù)出開(kāi)倉(cāng)信號(hào),可以連續(xù)出平倉(cāng)信號(hào)。
只有在持倉(cāng)為0時(shí)才能開(kāi)新倉(cāng),一次交易只能建一次倉(cāng),有多個(gè)開(kāi)倉(cāng)信號(hào)都滿(mǎn)足條件的時(shí)候,取第一個(gè)信號(hào)作為有效信號(hào),后面的K線上的同樣信號(hào)將被過(guò)濾掉
編寫(xiě)要點(diǎn):
(1)一開(kāi)一平模型:開(kāi)倉(cāng)手?jǐn)?shù)與平倉(cāng)手?jǐn)?shù)一致
(2)減倉(cāng)模型:平倉(cāng)手?jǐn)?shù)小于開(kāi)倉(cāng)手?jǐn)?shù)
例子:
①開(kāi)平倉(cāng)手?jǐn)?shù)一致
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy;
if(CrossUp(MA1,MA2))
buy;
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell;
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
②平倉(cāng)手?jǐn)?shù)小于開(kāi)倉(cāng)手?jǐn)?shù)
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy(2);
if(CrossUp(MA1,MA2))
buy(1);
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell(1);
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
?
2、連續(xù)建倉(cāng)模型模型通過(guò)寫(xiě)入AddTimes控制一次交易過(guò)程中的最大建倉(cāng)次數(shù),允許連續(xù)出開(kāi)倉(cāng)信號(hào)和平倉(cāng)信號(hào);
達(dá)到最大連續(xù)建倉(cāng)次數(shù)后,平掉連續(xù)建倉(cāng)的首次建倉(cāng),才能另開(kāi)新倉(cāng)。
例:
Setting
AddTimes:3;
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossUp(Close,MA1))
buy(2);
if(CrossUp(MA1,MA2))
buy(1);
if(Close>BKPrice+10*MinPrice || Close<BKPrice-5*MinPrice)
Sell(1);
PlotLine("MA1",MA1,White);
PlotLine("MA2",MA2,Yellow);
End
<!--end 第二大部分--> <!--start 第三大部分-->
?
?
來(lái)源:http://www.kzuj.com.cn/2018/02/10/50055.shtml
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫(xiě)!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容