DAKELAX-XRPUSDT는 바이낸스에서 XRPUSDT를 위한 거래 봇 전략이다. 볼링거 밴드를 사용하는 간단한 역대 전략이며, 2019년 5월부터 8월까지 H1 시간 프레임에서 백테스트에서 좋은 성과를 거두며 실시간으로 실행된다.
이 전략은 먼저 20주기 SMA와 상부/하부 볼링거 밴드를 계산한다. 상부 밴드는 SMA + 1.5 표준편차이고, 하부 밴드는 SMA - 2.2 표준편차이다. 그 다음 밴드의 수축 속도를 계산한다. 수축이 > 1.3, 그렇지 않으면 빨간색이라면 노란색으로 채워진다.
클로즈가 하위 지대 아래에 있을 때, 20개의 동전으로 긴 거래를 합니다. 클로즈가 상위 지대 위에 있을 때, 모든 포지션을 닫습니다.
이 전략은 또한 7주기 EMA 빠른 라인과 18주기 EMA 느린 라인을 계산합니다. 느린 라인의 위의 빠른 라인의 크로스오버는 구매 신호이며, 아래의 크로스오버는 판매 신호입니다.
위험을 제어하기 위해 동적 위치 사이즈 또는 스톱 로스를 고려하십시오. 범위 시장에서 위프사를 피하기 위해 크로스오버 전략을 최적화하십시오. 더 큰 움직임을 식별하기 위해 더 높은 시간 프레임 트렌드 지표를 추가하십시오.
밴드 너비에 따라 구매 금액을 조정합니다. 계약할 때 더 적고 확장 할 때 더 많습니다.
수축이 보이지만 신호가 아직 발생하지 않은 경우 위치를 축적 고려
전체 방향을 결정하기 위해 더 긴 시간 프레임 트렌드 표시기를 추가하십시오. 명확하지 않은 경우 전략을 일시 중지하십시오.
위험을 제어하기 위해 스톱 로스를 포함, 최근 폭의 낮은 근처에 설정할 수 있습니다
EMA 기간과 같은 크로스오버 매개 변수를 최적화하여 갇히지 않도록하십시오.
DAKELAX-XRPUSDT는 EMA 크로스오버와 볼링거 밴드 수축을 사용하는 거래 봇 전략이다. 직관적이며 좋은 백테스트 결과를 가지고 있지만 약간의 위험을 포함하고 있다. 포지션 사이징, 스톱 전략, 스톱 로스 추가 및 크로스오버 로직 최적화를 통해 이러한 위험을 줄일 수 있다. 전반적으로 볼링거 밴드 전략의 명확한 예를 제공하지만 안정적인 라이브 이윤을 위해 쌍별 최적화가 필요하다.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study(title="Tradebotler DAKELAX Binance:XRPUSDT Study-strategy", overlay=true) strategy(title="Tradebotler DAKELAX Binance:XRPUSDT Strategy", overlay=true) buyAmount = input(20, minval=1) // SMA20 len2 = input(20, minval=1) src2 = input(close) out2 = sma(src2, len2) // BB contraction value (medium tight) contraction_value = 1.3 // BB contraction value (very tight) contraction_value2 = 0.1 // 2xSTDEV BB calculation dev = stdev(src2, len2) upper_BB = out2 + 1.5*dev lower_BB = out2 - 2.2*dev x1 = plot(upper_BB, color=blue, linewidth = 2) x2 = plot(lower_BB, color=blue, linewidth = 2) contraction = (upper_BB-lower_BB)/out2 //fills the BBands according to the contraction value (threshold) // Calculate values fastMA = ema(close, 7) slowMA = ema(close, 18) // Determine alert setups crossUp = crossover(fastMA, slowMA) crossDown = crossunder(fastMA, slowMA) buySignal = (crossUp or crossUp[1]) and (low > slowMA) shortSignal = (crossDown or crossDown[1]) and (high < slowMA) // Highlight alerts on the chart bgColour = (buySignal and barstate.isrealtime) ? green : (shortSignal and barstate.isrealtime) ? red : na signalBuy = (buySignal ) ? true : false signalSell = (shortSignal ) ? true : false test = true test := not test[1] closesBelowLowerBB = close < lower_BB closesAboveUpperBB = close > upper_BB tmptext = "blah" // Plot values plot(series=fastMA, color=teal) plot(series=slowMA, color=orange) plot(out2, color=black, linewidth = 1) fill(x1, x2, color = contraction > contraction_value ? black : contraction < contraction_value2 ? yellow: red) isInRed = contraction < contraction_value and contraction >= contraction_value2 isInYellow = contraction < contraction_value and contraction < contraction_value2 if ( closesBelowLowerBB ) strategy.order('Buy', strategy.long, buyAmount) if ( closesAboveUpperBB ) strategy.close_all()