
Эта стратегия основана на длине объектов K-линий для определения направления многопространства. Она рассчитывает среднюю длину объектов на последних 30 K-линий, делая больше, когда длина объектов солнечных линий больше средней длины объектов, и делая пустое, когда длина объектов солнечных линий больше средней длины объектов.
Эта стратегия начинается с вычисления длины объекта K-линии body, а затем вычисляет среднее значение длины объекта K-линии sbody ≠ 30.
Когда сегодня K-линия является отрицательной ((bar==-1), и длина сущности больше средней длины сущности, открыть многозадачность ((up1) ‒.
Откройте пустую страницу, когда сегодняшняя K-линия является солнечной линией ((bar==1), и длина объекта больше средней длины объекта ((dn1) }}.
После открытия опциона, если сегодняшняя K-линия является солнечной линией ((bar==1), и текущая позиция является прибыльной, то опция будет закрыта.
После открытия открытой позиции, если сегодняшняя K-линия является отрицательной ((bar==-1), и текущая позиция является прибыльной, то открытая позиция является открытой.
Эта стратегия просто и эффективно использует длину K-линейных объектов для определения тенденции, чем длиннее объект, тем сильнее тенденция, поэтому использует длину объекта в качестве основы для определения многопространственности.
Эта стратегия имеет следующие преимущества:
Стратегическая концепция проста, понятна и легко реализуема.
Используйте длину K-линии для определения тенденции, чтобы избежать помех от шума.
Используя динамические средние значения, можно адаптироваться к изменениям рынка.
Установка условий прибыльного нивелирования может повысить стратегическую доходность.
Настраиваемые параметры стратегии, применимые к различным рыночным условиям.
Однако эта стратегия также несет в себе некоторые риски:
Более длинные объекты не обязательно указывают на сильную тенденцию, но могут быть нормальными колебаниями.
Неправильная установка временного окна средней длины объекта может привести к упущенным торговым возможностям.
Неожиданные события могут привести к стратегическим потерям.
Продолжительное владение свободными позициями может привести к увеличению убытков.
Решение риска:
В сочетании с другими индикаторами, чтобы избежать ошибочных сделок.
Для тестирования различных параметров и оптимизации расчета средней длины объекта.
Установка параметров стоп-стоп для контроля одноразовых потерь.
Оптимизация логики открытия и закрытия позиций, чтобы избежать длительного хранения.
Эта стратегия может быть оптимизирована в следующих аспектах:
В сочетании с MACD, RSI и другими индикаторами, чтобы избежать ошибочных сигналов из-за обычных колебаний.
Тестирование параметров различных средневековых интервалов времени для поиска оптимальной комбинации параметров.
Добавление логики контроля открытых позиций, постепенное уменьшение открытых позиций с увеличением числа потерь.
Установка условий для выхода с мобильным стоп-лоском или стоп-лоском прибыли, контроль одноразового убытка.
Оптимизация условий для открытия позиции и ее сохранения, чтобы избежать недействительной сделки. Например, если 3 последовательных K-линейных сущностей длиннее, то они открывают позиции.
Избегайте торговли в определенные периоды времени или до и после публикации важных данных, чтобы контролировать потери от валютных потрясений.
Общая концепция стратегии ясна и понятна, и время входа определяется сравнением 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()