Эта стратегия основана на Динаполи (DiNapoli) для определения торгового сигнала. Показатель использует разницу между ценой и движущимся средним, чтобы отразить зону перекупа и перепродажи цены, чтобы идентифицировать возможность обратного обмена.
Стратегия включает в себя следующие элементы:
Подвижная средняя: рассчитывает среднюю линию за определенный период, чтобы определить тенденцию цены.
Дифференциальный показатель: цена за вычетом дифференциального значения средней линии, образуя индикатор колебаний.
Линия порога: создает торговый сигнал, когда показатель разрыва превышает линию порога.
При переходе через границу с разницами в значении, используйте дополнительные сигналы.
Сигнал для пуска: пускайте при прохождении пороговой линии.
Обратная опция: можно использовать в качестве торгового сигнала обратный сигнал плюс/ноль.
Эта стратегия используется для того, чтобы поймать краткосрочные возможности для реверсивности путем определения отклонений между ценами и тенденциями.
По сравнению с другими стратегиями, она имеет следующие преимущества:
Принципы просты, понятны, практически не сложны.
Небольшое количество параметров, удобство оптимизации обратной связи.
Можно самостоятельно регулировать параметры для различных циклов.
Предоставление реверсивных опций, гибкие для различных рынков.
Определенные меры по предотвращению потерь позволяют контролировать риск.
Уклонение относительно небольшое, и его колебания могут быть уменьшены с помощью параметров.
Внедрение машинного обучения для оптимизации параметров.
В целом, риски и выгоды хорошо балансируются, и это хорошо подходит для краткосрочной торговли.
Однако эта стратегия несет в себе следующие основные риски:
Слишком большая зависимость от оптимизации параметров, существует риск пересочетания.
Промежуточные средние и индикаторы задерживаются.
Отсутствие подтверждения вспомогательных переменных, кроме цены.
Эффективность выбора времени может ослабеть из-за изменения рыночной ситуации.
Недостаточно долгое время для получения Alpha, часто требуется корректировка.
Необходимо обратить внимание на коэффициент выручки и убытка, чтобы не допустить, чтобы кривая была слишком крутой.
Высокая частота транзакций влияет на стоимость транзакций.
Необходимо проверить стабильность параметров на нескольких рынках.
На основе вышеприведенного анализа, направления оптимизации стратегии включают в себя:
Испытание эффективности различных средних параметров.
Добавление к показателю объема переводов для проверки.
Для контроля риска устанавливается стоп-стоп.
Оценка полициклической выносливости многих сортов.
Проверяется с помощью прокрутки.
Регулирование управления позициями, снижение частоты торгов.
Внедрение машинного обучения для создания лучших параметров.
Оптимизация общей стратегии управления деньгами.
Продолжайте менять стратегию, чтобы адаптироваться к изменениям рынка.
Эта стратегия в целом является более простой реверсивной стратегической идеей, которая может получить хороший эффект путем корректировки параметров. Однако любая стратегия должна предотвращать перенастройку и обеспечивать стабильную прибыль в долгосрочной перспективе. Это требует постоянного отслеживания и оптимизации, улучшения стратегии с большего количества измерений.
/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/12/2016
// DiNapoli Detrended Oscillator Strategy
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="DiNapoli Detrended Oscillator Strategy Backtest")
Length = input(14, minval=1)
Trigger = input(0)
reverse = input(true, title="Trade reverse")
hline(Trigger, color=gray, linestyle=line)
xSMA = sma(close, Length)
nRes = close - xSMA
pos = iff(nRes > Trigger, 1,
iff(nRes <= Trigger, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
plot(nRes, color=blue, title="DiNapoli")
barcolor(possig == -1 ? red: possig == 1 ? green : blue )