需要と供給ゾーンとEMAスライディングストップに基づく取引戦略


作成日: 2024-01-18 16:41:16 最終変更日: 2024-01-18 16:41:16
コピー: 0 クリック数: 787
1
フォロー
1617
フォロワー

需要と供給ゾーンとEMAスライディングストップに基づく取引戦略

概要

この戦略は,供給・需要領域,指数移動平均 ((EMA) と平均実際の波動範囲 ((ATR) の指数型移動ストップを利用して取引信号判断を行う.ユーザーはEMAパラメータの設定と買い・売買信号の可視性を調整することができる.戦略標識は,より高いより高い ((HH),より低いより低い ((LL),より低いより高い ((LH) とより高いより低いより高い ((HL) など,供給領域である.第三根K線が信号を確認した後に取引指示を発行する.このスクリプトは,反測に適している.

戦略原則

指標計算

EMA指数移動平均線:

  • EMAは,一定の周期 (デフォルト200) の閉盘価格に基づいて計算される.
  • EMAの公式は(EMA=(Pricet \times \alpha)+(EMA{t-1}×(1−\alpha)))その中でも(\alpha=\frac{2}{length+1})。

ATR平均真波幅:

  • ATRは市場の波動の程度を測る指標で,価格の実際の波動範囲に基づいて計算される.
  • 真の波動範囲は以下の3つの最大値です.
    • 現在の最低価格から現在の最高価格を引く.
    • 現在の最高値の絶対値から最後の終了値の絶対値を引いた値
    • 現在の最低値の絶対値から最後の終値の絶対値を引いた値
  • ATRの典型的な計算周期は14。

これらの計算は,EMAのトレンド判断を判断し,市場波動に基づいてATRの移動ストップを設定するために使用される.この戦略は,閉盘価格,EMAとATRの値の関係に基づいて買入シグナルを提供することを目的としている.

需要と供給の判断

策略は,異なる価格行動パターンを識別するために,HH (より高いより高い),LL (より低いより低い),HL (より高いより低い),LH (より低いより高い) のような用語を使用し,しばしばトレンド分析に使用されます.

  1. 高く 高く価格の上昇は,過去最高値よりも高い値で,潜在的上昇の動きを示しています.

  2. ダウンダウン (LL)価格の上昇は,過去最低値よりも低い値で,下方への潜在的動力を表しています.

  3. 高く低く (HL)価格の上昇傾向が続くことを示すため,現在の最低値は以前の最低値より高い.

  4. LHは,LHよりも低い,より高い価格の上昇は過去最高値より低いので,下落傾向が続く可能性が示されています.

これらのパターンは,他の技術指標と組み合わせて使用され,潜在的トレンドの反転または継続を決定できます. この戦略は,これらのパターンを利用して,入場または退出のタイミングを識別します.

入力・止損・出力

入口信号: 第三のK線の閉盘価格が前日の最高値/最低値より高/低であるときに買/売シグナルが発生する.

損失を抑える方法:ATR値の一定の倍数 ((デフォルトは2倍) を後退ストップポイントとして.

戦略的優位性

  1. 市場を分析し,偽突破を回避するために,トレンド,反転,変動率などの複数の要因を組み合わせます.
  2. 供給・需要の領域から, 支持・抵抗を判断する.
  3. ATRのストップレアシステムは,市場の変動を動的に追跡する.
  4. EMAとATRのパラメータをカスタマイズできます.
  5. 簡単な入学規則を簡単に実行できます.

リスクと最適化

  1. 誤判の危険性があり,EMAの長さを適切に最適化する必要があります.
  2. ATRの倍数設定が大きすぎると,追撃で死亡するリスクが高くなります.
  3. 他の要因と組み合わせた入場信号のフィルタリングを考慮することができる.
  4. 狙撃は”トレンドスナイパー”を中心に,必要に応じて補足策を試すことができる.

要約する

この戦略は,トレンド,反転,波動率などの複数の技術指標と価格形態の判断を総合的に使用し,反省ではよく表れている.しかし,現場で複雑な多変性,最適化および適切なフィルタリング入場信号はまだ必要である.この戦略は,基礎戦略であり,その基礎に拡張され,他の要因またはモデルと組み合わせることができます.

ストラテジーソースコード
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true)

showBuySignals = input(true, title="Show Buy Signals", group="Signals")
showSellSignals = input(true, title="Show Sell Signals", group="Signals")
showHLZone = input(true, title="Show HL Zone", group="Zones")
showLHZone = input(true, title="Show LH Zone", group="Zones")
showHHZone = input(true, title="Show HH Zone", group="Zones")
showLLZone = input(true, title="Show LL Zone", group="Zones")

emaLength = input(200, title="EMA Length", group="EMA Settings")
atrLength = input(14, title="ATR Length", group="Trailing Stop")
atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop")

// Function to identify supply and demand zones
getZones(src, len, mult) =>
    base = request.security(syminfo.tickerid, "D", close)
    upper = request.security(syminfo.tickerid, "D", high)
    lower = request.security(syminfo.tickerid, "D", low)
    multiplier = request.security(syminfo.tickerid, "D", mult)
    zonetype = base + multiplier * len
    zone = src >= zonetype
    [zone, upper, lower]

// Identify supply and demand zones
[supplyZone, _, _] = getZones(close, high[1] - low[1], 1)
[demandZone, _, _] = getZones(close, high[1] - low[1], -1)

// Plot supply and demand zones
bgcolor(supplyZone ? color.new(color.red, 80) : na)
bgcolor(demandZone ? color.new(color.green, 80) : na)

// EMA with Linear Weighted method
ema = ta.ema(close, emaLength)

// Color code EMA based on its relation to candles
emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0)

// Plot EMA
plot(ema, color=emaColor, title="EMA")

// Entry Signal Conditions after the third candle
longCondition = ta.crossover(close, high[1]) and bar_index >= 2
shortCondition = ta.crossunder(close, low[1]) and bar_index >= 2

// Trailing Stop using ATR
atrValue = ta.atr(atrLength)
trailStop = close - atrMultiplier * atrValue

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("TrailStop", from_entry="Buy", loss=trailStop)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("TrailStop", from_entry="Sell", loss=trailStop)

// Plot Entry Signals
plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar)
plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar)

// Plot Trailing Stop
plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop")

// Plot HH, LL, LH, and HL zones
plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar)
plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)