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

価格とボリュームブレイク購入戦略

作者: リン・ハーンチャオチャン,日付: 2024-05-17 14:54:13
タグ:SMA

img

概要

価格とボリュームブレイク購入戦略 (Price and Volume Breakout Buy Strategy) は,特定の範囲のキャンドルストークで同時価格とボリュームブレイクを検出することによって購入機会を特定するために設計された取引戦略である.この戦略は,まず価格とボリュームの両方の審査ウィンドウとして特定の数のキャンドルストークを採用する.これらの値はブレイクアウト条件を特定するためのベンチマークとして使用される.閉値と取引量が既定のウィンドウ内で観測された最大値を上回ったときに取引が開始される.価格は指定された移動平均値以上で,トレンドインジケーターとして機能し,すべての取引が支配的な市場トレンドに準拠することを保証する.

戦略原則

  1. 価格ブレイク期とボリュームブレイク期を調査期間として設定する.
  2. 最低価格と最高価格を取得します.
  3. 取引量ブレイク期間の内 最大の取引量を取得します
  4. 閉じる価格が前期最高価格より高く,取引量が前期最高取引量より高く,閉じる価格がトレンドライン長さの単純な移動平均値 (SMA) より高く,現在オープン取引がない場合,注文方向がショートに設定されていない場合は,ロングに行くことを開始します.
  5. 閉じる価格が 5 日連続でトレンドライン長さの SMA より低い場合,すべてのロングポジションを閉じる.
  6. 閉じる価格が前期最低価格より低く,取引量が前期最高取引量より高く,閉じる価格がトレンドライン長さのSMAより低く,現在オープンな取引がなく,オーダー方向が長くは設定されていない場合は,ショートに行くことを開始します.
  7. 閉じる価格が 5 日連続でトレンドライン長さの SMA より高い場合は,すべてのショートポジションを閉じる.

戦略 の 利点

  1. 価格とボリュームのブレイクが 買い・売る信号として使えば 傾向の変化を よりよく確認できます
  2. ポジションを開く前に,価格が長期SMA以上または下にあるかどうかを確認することで,取引が主要市場動向に沿っていることが確認されます.
  3. 閉じるシグナルとして,連続して数日間SMAを横断する閉じる価格を設定することで,トレンドの終焉を効果的に把握できます.
  4. ビットコインやイーサリアムなどの不安定な資産に適しており,市場の価格や取引量の急激な変化を利用して利益を得ることができます.

戦略リスク

  1. 波動性が低い市場や明らかな傾向がない市場では,この戦略は頻繁に取引を促し,取引コストを増加させる可能性があります.
  2. S&P500指数のような不安定性が低い市場では,この戦略の効果は仮想通貨市場ほど重要ではないかもしれません.
  3. この戦略は,ほとんどの取引がより長い保持期間を持つ傾向があるため,より長いタイムフレームで取引信号を少なく生成する可能性があります.

戦略の最適化方向

  1. 価格ブレイク期間の長さとボリュームブレイク期間の長さを,異なる資産の変動特性に適応するために,異なる市場の特徴に応じて調整する.
  2. 傾向判断の正確性を向上させるために,指数的な移動平均値,MACDなど,他の傾向確認指標を使用してみてください.
  3. ストップ・ロスのレベルを設定し,単一の取引のリスクを減らすためにポジションを動的に調整するなどのリスク管理措置を戦略に組み込む.
  4. 長期保持期間のある取引では,すでに得られた利益をより良く保護するために,トレーリングストップ戦略を追加することを検討してください.

概要

価格とボリュームブレイク・バイ・ストラテジーは,非常に不安定な市場に適したトレンドフォローする戦略である.価格とボリュームブレイクの両方を考慮し,トレンドフィルターとして長期SMAを組み合わせることで,この戦略は強い市場での取引機会をよりうまく把握することができる.しかし,この戦略は明らかなトレンドや低い波動性のない市場で不具合なパフォーマンスを発揮し,頻繁な取引のリスクに直面する可能性があります.したがって,実践的な応用では,安定性と収益性を向上させるために,異なる市場特性と個人的な取引スタイルに応じて戦略を適切に最適化し調整する必要があります.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("Price and Volume Breakout Buy Strategy [TradeDots]", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 70, commission_type = strategy.commission.percent, commission_value = 0.01)

input_price_breakout_period = input.int(60, "Price Breakout Period")
input_volume_breakout_period = input.int(60, "Volume Breakout Period")
input_trendline_legnth = input.int(200, "Trendline Length")
input_order_direction = input.string("Long", options = ["Long", "Short", "Long and Short"], title = "Order Direction")

price_highest = ta.highest(input_price_breakout_period)
price_lowest = ta.lowest(input_price_breakout_period)
volume_highest = ta.highest(volume, input_volume_breakout_period)

// Long Orders
if close > price_highest[1] and volume > volume_highest[1] and close > ta.sma(close, input_trendline_legnth) and strategy.opentrades == 0 and input_order_direction != "Short"
    strategy.entry("Long", strategy.long)
    // line.new(bar_index[input_price_breakout_period], price_highest[1], bar_index, price_highest[1], color = #9cff87, width = 2)
    // label.new(bar_index,low, "🟢 Breakout Buy", style = label.style_label_up, color = #9cff87)

// Close when price is below moving average for 5 consecutive days
if close < ta.sma(close, input_trendline_legnth) and close[1] < ta.sma(close, input_trendline_legnth) and close[2] < ta.sma(close, input_trendline_legnth) and close[3] < ta.sma(close, input_trendline_legnth) and close[4] < ta.sma(close, input_trendline_legnth) and strategy.opentrades.size(strategy.opentrades - 1) > 0
    strategy.close("Long")
    // label.new(bar_index, high, "🔴 Close Position", style = label.style_label_down, color = #f9396a, textcolor = color.white)

// Short Orders
if close < price_lowest[1] and volume > volume_highest[1] and close < ta.sma(close, input_trendline_legnth) and strategy.opentrades == 0 and input_order_direction != "Long"
    strategy.entry("Short", strategy.short)
    // line.new(bar_index[input_price_breakout_period], price_lowest[1], bar_index, price_lowest[1], color = #f9396a, width = 2)
    // label.new(bar_index,high , "🔴 Breakout Sell", style = label.style_label_down, color = #f9396a, textcolor = color.white)

// Close when price is above moving average for 5 consecutive days
if close > ta.sma(close, input_trendline_legnth) and close[1] > ta.sma(close, input_trendline_legnth) and close[2] > ta.sma(close, input_trendline_legnth) and close[3] > ta.sma(close, input_trendline_legnth) and close[4] > ta.sma(close, input_trendline_legnth) and strategy.opentrades.size(strategy.opentrades - 1) < 0
    strategy.close("Short")
    // label.new(bar_index, low, "🟢 Close Position", style = label.style_label_up, color = #9cff87)

plot(ta.sma(close, input_trendline_legnth), color = color.white, linewidth = 2)
plotcandle(open, high, low, close, title='Candles', color = (close > ta.sma(close, input_trendline_legnth) ? #9cff87 : #f9396a), wickcolor=(close > ta.sma(close, input_trendline_legnth) ? #9cff87 : #f9396a), force_overlay = true)



関連性

もっと