Долгая стратегия прорыва на основе строительства линии К

Автор:Чао Чжан, Дата: 2024-01-05 12:37:46
Тэги:

img

Обзор

Эта стратегия реализует длинную позицию на 4-часовой линии Теслы, устанавливая простые правила суждения по K-линейному шаблону.

Принцип стратегии

Основная логика оценки стратегии основана на следующих правилах модели 4 K-линий:

  1. Самая низкая цена текущей K-линии ниже, чем цена открытия
  2. Самая низкая цена текущей линии K ниже, чем самая низкая цена предыдущей линии K
  3. Цена закрытия текущей K-линии выше, чем цена открытия
  4. Цена закрытия текущей K-линии выше, чем цена открытия и цена закрытия предыдущей K-линии

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

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

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

Стратегия имеет следующие преимущества:

  1. Используемые правила суждения по линии К очень просты и понятны, легко понять и легко практиковать.
  2. Он полностью основан на оценке ценовых субъектов без использования чрезмерно сложных технических показателей, а результаты обратных тестов просты.
  3. Внедрение кода имеет небольшие размеры, работает эффективно и легко оптимизировать и улучшать.
  4. Стоп-лосс и прибыль могут быть гибко установлены путем корректировки параметров для контроля рисков.

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

Основными рисками являются:

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

Для смягчения рисков могут быть приняты следующие методы:

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

Руководство по оптимизации

Потенциальные направления оптимизации стратегии включают:

  1. Включить модуль размещения позиций для определения размера сделки на основе коэффициента использования капитала.
  2. Проектируйте механизмы остановки потерь и снятия прибыли для гибкого выхода.
  3. Добавьте торговые фильтры, чтобы избежать недействительных сделок.
  4. Автооптимизировать параметры с помощью методов машинного обучения.
  5. Поддержка распространенной торговли на нескольких продуктах.

Заключение

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © TheQuantScience

//@version=5
strategy("SimpleBarPattern_LongOnly", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.03)

// Make input options that configure backtest date range
startDate = input.int(title="Start Date",
     defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month",
     defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year",
     defval=2017, minval=1800, maxval=2100)

endDate = input.int(title="End Date",
     defval=8, minval=1, maxval=31)
endMonth = input.int(title="End Month",
     defval=3, minval=1, maxval=12)
endYear = input.int(title="End Year",
     defval=2022, minval=1800, maxval=2100)
     
// Look if the close time of the current bar
// Falls inside the date range
inDateRange = true

// Setting Conditions 
ConditionA = low < open 
ConditionB = low < low[1]
ConditionC = close > open
ConditionD = close > open[1] and close > close[1]

FirstCondition = ConditionA and ConditionB 
SecondCondition = ConditionC and ConditionD
IsLong = FirstCondition and SecondCondition

TakeProfit_long = input(4.00)
StopLoss_long = input(4.00)
Profit = TakeProfit_long*close/100/syminfo.mintick
Loss = StopLoss_long*close/100/syminfo.mintick

EntryCondition = IsLong and inDateRange

// Trade Entry&Exit Condition 
if EntryCondition and strategy.opentrades == 0
    strategy.entry(id = 'Open_Long', direction = strategy.long)
    strategy.exit(id = "Close_Long", from_entry = 'Open_Long', profit = Profit, loss = Loss)







Больше