Стратегии покупки и продажи, основанные на сигналах объемной цены и моделях свечей

SMA EMA
Дата создания: 2024-06-03 16:31:28 Последнее изменение: 2024-06-03 16:31:28
Копировать: 2 Количество просмотров: 572
1
Подписаться
1617
Подписчики

Стратегии покупки и продажи, основанные на сигналах объемной цены и моделях свечей

Обзор

Эта стратегия объединяет сигналы цены и объема торговли, а также уровень Фибоначского отступления, чтобы создать сигнал покупки и продажи в 15-минутных и 45-минутных временных рамках. Стратегия использует несколько движущихся средних (MA) в качестве показателей тенденции и движения, включая простые движущиеся средние (SMA) и индексные движущиеся средние (EMA). Кроме того, она использует уровень Фибоначского отступления в качестве потенциальной точки входа.

Стратегический принцип

  1. Вычисление быстрого МА ((по умолчанию 10) и медленного МА ((по умолчанию 30), когда быстрое МА выше медленного МА, показывает тенденцию к росту, и наоборот, показывает тенденцию к снижению.
  2. Расчет объема сделки MA ((по умолчанию 20), текущий объем сделки выше, чем объем сделки MA означает увеличение объема сделки, а наоборот - снижение объема сделки.
  3. Использование нескольких MA и EMA в качестве вспомогательных показателей, включая быстрые MA (по умолчанию 9), краткосрочные SMA (по умолчанию 10 и 60), и EMA (по умолчанию 3 и 7).
  4. Рассчитайте уровни фибоначевых отступлений ((0,47, 0,658 и 0,886)) как потенциальные точки поддержки и сопротивления.
  5. Когда кратковременный SMA ((60)) пересекается с линией точности ((на основе пересечения быстрых ЭМА и медленных ЭМА), образуется сигнал купить или продать.
  6. При пересечении быстрых MA ((9) и EMA ((7) образуется сигнал равновесия.

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

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

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

  1. Частые перекрестные сигналы могут привести к избыточному количеству сделок и потерям комиссионных в условиях нестабильных рынков.
  2. Стратегии, основанные на исторических данных, включая расчеты уровней МА и Фибоначчи, могут не быть вовремя адаптированы к резким изменениям рынка.
  3. Недостаточная оценка силы рыночных тенденций может привести к ошибочным сигналам в случае слабых тенденций.
  4. Параметры стратегии (например, цикл MA) должны быть оптимизированы в зависимости от различных рыночных условий, иначе это может повлиять на эффективность стратегии.

Направление оптимизации

  1. Внедрение индикаторов силы тренда (например, ADX), избегание торговли или более консервативные стратегии при слабом тренде.
  2. Оптимизация циклических параметров МА и ЭМА в соответствии с различными рыночными условиями и видами торгов.
  3. В сочетании с другими техническими показателями (например, RSI, MACD) для повышения надежности сигнала.
  4. Введение механизмов стоп-лосса и стоп-стоп для контроля рискованности отдельных сделок.
  5. Для рынка, находящегося в состоянии шока, следует рассмотреть более подходящие торговые стратегии (например, торговля в диапазоне).

Подвести итог

Стратегия генерирует сигналы о покупке и продаже в течение нескольких временных рамок, объединяя цены, объемы торгов и уровни фибоначевых отступлений. Преимущество стратегии заключается в том, что она учитывает несколько рыночных факторов в комплексе и использует несколько МА и ЭМА в качестве вспомогательных индикаторов. Однако стратегия может генерировать слишком много торговых сигналов на шокирующих рынках и зависит от индикаторов, рассчитанных на исторические данные, поэтому требуется дальнейшая оптимизация для повышения ее пригодности и надежности.

Исходный код стратегии
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Buy/Sell with Volume and Candlestick Signals", overlay=true)

// Fibonacci Retracement Levels
var float[] fibonacciLevels = array.new_float(5)
array.set(fibonacciLevels, 2, 0.47)
array.set(fibonacciLevels, 3, 0.658)
array.set(fibonacciLevels, 4, 0.886)

// Calculate Fibonacci Retracement Levels
fibonacciRetrace(highLevel, lowLevel) =>
    priceRange = highLevel - lowLevel
    retracementLevels = array.new_float(0)
    for i = 0 to array.size(fibonacciLevels) - 1
        level = highLevel - array.get(fibonacciLevels, i) * priceRange
        array.push(retracementLevels, level)
    retracementLevels

fibRetracementValues = fibonacciRetrace(high, low)
fibRetracement = ta.sma(close, 21)
plot(fibRetracement, color=color.purple, title="Fibonacci Retracement")

// Define inputs
fast_ma = input.int(title="Fast MA Period", defval=10)
short_sma_10 = input.int(title="Short SMA 10 Period", defval=10)
short_sma_60 = input.int(title="Short SMA 60 Period", defval=60)
slow_ma = input.int(title="Slow MA Period", defval=30)
ema1Length = input.int(title="EMA 1 Length", defval=3)
fast_ma_9 = input.int(title="Fast MA 9", defval=9)

// Define indicators
fast_ma_val = ta.sma(close, fast_ma)
short_sma_10_val = ta.sma(close, short_sma_10)
short_sma_60_val = ta.sma(close, short_sma_60)
slow_ma_val = ta.sma(close, slow_ma)
up_trend = fast_ma_val > slow_ma_val
down_trend = fast_ma_val < slow_ma_val
volume_up = volume > ta.sma(volume, 20)
volume_down = volume < ta.sma(volume, 20)

// Calculate accuracy values
fast_ema_val = ta.ema(close, fast_ma)
slow_ema_val = ta.ema(close, slow_ma)
ema1_val = ta.ema(close, ema1Length)
fast_ma_9_val = ta.sma(close, fast_ma_9)
ema7_val = ta.ema(close, 7)
accuracy = ta.crossover(close, slow_ma_val) ? fast_ema_val : slow_ema_val

// Define lines
plot(up_trend ? fast_ma_val : na, color=color.green, linewidth=2, title="Up Trend")
plot(down_trend ? fast_ma_val : na, color=color.red, linewidth=2, title="Down Trend")
plot(volume_up ? fast_ma_val : na, color=color.green, linewidth=2, title="Volume Up")
plot(volume_down ? fast_ma_val : na, color=color.red, linewidth=2, title="Volume Down")
plot(accuracy, color=color.yellow, linewidth=1, title="Accuracy Line")
plot(ema1_val, color=color.purple, linewidth=1, title="EMA 1")
plot(fast_ma_9_val, color=color.orange, linewidth=1, title="Fast MA 9")
plot(ema7_val, color=color.blue, linewidth=1, title="EMA 7")
plot(short_sma_60_val, color=color.red, linewidth=1, title="Short SMA 60")
hline(0, color=color.gray, linestyle=hline.style_dotted, title="Zero Line")

// Buy/Sell Signals
buySignal = ta.crossunder(short_sma_60_val, accuracy)
sellSignal = ta.crossover(short_sma_60_val, accuracy)

// Exit Signals
exitLongSignal = ta.crossunder(fast_ma_9_val, ema7_val)
exitShortSignal = ta.crossover(fast_ma_9_val, ema7_val)

// Plot Buy/Sell Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

if exitLongSignal
    strategy.close("Buy")

if exitShortSignal
    strategy.close("Sell")


if buySignal
    strategy.entry("Enter Long", strategy.long)
else if sellSignal
    strategy.entry("Enter Short", strategy.short)