Количественная торговая стратегия на основе улучшенного турбо-индикатора


Дата создания: 2023-11-14 14:40:54 Последнее изменение: 2023-11-14 14:40:54
Копировать: 0 Количество просмотров: 457
1
Подписаться
1166
Подписчики

Количественная торговая стратегия на основе улучшенного турбо-индикатора

Обзор

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

Принципы

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

Эта стратегия является дополнением к традиционным показателям по поводу скорости вращения:

  1. Вместо того, чтобы судить о покупке или продаже только по перекресткам, вводится концепция разрыва. Продажа может быть вызвана только тогда, когда разница между положительными и отрицательными перекрестками превышает установленный предел. Это позволяет отфильтровать некоторые недействительные небольшие перекрестные сигналы.

  2. Для уменьшения колебаний поворота на линии рейнджера применяется упрощение по EMA.

  3. Добавлена установка Stop Loss Stop Stop, позволяющая заранее установить долю прибыли и убытков и более точно контролировать риски.

  4. Вы можете выбрать только плюс, только минус или двунаправленную торговлю, чтобы удовлетворить различные потребности.

Основываясь на этих улучшениях, стратегия может более надежно улавливать тенденции и хорошо работать в обратном измерении.

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

  1. Улучшенные показатели резины, устраняющие недействительные сигналы, могут эффективно предотвратить ложные прорывы. Углаженная обработка EMA также помогает устранить шум.

  2. Используя отклонения для определения сигнала покупки или продажи, а не просто перекрестные, можно более надежно определить точку перехода тренда.

  3. Добавлена функция Stop Loss Stop, которая позволяет установить убыточный коэффициент для контроля риска в каждой сделке в соответствии с принципом рациональной торговли.

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

  5. Параметры этой стратегии разработаны разумно, хорошо отслеживаются и имеют практическую ценность.

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

  1. Эта стратегия применяется в основном к трендовым событиям, которые могут повлиять на показатели в консолидированном рынке.

  2. Сама гирлянда чувствительна к колебаниям акций, неправильная настройка параметров может привести к слишком частым сделкам.

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

  4. При наличии аномальных явлений на рынке, стоп-лосс может быть преодолен, и необходимо быть бдительным к этому риску.

Направление оптимизации

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

  2. Можно проверить чувствительность различных акций к параметрам, оптимизировать параметры.

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

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

  5. Можно исследовать методы индексации, основанные на этой стратегии, чтобы расширить ее потенциал.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// [Guz] Custom Vortex
// Custom version of the Vortex indicators that adds many features:
// -Triggers trades after a threshold is reached instead of the normal vortex lines cross (once the difference between the 2 lines is important enough)
// -Smooths the Vortex lines with an EMA
// -Adds Take Profit and Stop Loss selection
// -Adds the possibility to go Long only, Short only or both of them
// ! notice that it uses 10% position size and 0.04% trade fee, found on some crypto exchanges futures contracts
// Allows testing leverage with position size moddification (values above 100%, to be done with caution)
// Not an investment advice 

//@version=4
strategy(title="%-[Guz] Vortex Indicator Custom", shorttitle="%-[Guz] Vortex Indicator Custom", overlay=true)

period_ = input(300, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
ema_len = input(title="EMA Length", defval=7)
tresh= input(title="Threshold", defval=16.2, step=0.1)
VIP = ema(VMP / STR,ema_len)
VIM = ema(VMM / STR,ema_len)
//plot(VIP, title="VI +", color=#2962FF)
//plot(VIM, title="VI -", color=#E91E63)

condition_long = crossover(VIP-VIM, tresh/100)
condition_close = cross(VIP-VIM,0)
condition_short = crossunder(VIP-VIM, -tresh/100)

is_short=input(true,title="Do Short?")
is_long=input(true,title="Do Long?")


if (condition_long and is_long)
    strategy.entry("VortexLE", strategy.long, comment="Long Algo")
if (condition_short and is_short)
	strategy.entry("VortexSE", strategy.short, comment="Short Algo")
if (condition_close)
    strategy.close_all()

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


stop_loss_long_percent = input(2.5, title="Stop Loss Long", minval=0.1, step=0.1)
stop_loss_long = (1-stop_loss_long_percent/100)*strategy.position_avg_price

take_profit_long_percent = input(1.5, title="Take Profit Long", minval=0.1, step=0.1)
take_profit_long = (1+take_profit_long_percent/100)*strategy.position_avg_price


stop_loss_short_percent = input(2.5,title="Stop Loss Short", minval=0.1, step=0.1) 
stop_loss_short = (1+stop_loss_short_percent/100)*strategy.position_avg_price

take_profit_short_percent = input(1.7,title="Take Profit Short", minval=0.1, step=0.1)
take_profit_short = (1-take_profit_short_percent/100)*strategy.position_avg_price

strategy.exit("TP-SL Long", "VortexLE",  limit = take_profit_long , stop = stop_loss_long) //, trail_price = trail_price_long , trail_offset = trail_offset_long) //, trail_offset=tsl_offset_tick, trail_price=tsl_offset_tick) 
strategy.exit("TP-SL Short", "VortexSE",  limit = take_profit_short , stop = stop_loss_short)