
Эта стратегия является стратегией, использующей среднюю линию и EMA для осуществления торговли трендами в течение различных временных рамок. Стратегия позволяет использовать SMA, EMA и K-линию для определения направления тенденции в сочетании с различными циклами для достижения низкого риска.
Эта стратегия основана на сравнении средних линий SMA с тремя различными циклами для определения движения цены. Кроме того, в качестве вспомогательного метода используется EMA для определения направления объекта.
В частности, в стратегии используются средние значения SMA трех циклов - 3, 8 и 10 циклов соответственно. Цена считается пониженной, когда она находится ниже трех средних линий, и подает сигнал покупки, когда цена возвращается к средней линии.
Кроме того, в стратегии используется 5-циклическая EMA, которая помогает определить направление K-линии, чтобы обеспечить покупку вверх.
В управлении позицией, стратегия устанавливает количество выигрышей или максимальный период удержания позиции в качестве метода остановки убытков.
Эта стратегия в сочетании с средней линией различных временных периодов позволяет эффективно отфильтровывать рыночный шум, отслеживать средние и длинные тенденции. Параметры стратегии оптимизированы, и они хорошо работают в историческом отсчете.
Кроме того, при включении стратегии в оценку EMA можно избежать покупки в сторону снижения K-линии, что снижает ненужные потери в скольжениях.
В целом, эта стратегия стабильна, надежна и подходит для средне- и долговременного отслеживания.
Эта стратегия чувствительна к параметрам, неправильная настройка трех циклов SMA или циклов EMA может привести к снижению качества торгового сигнала. Необходимо оптимизировать параметры для разных сортов.
Стратегия не учитывает значительные скачки или пробелы. Если существенные новости приводят к значительному скачку цены, это может привести к определенным потерям. Для предотвращения этого риска можно установить ценовой стоп.
Можно рассмотреть возможность добавления дополнительных циклических параметров, формирующих сравнение EMA или SMA в нескольких временных рамках, что позволяет стратегии более точно судить о тенденции.
Можно протестировать ценовую установку стоп-лосса в определенном диапазоне, чтобы снизить убытки в экстремальных ситуациях при условии, что будет гарантирована прибыль.
Можно попытаться внедрить машинное обучение для динамической оптимизации параметров, чтобы параметры стратегии могли быть скорректированы в соответствии с реальными рыночными условиями.
Стратегия в целом стабильна и надежна, используя сопоставление средних линий для определения направления тенденции, дополненной фильтрующими сигналами EMA. С помощью параметровой оптимизации и настройки ветроуправления можно еще больше повысить победную и доходность стратегии.
/*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=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)
// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")
// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])
// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))