Стратегия длинной позиции Golden Ratio Backtest


Дата создания: 2023-11-28 13:40:35 Последнее изменение: 2023-11-28 13:40:35
Копировать: 1 Количество просмотров: 678
1
Подписаться
1617
Подписчики

Стратегия длинной позиции Golden Ratio Backtest

Обзор

Долгосрочная стратегия разделения золота является стратегией свинговых торгов. Она генерирует сигналы на основе высоких и низких цен золота за последние 21 день.

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

Стратегия сначала рассчитывает максимальные цены (high21) и минимальные цены (low21) за последние 21 день, а затем рассчитывает разницу между ними. Торговый сигнал: сделайте больше, когда текущая низкая цена выше низкой 21 + diff * 0.382, а цена закрытия предыдущей K-линии выше цены открытия предыдущей K-линии.

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

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

Преимущества такой стратегии:

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

  2. В этом случае мы можем снизить риски для системы.

  3. Применение механизма отслеживания тенденций для определения поступления через восходящую эластичность.

  4. Есть четкая стоп-линия, которая позволяет контролировать риск.

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

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

Однако эта стратегия также несет в себе некоторые риски:

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

  2. Стоп-линия ближе, и она может быть сдвинута ночным GAP.

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

  4. Прибыль от количественных сделок также зависит от их стоимости.

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

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

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

  1. Автоматическая оптимизация параметров на основе алгоритмов машинного обучения, чтобы параметры цикла отсчета были более соответствующими текущей рыночной среде.

  2. Вместе с финансовыми производными, такими как фондовые индексы и фьючерсы, используйте рычаги для увеличения операций.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © omkarkondhekar

//@version=4
strategy("GRBLong", overlay=true)

highInput = input(title = "High Days", type = input.integer, defval = 21, minval = 11)
lowInput = input(title = "Low Days", type = input.integer, defval = 21, minval = 5)

// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2019, minval=1800, maxval=2100)

// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))

high21 = highest(high, highInput)
low21 = lowest(low, lowInput)

diff = high21 - low21

longEntrySignal = low > low21 + (diff * 0.382) and close[1] > open[1] 

strategy.entry("Long", strategy.long, limit = low, when = longEntrySignal and afterStartDate)
strategy.exit("Long Exit", "Long", stop = low21 + (diff * 0.236))

plot(low21 + (diff * 0.382), color= color.green)
plot(low21 + (diff * 0.236), color = color.red)