ボトムハンター戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-06 09:26:54
タグ:

img

概要

ボトムハンター戦略 (Bottom Hunter strategy) は,仮想通貨の短期取引戦略である.この戦略は,ダウントレンド中にボトムを認識することによって適切なエントリーポイントを特定する.

戦略原則

この戦略は底盤を特定するために複数の技術指標を組み合わせます.特に,底部逆転信号を判断するためにMACD指標,過売状態を決定するためにRSI指標,価格が下線以下にあるかどうかを決定するためにボリンジャーバンドを使用します.すべての条件が満たされると購入信号が生成されます.

まず,戦略は底を判断するためにMACD分散を使用する.いわゆる分散は,MACD指標が新しい低点を作らない間,価格が新しい低点を作ることを意味します.この状況は取引量の弱まりを表し,通常は差し迫ったトレンド逆転を予告します.

第二に,戦略は,RSI指標が31.1以下であることを要求する.

最後に,ストラテジーは,閉じる価格がボリンジャー帯の中央線を下回ることを要求します.これは価格が通常の範囲を下回ったことを示し,それによって購入する機会がより良くなります.

上記の条件がすべて同時に満たされた場合,戦略は購入信号を生成し,ポジションを確立します.

利点分析

ボトムハンター戦略には以下の利点があります

  1. 底部を特定するために複数の指標を使用することで,底部の識別の正確性が確保されます
  2. 逆転シグナルを判断するためにMACDダイバージェンスを利用することは,経験豊富な取引技術です.
  3. 過剰売りと異常を判断すると 誤ったブレイクのリスクが回避されます
  4. 保守的なポジションコントロール,主要ポイントでのポジションのみを構築し,過剰な取引を避ける

リスク分析

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

  1. 適切なストップ・ロスはなければ 市場はさらに落ちる可能性があります
  2. 底辺を判断するための複数の条件の組み合わせは,いくつかのシナリオで底辺を見逃す可能性があります.
  3. RSI 限界値などのパラメータの手動決定は戦略の業績に影響を与える可能性があります

上記のリスクに対応して,リアルタイムストップ損失追跡,パラメータ範囲の調整等を最適化するために使用できます.

オプティマイゼーションの方向性

戦略は以下の方向で最適化できる:

  1. 適応性のあるストップ・ロスのメカニズムを強化し,市場の変動に基づいてストップ・ロスのポジションを柔軟に調整する
  2. 最適なパラメータを特定するために購入信号決定の基準をテストし最適化します
  3. マシン学習アルゴリズムを拡張し,パラメータと取引規則を自動的に識別する
  4. トレンド市場中に統合市場への参入を避けるためにトレンド判断モジュールを追加する
  5. ボトム識別を改善するために,ボリューム変化のような追加の指標を組み込む

概要

ボトムハンター戦略は,過剰なリターンを達成するためにキーボトムで購入する.ボトムを決定する論理は堅牢であり,偽信号を避けるために複数のフィルター条件を組み合わせている.適切なパラメータチューニングとストップ損失制御により,この戦略は短期仮想通貨取引で良好なパフォーマンスを発揮することができます.


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

//@version=5
strategy("MACD Divergence Strategy", shorttitle="Strategy: MACD Dive", overlay=true)

// MACD设置
fastLength = input.int(12, "Fast Length")
slowLength = input.int(26, "Slow Length")
signalSmoothing = input.int(9, "Signal Smoothing")

[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// 计算99日EMA均线
ema99 = ta.ema(close, 99)

// 计算RSI
rsiLength = input.int(14, title="RSI Length")
rsi = ta.rsi(close, rsiLength)

// 计算布林带中轨
length = input.int(20, "BB Length")
src = input(close, "Source")
mult = input.float(2.0, "BB StdDev")
basis = ta.sma(src, length)

// 买入筛选条件
priceLow = ta.lowest(low[1], 60)
macdLow = ta.lowest(macdLine[1], 60)
divergence = low < priceLow and macdLine > macdLow

allHighsBelowEma99 = true
for i = 0 to 14
    if high[i] > ema99
        allHighsBelowEma99 := false

rsiBelow = rsi < 31.1
priceDifference = (high - low) / low * 100

buySignal1 = divergence and allHighsBelowEma99 and rsiBelow
buySignal2 = high < ema99 and priceDifference >= 3 and close < open and high < basis 
buySignal3 = buySignal1 or buySignal2

// 定义一个变量来存储买入时的价格
var float buyPrice = na

// 买入逻辑
if buySignal3
    buyPrice := close // 存储买入时的价格
    strategy.entry("Buy", strategy.long)

// 止盈和止损条件
longTakeProfit = buyPrice * 1.1 // 止盈设为买入价格的1.2倍
longStopLoss = buyPrice * 0.98// 止损设为买入价格的0.99倍

// 应用止盈和止损
strategy.exit("Exit", "Buy", limit=longTakeProfit, stop=longStopLoss)
// 绘制买入信号
plotshape(series=buySignal3, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)


もっと