Длинные и короткие стратегии, основанные на сущностях K-line


Дата создания: 2023-11-16 17:14:48 Последнее изменение: 2023-11-16 17:14:48
Копировать: 0 Количество просмотров: 649
1
Подписаться
1617
Подписчики

Длинные и короткие стратегии, основанные на сущностях K-line

Обзор

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

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

Эта стратегия начинается с вычисления длины объекта K-линии body, а затем вычисляет среднее значение длины объекта K-линии sbody ≠ 30.

Когда сегодня K-линия является отрицательной ((bar==-1), и длина сущности больше средней длины сущности, открыть многозадачность ((up1) ‒.

Откройте пустую страницу, когда сегодняшняя K-линия является солнечной линией ((bar==1), и длина объекта больше средней длины объекта ((dn1) }}.

После открытия опциона, если сегодняшняя K-линия является солнечной линией ((bar==1), и текущая позиция является прибыльной, то опция будет закрыта.

После открытия открытой позиции, если сегодняшняя K-линия является отрицательной ((bar==-1), и текущая позиция является прибыльной, то открытая позиция является открытой.

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

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

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

  1. Стратегическая концепция проста, понятна и легко реализуема.

  2. Используйте длину K-линии для определения тенденции, чтобы избежать помех от шума.

  3. Используя динамические средние значения, можно адаптироваться к изменениям рынка.

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

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

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

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

  1. Более длинные объекты не обязательно указывают на сильную тенденцию, но могут быть нормальными колебаниями.

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

  3. Неожиданные события могут привести к стратегическим потерям.

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

Решение риска:

  1. В сочетании с другими индикаторами, чтобы избежать ошибочных сделок.

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

  3. Установка параметров стоп-стоп для контроля одноразовых потерь.

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

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

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

  1. В сочетании с MACD, RSI и другими индикаторами, чтобы избежать ошибочных сигналов из-за обычных колебаний.

  2. Тестирование параметров различных средневековых интервалов времени для поиска оптимальной комбинации параметров.

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

  4. Установка условий для выхода с мобильным стоп-лоском или стоп-лоском прибыли, контроль одноразового убытка.

  5. Оптимизация условий для открытия позиции и ее сохранения, чтобы избежать недействительной сделки. Например, если 3 последовательных K-линейных сущностей длиннее, то они открывают позиции.

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

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

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

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

//Noro
//2018

//@version=3
strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
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")

//Signals
bar = close > open ? 1 : close < open ? - 1 : 0
body = abs(close - open)
sbody = ema(body, 30)

up1 = bar == -1 and (body > sbody or usebody == false)
dn1 = bar == 1 and (body > sbody or usebody == false)

plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0)
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()