
双反転量戦略は,価格反転信号と波動率反転信号を組み合わせてトレンド取引を実現する.これは,主に123形状判断価格反転点に基づいており,ドンチアンチャネル波動率を採用して偽信号をフィルタリングするのに補助する.この戦略は,中長線ポジションに適用され,双反転フィルタを介して,市場転換点を効果的に捕まえ,過剰利益を達成することができる.
価格逆転部分では123形状判断を採用している.この形状は,前2つのK線が逆転する (上昇または下降),第3のK線が再び逆転する (下降または上昇) を意味するので,123形状と呼ばれている.価格が3つのK線逆転の現象が発生すると,通常,短期トレンドの転向が起こることを示唆する.価格逆転の信頼性をさらに検証するために,この戦略は,ランダムな指標判断を採用し,ランダムな指標が逆転する (急速な下降または急速な上昇) のみ,取引信号を触発する.
波動率反転部分は,ドンチアンチャネル波動率を採用している。ドンチアンチャネルは,主に価格の波動範囲を反映している。価格の波動が大きくなる時,ドンチアンチャネル幅も広がり,価格の波動が小さくなる時,ドンチアンチャネル幅も縮小する。ドンチアンチャネル波動率の幅 (度) は,市場の波動程度とリスクレベルを効果的に測定できる。この戦略は,ドンチアンチャネル波動率の反転を用いて,偽の信号を過する.波動率と価格が同時に反転する時のみ,取引信号を発信し,回操作を避ける.
全体として,この戦略は,二重反転検証によって,取引信号の信頼性を確保し,リスクを制御し,比較的安定したトレンド戦略である.
二重反転量戦略は,価格反転と変動率反転の二重検証によって,より良いリスク制御を実現する.単一の指標と比較して,大量のノイズをフィルターし,安定性が優れている.パラメータ最適化,損益モジュール強化,量能導入などの手段によって,この戦略は,信号品質と収益の安定性をさらに向上させることができる.株式,デジタル通貨などの中長期戦略の構成要素として適している.他のモジュールと合理的に組み合わせれば,優れた余剰利益を得ることができる.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 06/03/2020
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Donchian Channel was developed by Richard Donchian and it could be compared
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure
// volatility. Volatility is one of the most important parameters in technical analysis.
// A price trend is not just about a price change. It is also about volume traded during this
// price change and volatility of a this price change. When a technical analyst focuses his/her
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part
// of a complete picture only. This could lead to a situation when a trader may miss something and
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
// Most of the price based technical indicators are lagging indicators.
// When price moves on low volatility, it takes time for a price trend to change its direction and
// it could be ok to have some lag in an indicator.
// When price moves on high volatility, a price trend changes its direction faster and stronger.
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
// Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could
// be generated when it is too late.
// Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could
// be triggered too often and you may miss good trades.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
DCW(length, smoothe) =>
pos = 0.0
xUpper = highest(high, length)
xLower = lowest(low, length)
xDonchianWidth = xUpper - xLower
xSmoothed = sma(xDonchianWidth, smoothe)
pos := iff(xDonchianWidth > xSmoothed, -1,
iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
iff(posReversal123 == -1 and posDCW == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )