
Эта стратегия создает торговый сигнал, рассчитывая последнюю остановку и последнюю остановку, в сочетании с текущей ценой, чтобы определить, вошла ли цена в определенное поле. Сделайте больше, когда цена превышает определенную пропорцию предыдущей остановки, и сделайте пустое, когда цена ниже определенной пропорции предыдущей остановки.
Сначала стратегия рассчитывает последнюю остановку lastbull и последнюю остановку lastbear. Затем рассчитывает текущую цену close относительно изменения lastbull в пропорции ddl, а также изменение lastbear в пропорции dds.
Когда ddl ниже конфигурируемой многосигнальной отметки signalallong, создается многосигнал up, когда dds выше конфигурируемой многосигнальной отметки signalshort, создается многосигнал dn。
При получении многосигналов необходимо открыть позицию, если нужно сделать много параметров needlong, и открыть позицию, если нужно сделать много параметров needshort. Коэффициент капитала для открытия позиции рассчитывается с учетом доходов и расходов.
Условие равного положения заключается в том, что после открытия позиции повышение цены означает увеличение позиции, а после открытия позиции снижение цены означает отсутствие позиции.
Эта стратегия объединяет тенденции и интервальные суждения и позволяет как улавливать тенденции, так и использовать интервальные прорывы для создания торговых сигналов. По сравнению с простой стратегией отслеживания тенденций, она может быстро улавливать новое направление тренда после сбора интервальных прорывов.
Параметры могут быть настроены в большом пространстве, можно гибко регулировать параметры, которые делают много свободных мест, чтобы адаптироваться к различным видам. Можно настроить период времени для открытия склада, чтобы избежать важных временных точек.
В стратегии отсутствует механизм остановки убытков, что не позволяет эффективно контролировать одиночные потери. При больших колебаниях в торговле разновидностями расчет позиций подвержен влиянию цены.
Можно установить стоп-лосс, чтобы ограничить одиночные потери. Можно установить алгоритм позиции в соответствии с различными сортами, чтобы сделать позицию более стабильной.
Стратегия объединяет определение тенденции и порывы в диапазоне для получения торговых сигналов. Она позволяет как улавливать новые направления тенденции, так и использовать характеристики колебаний в диапазоне. Установка параметров гибкая, а также имеет большое пространство для корректировки, подходящее для разных сортов.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Noro's DDL Strategy", shorttitle = "DDL str", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
needlong = input(true, title = "Long")
needshort = input(true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
signalshort = input(3.0, title = "Short, %")
signallong = input(-3.0, title = "Long, %")
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")
//Levels
bull = close > close[1] ? 1 : 0
bear = close < close[1] ? 1 : 0
lastbull = 0.0
lastbull := bull ? close : lastbull[1]
lastbear = 0.0
lastbear := bear ? close : lastbear[1]
//Signals
ddl = ((close / lastbull) - 1) * 100
up = ddl < signallong
dds = ((close / lastbear) - 1) * 100
dn = dds > signalshort
//Lines
plot(dds, style = plot.style_area, color = color.red, transp = 0)
plot(ddl, style = plot.style_area, color = color.lime, transp = 0)
plot(0, color = color.black, linewidth = 2, transp = 0)
//Background
col = (up and needlong) or (dn and needshort) ? color.yellow : na
bgcolor(col, transp = 20)
//Orders
lot = 0.0
lot := strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if up
strategy.entry("Long", strategy.long, lot, when = needlong and truetime)
if dn
strategy.entry("Short", strategy.short, lot, when = needshort and truetime)
if strategy.position_size > 0 and close > open
strategy.entry("Close", strategy.short, 0)
if strategy.position_size < 0 and close < open
strategy.entry("Close", strategy.long, 0)