
이 전략은 52 주간의 높은 낮은, 평균 거래량과 가격의 돌파구를 기반으로 한 양적 거래 전략이다. 주식 가격이 52 주간의 높은 가격에 가까워지고 거래량이 크게 증가하고 하루 동안의 가격 변화의 폭이 적을 때 주로 주의한다. 이 전략은 이러한 지표의 조합을 관찰하여 잠재적인 구매 기회를 식별하고, 주식이 발생할 수있는 상승 추세를 포착하는 것을 목표로 한다.
이 전략의 핵심 원칙은 다음과 같습니다.
52주 최고점과 최저점 추적: 전략은 주식의 52주 최고점과 최저점을 지속적으로 추적하고 업데이트하며, 이러한 가격 수준은 일반적으로 중요한 지원 및 저항 지점으로 간주됩니다.
52주 최고점과 가까운 가격: 52주 최고점으로부터 10% (조정 가능) 이내의 주식을 찾는 전략으로, 이는 주식이 강도 영역에 있을 수 있음을 나타냅니다.
거래량 돌파구: 전략은 50일 평균 거래량을 계산하고, 당일 거래량이 평균보다 상당히 높을 경우를 찾습니다. 이는 시장에서 이 주식에 대한 관심이 증가했다는 것을 나타낼 수 있습니다.
가격 변동 제한: 전략은 매일 가격 변동의 상한을 설정합니다 (일선 3%, 주선 또는 월선 10%) 과도한 변동이있는 경우 입시를 피하기 위해.
입시 신호: 주가가 52주 최고점, 거래량 돌파, 가격 변화 중도 3가지 조건을 동시에 충족하면, 전략은 구매 신호를 낸다.
다차원 분석: 가격, 거래량 및 역사 데이터와 같은 여러 차원을 결합하여 신호의 신뢰성을 향상시킵니다.
동적 조정: 52주 고/저점은 시간이 지남에 따라 동적으로 업데이트되며, 전략이 다른 시장 환경에 적응할 수 있도록 한다.
위험 제어: 하루 동안의 가격 변동의 폭을 제한함으로써, 급격한 변동이 있을 때 입찰의 위험을 낮춘다.
시각적 도움말: 전략은 52주 최고 낮은 점과 진입 신호를 차트에 표시하여 거래자가 시장 상황을 직관적으로 이해할 수 있도록 도와줍니다.
매개 변수 유연성: 여러 가지 핵심 매개 변수들은 다른 시장과 개인 취향에 따라 조정될 수 있으며, 전략의 적응성을 증가시킨다.
가짜 돌파구 위험: 가격의 고점과 거래량 증가에 의존하는 것만으로도 가짜 돌파구가 진짜 돌파구로 오인될 수 있다.
뒤처짐: 52주 데이터를 사용하는 것은 시장 변화에 대한 전략의 느린 반응으로 이어질 수 있다.
과도한 거래: 시장이 격렬하게 변동할 때, 종종 입시 신호를 유발하여 거래 비용을 증가시킬 수 있습니다.
한방향 거래: 전략은 단지 더 많은 기회를 얻는 것에 초점을 맞추고, 하락 시장에서 더 큰 위험에 직면할 수 있다.
기본을 무시하는 것: 전략은 전적으로 기술적인 지표에 기반하고, 회사의 기본과 거시 경제적인 요소를 고려하지 않습니다.
트렌드 확인 지표 도입: 가짜 돌파의 위험을 줄이기 위해 이동 평균의 교차와 같은 트렌드 확인 지표를 추가 할 수 있습니다.
거래량 분석을 최적화: 거래량 돌파 판단의 정확성을 높이기 위해 상대적인 거래량 지표 (RVI) 와 같은 더 복잡한 거래량 분석 방법을 사용하는 것을 고려하십시오.
스톱 및 스톱 메커니즘을 높여라: 위험을 통제하고 수익을 잠금하기 위해 합리적인 스톱 및 스톱 수준을 설정하십시오.
포괄적 인 전략으로, 52 주 하락에 가까운 가격과 다른 조건이 충족되면 포괄적 인 전략을 고려하여 포괄적 인 전략을 고려하십시오.
기본 필터를 도입한다: 시장점유율 (P/E) 과 시장가치와 같은 기본 지표와 결합하여 입시표에 대한 예비 필터를 실시한다.
52주 최고, 낮은, 평균 거래량, 가격 돌파구에 기반한 이 전략은 거래자에게 다차원적인 분석 프레임워크를 제공합니다. 가격 위치, 거래량 변화 및 가격 동력을 종합적으로 고려하여 잠재적인 상승 기회를 잡으려고 시도합니다. 그러나 거래자는이 전략을 사용할 때 가짜 돌파구 위험에 주의를 기울이고 다른 기술과 기본 분석 도구와 결합하여 의사 결정의 신뢰성을 강화하는 것을 고려해야합니다. 지속적인 최적화와 개인 맞춤화를 통해 이 전략은 효과적인 거래 도구가 될 가능성이 있습니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Custom Stock Trading Strategy with 50-Day Average Volume", overlay=true)
// Define input parameters
percentFromHigh = input.int(10, title="Percentage from 52-Week High for Entry")
volumeMultiplier = input.float(1.5, title="Volume Multiplier for Exponential Rise") // Multiplier to define significant increase in volume
// Define period for average volume
averageVolumePeriod = 50 // 50-day average volume
// Calculate 52-week high and low
weeks = 52 // Number of weeks in a year
daysPerWeek = 5 // Assuming 5 trading days per week
length = weeks * daysPerWeek
// 52-week high and low calculations
highestHigh = ta.highest(close, length)
lowestLow = ta.lowest(close, length)
// // Plot horizontal lines for 52-week high and low
// var line highLine = na
// var line lowLine = na
// if (bar_index == ta.highest(bar_index, length)) // Update lines when the highest index is detected
// line.delete(highLine)
// line.delete(lowLine)
// highLine := line.new(x1=bar_index[0], y1=highestHigh, x2=bar_index + 1, y2=highestHigh, color=color.green, width=2, style=line.style_solid, extend=extend.right)
// lowLine := line.new(x1=bar_index[0], y1=lowestLow, x2=bar_index + 1, y2=lowestLow, color=color.red, width=2, style=line.style_solid, extend=extend.right)
// // Plot labels for 52-week high and low
// if (bar_index % 100 == 0) // To avoid cluttering, update labels periodically
// label.new(x=bar_index, y=highestHigh, text="52-Week High", color=color.green, textcolor=color.white, style=label.style_label_left, size=size.small)
// label.new(x=bar_index, y=lowestLow, text="52-Week Low", color=color.red, textcolor=color.white, style=label.style_label_left, size=size.small)
// Calculate percentage from 52-week high
percentFromHighValue = 100 * (highestHigh - close) / highestHigh
// Calculate 50-day average volume
avgVolume = ta.sma(volume, averageVolumePeriod)
// Exponential rise in volume condition
volumeRise = volume > avgVolume * volumeMultiplier
// Calculate the percentage change in price for the current period
dailyPriceChange = 100 * (close - open) / open
// Determine the percentage change limit based on the timeframe
priceChangeLimit = if (timeframe.isweekly or timeframe.ismonthly)
10 // 10% limit for weekly or monthly timeframes
else
3 // 3% limit for daily timeframe
// Entry condition: stock within 10% of 52-week high, exponential rise in volume, and price change <= limit
entryCondition = percentFromHighValue <= percentFromHigh and volumeRise and dailyPriceChange <= priceChangeLimit
// Strategy logic
if (entryCondition)
strategy.entry("Buy", strategy.long)
// Plot tiny triangle labels below the candle
// if (entryCondition)
// label.new(bar_index, low, style=label.style_triangleup, color=color.blue, size=size.tiny)