В процессе загрузки ресурсов... загрузка...

Динамическая стоп-лосс многопериодная тенденция RSI после стратегии

Автор:Чао Чжан, Дата: 2024-12-05 16:25:17
Тэги:РСИЕМАATR

img

Обзор

Это стратегия, основанная на сочетании технических индикаторов, в основном использующая условия перекупки/перепродажи RSI, перекрестки EMA и динамический стоп-лосс для торговли. Стратегия использует контроль риска на уровне 1,5% в сочетании с рычагом возврата для усиления доходности. Ее ядро заключается в подтверждении тенденций с помощью нескольких технических индикаторов при использовании динамических уровней получения прибыли и стоп-лосса для защиты капитала. Стратегия специально разработана для характеристик небольших счетов, подходящей для быстрой и частой торговли.

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

Стратегия использует три основных технических индикатора: RSI (индекс относительной силы), EMA (экспоненциальная скользящая средняя) и ATR (средний истинный диапазон). Сигналы входа подтверждаются перекрестными связями между краткосрочной EMA (9-периодической) и долгосрочной EMA (21-периодической), требуя, чтобы RSI находился в разумных диапазонах (длинный RSI <70, короткий RSI>30).

Преимущества стратегии

  1. Строгий контроль рисков: фиксированный процент управления рисками, ограничивающий каждый торговый риск до 1,5%
  2. Динамическая конструкция стоп-лосса: динамические стопы на основе ATR лучше адаптируются к волатильности рынка
  3. Подтверждение множественного сигнала: перекрестки EMA, отфильтрованные по RSI, улучшают надежность сигнала
  4. Оптимизированное соотношение риск-вознаграждение: Приобретение прибыли при 4x стоп-лосс способствует лучшей ожидаемой доходности
  5. Подходит для небольших счетов: умеренный кредитный кредит повышает потенциал доходности
  6. Высокая автоматизация: все параметры регулируются для оптимизации рыночных условий

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

  1. Риск волатильности рынка: возможны частые остановки потерь на волатильных рынках
  2. Риск левериджа: 2-кратный леверидж увеличивает убытки
  3. Риск ложного прорыва: перекрестные пересечения EMA могут генерировать ложные сигналы
  4. Риск сдвига: значительный сдвиг возможен на быстрых рынках
  5. Риск управления деньгами: требует надлежащего контроля размеров позиций

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

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Aggressive Scalper Strategy", overlay=true)

// Parameters
account_balance = input.float(28.37, title="Account Balance", tooltip="Update this with your balance")
risk_per_trade = input.float(0.015, title="Risk per Trade", tooltip="1.5% risk")
leverage = input.int(2, title="Leverage", minval=1)
stop_loss_percentage = input.float(0.015, title="Stop Loss Percentage", tooltip="1.5% stop loss")
take_profit_multiplier = input.float(4, title="Take Profit Multiplier", tooltip="Take Profit is 4x Stop Loss")
stop_loss_multiplier = input.float(2, title="Stop Loss Multiplier", tooltip="Dynamic Stop Loss Multiplier")

// Trade Size Calculation
position_size = account_balance * risk_per_trade / (stop_loss_percentage / leverage)
trade_qty = position_size / close // This gives you the qty in terms of contracts

// Indicators
rsiLength = input.int(14, title="RSI Length")
emaShort = input.int(9, title="Short-term EMA Length")
emaLong = input.int(21, title="Long-term EMA Length")
rsi = ta.rsi(close, rsiLength)
emaShortLine = ta.ema(close, emaShort)
emaLongLine = ta.ema(close, emaLong)

// Entry Conditions
longCondition = ta.crossover(emaShortLine, emaLongLine) and rsi < 70
shortCondition = ta.crossunder(emaShortLine, emaLongLine) and rsi > 30

// ATR for dynamic stop loss and take profit levels
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier")
atr = ta.atr(atrLength)

// Dynamic Take Profit and Stop Loss Levels
longTakeProfitLevel = close + (atr * take_profit_multiplier)
longStopLossLevel = close - (atr * stop_loss_multiplier)
shortTakeProfitLevel = close - (atr * take_profit_multiplier)
shortStopLossLevel = close + (atr * stop_loss_multiplier)

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long, qty=trade_qty)
    strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=longTakeProfitLevel, stop=longStopLossLevel)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=trade_qty)
    strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel)

// Alert Conditions
alertcondition(longCondition, title="Buy Signal", message="Long position entry signal detected.")
alertcondition(shortCondition, title="Sell Signal", message="Short position entry signal detected.")

// Display Information on Chart
var table_info = table.new(position.top_right, 2, 2, frame_color=color.blue, frame_width=1)
if (bar_index == na)
    table.cell(table_info, 0, 0, text="Aggressive Scalper", bgcolor=color.blue)
    table.cell(table_info, 1, 0, text="Account Balance: $" + str.tostring(account_balance), text_color=color.white)
    table.cell(table_info, 1, 1, text="Risk per Trade: " + str.tostring(risk_per_trade * 100) + "%", text_color=color.white)
    table.cell(table_info, 0, 1, text="Leverage: " + str.tostring(leverage) + "x", text_color=color.white)


Связанные

Больше