Стратегия индексных точек


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

Стратегия индексных точек

Обзор

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

Стратегический принцип

Эта стратегия сначала вычисляет среднюю величину SMA и показатель ROC длиной l, затем вычисляет разницу между текущей ценой закрытия и SMA k ≠ k. Затем вычисляет s-дневную агрегацию и сумму k ≠ k.

В частности, в коде:

  1. Средняя линия SMA длиной l a

  2. Рассчитайте показатель ROC r длиной l

  3. Расчет разницы между текущей ценой закрытия и средней линией SMA k = close - a

  4. Вы получите сумму, если вы будете складывать в течение s дней.

  5. Если сумма > 0, сделайте больше; если сумма < 0, сделайте пустое.

  6. Условия равных позиций: сумма при плюсовой и равной позиции ; сумма при минусовой и равной позиции <0

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

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

Это довольно простая и практичная стратегия торговли на коротких линиях, которая имеет следующие преимущества:

  1. Используемая комбинация показателей просты, легко понятны и реализуемы.

  2. Фильтров на фоне разрыва показателей позволяют найти более точные торговые возможности.

  3. Накопление разрыва позволяет более точно определить тенденцию короткой линии.

  4. В зависимости от рынка можно корректировать параметры l и s, чтобы адаптироваться к различным циклам.

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

  6. Высокая эффективность использования капитала, возможность осуществления частого короткого потока операций.

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

В этой стратегии есть определенные риски, в основном:

  1. “Кроме того, мы не можем рассчитывать на то, что в ближайшее время мы сможем достигнуть поставленных целей.

  2. Неправильная настройка параметров может привести к слишком частым сделкам или упущенным возможностям.

  3. Невозможно эффективно противостоять обратному тренду, и превышение остановки может привести к большим потерям.

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

  5. Частота сделок может увеличить стоимость сделки, а также увеличить пропускную способность, что может повлиять на прибыль.

Решение риска включает в себя:

  1. Применение параметров для снижения частоты транзакций.

  2. В сочетании с трендовыми индикаторами можно определить обратный тренд.

  3. Оптимизация стратегии по удержанию убытков и борьба с единичными потерями.

  4. Добавление модуля оптимизации параметров автоматизации, снижает зависимость от опыта трейдера.

  5. Оптимизация заказов и снижение затрат на транзакции.

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

Эта стратегия может быть улучшена в следующих аспектах:

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

  2. Повышение качества торговых сигналов в сочетании с большим количеством индикаторов и условий фильтрации. Например, в сочетании с трендовыми индикаторами, избегайте обратной торговли и т. Д.

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

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

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

  6. Добавление автоматизированного модуля оптимизации обратной связи для быстрой оценки влияния различных параметров на стратегию.

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

В результате этих оптимизаций эта стратегия может стать более всеобъемлющей, интеллектуальной, стабильной и управляемой системой коротких линий.

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

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

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

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
    strategy.entry("Long", strategy.long, oca_name="Long",  comment="Long")
else
    strategy.cancel(id="Long")
if sum<0
    strategy.entry("Short", strategy.short, oca_name="Short", comment="Short")
else
    strategy.cancel(id="Short")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0

//shortCondition = sum<0
//exitshort = sum>0

//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)