
이 전략은 브레이크치 이론에 기초하여, 최고 가격과 최저 가격의 이동 평균을 비교하여 트렌드가 반전되는지 판단하고, 잠재적인 브레이크치 포인트를 발견하고, 브레이크치 포인트가 발생했을 때 거래한다. 전략은 간단하고 직접적이며, 급격한 변동의 지표를 추적하는 데 사용됩니다.
이 전략은 먼저 사용자의 설정에 따라 일정 주기 동안의 최고 가격과 최저 가격의 이동 평균을 계산합니다. 최고 가격의 이동 평균은 상승세를 나타냅니다. 최저 가격의 이동 평균은 하락세를 나타냅니다. 가격이 상승세를 돌파 할 때, 가격이 상승하는 경향이 있음을 나타냅니다. 이 전략은 더 많은 포지션을 열 것입니다. 가격이 하락하는 경향이 있음을 나타냅니다.
이 전략은 또한 선택 가능한 중지 손실 설정을 제공합니다. 과잉하면, 중지 손실이 상행; 공백하면, 중지 손실이 하행. 이것은 손실을 줄일 수 있습니다. 사용자는 또한 브레이크 포인트를 중단 포인트로 선택 할 수 있습니다. 즉, 과잉 중지 손실이 하행, 공백 중지 손실이 상행, 이것은 더 큰 수익 공간을 얻을 수 있습니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
전략적 아이디어는 간단하고 직설적이며, 이해하기 쉽고, 실행하기 쉽습니다.
가격의 변화를 빠르게 파악하고 적시에 위치를 조정할 수 있다.
선택적인 Stop Loss Stop Mode가 제공되며, 개인 위험 선호도에 따라 설정할 수 있다.
트레이딩 신호는 명확하게 생성되며, 빈번한 가짜 신호는 발생하지 않는다.
더 적은 수의 파라미터를 설정할 수 있고, 더 쉽게 사용할 수 있다.
유연한 구성으로만 작업할 수 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
이 신호는 가짜 신호일 수도 있고, 지속될 수도 없다.
브레이크 사이클을 잘못 설정하면 더 긴 선의 추세를 놓칠 수 있다.
거래량이 고려되지 않은 상태에서 거래가 이루어지는 경우, 거래량이 계속 상승하거나 감소할 수 있습니다.
“이런 일이 벌어진다면, 우리는 더 나은 것을 놓칠 수 있을 것이다”.
하지만, 이런 현상들이 일어나면, 그 현상들이 파장이 될 수도 있다.
브레이크포인트만을 기반으로 거래하면 수익이 불확실하다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
거래량 지표와 결합하여 가짜 브레이크를 피하십시오. 예를 들어, 브레이크 할 때 거래량이 확대되어 브레이크가 실제로 효과적일 수 있음을 나타냅니다.
이동 평균의 주기적 변수를 최적화하여 다른 기간의 추세 변화에 맞게 만들 수 있다. 또한 다른 유형의 이동 평균을 시도할 수 있다.
재조정 진폭을 설정할 수 있으며, 돌파점이 발생한 후 추가 확인이 가능하며, 가짜 돌파구를 방지한다.
브레이크 베이스를 통해 볼링거 채널과 같은 지수 이동 평균 도구를 추가하여 더 많은 방향 지시를 얻을 수 있습니다.
RSI, MACD 등과 다른 INDICATOR와 결합하여 더 많은 보조 거래 신호를 얻을 수 있으며 의사 결정의 정확성을 향상시킬 수 있습니다.
시장의 변동에 더 잘 적응할 수 있도록 손해 차단 전략을 최적화하고 위험을 통제합니다.
이 돌파 거래 전략의 전체적인 아이디어는 명확하고 이해하기 쉽다. 가격 돌파 위아래를 추적하여 진출 시기를 판단한다. 전략 최적화 공간은 넓으며, 더 많은 지표 정보와 매개 변수 최적화를 통합하여 전략 효과를 강화할 수 있다. 이 전략의 기본 아이디어에 익숙한 후, 자신의 필요한 매개 변수에 따라 조정할 수 있어 더 나은 거래 효과를 얻을 수 있다.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Brakeout Strategy v2.0", shorttitle = "Brakeout str 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length")
bod = input(false, defval = false, title = "Body mode")
rev = input(false, defval = false, title = "Revers")
showlines = input(true, defval = true, title = "Show Lines?")
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")
//Extremums
min = bod ? min(open, close) : low
max = bod ? max(open, close) : high
upex = highest(max, len) + syminfo.mintick * 10
dnex = lowest(min, len) - syminfo.mintick * 10
col = showlines ? blue : na
plot(upex, color = col, linewidth = 2)
plot(dnex, color = col, linewidth = 2)
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[len])) and rev == false
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = upex)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnex)
if (not na(close[len])) and rev == true
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()