Стратегии свинг-трейдинга


Дата создания: 2023-10-11 16:29:37 Последнее изменение: 2023-10-11 16:29:37
Копировать: 0 Количество просмотров: 647
1
Подписаться
1617
Подписчики

Обзор

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

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

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

Чтобы отфильтровать шумные сделки, не являющиеся основными тенденциями, в качестве фильтра на тренды в стратегии также введены 200-дневные скользящие средние. Торговый сигнал подается только тогда, когда цена выше или ниже 200-дневных скользящих средних.

Стратегия применяет стратегию остановки на промежуточных торгах. После торговли устанавливается фиксированный пропорциональный уровень остановки и остановки, например, установка остановки на 1% и остановки на 1%, а затем ликвидация, когда цена достигает остановки или остановки.

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

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

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

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

  • Применение стратегии промежуточного остановки убытков позволяет контролировать одиночные убытки в пределах приемлемого диапазона, что способствует стабильной работе стратегии.

  • Леверинг может увеличить прибыль от торговли, что позволяет использовать преимущества стратегии.

  • Визуализированный дизайн интерфейса, использование различных цветов фона для обозначения многоголового и пустого рынка, пользователь может интуитивно судить о текущей ситуации на рынке.

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

  • Стратегия основана на идее трендового трейдинга, в рынок, который переживает потрясение, эффективность торговли может быть снижена.

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

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

  • Сам по себе движущийся средний имеет задержку, что может привести к задержке торгового сигнала.

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

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

  • Для повышения точности стратегии можно использовать другие индикаторы или модели в качестве фильтрующих сигналов. Например, внедрение стоп-лода ATR, индикатора RSI и т. Д.

  • Можно использовать индикаторы для определения тенденций, такие как индикатор DC, чтобы улучшить способность стратегии оценивать тенденции.

  • Оптимизация стратегического сигнала может быть связана с моделью машинного обучения, чтобы идентифицировать более эффективные моменты торговли.

  • Можно рассматривать возможность динамической корректировки стоп-стоп, устанавливая более разумные стоп-стоп в зависимости от волатильности и рыночных условий.

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

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

Исходный код стратегии
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

////////////////////////////////////////////////////////////////////////////////
// Bozz Strategy
// Developed for Godstime
// Version 1.1
// 11/28/2021
////////////////////////////////////////////////////////////////////////////////

//@version=4
// strategy("Bozz Strategy", "", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, margin_long=0, margin_short=0)

// ----------------------------- Inputs ------------------------------------- //
source_ma_type = input("EMA", "Source MA Type", options=["SMA", "EMA"])
source_ma_length = input(50, "Source MA Length")
fast_ma_length = input(20, "Fast MA Length")
slow_ma_length = input(50, "Slow MA Length")
use_trend_filter = input(true, "Trend Filter")
trend_filter_ma_type = input("EMA", "Trend Filter MA Type", options=["SMA", "EMA"])
trend_filter_ma_length = input(200, "Trend Filter MA Period")
show_mas = input(true, "Show MAs")
swing_trading_mode = input(false, "Swing Trading")

// -------------------------- Calculations ---------------------------------- //
fast_ma = ema(close, fast_ma_length)
slow_ma = ema(close, slow_ma_length)
source_ma = source_ma_type == "EMA"? ema(close, source_ma_length): 
                                     sma(close, source_ma_length)
trend_filter_ma = trend_filter_ma_type == "EMA"? ema(close, trend_filter_ma_length): 
                                                 sma(close, trend_filter_ma_length)

// --------------------------- Conditions ----------------------------------- //
uptrend = not use_trend_filter or close > trend_filter_ma
buy_cond = crossover(fast_ma, slow_ma) and uptrend

downtrend = not use_trend_filter or close < trend_filter_ma
sell_cond = crossunder(fast_ma, slow_ma) and downtrend

// ---------------------------- Plotting ------------------------------------ //
bgcolor(use_trend_filter and downtrend? color.red: use_trend_filter? color.green: na)
plot(show_mas? fast_ma: na, "Fast MA", color.green)
plot(show_mas? slow_ma: na, "Slow MA", color.red)
plot(show_mas? source_ma: na, "Source MA", color.purple)
plot(show_mas? trend_filter_ma: na, "Trend Filter MA", color.blue)


// ---------------------------- Trading  ------------------------------------ //
// Inputs
sl_perc = input(1.0, "Stop Loss (in %)", group="Backtest Control")/100
tp_perc = input(1.0, "Take Profit (in %)", group="Backtest Control")/100
leverage = input(10, "Leverage", maxval=100, group="Backtest Control")
bt_start_time = input(timestamp("2021 01 01"), "Backtest Start Time", input.time, group="Backtest Control")
bt_end_time = input(timestamp("2021 12 31"), "Backtest End Time", input.time, group="Backtest Control")

// Trading Window
in_trading_window = true
trade_qty = (strategy.equity * leverage) / close 

// Long Side
strategy.entry("Long Entry", strategy.long,  when=buy_cond and in_trading_window)
long_tp = strategy.position_avg_price * (1 + tp_perc)
long_sl = strategy.position_avg_price * (1 - sl_perc)
if not swing_trading_mode
    strategy.exit("Long Exit", "Long Entry", limit=long_tp, stop=long_sl)

// Short Side
strategy.entry("Short Entry", strategy.short, when=sell_cond and in_trading_window)
short_tp = strategy.position_avg_price * (1 - tp_perc)
short_sl = strategy.position_avg_price * (1 + sl_perc)
if not swing_trading_mode
    strategy.exit("Short Exit", "Short Entry", limit=short_tp, stop=short_sl)

// End of trading window close
strategy.close_all(when=not in_trading_window)