Стратегия многомодельной комбинации свечных паттернов


Дата создания: 2023-10-17 15:53:06 Последнее изменение: 2023-10-17 15:53:06
Копировать: 0 Количество просмотров: 671
1
Подписаться
1617
Подписчики

Стратегия многомодельной комбинации свечных паттернов

Обзор

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

Принципы

Центральная логика этой стратегии заключается в построении ряда правил для определения криптографических форм, которые затем объединяются для создания торговых сигналов.

Во-первых, он определяет некоторые базовые переменные, описывающие свойства проволоки, такие как размер тела проволоки, цена открытия, цена закрытия и т. д.

Затем он определяет три типа торговых баров в зависимости от отношения цены закрытия и цены открытия: 1 означает повышение, -1 означает снижение, 0 означает не повышение.

На этой основе были построены три правила определения формы:

  1. Engulfing Pattern: текущая K-линия окружает предыдущую K-линию, создавая сигнал покупки или продажи.

  2. Harami Pattern: верхняя K-линия окружает текущую K-линию, создавая сигнал покупки или продажи.

  3. Harami Cross Pattern: сочетание пустого ядра и звезды креста для получения сигнала покупки или продажи.

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

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

Преимущества

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

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

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

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

Риск

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

  • Настройка параметров формы зависит от опыта. Параметры формы, такие как размер объекта, требуют накопления опыта для корректировки.

  • Риски, связанные с односторонним удержанием позиции. Лишь лишние или только лишние позиции ограничивают возможности для получения прибыли.

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

Оптимизация

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

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

  • Тестирование параметров предпочтений различных сортов, создание формового сочетания для различных сортов.

  • Добавление алгоритмов машинного обучения, которые помогут оптимизировать параметры и распознавать формы с помощью ИИ.

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

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

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

//Noro
//2018

//@version=3
strategy(title = "Noro's CandleModels Tests", shorttitle = "CandleModels tests", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

eng = input(true, defval = true, title = "Model Engulfing")
har = input(true, defval = true, title = "Model Harami")
harc = input(true, defval = true, title = "Model Harami Cross")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
rev = input(false, defval = false, title = "Reversive trading")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
doji = body < abody / 10
up1 = eng and bar == 1 and bar[1] == -1 and min <= min[1] and max >= max[1]
dn1 = eng and bar == -1 and bar[1] == 1 and min <= min[1] and max >= max[1]
up2 = har and bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1]
dn2 = har and bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1]
up3 = harc and doji and bar[1] == -1 and low >= min[1] and high <= max[1]
dn3 = harc and doji and bar[1] == 1 and low >= min[1] and high <= max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 and rev == false

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()