Эта стратегия сочетает в себе скользящие средние, ценовые модели и объем для выявления потенциальных точек обратного тренда на рынке. Она длится долго, когда быстрая скользящая средняя пересекает медленную скользящую среднюю, появляется бычий охватывающий шаблон, уровень сопротивления прерывается, и объем торговли увеличивается. Она становится короткой, когда возникают противоположные условия.
Основная идея этой стратегии заключается в использовании комбинации скользящих средних, моделей ценового действия и объема в качестве сигналов для предстоящих переворотов. В частности, золотые кресты и смертные кресты скользящих средних могут указывать на сдвиги в тренде.
С точки зрения логики, стратегия сначала рассчитывает быстрые и медленные скользящие средние. Затем она определяет условия для выявления бычьих/медленных паттернов поглощения. Уровни поддержки и сопротивления включаются вместе с расширением объема в качестве дополнительных условий. Сигналы покупки запускаются, когда быстрый MA пересекает медленный MA, появляется бычий шаблон, прерывается сопротивление и увеличивается объем. Противоречивые условия запускают сигналы продажи.
Самое большое преимущество этой стратегии заключается в использовании комбинации нескольких сигналов для подтверждения обратных сдвигов, что помогает избежать ложных сигналов. Опираясь исключительно на один индикатор, такой как скользящие средние или шаблоны свечей, обычно производят ошибочные сделки. Требуя выравнивания всех трех факторов, вероятность точного захвата обратных сдвигов значительно улучшается.
Кроме того, эта стратегия использует как концепцию тренда, так и концепцию реверсии. Реверсии ищут только после существующей тенденции. Другими словами, стратегия ищет только ретрексов контртенда в рамках трендовых рынков. Это помогает уменьшить случайность и повышает прибыльность.
Самый большой риск этой стратегии - это неудачные переломы, когда цена продолжает двигаться против торгового направления после сигналов входа.
Решение включает в себя корректировку скользящих средних периодов для определения лучших тенденций, использование более широких стоп-лос и включение большего количества факторов подтверждения перед торговлей сигналами обворота.
Возможные пути оптимизации для этой стратегии включают:
Настройка скользящих средних периодов для выявления оптимальных долгосрочных/короткосрочных тенденций.
Испытание различных методов расчета поддержки/сопротивления, таких как Pivot Points.
Попробую другие показатели объема, например, денежный поток Чайкина, осциллятор объема.
Включая больше факторов подтверждения обратного движения, таких как долгосрочные графические модели, огромные пики объема и т. Д.
Использование фьючерсов на фондовые индексы для перекрестной проверки сигналов на рынках.
Благодаря тщательному тестированию комбинаций параметров можно добиться дальнейшего улучшения производительности.
Эта стратегия аккуратно сочетает в себе скользящие средние, ценовое действие и объем торговли с обратными тенденциями только на трендовых рынках.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Profit Table Strategy", overlay=true) // Input parameters fastLength = input(10, title="Fast MA Length") slowLength = input(20, title="Slow MA Length") takeProfitPercent = input(1, title="Take Profit (%)") / 100 stopLossPercent = input(1, title="Stop Loss (%)") / 100 trailingStopPercent = input(1, title="Trailing Stop (%)") / 100 // Price action conditions bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1] bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1] // Support and resistance levels supportLevel = input(100, title="Support Level") resistanceLevel = input(200, title="Resistance Level") // Volume conditions volumeCondition = volume > ta.sma(volume, 20) // Calculate moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Buy condition buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition // Sell condition sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition // Strategy logic strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition) // Calculate take profit, stop loss, and trailing stop levels takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent) stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent) trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent) // Plotting levels on the chart plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level") plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level") plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level") plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level") plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level") // Plotting buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)