開拓者 TB 超級日內組合系統[開拓者公式]
- 咨詢內容: //策略:超級日內組合系統
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
//止損
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 - TB技術人員:
超級日內組合策略
(The Super Combo Day Trading Strategy)成功的日內突破策略核心是開盤后不久,尋找到未來上漲趨勢的近低點和下跌趨勢的近高點。最怕的是在高點附近買進,在低點附近賣空。但是,我們通過觀察測評可以發現,除去少部分買在低點,賣在高點的交易,絕大部分都是突破失敗的例子。那么是否有這樣的策略,在行情突破的時候做突破,若突破失敗,自動切換成處理突破失敗的策略呢?你可能會說,不太可能吧?但今天介紹的超級組合策略正是基于這種想法開發的。
策略簡述:超級日內組合策略是我目前整理策略發布以來最復雜的一個。簡化后還是一堆文字,所以簡述我就不寫了,大家直接看策略詳情吧。個人覺得若你能理解后獨立寫出這個策略的代碼,金字塔平臺上幾乎任意的圖表程序化編程都難不倒你了。
看這個策略之前,請先閱讀Hans123、恒溫器策略,相關概念不在此文重述了。策略詳情:
超級日內組合策略屬于有很多個模塊處理不同行情的復雜策略,如同R-breaker一樣,將考慮突破與突破失敗2種情況,但細節方面會更復雜。當然,在有條理的情況下,使用金字塔軟件實現策略還是相對容易的。首先,我們策略依然沿用突破、突破失敗這類思想,并且引入了恒溫器策略中趨買市、趨賣市的概念,這3者將是這個策略的基礎。
對于策略突破的部分:時間處理上,我們將沿用Hans123策略的想法,開盤30分鐘內不交易。其次,對于突破進場點,超級日內組合策略將使用類似恒溫器策略中區間突破、趨買市、趨賣市的思想。首先,我們判斷是否交易?經過長期的觀察和研究,策略的開發者得出結論,一般短K線后面往往跟隨著長K線,而我們追蹤的正是長K線。所以,若昨天是短K,今日我們才入場,否則不入場。我們采用以下的方式來判斷K線是否為短K。比較昨開-昨收的絕對值和前10天該值的平均值。若前者小于后者85%,我們認定為短K,反之為長K。接下來,我們來確定進場的點位,若收盤價小于等于前一日的收盤價為趨買市,反之為趨賣市。趨買市的開多條件為今開+30%前10日的真實區間。開空條件為今開-60%的前10日真實區間。趨賣市開多條件為今開+60%的前10日真實區間,開空條件為今開-30%前10日的真實區間。接著,我們來處理突破失敗的部分(反趨勢)。在該系統中,我們以多頭為例,將以下三種情況定義為突破失敗:
1、市場比昨日最高價向上跳空一定高度接著又下跌到最高價以下一定位置。2、開盤價在昨日最高價以下,后超過該價,然后又下跌至該價以下一定位置。
3、多頭頭寸開始但在中午12點前失敗,失敗是以觸發停止為標志的。如果失敗不是發生的很快,我們可以利用這個優勢。反之,為向下突破失敗。
然后,我們來處理止損的部分。(依然以多頭為例)1、在常規情況下,我們多頭止損點是開倉價-10日波幅區間的25%和3個大點( IF下是15個最小變動價位)較大的那個。
這里混合使用 固定止損和百分比保護止損的理由是:百分比止損能較好地適應市場的情況,它是個自適應參數系統。它與固定止損對比的好處是,若市場是高波動的,用固定止損就會使大部分交易虧損;若市場波動率低,一個固定的止損價位會導致風險大于收益和最后的凈虧損。但是,若前一天的波動非常的小(比如前一天開盤就漲停了)。百分比系統會產生一個很荒唐的值,所以我們設置了一個3個點的條件作為下限。2、在突破失敗的情況下反手入場,我們在止損點為 開倉價-10日波動區間的15%和3個大點的較大值。
這是因為當天市場可能是沒有方向的。反復的震蕩會讓我們有很大的損失,在已經虧損了一次的情況下,我們將執行更嚴格的風控。3、當我們賺取的利潤已經等于10天波動區間的50%時,我們采用保本止損策略,止損價調整為開倉價+滑點和手續費。
4、當時間超過下午14:30后,止損點設置為低于、高于前3跟5分鐘線的低高點。? 這是因為,我們發現交易的最后30-45分鐘,市場全天的趨勢將消退,極少數情況下會出現大幅翻轉(我記得今年某次PTA,深深地V型翻轉,傷透了心),我們當然不希望盈利在最后丟掉,所以設置了這個較小的止損,市場一有不利我們的風吹草動,我們就撤。
5、一天最多進場多頭、空頭各一對。換句話說,進場2次就停止。總結:這個策略只是一個拋磚引玉,它糅合了足夠多的思想。大家可以此為例,嘗試創造出自己一堆堆的策略咯。
代碼://策略:超級日內組合系統
//交易條件
//類型:日內5、走完K線
//版本:1.0
//修訂時間:2012.12.24
//DESIGNED BY ROGARZ
//中間變量
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(昨開-昨收)<0.85*10日平均開收盤區間;//CANTRADE
3周期最高價:=REF(HHV(HIGH,3),1);
3周期最低價:=REF(LLV(LOW,3),1);
多頭突破確認價:=昨高+BOCP*10日平均波幅;//LONGBREAKPT
空頭突破確認價:=昨低-BOCP*10日平均波幅;//SHORTBREAKPT
多翻空確認價:=昨低+FBOCP*10日平均波幅;//LONGFBOPOINT
空翻多確認價:=昨高-FBOCP*10日平均波幅;//SHORTFBOPOINT
手數:=SS;
開倉歷時:=ENTERBARS+1;
IF 昨收<=昨昨收 THEN BEGIN//昨日收盤價小于等于昨昨收為趨買市(BUYEASIERDAY)
趨買市:=1;
趨買市開多價:今開+K1*10日平均波幅;//BUYBOPT
趨買市開空價:今開-K2*10日平均波幅;//SELLBOPOINT
ENDIF 昨收>昨昨收 THEN BEGIN//昨日收盤價大于昨昨收為趨買市(SELLEASIERDAY)
//交易系統
趨賣市:=1;
趨賣市開多價:今開+K2*10日平均波幅;//BUYBOPT
趨賣市開空價:今開-K1*10日平均波幅;//SELLBOPOINT
END
//突破
IF TIME>=094500 AND TIME<143000 AND 開關=1 THEN BEGIN
{趨買市}
IF 趨買市=1 AND 開多次數=0 THEN BEGIN
趨買市開多:BUY(C>=趨買市開多價 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);
空頭止損價:=Max(ENTERPRICE+0.25*10日平均波幅,ENTERPRICE+3);//這個策略用于股指,空頭常規止損價為 開倉價加25%的10日平均波幅和3個大點的較小值。
開空次數:=1;
END
{趨賣市}
IF 趨賣市=1 AND 開多次數=0 THEN BEGIN
趨賣市開多:BUY(CLOSE>趨賣市開多價 AND HOLDING=0,手數,MARKET);
多頭止損價:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);
開多次數:=1;
END
IF 趨賣市=1 AND 開空次數=0 THEN BEGIN
趨賣市開空:BUYSHORT(CLOSE<趨賣市開空價 AND HOLDING=0,手數,MARKET);
空頭止損價:=Max(ENTERPRICE+0.25*10日平均波幅,ENTERPRICE+3);
開空次數:=1;
END
END
//突破失敗
{多頭突破失敗情況1:價格曾經高于多頭突破確認價,最新價又回落至空翻多確認價}
IF 今高>多頭突破確認價 AND C<多翻空確認價 AND TIME<143000 AND 開空次數=0 AND HOLDING>=0 THEN BEGIN
多頭止損1:SELL(1,手數,MARKET);
多翻空1:BUYSHORT(1,手數,MARKET);
開空次數:=1;
END
{多頭突破失敗情況2:突破入場后,行情反轉。止損的同時我們反手開空,但前提是時間在中午11:30之前,且多頭進場在至少4根K之前。瞬間止損我們不允許反轉,因為這往往是市場的膝跳反射}
IF HOLDING>=0 AND TIME<143000 AND 開空次數=0 THEN BEGIN
IF C<=多頭止損價 THEN BEGIN
多頭止損2:SELL(1,手數,MARKET);
IF TIME<=110000 AND 開倉歷時>=4 THEN BEGIN
多翻空2:BUYSHORT(1,手數,MARKET);
空頭止損價:=MIN(ENTERPRICE+0.15*10日平均波幅,ENTERPRICE+3);//多翻空止損價為開倉價加15%的10日平均波幅和3個大點的較小值。
開空次數:=1;
END
END
END{空頭突破失敗情況1:價格曾經低于空頭突破確認價,最新價又上漲至空翻多確認價}
//日內平倉
IF 今低<空頭突破確認價 AND C>空翻多確認價 AND TIME<143000 AND 開多次數=0 AND HOLDING<=0 THEN BEGIN
空頭止損1:SELLSHORT(1,手數,MARKET);
空翻多1:BUY(1,手數,MARKET);
開多次數:=1;
END
{空頭突破失敗情況2:突破入場后,行情反轉。止損的同時我們反手開多,但前提是時間在中午11:30之前,且空頭進場在至少4根K之前。瞬間止損我們不允許反轉,因為這往往是市場的膝跳反射}
IF HOLDING<0 AND TIME<143000 AND 開多次數=0 THEN BEGIN
IF C>=空頭止損價 THEN BEGIN
空頭止損2:SELLSHORT(1,手數,MARKET);
IF TIME<=110000 AND 開倉歷時>=4 THEN BEGIN
空翻多2:BUY(1,手數,MARKET);
多頭止損價:=MIN(ENTERPRICE-0.15*10日平均波幅,ENTERPRICE-3);//多翻空止損價為開倉價加15%的10日平均波幅和3個大點的較小值。
開多次數:=1;
END
END
END
//止損
IF HOLDING>0 AND C<多頭止損價 AND TIME<151000 THEN 常規多頭止損:SELL(1,手數,MARKET);
IF HOLDING<0 AND C>空頭止損價 AND TIME<151000 THEN 常規空頭止損:SELLSHORT(1,手數,MARKET);
//止損價調整
{若持多單,而5分鐘K高點超過了開倉價+50%10日平均波幅,止損調整為保本型 }
IF 今高>ENTERPRICE+0.5*10日平均波幅 THEN 多頭止損價:=ENTERPRICE+2*MINDIFF;
IF 今低<ENTERPRICE-0.5*10日平均波幅 THEN 空頭止損價:=ENTERPRICE-2*MINDIFF;
{若時間處于14:30以后,多頭跟蹤止損為過去3個5分鐘的最高低點與多空頭止損價中的較大值}
IF TIME>=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
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 262069696 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容