
光環突破策略は,移動平均とADX指標を組み合わせて価格の動きとトレンドの強さを判断するトレンド追跡策略であり,移動平均を破るときに場に入ります.この策略はシンプルで実用的で,トレンドを効果的に追跡し,利益の潜在性が高い.
この戦略は主に3つの指標に基づいています.
SMA移動平均:価格トレンドの方向を判断するために,特定の周期の閉盘価格の単純な移動平均を計算する.
ADX平均トレンド指数:トレンドの強さを測定する.ADXが高くなるほど,トレンドはより顕著である.
光環条件:閉盘価格が開盘価格より高く,閉盘価格が最低価格に近づいたときの看板環,閉盘価格が開盤価格より低く,閉盘価格が最高価格に近づいたときの看板環.
戦略的な論理:
価格の総動向を判断するためにNサイクルSMA値を計算する.
M周期のADX値を計算し,トレンドの強さを判断する.ADXが設定された値より高い場合にのみ取引シグナルが生成される.
価格が看板の輪を形成し,閉盘価格がSMAより高く,ADXが値より高くなったとき,多めに行う.
価格が下向きの環を形成し,SMAより閉店価格が低く,ADXが値より高いとき,空白する.
ストップ・ローズまたはストップ・キャップの退出
トレンドの方向と強さの指標を組み合わせて,トレンドを効果的に追跡できます.
光環条件は,ほとんどの無効突破をフィルターし,エントリーの勝利率を上げます.
長期トレンドを把握するためにEMAではなくSMAを使用します.
ADX指数は,明らかなトレンドがないときに取引を避けるため,高確率操作を把握するのに有利である.
戦略のルールはシンプルで,明快で,実行しやすい.
SMA系遅れの指標,早期入場または遅い入場が発生し,ストップが誘発される可能性がある。SMA周期パラメータを適切に最適化することができる。
ADXは振動する市場をフィルターする役目だが,トレンドが逆転すると誤判で損失が生じる可能性がある.ADX条件の形成のリスクを低減することができる.
光環は偽突破をフィルターできるが,実際の操作ではリスク管理に注意し,停止位置を適切に調整する必要がある.
戦略は多空バランス要素を考慮せず,人工介入または最適化ロジックが必要である.
SMAとADXのパラメータを最適化して,最適なパラメータの組み合わせを見つけます.
ブリン帯,KDJなどの他の指標判断トレンドを追加し,エントリー品質を向上させる.
トレンドの逆転,撤回比率などの平仓条件を追加し,エクジットロジックを完善する.
過剰な取引を避けるために,多空比率の判断を高めること.
ストップ戦略を最適化し,固定ストップをトラッキングストップまたはバッチストップとして改善する.
資金管理戦略を最適化し,個人リスクをよりよくコントロールする.
光環突破策は,移動平均とADX指標を統合してトレンドの方向と強さを判断し,光環条件のフィルタリングで取引信号を生成する,シンプルで実用的トレンド追跡策である. この策は,トレンドを把握し,ノイズをフィルタリングする優位性を持っているが,トレンド判断の遅れや損失のリスクなどの問題もある. 参数最適化,エントリーとエクジットロジックを完善し,リスク管理を改善するなどの手段によって,戦略の効率と安定性をさらに向上させることができる.
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Glory Hole with SMA + ADX", overlay=true)
len = input(20, minval=1, title="SMA")
src = input(close, title="Source")
ADXlevel = input(30, minval=1, title="ADX Tradelevel")
out = sma(src, len)
//adx
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
plot(out, title="SMA", color=blue)
bullish = ((out<close) and (out<open) and (out>low) and (sig>ADXlevel))
bearish = ((out>close) and (out>open) and (out<high) and (sig>ADXlevel))
if (bullish)
strategy.entry("Buy", strategy.long)
if (bearish)
strategy.entry("Sell", strategy.short)