Это стратегия, основанная на пересечении скользящей средней, в сочетании с управлением стоп-лосс/прибылью и эффектом рычага, направленная на выявление тенденций на нескольких рынках и максимизацию прибыли.
Стратегия использует перекресток быстрых и медленных скользящих средних в качестве торговых сигналов. Она длинна, когда быстрый MA пересекает более медленного MA, и коротка, когда быстрый MA пересекает ниже медленного MA.
Для отфильтрации шумных сделок от незначительных тенденций он также использует 200-дневный MA в качестве трендового фильтра.
После входа в систему устанавливаются фиксированные процентные уровни стоп-лосса и прибыли, например, 1% стоп-лосса и 1% прибыли.
Эффект рычага используется для увеличения прибыли от торговли.
Одно из преимуществ заключается в том, что он может идентифицировать тенденции на нескольких рынках, включая криптовалюты, акции и фьючерсы, что делает стратегию широко применимой.
Использование быстрого/медленного перекрестка MA и фильтра тренда позволяет лучше определить направление тренда и достичь хорошего показателя выигрыша на трендовых рынках.
Остановки торговли в диапазоне помогают контролировать однократные убытки в пределах приемлемого диапазона, что позволяет стабильно выполнять стратегию.
Эффект рычага увеличивает прибыль от торговли, в полной мере используя преимущество стратегии.
Дизайн визуального интерфейса с различными цветами фона для бычьих/медвежьих рынков обеспечивает интуитивное понимание рынка.
Стратегия ориентирована на тенденции, поэтому может быть менее эффективной на нестабильных рынках с ограниченным диапазоном.
Фиксированный процент стоп-лосса/стоп-прибыли несет в себе риск остановки.
Денежный рычаг увеличивает размер позиции, а также риски.
Задержка движущихся средних может привести к задержке сигналов торговли.
Испытать различные комбинации параметров и выбрать оптимальные длины быстрого/медленного MA.
Для улучшения точности используют другие индикаторы или модели в качестве сигналов фильтра, например, остановки ATR, RSI и т.д.
Исследуйте другие инструменты идентификации трендов, такие как ADX, чтобы еще больше улучшить способность улавливать тренды.
Использовать модели машинного обучения для оптимизации сигналов стратегии и поиска более эффективных точек входа/выхода.
Для более разумных остановок следует рассматривать динамические стоп-лосс/стоп-прибыль, основанные на волатильности и рыночных условиях.
Стратегия использует систематический подход, следующий за трендом, и использует остановки / получение прибыли и рычаги для контроля риска и увеличения прибыли. Она широко применима на рынках с потенциалом устойчивого альфа.
/*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)