
이 전략은 아침 그래프 형식에 기반한 일간 거래 전략으로, 주로 오전 11시 선의 높낮이를 사용하여 시장의 움직임을 판단한다. 전략의 핵심 아이디어는 가격이 아침 높이를 돌파할 때 더하고, 낮은 곳을 돌파할 때 공백을 만들고, 그에 따른 중지 조건을 설정한다. 이 방법은 트렌드 추적과 가격 반전의 개념을 결합하여 중요한 가격 수준을 돌파한 후 하루의 단기 움직임을 잡기 위해 고안되었다.
이 전략은 다음과 같이 작동합니다.
핵심 가격을 결정합니다. 전략은 먼저 오전 11시의 최고점과 최저점을 식별하고, 이 두 가지 가격을 핵심 기준 수준으로 사용합니다.
출입 신호:
손해 방지 설정:
탈퇴 메커니즘
거래 시간 제한: 거래가 종료되기 전에 비정상적인 변동을 피하기 위해 15:15 이후에는 새로운 거래가 시작되지 않습니다.
명확한 거래 규칙: 전략은 명확한 가격 돌파구 및 역전 논리에 기반하고, 이해하기 쉽고 실행할 수 있다.
위험 제어: 고정된 스톱로스 포인트를 설정하여 거래 당 위험을 효과적으로 제어합니다.
시장 상황에 적응: 전략은 아침 형성된 가격 범위에 따라 다른 시장 변동 상태에 적응할 수 있다.
자동화 실행: 전략은 인간의 개입과 감정적 인 영향을 줄여서 완전히 자동화된 거래를 프로그래밍 할 수 있습니다.
당일 거래: 당일 종결 전에 포지션을 청산하여, 밤새 포지션을 보유하는 위험을 피합니다.
유연성: 전략은 다른 시장과 거래 품종에 따라 변수를 최적화 할 수 있습니다.
가짜 브레이크 위험: 시장에서 가짜 브레이크가 발생할 수 있으며, 이로 인해 자주 손실이 발생할 수 있습니다.
변동성 제한: 낮은 변동성 기간 동안, 전략은 거래 신호를 유발하거나 효과적인 수익을 창출하는 데 어려움을 겪을 수 있습니다.
단일 시간 프레임: 11:00 시간대에만 의존하면 다른 시간대의 중요한 시장 정보를 무시할 수 있습니다.
트렌드 추적의 부족: 전략은 정지 조건을 설정하지 않고, 큰 트렌드 상황을 충분히 파악할 수 없습니다.
고정 스톱: 높은 변동성 시장에서 고정 스톱은 너무 가까이 다가서서 유리한 상황에서 조기 퇴출을 초래할 수 있습니다.
거래 비용: 자주 출입하면 거래 비용이 높아져 전체 수익에 영향을 미칠 수 있습니다.
다중 시간 프레임 분석을 도입: 더 긴 시간 주기와 결합하여 트렌드 판단을 통해 거래의 정확성을 향상시킵니다.
다이내믹 스톱: ATR 지표와 같은 방법을 사용하여 다이내믹 스톱을 설정하여 다양한 시장 변동 상태에 적응합니다.
스톱 메커니즘에 가입: 위험과 수익에 따른 스톱 조건을 설정하고, 전략의 이익과 손실 비율을 개선한다.
Volume 분석: 거래량 분석을 추가하여, 돌파 신호의 신뢰성을 높인다.
시장 상태 필터: ATR과 같은 변동률 지표를 도입하여 낮은 변동성 기간 동안 거래 빈도를 줄인다.
진입 시점을 최적화하십시오. RSI와 같은 지표를 사용하여 과매매 지역에서 역거래를 고려하십시오.
트렌드 추적 요소를 추가합니다: 강력한 브레이크 시 이동 스톱을 사용하여 트렌드를 추적하는 것을 고려하십시오.
회수 및 변수 최적화: 다양한 변수 조합에 대해 회수를 수행하여 최적의 변수 설정을 찾습니다.
오전 ?? 브레이크와 반전 전략은 중요한 가격 을 기반으로 한 일간 거래 시스템이다. 그것은 오전 11시 ?? 의 높낮이를 중요한 참고로 사용하여 가격 을 통해 단기 경향을 포착한다. 전략의 장점은 규칙이 명확하고, 위험이 통제 가능하며, 자동화 실행에 적합하다. 그러나, 그것은 또한 가짜 고정, 손실 중단과 같은 잠재적인 위험에 직면합니다. 다중 시간 프레임 분석, 동적 스톱 손실 완료, 거래량 확인과 같은 최적화 조치를 도입함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다.
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)
// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15
// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
morningHigh := high
morningLow := low
morningCandleFound := true
// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)
// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false
if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
// Check for Buy Call condition
if (close[1] > morningHigh and close > morningHigh)
if (not inTrade or tradeDirection != 1)
strategy.entry("Buy Call", strategy.long, stop=morningLow)
buyCallCondition := true
inTrade := true
tradeDirection := 1
label.new(bar_index, high, "Buy Call", color=color.green)
alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
else if (close[1] <= morningHigh)
buyCallCondition := false
// Check for Buy Put condition
if (close[1] < morningLow and close < morningLow)
if (not inTrade or tradeDirection != -1)
strategy.entry("Buy Put", strategy.short, stop=morningHigh)
buyPutCondition := true
inTrade := true
tradeDirection := -1
label.new(bar_index, low, "Buy Put", color=color.red)
alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
else if (close[1] >= morningLow)
buyPutCondition := false
// Exit conditions
if (inTrade)
if (tradeDirection == 1 and low <= morningLow)
strategy.close("Buy Call")
label.new(bar_index, low, "Exit Call", color=color.red)
alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
buyCallCondition := false
inTrade := false
tradeDirection := 0
if (tradeDirection == -1 and high >= morningHigh)
strategy.close("Buy Put")
label.new(bar_index, high, "Exit Put", color=color.green)
alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
buyPutCondition := false
inTrade := false
tradeDirection := 0
// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
strategy.close_all()
inTrade := false
tradeDirection := 0
noNewTrades := true
alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)
// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
noNewTrades := false