
この戦略は,超トレンド指標と商品通路指数 (CCI) を融合させ,複数の時間枠のトレンド追跡と取引シグナル生成を実現する.この戦略の主要な考えは,CCI指標を使用して短期的なトレンドの方向を判断し,超トレンド指標と組み合わせて中長期のトレンドの方向を判断することです.短期的および中長期のトレンドが一致すると,取引が発生します.
CCI指標は,超買い超売り現象を判断できる.CCI指標が0軸を下から上へと横切るときは多頭信号であり,空頭信号である.この戦略は,短期トレンド方向を判断するために,この特性を利用する.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
上記のコードは,CCI指標の周期と中軸位置を定義している.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
このコードは,cciが0軸を上穿するか否かを判断し,もしそうなら超トレンドの上軌を更新し,下穿は下軌を更新する.
超トレンド指数はATR指数と価格を組み合わせることで,中長期のトレンドの方向を判断することができる.価格が超トレンドを突破する際の上線は多頭信号で,下線は空頭信号である.
この戦略における超トレンド指標の計算式は次のとおりです.
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
ここで,FactorとPdは調整可能なパラメータである。
“トレンド”は,スーパートレンドの現在の方向を判断する変数です.
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
CCI指標と超トレンド指標を統合することにより,この戦略は,複数の時間枠の下でのトレンド判断を実現します.CCI指標は短期的なトレンドを捉え,超トレンド指標は中長期的なトレンドを判断します.
この2つの方向が一致すると,より信頼性の高い取引シグナルが生成されます.
isLong = st_trend == 1
isShort = st_trend == -1
入場時間は短期および中長期の同向,出場時間は短期および中長期の逆向である.
この戦略は,短期的および中期的トレンド判断指標を統合して,取引シグナルをより信頼性のあるものにします.
超トレンド指標のFactorパラメータとCCI指標のcci_periodは,市場に応じて調整され,戦略をより柔軟にすることができる.
戦略の構造はシンプルでわかりやすく,理解しやすく,実装しやすいので,量子取引の初心者にとっては最適です.
株式,外貨,暗号通貨などの市場に適用できます.また,パラメータの設定に応じて異なる品種に適用できます.
価格が激しく波動すると,多くの偽信号が発生する. 超トレンドのファクターパラメータを適切に拡大して,戦略の取引頻度を低下させる.
スーパートレンドは,強さの追跡だけでは不十分であり,トレンドの加速期にトレンドを追跡するために,動力の指標と組み合わせて検討することができます.
この策略には止損設定はありません.ATR指標のサイズと trails 止損設定を組み合わせることができます.
戦略の安定性を高めるため,異なる市場の特徴に応じて超トレンドとCCIのパラメータを調整する.
MACD,KDJなどの動態指標と組み合わせて,トレンド加速期にトレンドを追跡し,より高い収益を得ることができます.
戦略パラメータと取引ルールを最適化するために,機械学習と統合学習の方法を使用します.
この戦略は,スーパートレンドとCCI指標を組み合わせて,複数の時間枠でのトレンド判断を実現しました. 戦略は,簡単でわかりやすい,パラメータは調整可能で,収益の潜在性は大きい. 調整,止損,統合学習などの方法でさらに最適化することができ,信頼性,安定性,高効率の取引戦略になります.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author=Daveatt
StrategyName = "Best Supertrend CCI Strategy"
ShortStrategyName = "Best Supertrend CCI Strategy"
strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true )
//////////////////////////
//* COLOR CONSTANTS *//
//////////////////////////
AQUA = #00FFFFFF
BLUE = #0000FFFF
RED = #FF0000FF
LIME = #00FF00FF
GRAY = #808080FF
DARKRED = #8B0000FF
DARKGREEN = #006400FF
GOLD = #FFD700
WHITE = color.white
// Plots
GREEN_LIGHT = color.new(color.green, 40)
RED_LIGHT = color.new(color.red, 40)
BLUE_LIGHT = color.new(color.aqua, 40)
PURPLE_LIGHT = color.new(color.purple, 40)
source = input(close)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// CCI /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
//UL = input(80, "Upper level")
//LL = input(20, "Lower Level")
ML = input(0, "CCI Mid Line pivot")
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////// SUPERTREND /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
Factor=input(3,title="[ST] Factor", minval=1,maxval = 100, type=input.float)
Pd=input(3, title="[ST] PD", minval=1,maxval = 100)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////// SUPERTREND DETECTION //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
f_supertrend(Factor, Pd) =>
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp = 0.0
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown
[Trend, Tsl]
[st_trend, st_tsl] = f_supertrend(Factor, Pd)
// Plot the ST
linecolor = close >= st_tsl ? color.green : color.red
plot(st_tsl, color = linecolor , linewidth = 3,title = "SuperTrend", transp=0)
isLong = st_trend == 1
isShort = st_trend == -1
longClose = isLong[1] and isShort
shortClose = isShort[1] and isLong
strategy.entry("Long", 1, when=isLong)
strategy.close("Long", when=longClose )
strategy.entry("Short", 0, when=isShort)
strategy.close("Short", when=shortClose )