
20 레벨 브레이크 전략은 트렌드 추적 전략이다. 그것의 핵심 아이디어는, 가격이 어떤 핵심 레벨을 뚫었을 때, 트렌드가 반전되는 것을 나타내는 것으로, 이 때 뚫린 방향에 따라 상장 또는 상하 위치를 설정할 수 있다.
이 전략은 20일 평균선을 핵심 수준으로 선택했다. 20일 평균선을 위쪽에서 클로즈가 돌파할 때, 더 많은 것을 하고, 20일 평균선을 아래쪽에서 클로즈가 돌파할 때, 더 많은 것을 하지 않는다.
20 레벨 브레이크 전략은 20일 평균선을 트렌드 브레이크의 기준으로 사용한다. 가격이 위쪽에서 20일 평균선을 깨면, 거래가 하향 트렌드에 있다는 것을 나타냅니다. 이 때 공백; 가격이 아래쪽에서 20일 평균선을 깨면, 거래가 상향 트렌드에 있다는 것을 나타냅니다. 이 때 더 많이 한다.
이 전략은 동시에 MACD 지표와 결합하여 상황을 판단한다. MACD가 빨간색으로 표시될 때만 공백 신호를 발송한다. MACD가 녹색으로 표시될 때만 다중 신호를 발송한다. 이것은 정리할 때 잘못된 신호를 피할 수 있다.
이 전략의 논리는 다음과 같습니다.
이러한 설정으로, 이 전략은 시장 추세를 추적하는 목적을 달성하기 위해 트렌드가 전환될 때 기회를 잡을 수 있습니다.
20 레벨의 돌파구 전략은 다음과 같은 장점이 있습니다:
조작이 간단하고 실행이 쉽다. 20일 평균선의 계산과 판단 규칙은 매우 간단하고 직접적이다.
상쇄는 상대적으로 작다. 가격 돌파구를 매장 신호로 사용하면 불필요한 반향을 효과적으로 방지할 수 있다.
트렌드를 추적하는 능력이 강하다. 20일 평균선은 중장기 트렌드의 변화를 잘 반영할 수 있다. MACD 지표와 결합하여 필터링하여 트렌드 흔들림에 대해 잘못된 입장을 피한다.
20단계 돌파 전략에는 다음과 같은 위험도 있습니다.
가격의 급격한 변동이 있을 때, 20일 평균 라인 방법은 지연을 초래할 것이며, 최적의 진입 시기를 놓칠 수 있다.
평형상황에서 가격이 자주 상하로 돌파될 수 있다. 좋은 지표가 필터링되지 않으면 너무 많은 무효 거래가 발생할 것이다.
이 전략은 주가 변동의 규모 요소를 고려하지 않는다. 변동률 지표와 결합되지 않으면 과도한 손실 위험에 직면한다.
고정된 스톱 스 위치도 전략의 원활한 진행에 영향을 미칩니다. 이것은 다른 지표에 따라 조정해야 합니다.
20 레벨 브레이크 전략은 다음과 같은 측면에서 최적화 될 수 있습니다:
10일, 30일 같은 다른 평균주기를 시도해서 어떤 주기가 트렌드를 더 잘 파악할 수 있는지 보세요.
변동률 지표를 추가하여 주식 가격 변동의 폭에 따라 포지션을 동적으로 조정한다. 이것은 위험을 효과적으로 제어할 수 있다.
스톱 로즈 스톱 위치를 최적화한다. 역사 재검토 데이터에 따라 최적의 매개 변수를 계산할 수 있다.
KDJ, 브린 라인 등과 다른 지표와 함께 ormapSignal을 시도하십시오. 이것은 유효하지 않은 거래를 줄일 수 있습니다.
개선된 버전을 개발하고, 더 높은 시간 프레임에서 더 큰 트렌드를 찾고, 더 낮은 시간 프레임에서 도입합니다.
20 레벨 브레이크 전략은 가격 브레이크를 통해 트렌드 전환점을 판단하며, 동작이 간단하고, 트렌드 추적 능력이 강하다는 장점이 있다. 그러나 또한 시장의 복잡성에 적응하기 위해 추가적으로 최적화 할 필요가 있는 몇 가지 위험도 있다.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//@version=4
strategy("20 Level Breakout", overlay=true)
baseLevel = math.floor(close * 100) /100
eigthylevel = baseLevel - 0.002
twentyLevel = baseLevel + 0.002
takeprofitL = baseLevel - 0.01
stoplossL = baseLevel + 0.02
takeprofitS = baseLevel + 0.015
stoplossS = baseLevel - 0.02
isPriceAboveLevel(price, level) =>
price > level
breakout = close > twentyLevel and close > baseLevel
breakoutl = close < eigthylevel and close < baseLevel
// Entry condition: Only enter if there are no open trades and the close is between baseLevel and baseLevel + 0.01
isLong = breakout and close > baseLevel and close <= (baseLevel + 0.01) and ta.rsi(close, 14) > 40 and ta.ema(close,50)<close
isShort = breakoutl and close < baseLevel and close >= (baseLevel - 0.01)
// Debugging
plot(isLong ? 1 : 0, color=color.blue, style=plot.style_histogram)
plotshape(isLong, style=shape.triangledown, color=color.green, size=size.small)
plotshape(isShort, style = shape.triangleup, color = color.red, size = size.small)
// Plotting the stop loss line
plot(stoplossL, color=color.red, linewidth=2, title="Take Profit")
plot(stoplossS, color=color.green, linewidth = 2, title = " Take Profit")
strategy.entry("Short", strategy.short, when=isLong, stop =twentyLevel)
strategy.exit("Stop Loss/Profit", "Short", stop = stoplossL , limit = takeprofitL)
strategy.entry("Long",strategy.long, when=isShort , stop = eigthylevel )
strategy.exit("Stop loss/Profit", "Long", stop = stoplossS , limit = takeprofitS)