2015/11/05

技術篇: R-Breaker


最近兩天剛好R-Breaker策略的表現不錯

20151103

20151104

講了不少心法. 理論過後, 這次來個實際的技術; 我向來是主張用多策略來降低總損益波動度的, 個人是用不同的帳戶去跑不同的策略來區隔; 雖然每天PO的這個帳戶傾向較長線(時間週期不同的另有幾種), 但手上也有兩個極短線的策略同時在run

1支是用台指期開盤後的30分鐘內走勢, 去推測今天大概走哪一種盤型, 然後用那個盤型會賺的方法去當沖; 另1支是現在要介紹的R-Breaker, 這外國人開發的日內趨勢追蹤+反轉策略, 已經連續N年在當沖程式排行榜持續耀眼, 可我在台指期用起來算還好, 不介意把它分享出來

系統的基本原理如下:

1. 根據前一個交易日的收盤價、最高價和最低價資料通過一定方式計算出六個價位,從大到小依次為:TrendBuy、SellCheck、RevSell、RevBuy、BuyCheck、TrendSell。以此來形成當前交易日盤中交易的觸發條件。通過對計算方式的調整,可以調節六個價格間的距離,進一步改變觸發條件。

2. 看圖說故事 : 觀察盤中價格走勢,判斷買賣訊號
S1 : 當日內最高價超過SellCeck 且未高過 TrendBuy,盤中價格出現回檔,且進一步跌破 RevSell 的支撐線時,採取逆勢策略,即在RevSell(反手、新倉)做空;
B1: 當日內最低價低於 BuyCheck 且未低於 TrendSell,盤中價格出現反彈,且進一步超過 RevBuy 的阻力線時,採取逆勢策略,即在RevBuy(反手、新倉)做多;
B2: 在空手的情況下,如果盤中價格超過 TrendBuy,則採取順勢策略,即在該點位做多;
S2: 在空手的情況下,如果盤中價格跌破 TrendSell,則採取順勢策略,即在該點位做空。

3. 設定停損條件。當虧損達到設定值後,平倉。

4. 設定過濾條件。當前一個交易日波幅過小,該交易日不進行交易。

5. 在每日收盤前,對所持部位進行平倉。

我在日盛HTS4000的程式實作如下:

parameters:TimeEntry(090500),TimeExit(120500),TimeFlat(132000),
Reverse(1.00),RamgeMin(0.2);
parameters:f1(0.35),f2(0.07),f3(0.25),xdiv(3);
vars:SellCheck(0),BuyCheck(0),RevSell(0),RevBuy(0),TrendBuy(0),
TrendSell(0),DayLow(0),DayHigh(9999),startnow(0),div(0),
Rangefilter(false),MP(0),TradeStopLoss(0),HLrange(0);
MP = MarketPosition ;
TradeStopLoss = Reverse * (OpenD(0)/100)
HLrange = RamgeMin * (OpenD(0)/100)
if currentbar=1 then
startnow=0;
end if
div=maxlist(xdiv,1);
//Setup data while daily Market Open
//remark for making HTS bug
/*if date>date[1] then */
startnow=startnow+1;
//Calculate Ref Price box
SellCheck=HighD(1)+f1*(CloseD(1)-LowD(1));
RevSell=((1+f2)/2)*(HighD(1)+CloseD(1))-(f2)*LowD(1);
RevBuy=((1+f2)/2)*(LowD(1)+CloseD(1))-(f2)*HighD(1);
BuyCheck=LowD(1)-f1*(HighD(1)-CloseD(1));
TrendBuy=SellCheck+f3*(SellCheck-BuyCheck);
TrendSell=BuyCheck-f3*(SellCheck-BuyCheck);
DayHigh = High;
DayLow = Low;
if (HighD(1)-LowD(1)) >= HLrange then
Rangefilter = true
else
Rangefilter = false
end if
//end if
if High > DayHigh then
DayHigh = High
end if
if Low < DayLow then
DayLow = Low;
end if
if time >= TimeEntry and time < TimeExit and startnow>=2 and
Rangefilter and date> entrydate(1) then
if DayHigh >= SellCheck and MP > -1 then
Sell ("Rv S") next bar at RevSell+(DayHigh-SellCheck)/div stop;
end if
if DayLow <= BuyCheck and MP < 1 then
Buy ("Rv B") next bar at RevBuy-(BuyCheck-DayLow)/div stop;
end if
if MP < 0 then
Buy ("CD B") next bar at entryprice(0)+TradeStopLoss stop;
end if
if MP > 0 then
Sell ("CD S")next bar at entryprice(0)-TradeStopLoss stop;
end if
if MP = 0 then
Buy ("TB") next bar at TrendBuy stop;
Sell ("TS") next bar at TrendSell stop;
end if
end if
if time >= Timeflat then
if MP < 0 then
ExitShort("SL S") next bar at entryprice(0)+TradeStopLoss stop ;
end if
if MP > 0 then
ExitLong ("SL B") next bar at entryprice(0)-TradeStopLoss stop ;
end if
ExitShort ("Late SX") next bar at High+1 stop;
ExitLong ("Late LX") next bar at Low-1 stop;
end if

0 意見 :

張貼留言

.

.
Related Posts Plugin for WordPress, Blogger...