換句話說,買賣的某一方為了自己的利益,因而願意付出更高的價格買進,或以更低的價格賣出。這種造成價格振盪失衡的原因,並不是因為成交量,而是急迫性……想要擁有,而且馬上就要擁有的那一方,因此就把價位拉高或殺低。
每一天你都會遇到買進振盪和賣出振盪,而收盤價加/減開盤價,則將告訴我們是哪一方獲勝。如果我把過去幾天從開盤價到最低價的振盪幅度加總,就可以得出過去幾天賣出振盪的平均值,據此可以推論,今天開盤後所出現的振盪值如果超過這個平均值,就可能是一個賣出信號。
最大振盪值(Greatest Swing Value)
我稱這種觀念為“最大振盪值”,它可以運用到許多能夠產生獲利的交易上。如果經常使用這個觀念,你就會更欣賞這種在下跌的日子裏找上漲振盪、在上漲的日子裏找下跌振盪的邏輯。我把這種振盪歸類為“失敗振盪”;雖然市場出現這麼大的振盪,可是無法堅持到底,收盤時反而出現相反方向的振盪變動。讓我們看看你可以用振盪值做些什麼。你可以先確定過去幾個交易日的失敗振盪平均值是多少,然後將當天的開盤加加上或減去這個數值,得出你的進場點。或者你也可以根據X日的失敗振盪值所計算出的標準差,將標準差乘以1倍或2倍加上失敗振盪的平均值,作為你的進場點。--- 摘譯 Larry Williams 短線交易祕訣
做多邏輯
- 今天的收盤價必須低於前5天的收盤價。
- 前4天每天從開盤價到最高價的差距,加起來除以4,計算出“買進振盪”的平均值。
- 價格已經上漲超過開盤價加上4天振盪平均值的1.8倍。
做空邏輯
- 今天的收盤價必須高於前5天的收盤價。
- 把前4天從開盤價到最低價的差距除以4,計算出“賣出振盪”的平均值。
- 價格已經下跌超過開盤價加上4天振盪平均值的1.8倍。
GSV 指標程式碼
input:Ref_L(4),Ref_S(4),Ratio_L(1.8),Ratio_S(1.8) ;
Vars:SW_L(0),SW_S(0) ;
if DataCompression < 2 then Begin { 判段時間週期是日K或分K , < 2為分K }
{ 計算買進振盪值 }
Value2 = 0 ;
For value1 = 0 to Ref_L-1 Begin { 也可以使用 1 ~ Ref_L }
Value2 = Value2 + HighD(Value1)-OpenD(Value1) ;
end;
Value3 = Value2/Ref_L*Ratio_L ;
{ 計算賣出振盪值 }
Value5 = 0 ;
For value4 = 0 to Ref_S-1 Begin
Value5 = Value5 + OpenD(Value4)-LowD(Value4) ;
end;
Value6 = Value5/Ref_S*Ratio_S ;
{ 多空進場價格 }
SW_L = OpenD(0)+ Value3 ;
SW_S = OpenD(0)- Value6 ;
end else Begin { 計算日K }
Value2 = 0 ;
For value1 = 0 to Ref_L-1 Begin
Value2 = Value2 + High[Value1]-Open[Value1] ;
end;
Value3 = Value2/Ref_L*Ratio_L ;
Value5 = 0 ;
For value4 = 0 to Ref_S-1 Begin
Value5 = Value5 + Open[Value4]-Low[Value4] ;
end;
Value6 = Value5/Ref_S*Ratio_S ;
SW_L = Open + Value3 ;
SW_S = Open - Value6 ;
end;
Plot1(SW_L,"SW_L") ;
Plot2(SW_S,"SW_S") ;
策略程式碼
input:EntryType(1),ExitType(0);
input:Ref_L(4),Ratio_L(1.8),Ref_S(4),Ratio_S(1.8),TrendL(30),RetraceL(5),TrendS(30),RetraceS(5) ;
input: NBarL(2),NBarS(2),TradeProfit(0.05),TradeStopLoss(0.05),ATRs_L(2),ATRs_S(2);
Vars: SW_L(0),SW_S(0) ;
vars: IsBalanceDay(False),MP(0),PF(0),PL(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 Begin
Value2 = 0 ; For value1 = 0 to Ref_L-1 Begin
Value2 = Value2 + HighD(Value1)-OpenD(Value1) ;
end;
Value3 = Value2/Ref_L*Ratio_L ;
Value5 = 0 ;
For value4 = 0 to Ref_S-1 Begin
Value5 = Value5 + OpenD(Value4)-LowD(Value4) ;
end;
Value6 = Value5/Ref_S*Ratio_S ;
SW_L = OpenD(0)+ Value3 ;
SW_S = OpenD(0)- Value6 ;
end else Begin
Value2 = 0 ;
For value1 = 0 to Ref_L-1 Begin
Value2 = Value2 + High[Value1]-Open[Value1] ;
end; Value3 = Value2/Ref_L*Ratio_L ;
Value5 = 0 ;
For value4 = 0 to Ref_S-1 Begin
Value5 = Value5 + Open[Value4]-Low[Value4] ;
end;
Value6 = Value5/Ref_S*Ratio_S ;
SW_L = Open + Value3 ;
SW_S = Open - Value6 ;
end;
if EntryType = 1 then Begin
if Close < CloseD(RetraceL) then Buy next bar at SW_L stop ;
if Close > CloseD(RetraceS) then Sell next bar at SW_S stop ;
end;
加入均線濾網
if EntryType = 2 then Beginif Close > Average(Close,TrendL) and Close < CloseD(RetraceL) then Buy next bar at SW_L stop ;
if Close < Average(Close,TrendS) and Close > CloseD(RetraceS) then Sell next bar at SW_S 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 then setExitonClose ;
EntryTYpe = 1
績效報表
台指期 60分K 留倉 2004/5/31 ~ 2014/5/30 交易成本 1200你隨時都可以利用最大振盪值的觀念,來確定市場的支撐或壓力區。依照Larry Williams外期商品實務經驗,逆勢反轉振盪1.8倍,搭配2.25倍的止損點效果相當好。
0 意見:
張貼留言