Стратегия ловца дна

Автор:Чао Чжан, Дата: 2024-02-06 09:26:54
Тэги:

img

Обзор

Стратегия Bottom Hunter - это краткосрочная торговая стратегия для криптовалют.

Принцип стратегии

Эта стратегия сочетает в себе несколько технических индикаторов для определения дна. В частности, она использует индикатор MACD для оценки сигналов обратного движения вниз, индикатор RSI для определения состояния перепроданности и полосы Боллинджера для определения, находится ли цена ниже нижней рельсы. Сигнал покупки генерируется при выполнении всех условий.

Во-первых, стратегия использует дивергенцию MACD для оценки дна. Так называемая дивергенция означает, что цена достигает нового минимума, в то время как индикатор MACD не достигает нового минимума. Эта ситуация представляет собой ослабление объема торговли и обычно предвещает неминуемое изменение тренда.

Во-вторых, стратегия требует, чтобы показатель RSI был ниже 31.1.

Наконец, стратегия требует, чтобы цена закрытия находилась ниже средней рельсы полос Боллинджера, что указывает на то, что цена упала ниже нормального диапазона, что обеспечивает лучшую возможность для покупки.

Когда все вышеперечисленные условия выполнены одновременно, стратегия генерирует сигнал покупки и устанавливает позицию.

Анализ преимуществ

Стратегия "Охотников за дном" имеет следующие преимущества:

  1. Использование нескольких показателей для определения дна обеспечивает точность идентификации дна
  2. Использование дивергенции MACD для оценки сигналов реверсии является опытным методом торговли
  3. Оценивая как перепродажи, так и аномалии, можно избежать риска ложных прорывов.
  4. Консервативный контроль позиций, создание позиций только в ключевых точках, избегает чрезмерной торговли

Анализ рисков

Эта стратегия также сопряжена с некоторыми рисками:

  1. Рынок может упасть дальше без своевременного остановки потерь
  2. Сочетание нескольких условий для оценки дна может пропустить дно в некоторых сценариях
  3. Ручное определение таких параметров, как пороги RSI, может повлиять на эффективность стратегии

В ответ на вышеперечисленные риски для оптимизации можно использовать отслеживание стоп-потери в режиме реального времени, регулирование диапазонов параметров и т. д.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих направлениях:

  1. Усиление адаптивного механизма стоп-лосса для гибкой корректировки позиции стоп-лосса на основе волатильности рынка
  2. Испытать и оптимизировать критерии определения сигнала покупки для определения оптимальных параметров
  3. Увеличить алгоритмы машинного обучения для автоматической идентификации параметров и правил торговли
  4. Добавить модуль оценки тренда, чтобы избежать выхода на консолидирующие рынки во время тренда на рынках
  5. Включить дополнительные показатели, такие как изменение объема, чтобы улучшить идентификацию дна

Резюме

Стратегия Bottom Hunter покупает на ключевые дно, чтобы достичь избыточной доходности. Разум для определения дна является надежным, в то время как объединяет несколько условий фильтрации, чтобы избежать ложных сигналов. С правильной настройкой параметров и контролем стоп-лосса, эта стратегия может хорошо работать в краткосрочной криптовалютной торговле.


/*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)


Больше