
변동성 돌파 거래 전략은 단일 가격 행동에 기반한 전략이다. 가격과 거래량 변화를 분석하여 구매 및 판매 신호를 유발한다. 이 전략은 다른 거래소 또는 시스템에서 주문을 유발하는 경보와 함께 사용될 수도 있다.
이 전략은 K 선의 종결 가격, 개시 가격, 최고 가격, 최저 가격을 분석하여 가격의 움직임과 힘을 판단한다.
구체적으로, 그것은 최근 3 K 선의 종결 가격이 연속적으로 상위 또는 상위 오픈 가격에 분석한다. 만약 그렇다면, 가격이 연속적으로 상향 또는 하향으로 돌파하여 트렌드적인 행동을 나타냅니다.
또한, 이 전략은 일정 주기 동안의 최대 거래량을 통계한다. 만약 현재 K 라인의 거래량이 최근 주기 동안의 최대 값을 초과한다면, 거래량이 확대되고, 시장에 들어가는 엄청난 거래 힘을 반영한다.
이 전략은 가격의 연속적인 3번의 K선 돌파와 거래량의 증폭을 동시에 발생시키면서 구매 또는 판매 신호를 발생시킨다.
이것은 가격 동작과 거래량 신호를 이용하는 간단한 효과적인 전략이다.
이 전략에는 몇 가지 잠재적인 위험도 있습니다.
이러한 위험을 제어하기 위해, 이동 스톱, 최적화 파라미터 조합, 또는 다른 지표 또는 전략 조합과 함께 사용하는 것을 고려할 수 있습니다.
이것은 기본 전략이지만, 크게 개선할 수 있는 여지가 있습니다.
이 전략은 전체적으로 매우 실용적인 가격 행동 기반의 전략이다. 그것은 참여하고, 이해하기 쉽고, 실행 비용이 낮다는 장점을 가지고 있다. 또한, 더 나은 전략을 강화하기 위해 추가적인 최적화와 조합을 필요로 하는 약간의 맹목적도 있다. 전체적으로 이것은 매우 가치있는 전략 아이디어이며, 깊이 있는 연구와 응용에 가치가 있다.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)
int signal_hh = 0
int signal_ll = 0
if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
signal_hh := 1
if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
signal_ll := 1
plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)
int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)
for i = vol_length to 1
if volume[i] > max_volume
max_volume := volume[i]
if volume[0] > max_volume
signal_vol := 1
plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)
int signal_buy = 0
int signal_sell = 0
if signal_hh and signal_vol
signal_buy := 1
label.new(bar_index, high, "B", color=color.green)
strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)
if signal_ll and signal_vol
signal_sell := 1
label.new(bar_index, low, "S", color=color.red)
strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)
//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)
//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)