Стратегия восемь дней для изменения импульса

Автор:Чао Чжан, Дата: 2023-12-05 10:56:37
Тэги:

img

Обзор

Эта стратегия в основном использует обратную функцию цен после непрерывного закрытия выше или ниже 5-дневной простой скользящей средней в течение 8 дней, чтобы поймать эффект импульса в среднесрочной и краткосрочной перспективе.

Логика стратегии

  1. Вычислить 5-дневную простую скользящую среднюю SMA.
  2. Определите восходящий тренд TrendUp как ближайший больше или равен SMA, нисходящий TrendDown как ближайший меньше или равен SMA.
  3. Подтвердить условие для изменения тренда: запустить сигнал покупки, когда цена закрытия закрывается ниже SMA в течение 8 дней подряд и на следующий день переходит в восходящий тренд (пересекает SMA); запустить сигнал продажи, когда цена закрытия закрывается выше SMA в течение 8 дней подряд и на следующий день переходит в нисходящий тренд (пересекает SMA).
  4. Вход: длинный, когда условие покупки Buy запускается вчера, а текущий тренд - нисходящий; короткий, когда условие продажи Sell запускается вчера, а текущий тренд - восходящий.
  5. Выход: закрытие длинной позиции, когда цена закрытия пересекает SMA; закрытие короткой позиции, когда цена закрытия пересекает SMA.

Анализ преимуществ

  1. Захватывает импульс, используя функции перемены цен, подходящие для среднесрочной и краткосрочной торговли.
  2. Высокие торговые возможности, так как непрерывный прорыв SMA в течение 8 дней происходит часто.
  3. Пятидневный СМИ работает хорошо, избегает слишком много ложных прорывов.
  4. Контролируемый риск с четкой точкой остановки.

Анализ рисков

  1. Стоп-лосс может часто запускаться во время консолидации рынка.
  2. Может пропустить лучшую точку входа, если дни прорыва слишком длинные.
  3. Трудно получить прибыль, если есть длительная тенденция.

Может оптимизировать параметры SMA, улучшить критерии входа, чтобы предотвратить ложный прорыв, комбинировать с индикаторами тренда для укрепления стратегии.

Руководство по оптимизации

  1. Оптимизация параметров: тестирование различных периодов SMA для поиска лучших параметров.
  2. Оптимизация входа: добавьте индикаторы объема, чтобы избежать ложных прорывов; или судите о бычьих/медвежьих свечах, чтобы избежать ударов.
  3. Оптимизация выхода: проверка фиксированного процента остаточных стоп-потерь, чтобы дать больше места.
  4. Контроль рисков: устанавливается максимальное количество дней остановки потери для ограничения потерь.
  5. Комбинировать показатели: добавить RSI, MACD для определения тенденции для определения рыночных условий.

Заключение

Стратегия фиксирует движение цены от прорыва до отката, оценивая импульс, реализует торговую логику избегания сбоев и следования тренду. Ключевыми являются строгие параметры и надежные критерии входа для предотвращения шума; разумный стоп-лосс для ограничения потерь. Сочетание с индикаторами тренда может достичь лучших результатов. Логика стратегии проста и чиста. Стоит изучить дальнейшую оптимизацию.


/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
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/
// © Marcuscor

//@version=5

// Inpsired by Linda Bradford Raschke: a strategy for trading momentum in futures markets

strategy("8D Run", initial_capital = 50000, commission_value = 0.0004) 


SMA = ta.sma(close,5)

TrendUp = close >= SMA

TrendDown = close <= SMA


//logic to long

TriggerBuy = ta.barssince(close < SMA) >= 8

Buy = TriggerBuy[1] and TrendDown 

strategy.entry("EL", strategy.long, when = Buy)
strategy.close(id = "EL", when = close > SMA)

// 1) color background when "run" begins and 2) change color when buy signal occurs
bgcolor(TriggerBuy? color.green : na, transp = 90)
bgcolor(Buy ? color.green : na, transp = 70)


// logic to short 

TriggerSell = ta.barssince(close > SMA) >= 8

Sell = TriggerSell[1] and TrendUp

strategy.entry("ES", strategy.short, when = Sell)
strategy.close(id = "ES", when = close < SMA)

// 1) color background when "run" begins and 2) change color when sell signal occurs
bgcolor(TriggerSell ? color.red : na, transp = 90)
bgcolor(Sell ? color.red : na, transp = 70) 







Больше