模型根據(jù)從上至下,從左至右的順序進行計算;編寫中每一行計算,都能引用本次計算上面各行的計算結果
一、股票模型的機制:股票分為T+1模型和T+0模型
股票模型默認為T+1模型,T+0模型需要寫入StockT0_Plus:True;啟用T+0交易模式
(一)T+1模型:
通過低買高賣獲得盈利,遵循股票T+1交易規(guī)則。
交易指令:Buy買入;Sell賣出
T+1交易即:當日買入股票,要到下一個交易日才能賣出。
如果沒有老倉,日線周期上,在某一根k線上買入后,之后這根K線上的賣出信號會自動被過濾掉;分鐘周期k線上,如果當時買入后,一日內(nèi)后續(xù)K線上賣出信號會自動被過濾掉。
如果有老倉,一天之內(nèi)既可以出現(xiàn)買入信號,也可以出現(xiàn)賣出信號
1、日線模型的編寫:
(1)精密模式:寫入PanZhong_Min函數(shù)
寫入PanZhong_Min:N;語句的模型,一根日k線上可以出多個信號。可以先賣出股票后這根k線上再買回來;可以一根k線上實現(xiàn)加倉。
N參數(shù)的意義:出信號等N分鐘后確認一下信號再下單,推薦參數(shù)用0;
模型采用逐分鐘計算,模型一分鐘計算一次,每一根日K線要計算240次,所以比一般的指標公式計算要慢的多。
例:編寫模型最新價上穿5日均線買入,如果5日均線上穿10日均線再買入一次,10個點止盈,5個點止損。當根止損或止盈后如果滿足滿足條件還可以重新買入
Setting
AddTimes:2;//可以連續(xù)買入2次
PanZhong_Min:0;//出信號立即下單
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)//當根K線滿足止盈、止損之后還可以重新開倉
Sell;
PlotLine("MA1",MA1,White);
End
(2)精簡模式:
默認一根K線只執(zhí)行第一個信號;信號執(zhí)行方式為出信號立即下單。
一根日k線計算一次,公式計算快,但是可能會有信號消失的情況
避免信號消失的編寫要點:
K線走完確認信號下單,使用REF判斷信號條件
K線盤中執(zhí)行,使用High/Low判斷信號條件
例:編寫模型陽線買入,盈利10個點的時候,賣出一半持倉;陰線全部賣出
Begin
If(High>Open)//當根K線盤中為陽線時,買入開倉
Buy(600);
If(Low>BKPrice+10*MinPrice)//當根K線盈利10個點的時候,賣出一半持倉
Sell(300);
If(Low<Open)//當根K線盤中為陰線時,賣出平倉
Sell(BKVol);
End
(來源
m.kzuj.com.cn
)
?
2、分鐘周期模型的編寫
一根K線只執(zhí)行第一個信號;信號執(zhí)行方式為出信號立即下單。
可能會出現(xiàn)信號消失。
分鐘周期模型,可以實現(xiàn)一天內(nèi)的多次加倉。
避免信號消失的編寫要點:
(1)K線走完確認信號下單,使用REF判斷信號條件
(2)K線盤中執(zhí)行,使用High/Low判斷信號條件
例子:編寫模型陽線買入,陰線賣出
①
Setting
AddTimes:3;//可以連續(xù)賣出3次
Begin
If(Ref(IsUp,1)) //前一根K線確認為陽線,買入
buy(100);
If(Ref(IsDown,1))//前一根K線確認為陰線,賣出
Sell;
End
②
Setting
StockT0_Plus:True;
Begin
If(Low<Open)//當根K線盤中為陰線時,賣出
SellShort(600);
If(Low<SKPrice-10*MinPrice)//當根K線盈利10個點的時候,買回一半持倉
BuyToCover(300);
If(High>Open)//當根K線盤中為陽線時,買入
BuyToCover;
End
?
?
(二)T+0模型:
(來源
m.kzuj.com.cn
)
若賬戶中有足夠的歷史持倉(底倉額度),可以通過日內(nèi)“高點賣出》低點買入”的反復操作獲得日內(nèi)盈利,從而變相實現(xiàn)股票的T+0交易
交易指令:SellShort賣出;BuyToCover買入
T+0交易:賣出股票,底倉額度減少;買入股票,第二個交易日底倉額度回補
即,底倉額度大于0才會計算賣出信號
編寫要點:
模型寫入StockT0_Plus:True;啟用T+0交易模式
股票模型不支持信號消失的處理,模型編寫中請避免信號消失
(來源 m.kzuj.com.cn )
1、日線模型的編寫:
寫入PanZhong_Min:n;一根K線上的每個信號都執(zhí)行;出信號N分鐘下單,不復核;模型逐分鐘回測、運行。
例:編寫當根K線最新價下穿5日均線賣出,如果5日均線下穿10日均線再賣出一次,盈利10個點或虧損5個點就買入回補倉位
Setting
AddTimes:2;//可以連續(xù)賣出2次
StockT0_Plus:True;
PanZhong_Min:3;//根據(jù)逐分鐘回測的方式執(zhí)行出信號3分鐘后下單,不進行復核
Vars
NumericSeries MA1;
NumericSeries MA2;
begin
MA1=Ma(Close,5);
MA2=Ma(Close,10);
if(CrossDown(Close,MA1))
SellShort;
if(CrossDown(MA1,MA2))
SellShort;
if(Close<SKPrice-10*MinPrice || Close>SKPrice+5*MinPrice)//當根K線滿足止盈、止損之后買入回補
BuyToCover;
PlotLine("MA1",MA1,White);
End
2、分鐘周期模型的編寫
一根K線只執(zhí)行第一個信號;信號執(zhí)行方式為出信號立即下單,信號消失不處理
避免信號消失的編寫要點:
(1)K線走完確認信號下單,使用REF判斷信號條件
(2)K線盤中執(zhí)行,使用High/Low判斷信號條件
例子:編寫模型陽線買入,陰線賣出
①
Setting
AddTimes:3;//可以連續(xù)賣出3次
StockT0_Plus:True;
Begin
If(Ref(IsDown,1))//前一根K線確認為陰線,賣出100股
SellShort(100);
If(Ref(IsUp,1)) //前一根K線確認為陽線,買入全部回補
BuyToCover;
End
② Setting
StockT0_Plus:True;
Begin
If(Low<Open)//當根K線盤中為陰線時,賣出
SellShort;
If(High>Open)//當根K線盤中為陽線時,買入
BuyToCover;
End
<!--end 第一大部分--> <!--start 第二大部分-->
?
來源:http://m.kzuj.com.cn/2018/02/10/50056.shtml