Стратегия называется
Основная логика этой стратегии заключается в отслеживании ценового перекрестка с 21-дневной простой скользящей средней (SMA).
В частности, стратегия требует закрытия цены в данном диапазоне дат и рассчитывает различные SMA на основе входных периодов. Если цена превышает 21-дневную SMA вверх, она устанавливает сигнал покупки. Если цена превышает 21-дневную SMA вниз, она устанавливает сигнал продажи.
Наряду с расчетом SMA и определением кроссоверов, стратегия отслеживает текущую позицию. Она входит в позицию при покупке сигналов, а при продаже сигналов сглаживает позицию. Таким образом, она реализует автоматизированную торговую систему на основе кроссовера SMA.
Самое большое преимущество этой стратегии заключается в том, что она проста и легко понимается и реализуется. SMA - это широко используемый технический индикатор, а перекресток SMA - один из наиболее распространенных торговых сигналов.
Еще одно преимущество заключается в том, что эта стратегия может быть оптимизирована путем корректировки параметров SMA. Например, мы можем протестировать различные комбинации периодов SMA, чтобы найти оптимальный для конкретных акций. Кроме того, стратегия может быть улучшена путем добавления других индикаторов для подтверждения и оптимизации.
Наибольший риск этой стратегии заключается в том, что стратегии, основанные на индикаторах, имеют тенденцию генерировать чрезмерные ложные сигналы.
Обычные решения включают установку стоп-лосса, настройку параметров или добавление условий фильтра. Например, мы можем установить максимальное соотношение потерь для ограничения риска, скорректировать периоды SMA для поиска более стабильных параметров или использовать другие индикаторы для фильтрации некоторых торговых сигналов.
Стратегия может быть оптимизирована в следующих аспектах:
Тестируйте и выбирайте оптимальные комбинации параметров SMA. Отслеживайте разные длины SMA, чтобы найти лучшие периоды.
Добавьте другие индикаторы для фильтрации Сигнала подтверждения, такие как RSI, MACD и т. Д. Это помогает фильтровать ложные сигналы.
Включите логику стоп-лосса. Установите максимально допустимую потерю или отстающую остановку для лучшего контроля рисков.
Оптимизируйте сроки входа. Подумайте о том, чтобы войти вокруг основных прорывов, а не строго следовать перекрестному SMA.
Тестируйте сложные стратегии, комбинируйте с другими типами стратегий, например, следуя тренду.
Стратегия реализует автоматическую торговлю с помощью простых сигналов пересечения SMA. Плюсы просты в понимании и реализации. Консультативы - чрезмерные сигналы и склонны к ударам. Мы можем улучшить ее путем настройки параметров, добавления фильтров, остановки убытков и т. Д. Стратегия предоставляет нам базовую основу. Мы можем обогатить ее, включив больше компонентов.
/*backtest start: 2023-02-15 00:00:00 end: 2024-02-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Price Cross Above/Below SMA Strategy", shorttitle="Tressy Strat", overlay=true) // Define start and end year inputs start_year = input.int(2022, title="Start Year") end_year = input.int(2022, title="End Year") // Define start and end month inputs start_month = input.int(1, title="Start Month", minval=1, maxval=12) end_month = input.int(12, title="End Month", minval=1, maxval=12) // Define SMA length inputs sma_length = input.int(21, title="SMA Length") sma_length_50 = input.int(50, title="50 SMA Length") sma_length_200 = input.int(200, title="200 SMA Length") // Filter data within the specified date range filter_condition = true filtered_close = request.security(syminfo.tickerid, "D", close[0], lookahead=barmerge.lookahead_on) // Define SMAs using the input lengths sma = ta.sma(filtered_close, sma_length) sma_50 = ta.sma(filtered_close, sma_length_50) sma_200 = ta.sma(filtered_close, sma_length_200) // Initialize position var bool in_position = false // Condition for a price cross above SMA within the date range cross_above = filter_condition and ta.crossover(filtered_close, sma) // Condition for a price cross below SMA within the date range cross_below = filter_condition and ta.crossunder(filtered_close, sma) // Buy condition if cross_above in_position := true // Sell condition if cross_below in_position := false // Strategy entry and exit if cross_above strategy.entry("Buy", strategy.long) if cross_below strategy.close("Buy") // Plot the SMAs on the chart plot(sma, color=color.blue, title="21 SMA") plot(sma_50, color=color.red, title="50 SMA") plot(sma_200, color=color.orange, title="200 SMA") // Plot the Buy and Sell signals with "tiny" size plotshape(cross_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal") plotshape(cross_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal")