
이 전략은 마지막 정지 가격과 마지막 하락 가격을 계산하여 현재 가격과 결합하여 가격이 특정 영역에 진입했는지 판단하여 거래 신호를 생성합니다. 가격이 이전 정지 가격의 일정한 비율을 초과했을 때 더 많은 것을하고, 가격이 이전 하락 가격의 일정한 비율을 초과했을 때 텅 비어 있습니다.
전략은 먼저 마지막 정지 가격lastbull과 마지막 정지 가격lastbear을 계산한다. 그리고는 현재 가격close에 대한 변화의 비율ddl를 계산하고, Lastbull에 대한 변화의 비율dds를 계산한다.
DDL가 구성된 다중 신호 절值signallong보다 낮으면 다중 신호 up가 발생하고, dds가 구성된 다중 신호 절值signalshort보다 높으면 다중 신호 dnn이 발생한다.
다중 신호를 받으면 다중 변수 (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)