資源の読み込みに... 荷物...

ダイナミック・ウェーブ・トレンドとフィボナッチ統合量的な取引戦略

作者: リン・ハーンチャオチャン, 日付: 2025-01-17 15:09:01
タグ:RSIWTFIBエイマSMAHLC3

 Dynamic WaveTrend and Fibonacci Integrated Quantitative Trading Strategy

概要

WaveTrendは,WaveTrend指標,フィボナッチリトレースメントレベル,RSI指標を組み合わせた包括的な定量的な取引戦略である.この戦略は,複数の技術指標の調整を通じて市場動向と価格変動における最適な取引機会を求めている.動的調整を通じて市場の動向を継続的に追跡し,複数の信号確認を通じて取引の精度を向上させる.

戦略原則

この戦略は,いくつかの基本的な要素に基づいています. 1. WaveTrend インディケーター: 指数的な移動平均値 (EMA) と標準偏差値 (Standard deviation) を計算して動的変動チャネルを構築する.高速線 (WT1) がスローライン (WT2) を横断すると取引信号が生成される. 2. フィボナッチリトレースメントレベル: この戦略は,価格の高低を動的に計算し更新し,3つのキーフィボナッチリトレースメントレベルを38.2%,50%および61.8%で描画します. 3. RSI インディケーター: 14 期間の相対強度指数 (RSI) を用いて,市場の過剰購入および過剰販売状況を確認します. 4. 複数の信号の確認:この戦略は,WaveTrendクロスオーバー信号,RSIオーバーバイト/オーバーセール信号,フィボナッチレベルとの価格関係を含む特定の条件の同時満足を必要とする.

戦略 の 利点

  1. 高い信号信頼性:複数の技術指標の調整により,誤った信号の影響を効果的に軽減します.
  2. 総合的なリスク管理: 各取引のリスクを効果的に管理するために,ポイントベースのストップ・ロストとテイク・プロフィートメカニズムを実施する.
  3. 強力な適応性:戦略は,異なる市場環境に適応するためにフィボナッチレベルを動的に調整することができます.
  4. 明確なシグナル: 取引シグナルは明確で,理解し実行しやすい.

戦略リスク

  1. 市場変動リスク: ストップ・ロスは,非常に不安定な市場では,過度に緩やかになる可能性があります.
  2. シグナル遅延:移動平均値やその他の技術指標の使用により,シグナルには一定の遅延がある可能性があります.
  3. 資金管理リスク: 固定ストップ・ロースとテイク・プロフィートのレベルは,すべての市場環境に適していない可能性があります.

戦略の最適化方向

  1. ダイナミックストップ・ロストとテイク・プロフィート: ATR指標に基づくダイナミックメカニズムに固定ポイントストップ・ロストとテイク・プロフィートを変更することを提案します.
  2. 市場環境フィルタリング: 異なる市場環境における戦略パラメータを調整するためにトレンド強度フィルターを追加します.
  3. シグナル最適化: 取引シグナルの確認を支援するためにボリューム指標を追加することを検討します.
  4. パラメータ最適化: WaveTrend と RSI パラメータを最適化して,異なる取引ツールとタイムフレームに適応することを推奨します.

概要

この戦略は,明確な論理を備えた設計された定量的な取引戦略である.複数の技術指標を組み合わせることで,リスクを制御しながら市場機会を効果的に把握することができる.この戦略の主な利点は,信頼性の高いシグナルシステムと包括的なリスク制御メカニズムにある.提案された最適化方向性によって,戦略の安定性と適応性がさらに向上することができる.


/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy(title="Şinasi Özel Tarama", shorttitle="Şinasi Tarama", overlay=true)

// LazyBear WaveTrend Göstergesi
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")

ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

wt1 = tci
wt2 = ta.sma(wt1, 4)

plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red)
plot(osLevel2, color=color.green)

plot(wt1, color=color.green)
plot(wt2, color=color.red)
plot(wt1 - wt2, color=color.blue, style=plot.style_area, transp=80)
plot(ta.crossover(wt1, wt2) ? wt2 : na, color=color.black, style=plot.style_circles, linewidth=3)
plot(ta.crossover(wt1, wt2) ? wt2 : na, color=(wt2 - wt1 > 0 ? color.red : color.lime), style=plot.style_circles, linewidth=2)
barcolor(ta.crossover(wt1, wt2) ? (wt2 - wt1 > 0 ? color.aqua : color.yellow) : na)

// Fibonacci seviyelerini çizmek için yeni en yüksek ve en düşük fiyatları her yeni mumda güncelleme
var float fibLow = na
var float fibHigh = na

// Fibonacci seviyelerini yeniden hesapla
if (na(fibLow) or na(fibHigh))
    fibLow := low
    fibHigh := high
else
    fibLow := math.min(fibLow, low)
    fibHigh := math.max(fibHigh, high)

fib38 = fibLow + 0.382 * (fibHigh - fibLow)
fib50 = fibLow + 0.5 * (fibHigh - fibLow)
fib618 = fibLow + 0.618 * (fibHigh - fibLow)

plot(fib38, color=color.orange, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.purple, linewidth=1, title="Fibonacci 50%")
plot(fib618, color=color.blue, linewidth=1, title="Fibonacci 61.8%")

// RSI hesaplama
rsiPeriod = input(14, title="RSI Length")
rsiValue = ta.rsi(close, rsiPeriod)
plot(rsiValue, color=color.blue, title="RSI")

// Buy ve Sell sinyalleri

// Buy sinyali
buyCondition = rsiValue < 30 and close < fib38 and close < fib50 and close < fib618 and ta.crossover(wt1, wt2)
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")

// Sell sinyali
sellCondition = rsiValue > 70 and close > fib38 and close > fib50 and close > fib618 and ta.crossunder(wt1, wt2)
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strateji giriş ve çıkış
// Buy (Alım) işlemi
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Sell (Satım) işlemi
if (sellCondition)
    strategy.entry("Sell", strategy.short)

// TP (Take Profit) seviyesinin 3500 pip olarak ayarlanması
// SL (Stop Loss) seviyesinin 7000 pip olarak ayarlanması

pipValue = syminfo.mintick * 10 // Pip değeri

// Buy TP (Alım TP) seviyesi
buyTPCondition = buyCondition
strategy.exit("Buy Exit", "Buy", limit=close + 300 * pipValue, stop=close - 700 * pipValue)

// Sell TP (Satım TP) seviyesi
sellTPCondition = sellCondition
strategy.exit("Sell Exit", "Sell", limit=close - 3500 * pipValue, stop=close + 7000 * pipValue)


関連性

もっと