ゴールデンチャネル反転戦略


作成日: 2023-12-07 15:15:26 最終変更日: 2023-12-07 15:15:26
コピー: 0 クリック数: 653
1
フォロー
1619
フォロワー

ゴールデンチャネル反転戦略

概要

ゴールドチャネル反転策 (Gold channel reversal strategy) は,ゴールドの分割線と比較的強い指標 ((RSI)) に基づく量的な取引策である.この戦略は,ゴールドチャネル理論と超買い超売り指標を組み合わせて,大周期的なトレンドの下で反転操作を行い,短期間に利益を期待する.

戦略原則

戦略は,まず,黄金の分割線の重要な2つの価格領域である0.618倍高点と0.618倍低点を計算します. 価格がこれらの2つの領域に近づくと,価格が逆転する可能性があると私たちは考えます.

さらに,戦略は,RSI指標を計算して,超買超売状態を判断する. RSIが30を下回ると超売状態,70を下回ると超買状態である. この2つの状態は,価格が逆転する可能性があることを意味する.

この2つの条件を総合して,戦略は,購入条件は,閉店価格の0.618倍低点とRSI指標が30以下である; 販売条件は,閉店価格の0.618倍高点とRSI指標が70以上である.

買入シグナルが誘発された後,戦略は,そのポイントの市場価格でポジションを開く. 売出シグナルが誘発された後,戦略は,そのポイントの市場価格でポジションを開く. さらに,戦略は,価格が有利な方向に移動した後に一定比率で停止し,価格が不利な方向に移動した後に一定比率で停止する.

戦略的優位分析

この戦略は,トレンドと逆転の要素を組み合わせ,大周期的なトレンドを考慮し,短周期的な逆転を利用して利益を得る.以下の利点があります.

  1. 黄金の分割線は,天然のサポート・レジスタンス属性を持ち,重要な価格領域を判断する有効なツールである.
  2. RSIは,超買いと超売れを判断し,反転の可能性を示唆する.
  3. 逆転の機会を逃さないように,空き信号をはっきりと作ってください.
  4. ストップ・ストップ・ストップ・ストラトジーを設定し,制御可能なリスクを設定します.

戦略的リスク分析

この戦略にはいくつかのリスクがあります.

  1. 大周期が反転しない場合,短周期反転が損失を招くリスクがある。大周期の傾向を拡大周期で判断することで回避できる。
  2. 逆転が起こらない場合,止損設定がトリガーされ,損失を伴う可能性があります. 止損範囲は適切に放宽できます.
  3. 資金援助の必要性があり, 転換期が長くなる可能性があります.

戦略最適化の方向性

この戦略は,以下の点で最適化できます.

  1. もっと歴史的なデータを収集し,黄金の分割線の範囲,RSIの超買い超売り線などの重要なパラメータをテストし,最適化して,実際の市場とより適合させる.

  2. 他の指標判断を加え,より強力な取引信号を形成する.例えば,K線形状,取引量変化など.

  3. 異なる取引品種の特徴に応じてパラメータを調整するか,ルールを最適化する.

  4. 自動ストップ戦略が追加され,ストップポジションを決定するためにリアルタイムで価格の変化を追跡します.

要約する

黄金通路逆転戦略は,トレンド要因と逆転要因を組み合わせて,ショートラインの利益を活用しながらリスクを制御する,推奨される量化戦略です. 最適化すると,より良いリターンを得ることが期待されます.

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

//@version=5
strategy("FBS Trade", overlay=true)

// Fibonacci seviyeleri
fibonacciLevels = input(0.618, title="Fibonacci Düzeltme Seviyesi")

// RSI ayarları
rsiLength = input(14, title="RSI Periyodu")
overboughtLevel = input(70, title="RSI Satış Sinyali Seviyesi")
oversoldLevel = input(30, title="RSI Alış Sinyali Seviyesi")

// Take Profit ve Stop Loss yüzdesi
takeProfitPercent = input(1, title="Take Profit Yüzdesi") / 100
stopLossPercent = input(1, title="Stop Loss Yüzdesi") / 100

// Fibonacci seviyelerini hesapla
highFibo = high * (1 + fibonacciLevels)
lowFibo = low * (1 - fibonacciLevels)

// RSI hesaplama
rsiValue = ta.rsi(close, rsiLength)

// Alış ve satış koşulları
buyCondition = close > lowFibo and rsiValue < 30
sellCondition = close < highFibo and rsiValue > overboughtLevel

// Take Profit ve Stop Loss seviyeleri
takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLong = strategy.position_avg_price * (1 - stopLossPercent)

takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
stopLossShort = strategy.position_avg_price * (1 + stopLossPercent)

// Alış ve satış işlemleri
if (buyCondition)
    strategy.entry("Buy", strategy.long)
if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Take Profit ve Stop Loss seviyeleri
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Close Buy", from_entry="Buy", limit=takeProfitLong, stop=stopLossLong)
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Close Sell", from_entry="Sell", limit=takeProfitShort, stop=stopLossShort)

// Sadece mumları ve buy/sell işlemlerini göster
plot(close, color=color.black, title="Close")

// Destek ve direnç bölgeleri
supportLevel = input(27, title="Fibonacci Destek Seviyesi")
resistanceLevel = input(200, title="Direnç Seviyesi")

hline(supportLevel, "Fibonacci Destek Seviyesi", color=color.green)
hline(resistanceLevel, "Direnç Seviyesi", color=color.red)

// Trend çizgileri
var line trendLine = na
if (ta.crossover(close, highFibo))
    trendLine := line.new(bar_index[1], highFibo[1], bar_index, highFibo, color=color.green, width=2)
if (ta.crossunder(close, lowFibo))
    trendLine := line.new(bar_index[1], lowFibo[1], bar_index, lowFibo, color=color.red, width=2)

// RSI ve Fibo'yu grafiğe çizme
hline(overboughtLevel, "RSI Satış Sinyali", color=color.red, linestyle=hline.style_dashed)
hline(oversoldLevel, "RSI Alış Sinyali", color=color.green, linestyle=hline.style_dashed)
plot(rsiValue, color=color.purple, title="RSI")

// 15 dakikalıkta 3 mumda bir alarm
is15MinBar = ta.change(time('15'), 1)
if (is15MinBar % 3 == 0)
    alert("15 dakikalıkta 3 mum geçti.")