
Эта стратегия реализует модель длинных линий, используя среднелинейные перекрестные формы различных циклов и показатели RSI для определения времени покупки и продажи на рынке. Стратегия может быть оптимизирована в режиме реального времени путем корректировки параметров и применяется для длинных инвестиций в индексы с большим пакетом.
Эта стратегия основана на определении времени покупки и продажи в основном с помощью золотых и мертвых точек в среднем по EMA. Вместе с этим, в сочетании с показателем RSI, она определяет, находится ли она в состоянии перепродажи.
В частности, логика определения сигнала покупки заключается в следующем: покупайте, когда цена пересекает EMA20 ниже и пересекает EMA50 выше, чтобы сформировать золотой форк. Таким образом, можно более эффективно определить поворотный момент тренда. Кроме того, необходимо удовлетворить условию, что цена закрытия меньше цены открытия и ниже минимальной цены предыдущего дня, что позволяет исключить некоторые ложные прорывы.
Мы распределили вышеперечисленные условия покупки по различным параметрам и создали 4 правила покупки, соответствующие различным средним циклам и количеству water_level. Это может быть достигнуто путем создания позиций в группах, чтобы обеспечить среднее распределение количества.
Для продажи и выхода, критерии заключения заключаются в следующем: цена продается, когда она превышает EMA10 и RSI показывает сигнал перекупа; или цена продается, когда она превышает EMA10 и RSI показывает сигнал перепродажи. Кроме того, также проверяются условия для удовлетворения определенной доходной части. Таким образом, можно закрепить прибыль, а в сочетании с RSI можно уменьшить вероятность ошибочного заключения.
Наибольшее преимущество этой стратегии заключается в том, что она позволяет отслеживать тенденции, определяя рыночные переломные моменты с помощью перекрестных форм равномерных линий. По сравнению с системой с одной равномерной линией, метод перекрестных двух равномерных линий может отфильтровывать некоторые ложные сигналы. Кроме того, эта стратегия также вводит показатель RSI для определения зон сверхпокупок и сверхпродаж, что также может эффективно снизить риск торгов.
Еще одно преимущество заключается в том, что путем регулирования параметров создается пакетный портфель, этот пирамидальный способ наращивания запасов позволяет стоимостным ценам постоянно двигаться вниз, получая максимальную прибыль при появлении тренда. В то же время реализуется распределение количества, снижается риск отдельного количества.
Основные риски этой стратегии заключаются в следующем:
Сама равнолинейная система чувствительна к задержке и не может своевременно реагировать на внезапные события, что может привести к невозможности своевременного остановки убытков. Этот риск можно снизить, добавив точки остановки убытков.
Эта политика не ограничивает время, в течение которого можно совершать покупки. В случае ошибки в конфигурации может произойти преждевременное совершение покупки, что может привести к задержке в сборе. Этот риск может быть устранен путем ограничения промежуточных покупок.
Побочный подход к строительству складов в этой стратегии может привести к тому, что позиции станут слишком большими, чтобы выдержать риск одностороннего прорыва. Это может быть уменьшено путем корректировки параметров уровня воды и добавления механизмов контроля риска.
Эта стратегия также может быть оптимизирована в следующих направлениях:
Добавление стратегии “стоп-лосс”, которая позволяет эффективно контролировать риск падения, когда цена опускается ниже определенных ключевых уровней поддержки.
Добавление модуля проверки до сделки, чтобы определить направление тенденции на большом уровне, и только тогда, когда тенденция идет вверх, чтобы избежать риска обратной торговли.
Ограничение покупательских интервалов, только в течение определенного периода времени, чтобы избежать преждевременного открытия позиций.
Внедрение алгоритмов машинного обучения в сочетании с многофакторным выбором времени покупки может повысить вероятность успешной стратегии.
В этой статье подробно описывается стратегия количественного определения длинных линий, которая использует двойную равномерную линию в сочетании с показателем RSI для определения точки входа в рынок и максимальной эффективности путем создания запасов. Эта стратегия может применяться к большинству индексов и акций с помощью параметровой корректировки, это более универсальная стратегия отслеживания длинных линий.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA_zorba1", shorttitle="3 NIFTY RSI EMA", overlay=true)
// Input parameters
qt1 = input.int(1, title="Quantity 1", minval=1)
qt2 = input.int(2, title="Quantity 2", minval=1)
qt3 = input.int(3, title="Quantity 3", minval=1)
qt4 = input.int(4, 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)
// RSI(14) condition
rsi_threshold = 65
rsi_crossed_above_70 = ta.rsi(close, 14) > rsi_threshold
rsi_crossed_above_70_two_days_ago = ta.rsi(close[5], 14) > rsi_threshold or ta.rsi(close[4], 14) > rsi_threshold or ta.rsi(close[3], 14) > rsi_threshold
rsi_crossed_above_70_yesterday = ta.rsi(close[1], 14) > rsi_threshold
// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=1, day=1)
in_date_range = true
// Profit condition
profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed
// Pyramiding setting
pyramiding = input.int(1, 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 rsi_crossed_above_70_two_days_ago) 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 rsi_crossed_above_70_yesterday) and profit_condition and close < low[1] and close < low[2]
// 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)