Стратегия торговли балансом сил, основанная на пороговом значении импульса

BOP TA MA RSI THRESHOLD momentum LEVERAGE EQUITY
Дата создания: 2025-02-24 09:35:40 Последнее изменение: 2025-02-27 16:50:22
Копировать: 1 Количество просмотров: 368
2
Подписаться
319
Подписчики

Стратегия торговли балансом сил, основанная на пороговом значении импульса Стратегия торговли балансом сил, основанная на пороговом значении импульса

Обзор

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

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

В основе стратегии лежит измерение равновесия рыночных покупательских сил путем вычисления (((закрытие - открытие) / (((высокая цена - низкая цена). Приближение к 1 означает сильную походной энергию, а приближение к -1 - сильное понижение. Конкретная логика торговли такова:

  • Условия открытия позиции: когда балансовый показатель силы составляет 0,8, это означает, что у покупателя сильные силы, и он вступает в позицию.
  • Условия равновесного положения: при прохождении -0.8 под индикатором равновесной силы, что указывает на усиление давления со стороны продавца, выход на равновесное положение
  • Управление позициями: динамическая корректировка на основе учетных записей и возможности установки массива леверинга

Стратегические преимущества

  1. Сигнальная четкость: использование фиксированного триггера, избегание частых сделок, сосредоточение на высокой уверенности сигнала
  2. Контролируемый риск: гибкое управление риском с помощью динамического позиционирования и регулируемого леверинга
  3. Сильная визуализация: предоставление маркеров и исторических записей сделок для отслеживания и оптимизации стратегий
  4. Хорошо адаптируемый: подходит для более волатильных рыночных условий, чтобы вовремя уловить перемены тенденций

Стратегический риск

  1. Риск скольжения: при сильных колебаниях может возникнуть более крупное скольжение
  2. Риск ложного проникновения: возможные убытки, вызванные ложным сигналом проникновения
  3. Трендозависимость: рынок может не выйти из колебаний
  4. Риск возникновения слишком высокого уровня леверинга может привести к серьезным потерям

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy(title="Balance of Power for US30 4H", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true, commission_value=0.01, max_labels_count=500, max_lines_count = 500)

leverage = input.float(5, "Leverage 1:", tooltip="Multiply your equity (100%) times the leverage.")

p = (close - open) / (high - low)
qty = strategy.equity * leverage / close

if ta.crossover(p, 0.8)
    strategy.entry("L", strategy.long, qty=qty)

if ta.crossunder(p, -0.8)
    strategy.close("L")

green   = color.new(#0097a7, 0)
red     = color.new(#ff195f, 0)
green90 = color.new(#0097a7, 85)
red90   = color.new(#ff195f, 85)

if strategy.position_size > strategy.position_size[1]
    label.new(bar_index, low * 0.999, text="▲", textcolor=green, size=size.normal, textalign=text.align_center, color=green90, style=label.style_text_outline)
    label.new(bar_index, low * 0.999, text="Buy", textcolor=green, size=size.tiny, textalign=text.align_center, color=green90, style=label.style_label_up)

if strategy.position_size < strategy.position_size[1]
    label.new(bar_index, high * 1.001, text="▼", textcolor=red, size=size.normal, textalign=text.align_center, color=red90, style=label.style_text_outline)
    label.new(bar_index, high * 1.001, text="Close", textcolor=red, size=size.tiny, textalign=text.align_center, color=red90, style=label.style_label_down)


var float tradeEntryPrice = na
var int   tradeEntryBar   = na

if strategy.position_size > 0 and strategy.position_size[1] == 0
    tradeEntryPrice := close
    tradeEntryBar   := bar_index


if strategy.position_size == 0 and strategy.position_size[1] > 0
    exitPrice = close
    exitBar   = bar_index
    tradeColor = (exitPrice - tradeEntryPrice > 0) ? green : red

    topPrice    = math.max(tradeEntryPrice, exitPrice)
    bottomPrice = math.min(tradeEntryPrice, exitPrice)

    box.new(tradeEntryBar, topPrice, exitBar, bottomPrice, border_width=0, bgcolor=color.new(tradeColor, 85))
    line.new(tradeEntryBar, topPrice, exitBar, topPrice, color=tradeColor, width=1)
    line.new(tradeEntryBar, bottomPrice, exitBar, bottomPrice, color=tradeColor, width=1)