電子信箱 service [at] bituzi.com
幣圖誌首頁 facebook粉絲團 google plus google plus

開發商品的交易系統 - 基礎篇 [48]


成交量是指在某一時段內具體的交易數量。市場成交量的變化反映了資金進出市場的情況,成交量是判斷市場走勢的重要指標,一般情況下,成交量大且價格上漲的股票,趨勢向好。成交量持續低迷時,一般出現在熊市或股票整理階段,市場交易不活躍。成交量是判斷股票走勢的重要依據,對分析主力行為提供了重要的依據。

投資者對成交量異常波動的股票應當密切關註,成交量的大小直接表明瞭多空雙方對市場某一時刻的技術形態最終的認同程度,因此市場上有“量是價的先行,先見天量後見天價,地量之後有地價”之說。不過也不能把成交量的作用簡單化、絕對化,因此還要結合實際情況具體分析。



量雖是價的先行,但並不意味著成交量決定一切,一般而言向上突破頸線位、強壓力位需要放量攻擊,即上漲要有成交量的配合;但向下破位或下行時卻不需要成交量的配合,無量下跌天天跌,直至再次放量,顯示出有新資金入市搶反彈或抄底為止。價漲量增,價跌量縮稱為量價配合,否則為量價不配合。

開發商品的交易系統 - 基礎篇 [43]中介紹了"STOCKS & COMMODITIES" 雜誌作者Vitali Apirine的文章 “The Slow Relative Strength Index” ,本篇介紹他的新作 “The Slow Volume Strength Index”,這個指標 SVSI 運用了價格,成交量以及RSI的計算方式來評估買賣壓力的強弱,我們一起來將之作台指期的測試


{系統參數與變數}
input:EntryType(1),ExitType(2);
inputs:NBarL(10),NBarS(26),TradeProfit(0.03),TradeStopLoss(0.04),ATRs_L(12.7),ATRs_S(4.6);
vars: IsBalanceDay(False),MP(0),PF(0),PL(0);

inputs:EMALength(6),SmoothLength(14),BackL(3),BackS(3),HB(70),LB(30),HighBar(5),LowBar(5) ;
variables:EMAValue(0),PosVolume(0),NegVolume(0),AvgPosVol(0),AvgNegVol(0),SVS(0),SVSI(0),MyVolume(0) ;

MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3
then isBalanceDay = True else isBalanceDay = False ;
PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;

{不同時間架構的成交量取得}
if DataCompression >= 2 then MyVolume = Volume else MyVolume = Ticks ;

{ 計算參考 EMA 均線}
EMAValue = XAverage( Close, EMALength ) ;

{ 收盤價大於參考均線,累計正成交量,負成交量歸零}
if Close > EMAValue then begin
PosVolume = MyVolume ;
NegVolume = 0 ;
{ 收盤價小於參考均線,累計負成交量,正成交量歸零}
end else if Close < EMAValue then begin  PosVolume = 0 ; NegVolume = MyVolume ; end else begin  
{ 收盤價等於參考均線,正負成交量歸零}
PosVolume = 0 ;
NegVolume = 0 ;
end ;

if CurrentBar = 1 then begin
AvgPosVol = Average( PosVolume, SmoothLength ) ;
AvgNegVol = Average( NegVolume, SmoothLength ) ;
end else if CurrentBar > 1 then begin

{將正負成交量分別作平滑化}
AvgPosVol = ( ( AvgPosVol * 13 ) + PosVolume ) / 14 ;
AvgNegVol = ( ( AvgNegVol * 13 ) + NegVolume ) / 14 ;
end ;

{計算正負成交量比值}
SVS = iff( AvgNegVol <> 0, AvgPosVol / AvgNegVol, 100 ) ;

if SVS <> 0 then SVSI = 100 - ( 100 / ( 1 + SVS ) ) ;

{ 以超買超賣線作進場參考}
if EntryType = 1 then Begin
if MP <> 1 and SVSI > HB then buy next bar Highest(High,HighBar) stop;
if MP <> -1 and SVSI < LB then Sell next bar Lowest(Low,LowBar) stop;
end;

{ 將指標作時間位移的比較當成進場參考}
if EntryType = 2 then Begin
if MP <> 1 and SVSI Cross over SVSI[BackL] then buy next bar Highest(High,HighBar) stop;
if MP <> -1 and SVSI Cross under SVSI[BackS] then Sell next bar Lowest(Low,LowBar) stop;
end;

{ 將指標與其均線交叉當成進場參考}
if EntryType = 3 then Begin
if MP <> 1 and SVSI Cross over Average(SVSI,BackL) then buy next bar Highest(High,HighBar) stop;
if MP <> -1 and SVSI Cross under Average(SVSI,BackS) then Sell next bar Lowest(Low,LowBar) stop;
end;

{出場策略}
if ExitType = 1 then SetStopLoss(PL * BigPointValue) ;

if ExitType = 2 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
end;

if ExitType = 3 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;

if ExitType = 4 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then {Sell } ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then {Buy} ExitShort next bar at Market ;
end;

if IsBalanceDay or date = 1150224 then setExitonClose ;

進場方式3 - 台指期 30 min K 多空留倉 交易週期 2005/3/1~ 2015/2/28 交易成本 1200

進場方式 2 - 台指期 60 min K 多空留倉 交易週期 2005/3/1~ 2015/2/28 交易成本 1200

相同的指標從不同角度作思考,也可以幫助我們在開發策略的過程中,找到一些新的契機。


0 意見: