Эта стратегия называется
Вычислить SMA9, SMA50, SMA180 цены закрытия и EMA20.
Определить сигналы покупки и продажи на основе отношения между ценой закрытия и поддержкой и сопротивлением. генерировать сигнал покупки BuySignal, когда закрытие прерывается через sup, и генерировать сигнал продажи SellSignal, когда закрытие прерывается через res.
При покупке сигнальных триггеров выполняйте стратегию длинной позиции; при продаже сигнальных триггеров закрывайте длинную позицию.
При продаже сигнальных триггеров, выполните стратегию короткой позиции; при покупке сигнальных триггеров, закрывайте короткую позицию.
Объединение нескольких скользящих средних для формирования торговых сигналов повышает точность и стабильность.
Расчет динамической поддержки и сопротивления делает торговые сигналы более надежными.
Применение скользящих сред с высокой, средней и низкой волатильностью учитывает как долгосрочную тенденцию, так и краткосрочные прорывы, что повышает рентабельность стратегии.
Поддержка как длинных, так и коротких позиций может принести прибыль на трендовых и боковых рынках.
SMA имеет эффект отставания, который может задержать сигналы покупки и продажи и повлиять на эффективность стратегии.
Без механизма остановки потерь, убытки могут расшириться.
Недостаточные данные об обратном тестировании, параметры должны быть скорректированы в соответствии с рынком.
Опираясь на технические показатели, не в состоянии справиться с черными лебедями.
Решения:
Добавить стоп-лосс на основе волатильности для контроля одиночных потерь.
Добавьте модели машинного обучения, чтобы помочь в оценке трендов и генерации сигналов.
Добавить анализ ключевых цен для улучшения точности поддержки и сопротивления.
Испытывайте различные комбинации параметров, чтобы найти лучшие параметры.
Эта стратегия сочетает в себе технические индикаторы SMA и EMA для построения торговых сигналов и вычисляет динамическую поддержку и сопротивление для формирования полной логики покупки и продажи. Преимущества - гибкие параметры, двусторонняя торговля, адаптируемая к разным рынкам, но она также сталкивается с такими проблемами, как отставание и неадекватная стоп-лосс. Будущие оптимизации могут быть сделаны в таких аспектах, как стоп-лосс, суждение тренда, ключевой анализ цен для улучшения стабильности и прибыльности.
]
/*backtest start: 2023-12-10 00:00:00 end: 2023-12-11 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="StrategySMA 9/50/180 | EMA 20 | BUY/SELL", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) //SMA and EMA code smaInput1 = input(9, title="SMA1") smaInput2 = input(50, title="SMA2") smaInput3 = input(180, title="SMA3") emaInput1 = input(20, title="EMA1") sma1 = sma(close, smaInput1) sma2 = sma(close, smaInput2) sma3 = sma(close, smaInput3) EMA1 = ema(close, emaInput1) plot(sma1, color= color.red , title="SMA1") plot(sma2, color = color.blue, title="SMA2") plot(sma3, color= color.white, title="SMA3") plot(EMA1, color = color.yellow, title="EMA1") no=input(3,title="BUY/SELL Swing") Barcolor=input(false,title="BUY/SELL Bar Color") Bgcolor=input(false,title="BUY/SELL Background Color") res=highest(high,no) sup=lowest(low,no) avd=iff(close>res[1],1,iff(close<sup[1],-1,0)) avn=valuewhen(avd!=0,avd,0) tsl=iff(avn==1,sup,res) // Buy/sell signals BuySignal = crossover(close, tsl) SellSignal = crossunder(close, tsl) // Enter long position strategy.entry("Buy", strategy.long, when=BuySignal) // Exit long position strategy.exit("Sell", "Buy", when=SellSignal) // Enter short position strategy.entry("Sell", strategy.short, when=SellSignal) // Exit short position strategy.exit("Buy", "Sell", when=BuySignal) colr = close>=tsl ? color.green : close<=tsl ? color.red : na plot(tsl, color=colr)