二、期貨模型的機(jī)制
模型默認(rèn)信號執(zhí)行方式為指令價(出信號立即下單),也支持編寫多樣的信號執(zhí)行方式
模型默認(rèn)為一根K線一個信號的模型,也支持編寫一根K線多個信號的模型
模型默認(rèn)為一次建倉模型,也支持編寫連續(xù)建倉模型
(一)信號執(zhí)行方式
(來源
www.tumamayizhan.com
)
1、默認(rèn)信號執(zhí)行方式
一根K線的第一個信號有效;
出信號立即下單,下單后到k線走完的的后續(xù)信號不再執(zhí)行,K線走完時按照那個時刻的信號做持倉同步;
回測不考慮信號消失成本。
避免信號消失的編寫要點(diǎn):
(1)K線走完確認(rèn)信號下單,使用REF判斷信號條件
(2)K線盤中執(zhí)行,使用High/Low判斷信號條件
例子:編寫模型陽線買入開倉,陰線賣出平倉
①
Begin
If(Ref(IsUp,1)) //前一根K線確認(rèn)為陽線,買入開倉
buy;
If(Ref(IsDown,1))//前一根K線確認(rèn)為陰線,賣出平倉
Sell;
End
②
Begin
If(High>Open)//當(dāng)根K線盤中為陽線時,買入開倉
buy;
If(Low<Open)//當(dāng)根K線盤中為陰線時,賣出平倉
Sell;
End
2、通過環(huán)境設(shè)置函數(shù)設(shè)定多樣化的信號執(zhí)行方式
(1)啟用信號消失計(jì)算
寫入FinalSigging
一根K線的每一個信號都有效;
出信號立即下單,后續(xù)出現(xiàn)的信號依舊執(zhí)行下單,K線走完時按照那個時刻的信號做持倉同步;
回測方式為逐筆或逐分鐘回測,統(tǒng)計(jì)信號消失成本,回測與實(shí)盤運(yùn)行結(jié)果一致
例:
Setting
FinalSigging:2,0;//根據(jù)逐步回測的方式執(zhí)行出信號立即下單,K線走完持倉同步
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線多信號的指令價方式
寫入MultSig/MultSig_Min
出信號N秒下單,不進(jìn)行信號復(fù)核;
可以設(shè)置一根K線多個信號;
回測方式為逐筆或逐分鐘回測,不存在信號消失,回測與實(shí)盤運(yùn)行結(jié)果一致
例:
Setting
MultSig:0,0,0,0,2,0;//出信號立即下單,不進(jìn)行復(fù)核,一根K線最多可以出現(xiàn)2個信號
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è)置模型信號是否執(zhí)行
如果軟件自帶的信號執(zhí)行方式還不能滿足您的需求,您可以通過自編信號執(zhí)行方式實(shí)現(xiàn)。
不支持回測
(來源
www.tumamayizhan.com
)
?
(二)模型類型
1、一次建倉模型
默認(rèn)為一次建倉模型,不允許連續(xù)出開倉信號,可以連續(xù)出平倉信號。
只有在持倉為0時才能開新倉,一次交易只能建一次倉,有多個開倉信號都滿足條件的時候,取第一個信號作為有效信號,后面的K線上的同樣信號將被過濾掉
編寫要點(diǎn):
(1)一開一平模型:開倉手?jǐn)?shù)與平倉手?jǐn)?shù)一致
(2)減倉模型:平倉手?jǐn)?shù)小于開倉手?jǐn)?shù)
例子:
①開平倉手?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
②平倉手?jǐn)?shù)小于開倉手?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ù)建倉模型
模型通過寫入AddTimes控制一次交易過程中的最大建倉次數(shù),允許連續(xù)出開倉信號和平倉信號;
達(dá)到最大連續(xù)建倉次數(shù)后,平掉連續(xù)建倉的首次建倉,才能另開新倉。
例:
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 第三大部分-->
?
?
來源:http://www.tumamayizhan.com/2018/02/10/50055.shtml