Стратегия называется
Основной принцип этой стратегии заключается в том, чтобы использовать возможности отскока на рынках с ограниченным диапазоном, используя реверсию краткосрочных скользящих средних. В частности, когда цены прорываются через длинные скользящие средние циклы (например, 20-дневные и 50-дневные МА) и показывают признаки сильной перепродажи, цены, как правило, восстанавливаются в некоторой степени из-за средней обратной характеристики колебаний рынка. В это время, если более короткие скользящие средние циклы (например, 10-дневный МА) показывают сигнал восходящего отступления, это будет хорошим моментом для покупки. В этой стратегии он будет покупать, когда цена закрытия ниже 20-дневного МА, а выше 50-дневного МА, чтобы захватить свой отскок с краткосрочным отступлением.
Конкретная логика входа заключается в следующем: купить 1 лот, когда цена пробивается через 20-дневный MA, добавить 1 лот, когда цена пробивается через 50-дневный MA, продолжить добавлять 1 лот, когда она пробивается через 100-дневный MA, и добавить до 1 лота, когда она пробивается через 200-дневный MA, максимум 4 лота. Получить прибыль после достижения заданных целей. Он также устанавливает время и условия остановки потерь.
В целом, это классическая и универсальная стратегия торговли MA. Она правильно использует функцию сглаживания MAs в сочетании с несколькими MAs для выявления краткосрочных покупательных возможностей. Она контролирует риски путем пирамидизации ордеров и своевременного получения прибыли. Но ее реакция на рыночные события, такие как важные новости политики, может быть более пассивной. Это то, что может быть дополнительно оптимизировано. В целом, с соответствующими улучшениями в оптимизации параметров и контроле рисков, эта стратегия может получать устойчивую избыточную отдачу.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true) // Input parameters qt1 = input.int(5, title="Quantity 1", minval=1) qt2 = input.int(10, title="Quantity 2", minval=1) qt3 = input.int(15, title="Quantity 3", minval=1) qt4 = input.int(20, title="Quantity 4", minval=1) ema10 = ta.ema(close, 10) ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Date range filter start_date = timestamp(year=2021, month=1, day=1) end_date = timestamp(year=2024, month=10, day=27) in_date_range = true // Profit condition profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed // Pyramiding setting pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10) // Buy conditions buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1] buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1] buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1] buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1] // Exit conditions profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] // Exit condition for when today's close is less than the previous day's low //exit_condition_3 = close < low[1] // Strategy logic strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1) strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2) strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3) strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4) strategy.close("Buy1", when=exit_condition_1 or exit_condition_2) strategy.close("Buy2", when=exit_condition_1 or exit_condition_2) strategy.close("Buy3", when=exit_condition_1 or exit_condition_2) strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)