Количественная стратегия «Золотой крест»


Дата создания: 2023-11-22 14:39:33 Последнее изменение: 2023-11-22 14:39:33
Копировать: 2 Количество просмотров: 652
1
Подписаться
1617
Подписчики

Количественная стратегия «Золотой крест»

Обзор

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

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

Центральная логика стратегии состоит в том, чтобы рассчитать пользовательский показатель чистой стоимости (NV). Индикатор NV определяет направление изменения цены, принимая положительное значение за текущий день, отрицательное значение за текущий день, а если нет изменений, то принимая 0. Таким образом, можно более четко отражать связь между изменениями цены и объемом торгов.

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

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

Стратегические преимущества

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

Стратегический риск

Основные риски этой стратегии:

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

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

  3. Это неэффективный фильтр для рынка шума, который легко поддается ловушке.

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

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

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

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

  2. Добавление фильтрационных показателей, использование других показателей, таких как MACD, KDJ, для фильтрации сигналов ложных сообщений, повышение стабильности стратегии.

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

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

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

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

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

//@version=3
strategy(title="@DankCoins - Customized Net Volume")
src = input(defval = close, title = "VA Source")
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume



// Inputs //
VHigh = input(defval = 50, title = "VHigh Amount")
VLow = input(defval = -50, title = "VLow Amount")


// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2012)

MAV1 = sma(volume, 3)
MAV2 = -sma(volume, 3)

enterShort = crossunder(nv, MAV1)
exitShort = crossunder(nv, MAV2)
enterLong = crossover(nv, MAV2)
exitLong = crossover(nv, MAV1)

// Time Function 
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=enterShort and window())
strategy.exit("Exit Long", from_entry = "Long Entry",  when=exitLong and window())
strategy.exit("Exit Short", from_entry = "Short Entry",  when=exitShort and window())


// Plot
plot(nv, color=blue, title="NV")
plot(VHigh, color=red)
plot(VLow, color=red)
plot(MAV1, color=green)
plot(MAV2, color=green)