이 전략은 특정 기간 내에 주식 가격의 비율 변화를 감지하고 임계치를 초과하면 거래 신호를 생성하는 것을 목표로합니다. 갑작스러운 시장 움직임의 기회를 포착하기 위해 단기 및 스칼핑 거래에 적합합니다.
입력 매개 변수 x는 5분 촛불의 기본값이 5인 검증해야 하는 촛불 기간의 수를 나타냅니다.
trueChange1 및 trueChange2로 저장된 x 기간 전의 종료 가격에 대한 현재 종료 가격의 비율 변화를 계산합니다.
입력 매개 변수 %ChangePos와 %ChangeNeg는 0.4%와 -0.4%의 기본 값으로 임계 비율 변화를 나타냅니다.
trueChange1이 %ChangePos보다 크면 구매 신호가 생성됩니다. trueChange2가 %ChangeNeg보다 작으면 판매 신호가 생성됩니다.
구매 및 판매 상태를 위한 텍스트와 배경 색상을 추가합니다.
신호에 따라 출입과 출입 규칙을 설정합니다.
경고와 도면을 설정합니다.
절대 가격 변화보다는 비율 변화를 사용하세요. 다른 주식에 적응할 수 있습니다.
플렉서블하게 긍정과 부정적 인 비율의 문턱을 설정하여 볼링거 밴드 브레이크를 식별합니다.
다른 시간 프레임에서 트렌드 변화를 식별하기 위해 조정 가능한 탐지 기간
중요한 신호를 감지할 수 있는 설정 가능한 경보
단순하고 직설적인 신호 논리, 이해하기 쉽고 사용하기 쉽습니다.
시장이 열릴 때 단기적인 반전을 감지합니다.
비율 변화는 트렌드 방향을 결정하지 않으며 잘못된 신호를 생성할 수 있습니다.
기본 매개 변수는 모든 주식에 맞지 않을 수 있습니다. 특정 조정이 필요합니다.
손해를 막지 않고 손해를 제한할 수 없습니다.
빈번한 신호, 잠재적으로 높은 거래 비용
시장 구조를 파악할 수 없고, 다양한 시장에서 불황을 겪을 수 있습니다.
해결책:
선형 회귀와 같은 트렌드 지표와 결합하여 전체 트렌드를 결정합니다.
재고 특성에 따라 매개 변수를 최적화합니다.
적절한 스톱 로스를 실행하세요.
과도한 거래를 피하기 위해 신호를 필터합니다.
더 높은 시간 프레임에서 시장 구조를 측정하여 거래 스윙을 피하십시오.
손실을 제한하기 위해 후속 스톱 손실과 같은 스톱 손실 메커니즘을 추가합니다.
부피와 같은 필터 조건을 추가합니다.
MACD와 같은 지표로 출입 및 출입 규칙을 최적화하십시오.
기계 학습을 사용하여 자동으로 매개 변수를 최적화합니다.
시장 구조 분석을 포함해서 문제점을 피해야 합니다.
변동성과 유동성을 기반으로 동적으로 설정된 매개 변수
더 높은 시간 프레임 분석과 결합하여 전체 추세를 결정합니다.
이 전략은 미리 설정된 임계치에 대한 비율 가격 변화를 비교하여 거래를 생성하여 단기 평균 역전 전략으로 만듭니다. 장점은 단순성, 유연성 및 갑작스러운 시장 움직임을 포착하는 능력에 있습니다. 단점은 최적화 및 트렌드 분석 및 위험 관리로 적절한 사용을 통해 해결할 수있는 위험입니다. 전반적으로, 그것은 건전한 논리를 가지고 있으며 적절하게 향상되면 효과적인 단기 거래 전략이 될 수 있습니다.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // created by Oliver strategy("Percentage Change strategy w/BG color", overlay=true, scale=scale.none, precision=2) x = input(5, title = 'x candles difference', minval = 1) trueChange1 = (close - close[x]) / close[x] * 100 percentChangePos = input(0.4, title="Percent Change") //if (percentChange > trueChange) then Signal plotChar1 = if percentChangePos > trueChange1 false else true plotchar(series=plotChar1, char='🥶', color=color.green, location=location.top, size = size.tiny ) trueChange2 = (close - close[x]) / close[x] * 100 percentChangeNeg = input(-0.4, title="Percent Change") plotChar2 = if percentChangeNeg < trueChange2 false else true plotchar(series=plotChar2, char='🥵', color=color.red, location=location.top, size = size.tiny) //------------------------------------------------------------------------ UpColor() => percentChangePos < trueChange1 DownColor() => percentChangeNeg > trueChange2 //Up = percentChangePos < trueChange1 //Down = percentChangeNeg > trueChange2 col = percentChangePos < trueChange1 ? color.lime : percentChangeNeg > trueChange2 ? color.red : color.white //-------- condColor = percentChangePos < trueChange1 ? color.new(color.lime,50) : percentChangeNeg > trueChange2 ? color.new(color.red,50) : na //c_lineColor = condUp ? color.new(color.green, 97) : condDn ? color.new(color.maroon, 97) : na //barcolor(Up ? color.blue : Down ? color.yellow : color.gray, transp=70) //Background Highlights //bgcolor(condColor, transp=70) //--------- barcolor(UpColor() ? color.lime: DownColor() ? color.red : na) bgcolor(UpColor() ? color.lime: DownColor() ? color.red : na) //------------------------------------------------------------------------ buy = percentChangePos < trueChange1 sell = percentChangeNeg > trueChange2 //------------------------------------------------------------------------ /////////////// Alerts /////////////// alertcondition(buy, title='buy', message='Buy') alertcondition(sell, title='sell', message='Sell') //------------------------------------------------- if (buy) strategy.entry("My Long Entry Id", strategy.long) if (sell) strategy.entry("My Short Entry Id", strategy.short) /////////////////// Plotting //////////////////////// plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0) //plot for buy icon plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)