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

ベクトルキャンドルベースのチャネルブレークアウトとカスタム ChoCH 戦略

作者: リン・ハーンチャオチャン開催日:2024年3月29日 14:45:57
タグ:

img

概要

この戦略は,ベクトルキャンドルの概念と伝統的なチャネルブレイクアウトとチョコレートソース (ChoCH) パターン認識を組み合わせ,市場のブレイクアウト動きを捕捉する.この戦略は,閉じる価格を前のキャンドルの高値と低値と比較し,ボリューム増幅ベクトルキャンドルを使用し,ノイズをフィルタリングするために一定の数の確認キャンドルを使用することによってシグナルを確認する.

戦略原則

  1. 過去の数個のキャンドルの平均ボリュームを計算し,ボリューム増幅倍数に基づいて 4つの異なる色のベクトルキャンドル (赤,緑,青,紫) を定義します.
  2. 閉じる価格が前のキャンドルの低値より低く,赤色ベクトルキャンドルであれば,赤色 ChoCH信号として識別し,閉じる価格が前のキャンドルの高値より高く,緑色ベクトルキャンドルであれば,緑色 BOS信号として識別します.
  3. 確認キャンドルの一定数以内に,赤色ベクトルキャンドルの発生数が設定された値に達した場合,赤色 ChoCH信号を確認し,緑色ベクトルキャンドルの発生数が設定された値に達した場合,緑色 BOS信号を確認する.
  4. 赤い ChoCH 信号が確認された場合,ロング ポジションを開き,緑の BOS 信号が確認された場合,ポジションを閉じる.

戦略 の 利点

  1. ベクトルキャンドルを従来のチャネルブレイクとCHOCHパターンと組み合わせ,信号の信頼性を向上させる.
  2. 確認キャンドルメカニズムを導入し 効果的にノイズと偽信号をフィルタリングします
  3. 矢量キャンドルの色によって信号を区別し,より直感的で簡単に識別できます.
  4. 調整可能なパラメータは柔軟性を提供し,異なる市場状況や取引スタイルに基づいて最適化することができます.

戦略リスク

  1. 不安定な市場では 頻繁にブレイクアウトや引き下げが 沢山の誤った信号を出し 取引を損なう可能性があります
  2. 確認キャンドルの数の設定が正しくない場合,信号の遅延または早期入荷が起こる可能性があります.
  3. 基本的要素を無視しながら 単に技術指標に頼ると 戦略は予期せぬリスクにさらされる可能性があります
  4. この戦略にはストップ・ロスのメカニズムがないため,急激な市場逆転時に重大な損失を伴う可能性がある.

戦略の最適化方向

  1. トレンド確認指標 (移動平均など) を導入し,ブレイクシグナルが出た後にトレンド方向を確認し,信号の質を向上させる.
  2. 波動的な市場では,チャネル内の長距離と短距離トリガー条件を設定するような範囲取引戦略を組み込むことを検討します.
  3. 確認キャンドルの数を最適化して,効率的なノイズフィルタリングと過剰な遅延を避ける間に適切なバランスを求めます.
  4. 個々の取引リスクと全体的な引き上げを制御するために,合理的なストップ・ロースとテイク・プロフィートの規則を設定する.
  5. 他の技術指標や市場情勢指標と組み合わせることで,取引決定の基礎を高めます.

結論

この戦略は,ベクトルキャンドルをクラシックなチャネルブレイクアウトとChoCHパターンと革新的に組み合わせ,色の差異化と確認キャンドルメカニズムを通じて信号の信頼性と認識性を向上させる.この戦略の利点は,明確なルール,直感的な信号,そして一定の柔軟性および最適化可能性にあります.しかし,この戦略には,不安定な市場で劣悪なパフォーマンス,市場のトレンドを十分に把握できず,ストップ・ロストとテイク・プロフィート管理の欠如など,いくつかの制限とリスクもあります.将来,戦略は,傾向の確認,取引範囲,パラメータ最適化,リスク管理,および他の側面の観点から精製され,より強力な取引パフォーマンスを達成することができます.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Custom ChoCH and BOS Strategy with Vector Candles", overlay=true)

// Input Parameters
length = input(10, title="Lookback Length for Volume")
volMultiplier = input(2.0, title="Volume Multiplier for Vector Candles")
confirmationCandles = input(3, title="Confirmation Candles")

// Calculate the average volume of the last 'length' candles
avgVol = sma(volume, length)

// Vector Candle Definitions
vectorCandleRed = (close < open) and (volume > avgVol * volMultiplier) ? 1.0 : 0.0
vectorCandleGreen = (close > open) and (volume > avgVol * volMultiplier) ? 1.0 : 0.0
vectorCandleBlue = (close < open) and (volume > avgVol * 1.5) ? 1.0 : 0.0 // 150% volume for blue
vectorCandlePurple = (close > open) and (volume > avgVol * 1.5) ? 1.0 : 0.0 // 150% volume for purple

// Detecting BOS and ChoCH
isRedChoCH = vectorCandleRed > 0 and (close < low[1]) // Red ChoCH
isGreenBOS = vectorCandleGreen > 0 and (close > high[1]) // Green BOS

// Confirmation Logic
redChoCHConfirmed = (sum(vectorCandleRed, confirmationCandles) >= 2) ? 1.0 : 0.0
greenBOSConfirmed = (sum(vectorCandleGreen, confirmationCandles) >= 2) ? 1.0 : 0.0

// Entry Conditions
buyCondition = redChoCHConfirmed > 0
sellCondition = greenBOSConfirmed > 0

// Strategy Execution
if (buyCondition)
    strategy.entry("Buy", strategy.long)
if (sellCondition)
    strategy.close("Buy")

// Plotting Vector Candles and Signals
plotshape(series=isRedChoCH, title="Red ChoCH Signal", location=location.belowbar, color=color.red, style=shape.circle, text="Red ChoCH")
plotshape(series=isGreenBOS, title="Green BOS Signal", location=location.abovebar, color=color.green, style=shape.circle, text="Green BOS")

// Plotting Vector Candles for Visualization
plotchar(vectorCandleRed > 0, title="Vector Candle Red", location=location.belowbar, color=color.red, char='R', text="Red")
plotchar(vectorCandleGreen > 0, title="Vector Candle Green", location=location.abovebar, color=color.green, char='G', text="Green")
plotchar(vectorCandleBlue > 0, title="Vector Candle Blue", location=location.belowbar, color=color.blue, char='B', text="Blue")
plotchar(vectorCandlePurple > 0, title="Vector Candle Purple", location=location.abovebar, color=color.purple, char='P', text="Purple")


もっと