이 파인 스크립트 전략은 상대적으로 강한 지표 RSI와 가격의 변동률 기준차차 DEV에 기반하여, 가격과 상하 궤도를 비교하여 입점을 판단하고, RSI를 보조 필터링 지표로 사용하며, 가격이 상하 궤도를 만지고 RSI가 오버사이드 영역에 도달하면 시장을 열고, 가격이 역으로 궤도를 돌파하거나 RSI가 역으로 오버사이드 영역에 도달하면 평형화됩니다. 이 전략은 시장의 변동 상황에 따라 동적으로 조정할 수 있으며, 변동률이 높을 때 적시에 손실을 멈추고 변동률이 낮을 때 수익을 올릴 수 있으며, 다른 시장 상태에 적응할 수 있는 정량화 거래 전략입니다.
이 전략은 변동률 통로와 상대적으로 약한 지수와 결합하여 가격 변동과 동시에 RSI 지표를 참조하여 평형 판단을 하는 방식으로 단계적 경향을 더 잘 파악할 수 있으며, 적시에 중단 손실과 이윤을 종결한다. 그러나 전략의 성능은 매개 변수 설정에 상대적으로 민감하며, 다른 시장 환경과 지표에 대한 자산에 대한 최적화가 필요하며, 다른 지표들을 도입하면서 시장 추세에 대한 보조 판단을 고려하여 이 전략의 장점을 최대한 발휘할 수 있다. 전체적으로 이 전략은 명확하고 논리적으로 엄격하며, 양적 거래 전략이다.
/*backtest start: 2024-05-20 00:00:00 end: 2024-05-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tmalvao //@version=5 strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100) // Parâmetros length = input.int(20, title="Período do Desvio Padrão") thresholdEntry = input.float(1.5, title="Limite de Entrada") thresholdExit = input.float(0.5, title="Limite de Saída") rsiLength = input.int(14, title="Período do RSI") rsiOverbought = input.int(70, title="RSI Overbought") rsiOversold = input.int(30, title="RSI Oversold") // Cálculo do Desvio Padrão price = close stdDev = ta.stdev(price, length) // Média Móvel Simples sma = ta.sma(price, length) // Limites baseados no Desvio Padrão upperLimit = sma + thresholdEntry * stdDev lowerLimit = sma - thresholdEntry * stdDev exitUpperLimit = sma + thresholdExit * stdDev exitLowerLimit = sma - thresholdExit * stdDev // Cálculo do RSI rsi = ta.rsi(price, rsiLength) // Condições de Entrada com RSI longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought // Condições de Saída com RSI exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold // Plotar Linhas plot(upperLimit, color=color.red, title="Limite Superior") plot(lowerLimit, color=color.green, title="Limite Inferior") plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior") plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior") plot(sma, color=color.gray, title="SMA") hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) // Estratégia de Trade if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (exitLongCondition) strategy.close("Long") if (exitShortCondition) strategy.close("Short")