Эта стратегия сочетает в себе скользящие средние, MACD и RSI в нескольких временных рамках для определения направлений тренда и торговли тенденциями индекса S&P500.
10-дневная простая скользящая средняя оценивает тенденцию цены.
MACD оценивает силу импульса. Он рассчитывает разницу между 12- и 21-дневными экспоненциальными скользящими средними, и перекресток между линией MACD и линией сигнала генерирует торговые сигналы. Пересечение линии MACD выше линии сигнала указывает на рост, а пересечение ниже указывает на спад.
14-дневный RSI и его 50-дневный MA рассчитываются.
1-минутные, 3-минутные и 5-минутные временные рамки подтверждают последовательность тренда.
Когда цена пересекает 10-дневный MA, RSI пересекает его MA, а линия MACD пересекает линию сигнала, генерируется сигнал покупки.
Комбинирование индикаторов улучшает точность сигнала. 10-дневный MA определяет основную тенденцию, MACD определяет силу импульса, а RSI подтверждает уровни перекупленности / перепроданности. Комбинация индикаторов проверяет друг друга и уменьшает неправильные сделки.
Двукратное подтверждение в течение 1-минутных, 3-минутных и 5-минутных временных рамок обеспечивает одновременное появление сигнала и фильтрует ложные сигналы.
Анализ графических моделей позволяет избежать чрезвычайных уровней перекупа/перепродажи и снижает риски потери.
Средняя частота торговли подходит для торговли индексами. 10-дневный MA в качестве основного показателя предотвращает чрезмерную торговлю, избегая дополнительных затрат на транзакции из-за переторговли.
Неспособность обнаружить резкое изменение в иррациональных событиях. Такие рыночные потрясения нарушают модель и должны уменьшить размер позиций для контроля риска.
Фиксированные параметры без учета изменяющихся рыночных условий.
Слишком идеализированные точки входа с трудностями выполнения на практике.
Некоторые временные рамки увеличивают задержку сигнала. Для минимизации потерь от задержки во время внезапных событий необходим надлежащий контроль рисков.
Включить механизмы остановки потери, такие как отслеживание остановки потери и процентная остановка потери для контроля одной сделки потери.
Оптимизировать настройки динамических параметров для адаптации к изменяющимся рынкам и повышения надежности стратегии.
Рассмотреть изменения режима рынка в результате значительных событий, чтобы избежать шоков модели.
Учет затрат на торговлю, таких как скольжение, и корректировка точек входа/выхода для лучшего исполнения.
Проверьте различные ценовые входы, такие как свеча, как подтверждение сигнала для диверсификации многочасовой проверки.
Использование алгоритмов машинного обучения на больших данных для автоматизации оптимизации стратегии.
Эта стратегия эффективно торгует тенденциями S&P500 с помощью идентификации тренда с несколькими индикаторами и подтверждения сигнала в течение всех временных рамок. Ее сильные стороны заключаются в высокой точности сигнала и устойчивости к шуму, но требуется контроль рисков и динамическая настройка параметров.
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // USE HEIEN ASHI, 1 min, SPX 500 USD OANDA // © connor2279 //@version=5 strategy(title="SPX Strategy", shorttitle="SPXS", overlay=true) //SMA len1 = 10 src1 = input(close, title="SMA Source #1") out1 = ta.sma(src1, len1) plot(out1, title="SMA #1", color=close >= out1 ? color.lime : color.red, linewidth=2) data_over = ta.crossover(close, out1) dataO = close >= out1 data_under = ta.crossunder(close, out1) dataU = close < out1 bgcolor(color=ta.crossover(close, out1) ? color.new(color.lime, 90) : na) bgcolor(color=ta.crossunder(close, out1) ? color.new(color.red, 90) : na) //Norm MacD sma = 12 lma = 21 tsp = 10 np = 50 sh = ta.ema(close,sma) lon= ta.ema(close,lma) ratio = math.min(sh,lon)/math.max(sh,lon) Mac = ratio - 1 if(sh>lon) Mac := 2-ratio - 1 else Mac := ratio - 1 MacNorm = ((Mac-ta.lowest(Mac, np)) /(ta.highest(Mac, np)-ta.lowest(Mac, np)+.000001)*2)- 1 MacNorm2 = MacNorm if(np<2) MacNorm2 := Mac else MacNorm2 := MacNorm Trigger = ta.wma(MacNorm2, tsp) trigger_above = Trigger >= MacNorm trigger_under = Trigger < MacNorm plotshape(ta.crossover(Trigger, MacNorm2), style=shape.triangledown, color=color.red) plotshape(ta.crossunder(Trigger, MacNorm2), style=shape.triangledown, color=color.lime) //RSI / SMA RSI swr=input(true,title="RSI") src = close len = 14 srs = 50 up = ta.rma(math.max(ta.change(src), 0), len) down = ta.rma(-math.min(ta.change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) mr = ta.sma(rsi,srs) rsi_above = rsi >= mr rsi_under = rsi < mr //All buySignal = rsi_above and trigger_under and dataO shortSignal = rsi_under and trigger_above and dataU bgcolor(color=buySignal ? color.new(color.lime,97) : na) bgcolor(color=shortSignal ? color.new(color.red, 97) : na) sellSignal = ta.cross(close, out1) or ta.cross(Trigger, MacNorm2) or ta.cross(rsi, mr) if (buySignal) strategy.entry("LONG", strategy.long, 1) if (shortSignal) strategy.entry("SHORT", strategy.short, 1) // Submit exit orders strategy.close("LONG", when=sellSignal) strategy.close("SHORT", when=sellSignal)