
이 전략은 시간 주기의 돌파구를 기반으로 한 양적 거래 시스템으로, 15분과 2분 두 시간 주기의 상호관계를 사용하여 거래 신호를 결정한다. 2분 K 선의 종결 가격이 전 15분 K 선의 전체 고점이나 저점을 돌파했는지 여부를 관찰하여 진입 시기를 판단하며, 정확한 위험 제어 장치를 설정하여 위험과 수익의 비율이 1:3을 보장합니다. 즉, 각 리스크 단위당 3 배의 수익을 얻을 수 있습니다. 전략은 본질적으로 단기 가격 돌파구 이후의 동력의 연장을 포착하는 것으로, 평균 승률은 약 30%이지만, 좋은 위험-이익 비율 설계로 인해 전반적인 긍정적인 기대 수익을 달성 할 수 있습니다.
이 전략의 핵심 원칙은 다주기 분석을 통해 가격 돌파 신호를 식별하는 것이다. 구체적으로 구현하는 과정은 다음과 같다:
먼저, 전략적 접근request.security이 함수는 15분 주기 동안의 최고 가격, 최저 가격 및 시간 정보를 얻는다.
새로운 15분 K 선이 발견되면 (현재와 이전 15분 주기의 시간을 비교하여) 전략은 이전 15분 K 선의 최고점과 최저점을 뚫는 기준점으로 저장한다.
여러 조건을 수행하는 경우, 전략은 현재 2분 K 선의 종료 가격이 지난 15분 K 선의 최고점을 돌파했는지 여부를 판단합니다. 조건을 충족하면, 입시 가격은 2분 K 선의 종료 가격이며, 상쇄 손실은 지난 15분 K 선의 최저점에 설정되며, 수익 목표는 입시 가격과 위험 가치의 3배로 설정됩니다.
적자 조건에 대해, 전략은 현재 2분 K 선의 종료 가격이 지난 15분 K 선의 최저점을 뚫었는지 여부를 판단한다. 조건이 충족되면, 진입 가격은 2분 K 선의 종료 가격이며, 상쇄 손실은 지난 15분 K 선의 최고점에 설정되며, 수익 목표는 진입 가격에서 위험 값을 3배로 줄인 것으로 설정된다.
이 디자인은 돌파 거래의 개념을 활용하면서 다주기 분석의 장점을 결합하여 중요한 가격 수준을 결정하기 위해 더 큰 시간 주기를 ((15분) 사용하며, 진입 시기를 최적화하고, 슬라이드 포인트를 줄이고, 실행 정밀도를 높이기 위해 더 작은 시간 주기를 ((2분) 사용한다.
명확한 위험 관리이 전략은 정확한 리스크/이익 비율을 설계하고, 각 거래의 잠재적 인 수익이 잠재적 인 손실의 3배를 보장합니다. 이는 30% 정도의 승률이 있더라도 긍정적 인 기대 수익을 얻을 수 있습니다.
다주기 연동15분 및 2분 두 개의 시간 주기를 결합하여, 전략은 더 큰 시간 주기의 중요한 가격 수준을 포착 할 수 있지만, 더 작은 시간 주기를 사용하여 진입 지점을 최적화하여 거래 정확도를 향상시킬 수 있습니다.
자동화 실행전략은 완전히 자동화되어 있고, 명확한 입출장 조건이 사용되어 감정적인 방해와 주관적인 판단이 줄어들었습니다.
자금 관리 통합전략: 계정 지분 비율을 사용하여 포지션을 관리하는 방법 ((default_qty_value=10), 위험과 계정 크기에 비례하여 증가하거나 감소하도록 보장한다.
매우 적응력이 좋다: 코드 구조는 간결하고 명확하며, 확장 및 변경이 용이하며, 다양한 시장과 제품에 적용할 수 있습니다.
낮은 승률의 위험: 전략의 평균 승률은 약 30%로, 대부분의 거래가 소액 손실을 초래한다는 것을 의미합니다. 일부 거래자에게는 연속적인 손실 거래가 심리적 스트레스를 유발하고 조기에 전략을 포기할 수 있습니다.
가짜 신호를 뚫고: 가격 돌파가 예상되는 방향으로 계속 움직이지 않을 수 있으며, 이로 인해 자주 중지 손실이 발생한다. 특히 수평 정리 또는 높은 변동성 시장에서 가짜 돌파가 더 일반적입니다.
미끄러짐 위험: 시장이 빠르게 움직일 때, 실제 실행 가격은 전략 계획 가격과 차이가 있을 수 있으며, 이는 리스크/수익 비율의 정확한 실현에 영향을 미칩니다.
과도한 거래의 위험이 전략은 단기 (분) 거래에 기반하기 때문에, 과도한 거래가 발생하여 거래 비용이 증가할 수 있다.
시장환경의존성이 전략은 추세가 뚜렷한 시장에서는 잘 작동하지만, 간격적인 변동 시장에서는 좋지 않을 수 있다.
해결책:
트렌드 필터를 추가합니다.: 브레이크 트레이드를 실행하기 전에, 트렌드 확인 지표 (예를 들어, 이동 평균, MACD 등) 를 도입하여, 큰 추세와 일치하는 경우에만 입문하면, 전략의 승률을 크게 향상시킬 수 있다.
역동적 위험/수익비: 현재 전략은 고정 1: 3 리스크 수익률을 사용하지만 시장의 변동성에 따라 조정하는 것을 고려할 수 있습니다. 예를 들어, 높은 변동성이있는 시장에서 더 보수적인 목표를 사용하십시오.
시간 필터: 시장이 열리거나 닫히거나 변동성이 특히 낮은 시간에 거래하는 것을 피하기 위해 시간 필터 조건을 추가합니다.
부분 차단 장치: 분기 수익 기능을 구현하고, 가격이 특정 목표에 도달하면 일부 포지션을 청산하고, 나머지 포지션은 추세를 계속 추적하여 전체 수익성을 향상시킵니다.
적응 변수고정된 변수 (예: 15분 주기) 를 시장 조건에 따라 자동으로 조정되는 동적 변수로 바꾸어, 전략이 다른 시장 환경에 더 잘 적응할 수 있도록 한다.
거래량 확인: 거래량 분석을 추가하여 가격 돌파가 충분한 거래량과 함께 이루어지도록 보장합니다. 이것은 일반적으로 돌파 신호의 신뢰성을 향상시킵니다.
이러한 최적화 방향은 전략의 승률과 안정성을 높이는 데 초점을 맞추고 있으며, 핵심 장점을 유지하면서 위험 관리와 다중 주기 연동 특성을 명확하게 유지합니다. 더 많은 시장 요소를 고려함으로써 잘못된 신호를 줄이고 거래의 성공 가능성을 높일 수 있습니다.
“15분 돌파 다주기 협동 전략 리스크 수익률 최적화 모델 기반”은 명확하고 논리적으로 엄격한 정량 거래 시스템으로, 다양한 시간 주기에서 가격 정보를 결합하여 돌파 이후의 동력 기회를 포착한다. 전략의 성공률이 높지 않음에도 불구하고 (약 30%) 신중하게 설계된 1: 3 리스크 수익률 메커니즘을 통해 긍정적 인 기대 수익을 달성했다.
이 전략의 핵심 장점은 엄격한 위험 제어, 명확한 입출장 규칙 및 다중 주기 협동 분석 방법이다. 주요 위험은 가짜 브레이크 신호와 낮은 승률으로 인한 심리적 스트레스에서 비롯된다. 미래 최적화 방향은 신호 품질을 높이고 가짜 브레이크 거래를 줄이고 트렌드 필터링 및 동적 변수 조정 기능을 추가하는 것을 고려해야합니다.
중·단기 거래 기회를 추구하는 양적 거래자에게는 고려할 가치가 있는 기본 전략 프레임워크이며, 개인의 위험 선호와 거래 목표에 따라 더욱 맞춤화 및 최적화 할 수 있습니다.
/*backtest
start: 2025-03-23 00:00:00
end: 2025-03-24 21:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("15-min Breakout via 2-min Candle (R:R=1:3)",
overlay=true,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10)
//-----------------------------------------------------
// 1) Retrieve 15-min high/low & time via request.security
//-----------------------------------------------------
fifteenHigh = request.security(syminfo.tickerid, "15", high)
fifteenLow = request.security(syminfo.tickerid, "15", low)
time15 = request.security(syminfo.tickerid, "15", time)
//-----------------------------------------------------
// 2) Store the most recent closed 15-min bar's high/low
//-----------------------------------------------------
// We use a var variable (stored over time) and update it
// whenever a NEW 15-min bar is detected.
var float last15High = na
var float last15Low = na
// A new 15-min bar (in the "15" series) is indicated when time15 changes.
bool new15bar = time15 != time15[1]
// Update high/low when a new 15-min bar starts
if new15bar
// [1] = previous closed 15-min bar value
last15High := fifteenHigh[1]
last15Low := fifteenLow[1]
//-----------------------------------------------------
// 3) Long position: 2-min close > most recent closed 15-min high
//-----------------------------------------------------
bool longCondition = not na(last15High) and close > last15High
if longCondition
// Entry is 2-min close
float stopPrice = last15Low
float risk = close - stopPrice
float takeProfit = close + 3 * risk
strategy.entry("Long Breakout", strategy.long)
strategy.exit("Long Exit (SL/TP)", "Long Breakout", stop=stopPrice, limit=takeProfit)
//-----------------------------------------------------
// 4) Short position: 2-min close < most recent closed 15-min low
//-----------------------------------------------------
bool shortCondition = not na(last15Low) and close < last15Low
if shortCondition
float stopPrice = last15High
float risk = stopPrice - close
float takeProfit = close - 3 * risk
strategy.entry("Short Breakout", strategy.short)
strategy.exit("Short Exit (SL/TP)", "Short Breakout", stop=stopPrice, limit=takeProfit)