Эта стратегия основана на стратегии отслеживания тенденций на основе средних линий. Она использует средние значения EMA разных периодов для создания нескольких групп торговых сигналов и осуществляет торговлю по отслеживанию тенденций. Когда цена падает ниже средних значений более длительного периода, она постепенно увеличивает позиции и снижает среднюю стоимость цен.
Стратегия использует 5 различных периодических средних линий EMA для построения торгового сигнала. Это 10-я, 20-я, 50-я, 100-я и 200-я линии. Стратегия устанавливает 4 группы условий покупки в зависимости от отношений цены с этими средними линиями, чтобы реализовать пирамидальный налог.
Когда цена ниже 20-й и выше 50-й линии, запускается первая группа покупок; когда цена ниже 50-й и выше 100-й линии, запускается вторая группа покупок; когда цена ниже 100-й и выше 200-й линии, запускается третья группа покупок; когда цена ниже 200-й линии, запускается четвертая группа покупок. Количество покупок также постепенно увеличивается, соответственно qt1, qt2, qt3 и qt4
При продаже стратегия использует одновременно две группы условий остановки. Первая группа - это остановка, когда цена выше 10-дневной линии и 10-дневной линии выше других средних линий; вторая группа - это остановка, когда цена ниже 10-дневной линии предыдущего дня и 10-дневной линии выше других средних линий. Эти две группы условий могут эффективно блокировать среднюю короткую линию прибыли.
Наибольшее преимущество этой стратегии заключается в том, что она позволяет автоматически отслеживать рыночные тенденции и осуществлять долгосрочное владение. С помощью многочисленных групп условий покупки и пополнения запасов, можно постоянно снижать стоимость покупки и получать дополнительную прибыль. В то же время, также избегается ценовой риск, связанный с одной точкой покупки.
Также была оптимизирована стратегия стоп-лосса. Повышенная скорость стоп-лосса позволяет отслеживать кратковременную среднюю точку поворота, что позволяет быстро остановить и зафиксировать прибыль. Это позволяет избежать риска дальнейшего расширения убытков.
Самый большой риск, с которым сталкивается эта стратегия, заключается в том, что она может оказаться в ловушке в долгосрочной корректировке рынка. Сигналы равнолинейной линии не являются надежными, когда рынок находится в шокирующем или нисходящем канале. В этом случае возможно продолжение покупки и удержания позиций с большими потерями.
Еще одна опасность заключается в том, что средняя линия не всегда точна. В краткосрочной перспективе скачки цены или экспансия могут дать неправильный сигнал средней линии. Это требует проверки и оптимизации в сочетании с другими техническими показателями.
Можно рассмотреть возможность добавления в условия покупки других технических показателей, таких как показатели объема сделок, сигналы Bollinger Bands и т. д. Это может еще больше повысить успех покупки.
В условиях продажи также можно добавить Boll на треке или ключевую опору в качестве второй слоя стоп-линии. Это может уменьшить ненужные мелкие стопы. Или добавить мобильную стоп-функцию, которая в реальном времени регулирует стоп-линию, а также может дополнительно блокировать прибыль.
Эта стратегия использует равнолинейную систему для торговли с отслеживанием тенденций. С помощью пирамидальных поэтапных пополнений можно получить максимальную прибыль от тенденций. В то же время установлены условия двойного остановки, которые защищают безопасность средств. Это стратегия, которую стоит долгое время отслеживать и проверять на практике.
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
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)