
이 전략은 “동적 하락 가격 변화 돌파 전략”이라고 불린다. 이 전략의 주요 아이디어는 동적 하락을 설정하여 가격 변화율이 그 하락값을 초과할 때 구매 신호를 발생시키고, 가격 변화율이 그 하락값의 마이너스 값보다 낮아질 때 판매 신호를 발생시키는 것이다.
이 전략의 핵심은 가격변동률을 계산하는 것으로, 현재의 폐업가격에서 이전 폐업가치를 더 빼면 1을 얻는다. 그런 다음, 계산된 가격변동률을 사용자 입력의 하락값과 비교한다. 가격변동률이 더 큰 값이 하락값과 같으면, 현재 지분을 보유하지 않거나 공백점 포지션을 보유한 경우, 구매 신호를 발생시킨다. 가격변동률이 적은 값이 하락값과 같으면, 현재 지분을 보유하지 않거나 공백점 포지션을 보유한 경우, 판매 신호를 발생시킨다. 구매 신호를 생성한 후, 전략은 6K 라인의 최저 가격을 스톱로스로 기록한다. 가격이 상쇄점을 넘어지면, 전략은 다중 포지션을 평행시킨다.
“동적 하락 가격 변화 돌파 전략”은 가격 변화율과 동적 하락을 비교하여 거래 신호를 생성하여 상승 상황에서 사용하기에 적합하다. 이 전략의 논리는 간단하고 명확하며, 약간의 유연성 및 위험 제어 능력을 갖추고 있다. 그러나, 이 전략에는 약간의 결함이 있습니다.
/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)
change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)
// Calculate price change
priceChange = close / close[1] - 1
// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)
// Initialize position and track the current position
var int position = na
// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)
var float stop = na
if (buy_condition)
strategy.entry("Long", strategy.long)
stop := lowest(low, 6)
position := 1
if (sell_condition or low < stop)
strategy.close("Long")
position := -1
// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)