金字塔超級日內組合系統策略模型源碼
作者:金字塔 來源:cxh99.com 發布時間:2013年09月30日
-
- //策略:超級日內組合系統
INPUT:SS(1,1,100,1),K1(0.3,0.1,1,0.1),K2(0.6,0.1,1,0.1),BOCP(0.25,0,1,0.01),FBOCP(0.25,0,1,0.01);
VARIABLE:開多次數=0,開空次數=0,趨買市=0,趨賣市=0,多頭止損價=0,空頭止損價=0;
CYC:=BARSLAST(DATE>REF(DATE,1))+1;
昨開:=CALLSTOCK(STKLABEL,VTOPEN,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
昨昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-2);//昨天的前一天的收盤價,暫稱為昨昨收
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
今高:=IF(CYC=1,HIGH,REF(HHV(HIGH,CYC),1));
今低:=IF(CYC=1,LOW,REF(LLV(LOW,CYC),1));
今開:=IF(CYC=1,OPEN,REF(OPEN,CYC-1));
10日平均波幅:=ref(MA(CALLSTOCK(STKLABEL,VTHIGH,6,0)-CALLSTOCK(STKLABEL,VTLOW,6,0),10),1);//AVERAGERANGE
10日平均開收盤區間:=ref(MA(ABS(CALLSTOCK(STKLABEL,VTopen,6,0)-CALLSTOCK(STKLABEL,VTclose,6,0)),10),1);//AVERAGEOCRANGE
開關:=ABS(昨開-昨收)
//交易條件
IF 昨收
IF 昨收>昨昨收 THEN BEGIN//昨日收盤價大于昨昨收為趨買市(SELLEASIERDAY)
趨賣市:=1;
趨賣市開多價:今開+K2*10日平均波幅;//BUYBOPT
趨賣市開空價:今開-K1*10日平均波幅;//SELLBOPOINT
END
//交易系統
//突破
IF TIME>=094500 AND TIME=趨買市開多價 AND HOLDING=0,手數,MARKET);
多頭止損價:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);//這個策略用于股指,多頭常規止損價為 開倉價減25%的10日平均波幅和3個大點的較小值。
開多次數:=1;
END
IF 趨買市=1 AND 開空次數=0 THEN BEGIN
趨買市開空:BUYSHORT(CLOSE趨賣市開多價 AND HOLDING=0,手數,MARKET);
多頭止損價:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);
開多次數:=1;
END
IF 趨賣市=1 AND 開空次數=0 THEN BEGIN
趨賣市開空:BUYSHORT(CLOSE多頭突破確認價 AND C=0 THEN BEGIN
多頭止損1:SELL(1,手數,MARKET);
多翻空1:BUYSHORT(1,手數,MARKET);
開空次數:=1;
END
{多頭突破失敗情況2:突破入場后,行情反轉。止損的同時我們反手開空,但前提是時間在中午11:30之前,且多頭進場在至少4根K之前。瞬間止損我們不允許反轉,因為這往往是市場的膝跳反射}
IF HOLDING>=0 AND TIME=4 THEN BEGIN
多翻空2:BUYSHORT(1,手數,MARKET);
空頭止損價:=MIN(ENTERPRICE+0.15*10日平均波幅,ENTERPRICE+3);//多翻空止損價為開倉價加15%的10日平均波幅和3個大點的較小值。
開空次數:=1;
END
END
END
{空頭突破失敗情況1:價格曾經低于空頭突破確認價,最新價又上漲至空翻多確認價}
IF 今低空翻多確認價 AND TIME=空頭止損價 THEN BEGIN
空頭止損2:SELLSHORT(1,手數,MARKET);
IF TIME=4 THEN BEGIN
空翻多2:BUY(1,手數,MARKET);
多頭止損價:=MIN(ENTERPRICE-0.15*10日平均波幅,ENTERPRICE-3);//多翻空止損價為開倉價加15%的10日平均波幅和3個大點的較小值。
開多次數:=1;
END
END
END
//止損 www.tumamayizhan.com
IF HOLDING>0 AND C空頭止損價 AND TIMEENTERPRICE+0.5*10日平均波幅 THEN 多頭止損價:=ENTERPRICE+2*MINDIFF;
IF 今低=143000 THEN BEGIN
多頭止損價:=MAX(多頭止損價,3周期最低價);
空頭止損價:=MIN(空頭止損價,3周期最高價);
END
//日內平倉
IF TIME>=151000 THEN BEGIN
收盤平多:SELL(1,手數,MARKET);
收盤平空:SELLSHORT(1,手數,MARKET);
趨賣市:=0;
趨買市:=0;
開多次數:=0;
開空次數:=0;
多頭止損價:=0;
空頭止損價:=0;
END