2011-06-03

坊間大絕之CDP逆勢操作系統


天下合久必分,分久必合。
大盤盤久必衝,衝了又盤。
盤整時逆勢賺,順勢哭哭。
大行情順勢賺,逆勢哭哭。
我們當然希望可以盤整賺,
有大行情也賺,
不過有那麼容易嗎?
當然沒有,不過有一套系統結合了逆勢跟順勢交易,
那就是CDP逆勢操作系統。


上星期我們談過開盤八法,
這星期我們要再來談談大家所熟悉的CDP逆勢操作系統。
我相信大家都應該不陌生,
怕大家忘記細節了,
這邊先引用一些基本介紹。

H:最高價,L:最低價,O:開盤價,C:收盤價,P:波幅(即最高價減最低價)

(1) 首先求出昨日行情的CDP值:
  CDP = ( H + L + 2C ) / 4

(2) 再分別計算昨天行情得最高值(AH)、近高值(NH)、近低值(NL)及最低值(AL):
  AH = CDP + P
  NH = 2CDP - L
  NL = 2CDP – H
  AL = CDP – P
買賣研判原則:
(1) 當指數在近低值附近為買近時機,在近高值附近為賣出時機。(逆勢)

(2) 開盤價即在最高價或最低價附近,代表盤勢強勢十分明顯。
當開盤價在最高值附近,投資人應追買;
當開盤價在最低值附近,投資人應追賣。(順勢)

由上面可以看出來,
這是一套逆勢順勢合在一起的交易系統,
基本上它是於盤整的時候被用來做逆勢居多,
不過他也加入強勢時的順勢交易,
所以就算發生大行情時,
他還是有機會可以抓到行情。
不過基本架構都是差不多的,
只是大家的使用的方式不同,
就會帶來不同的結果。
還是老話一句,
師父領進門,修行在個人。

回測時間,SHOW TIME!


不過今天我打算做個基本的測試,
我只做順勢交易的那個部分。
程式碼如下:

input:stoploss(50);
variables:cdp(0),ah(0),nh(0),nl(0),al(0),x(0),y(0);

if date<>date[1] then begin
cdp = (highD(1)+LowD(1)+2*CloseD(1))/4;
ah = cdp + (highD(1) - LowD(1));
nh = cdp*2 - LowD(1);
nl = 2*cdp - highD(1);
al = cdp - (highD(1) - LowD(1));
x = 0;
y = 0;
end;
if time>0850 then begin
if marketposition <=0 and cdp > 0 and x = 0 then begin
Buy next bar at ah stop;
end;
if marketposition >= 0 and cdp > 0 and y = 0 then begin
Sell next bar at al stop;
end;
end;
if marketposition = 1 then begin
x = 1;
end;
if marketposition = -1 then begin
y = 1;
end;
if marketposition = 1 then begin
exitlong next bar at entryprice-stoploss stop;
end;
if marketposition = -1 then begin
exitshort next bar at entryprice + stoploss stop;
end;
if time = 1340 then begin
exitlong on close;
exitshort on close;
cdp = 0;
ah = 0;
nh = 0;
nl = 0;
al = 0;
end;
SetExitOnClose;

結果我們得到了以下的報表:





我們發現這績效比開盤八法好多了,
雖然簡單明瞭,
不過還是可以賺錢,
只是DD超過20萬還是有點大,
再來我們看到每年的損益表,



2005年、2010年以及今年都是小小賠錢,
所以還是有很多可以改進的空間。

再來我們看到他的績效走勢圖,



最後我們來看看每個月的損益圖,
最大單月虧損大概6.7萬而已,



我們可以發現,這個策略在3000天的回測中,
是可以賺錢的,勝率也不算低,
雖然DD大了一點,不過因為這程式過於簡略,
這樣的表現看起來還可以接受。

不過你以為這樣就結束了嗎?
今天看到這篇的收穫肯定不只這樣,
我現在要做些小小的修改,
讓大家看看產生了什麼樣的變化。
我做了一點小小的修改,
我把進場時間往後調整至9點後,
然後我再設定做多時,必須超過9點前的最高點,
做空時,必須低過9點前的最低點,
結果發現績效好了不少。
修改後的程式碼如下:
input:stoploss(50);
variables:cdp(0),ah(0),nh(0),nl(0),al(0),x(0),y(0),dh(0),dd(99999);
if date<>date[1] then begin
cdp = (highD(1)+LowD(1)+2*CloseD(1))/4;
ah = cdp + (highD(1) - LowD(1));
nh = cdp*2 - LowD(1);
nl = 2*cdp - highD(1);
al = cdp - (highD(1) - LowD(1));
x = 0;
y = 0;
end;
if t=0900 then begin
dh=highd(0);
dd=lowd(0);
end;
if time>0900 then begin
if marketposition <=0 and cdp > 0 and x = 0 and high>dh then begin
Buy next bar at ah stop;
end;
if marketposition >= 0 and cdp > 0 and y =0 and low< dd then begin
Sell next bar at al stop;
end;
end;
if marketposition = 1 then begin
x = 1;
end;
if marketposition = -1 then begin
y = 1;
end;
if marketposition = 1 then begin
exitlong next bar at entryprice-stoploss stop;
end;
if marketposition = -1 then begin
exitshort next bar at entryprice + stoploss stop;
end;
if time = 1340 then begin
exitlong on close;
exitshort on close;
cdp = 0;
ah = 0;
nh = 0;
nl = 0;
al = 0;
end;
SetExitOnClose;

大家可以明顯發現DD變少到15萬,
勝率也變高了,也把次數壓低,
整體看來比原本的版本好多了,



再來我們看到每年的損益表,
發現2005年、2010跟今年的虧損變小了,



最後我們來看看每個月的損益圖
單月虧損也比原來版本減少一些,



所以給你基本的交易邏輯,
你要自己學會去增加一些濾網來過濾進場次數,
才可以讓你的交易程式績效變得更好。

沒有留言:

張貼留言