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

デルタ・ボリュームとフィボナッチレベル 取引戦略

作者: リン・ハーンチャオチャン開催日:2024年5月15日 10:45:58
タグ:

img

概要

この戦略はデルタ・ボリュームとフィボナッチリトレースメントに基づいた取引戦略である.入口と出口点を決定するためにフィボナッチリトレースメントラインを使用して,購入者と売り手のボリュームを比較することによって,市場傾向を決定する.買い手のボリュームが売り手のボリュームを超えて価格が61.8%のフィボナッチリトレースメントラインを突破すると,ロングポジションに入ります.売り手のボリュームが買い手のボリュームを超えて価格が38.2%のフィボナッチリトレースメントラインを下回ると,ポジションを閉じる.

戦略原則

  1. 指定された期間の買い手と売り手の量を計算し,配列に保存します.
  2. デルタ・ボリュームを計算します 買い手のボリュームを売り手のボリュームをマイナスします
  3. 指定された期間の最高値と最低値を計算し,それらの値に基づいて38.2%と61.8%のフィボナッチ回転線を計算します.
  4. デルタ・ボリュームが0以上 (買い手のボリュームが売り手のボリュームより大きい) で,閉じる価格が61.8%のフィボナッチリトレイチェンラインより高くなった場合,ロングポジションを開きます.
  5. デルタボリュームが0未満 (売り手のボリュームが買い手のボリュームより大きい) で,閉じる価格は38.2%のフィボナッチリトレースラインを下回ると,ポジションを閉じる.

戦略 の 利点

  1. 市場動向をより包括的に判断できるのです
  2. フィボナッチ回転線を 入口と出口ポイントとして使うことは 明確な技術的な支持があります
  3. デルタ・ボリューム指標は市場における供給と需要の関係を反映できる.これは主要な指標です.
  4. パラメータは調整可能で,異なる市場や取引種に適用できます.

戦略リスク

  1. 変動する市場では,頻繁に入入出が トランザクションコストを上げることがあります.
  2. 市場が急激に変動すると 価格がフィボナッチ回転線を突破して 最良のエントリーと出口点を 見逃してしまう可能性があります
  3. 戦略は計算のために過去のデータに依存する.新規にリストされている取引品種やデータ不足の状況では,戦略の有効性に影響を与える可能性があります.

戦略の最適化方向

  1. 他の技術指標,例えば移動平均値,RSIなども導入することを検討し,動向とエントリー/エグジットポイントを確認する.
  2. 異なる市場や取引品種では,デルタ・ボリュームとフィボナッチ・リトレースメントの計算期間とパラメータを最適化します.
  3. ポジションに入ると リスクをコントロールし 利益を確保するために ストップ・ロスを設定します
  4. 戦略を動的に調整するために,Fear & Greed インデックスなどの市場情勢指標と組み合わせます.

概要

デルタ・ボリュームとフィボナッチ・リトラセメントを組み合わせることで,この戦略は,市場の主要なトレンドを把握するために,トレンドが形成されるときに入力し,トレンドが逆転する場合に終了する.しかし,振動する市場で頻繁な取引のリスクに直面する可能性があるため,他の指標とリスク管理措置と最適化する必要があります.全体として,この戦略は考え方が明確で,論理的に厳格で,さらなる開発と適用のための基本的な戦略として使用できます.


/*backtest
start: 2023-05-09 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Delta Volume with Fibonacci Levels Strategy", overlay=true)

// Input pour la période de calcul du volume et du delta
N = input(14, title="Période du Delta Volume")
fibLength = input(21, title="Fibonacci Lookback Period")

// Choix de la barre pour l'entrée et la sortie des trades
entryPriceType = input.string("close", title="Entry Price Type", options=["open", "close"])
exitPriceType = input.string("close", title="Exit Price Type", options=["open", "close"])

// Correction des dates de début et de fin pour le backtest
startDate = input(defval = timestamp("2021-01-01"), title = "Start Date")
endDate = input(defval = timestamp("2022-01-01"), title = "End Date")

// Calcul des volumes des acheteurs et des vendeurs
buyerVolume = array.new_float()
sellerVolume = array.new_float()

// Mise à jour des volumes à chaque bougie
buyVol = close > open ? volume : 0
sellVol = close < open ? volume : 0
array.unshift(buyerVolume, buyVol)
array.unshift(sellerVolume, sellVol)

// Gardez seulement les N dernières valeurs pour le delta volume
if array.size(buyerVolume) > N
    array.pop(buyerVolume)
if array.size(sellerVolume) > N
    array.pop(sellerVolume)

// Calcul du delta de volume
sumBuyerVolume = array.sum(buyerVolume)
sumSellerVolume = array.sum(sellerVolume)
deltaVolume = sumBuyerVolume - sumSellerVolume

// Calcul du plus haut et du plus bas pour Fibonacci
highestPrice = ta.highest(high, fibLength)
lowestPrice = ta.lowest(low, fibLength)

// Fibonacci Levels
fib382 = lowestPrice + (highestPrice - lowestPrice) * 0.5
fib618 = lowestPrice + (highestPrice - lowestPrice) * 0.786


// Vérification des dates pour le backtest
bool isInDateRange = true

// Conditions d'entrée et de sortie
entryPrice = entryPriceType == "open" ? open : close
exitPrice = exitPriceType == "open" ? open : close

// Acheter quand le volume des acheteurs dépasse celui des vendeurs, le prix est au-dessus du niveau 61.8% de Fibonacci
if isInDateRange and deltaVolume > 0 and entryPrice > fib618
    strategy.entry("Buy", strategy.long)

// Vendre quand le volume des vendeurs dépasse celui des acheteurs, le prix est en dessous du niveau 38.2% de Fibonacci
if isInDateRange and deltaVolume < 0 and exitPrice < fib382
    strategy.close("Buy")

// Affichage des niveaux de Fibonacci et du delta de volume
plot(fib382, color=color.red, title="Fibonacci 38.2%")
plot(fib618, color=color.green, title="Fibonacci 61.8%")
plot(deltaVolume, color=deltaVolume > 0 ? color.green : color.red, title="Delta Volume")


もっと