Это краткосрочная торговая стратегия, основанная на прорыве импульса и средней реверсии. Она включает в себя несколько индикаторов, включая скользящую среднюю, модели свечей, объем и волатильность, чтобы определить направленные возможности с прорывом импульса для улавливания краткосрочных тенденций.
Используйте 3-дневную EMA в качестве ориентировочной скользящей средней линии.
Открытая цена выше, чем цена OHLC предыдущего дня (среднее значение открытых, высоких, низких и закрытых цен), что указывает на сильный интерес к покупке на открытом рынке, что является бычьим сигналом (Cond02).
Объем меньше, чем в предыдущий день. Это показывает недостаточный импульс, что способствует направленному прорыву (Cond03).
Цена закрытия выходит из диапазона цен предыдущего дня.Это сигнализирует о прорыве (Cond04).
Когда все вышеперечисленные 4 условия выполнены, перейдите на длинный (вход).
Правила выхода: закрыть позицию, если стойки с момента входа превышают 10 или максимальная прибыль от закрытия достигает 5 (выходы).
Эта стратегия сочетает в себе несколько индикаторов для определения направления рыночного прорыва для улавливания краткосрочных тенденций.
Использование нескольких индикаторов помогает отфильтровать ложные прорывы и выявить действительные прорывы.
Недостаточный импульс способствует направленному прорыву и зажиганию тренда, что позволяет поймать более четкие направленные возможности.
Высокая частота торговли подходит для краткосрочной торговли для быстрого получения небольшой прибыли.
Разумный режим остановки и получения прибыли позволяет эффективно контролировать потерю и риск одной сделки.
Многочисленные одновременные открытые сделки представляют собой риск переоценки.
Настройки статических параметров могут быть слишком жесткими.
Существует вероятность неудачного выхода, что может привести к проигрышу сделок.
Сосредоточьтесь только на краткосрочной информации без всестороннего понимания основных тенденций.
Точка остановки может быть слишком узкой, можно расширить до 20-30 бар.
Включите определение тренда, чтобы избежать торговли против основных тенденций.
Оптимизировать настройки параметров. Период EMA, параметры прорыва могут быть протестированы и оптимизированы в соответствии с различными рыночными условиями. Адаптивные параметры также могут использоваться для автоматических корректировок.
Другие вспомогательные индикаторы, такие как A/D, Bollinger Band Width, RSI, могут быть добавлены для проверки достоверности прорыва и снижения ложных прорывов.
Тест на исторические данные для изучения эффективности стратегии при огромных взлетах и падениях, бурных рынках и т. д.
Оптимизируйте механизмы остановки потери. Рассмотрите остановку потери, процентную остановку потери, адаптивную остановку потери и т. Д., Чтобы сделать остановки более гибкими.
Эта стратегия объединяет EMA, объем, волатильность и другие показатели для выявления краткосрочных возможностей с импульсом. Это типичная краткосрочная стратегия прорыва с частыми доходами и гибкими операциями для быстрого получения прибыли. Но она слишком сильно фокусируется на недавней информации без всестороннего понимания основных тенденций. Мы можем оптимизировать ее, включив факторы тренда, оптимизируя параметры, улучшая действенность прорыва, тестируя экстремальные условия, чтобы сделать стратегию более надежной и адаптивной.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Free Strategy #01 (ES / SPY)", overlay=true) // Inputs Quantity = input(1, minval=1, title="Quantity") EmaPeriod = input(3, minval=1, title="EMA Period") 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 Ema = ema(close, EmaPeriod) OHLC = (open + high + low + close) / 4.0 // Conditions Cond00 = strategy.position_size == 0 Cond01 = close < Ema Cond02 = open > OHLC Cond03 = volume <= volume[1] Cond04 = (close < min(open[1], close[1]) or close > max(open[1], close[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)) // Exits strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))