이 전략은 RSI 지표가 다른 범위에서 깨지는 것을 모니터링하여 낮은 가격으로 구매하고 높은 가격으로 판매합니다. RSI가 낮은 범위에서 길어지고 RSI가 높은 범위에서 짧아지면 지나치게 구매되거나 지나치게 팔린 상태가 나타날 때 위치를 뒤집습니다.
RSI 기간을 14로 설정
RSI 구매 신호 범위를 설정:
RSI 판매 신호 범위를 설정:
RSI가 구매 범위에 들어가면, 장거리:
RSI가 판매 범위에 들어가면, 단위로 가세요.
2500 pips로 수익을 고정하고 5000 pips로 손실을 중지
RSI가 신호 범위를 벗어날 때 포지션을 닫습니다.
이중 범위 설정은 과도한 구매 및 과도한 판매 조건을 더 잘 식별하여 회수 기회를 놓치지 않도록합니다.
피프로 고정된 수익을 취하고 손실을 멈추는 것은 트렌드를 너무 많이 쫓는 것을 방지합니다.
RSI는 다른 지표에 대한 장점을 가진 과잉 구매 및 과잉 판매 수준을 식별하는 성숙한 오시레이터입니다.
적절한 매개 변수 조정을 통해 이 전략은 트렌드 반전 지점을 효과적으로 파악하고 초과 수익을 창출할 수 있습니다.
지속된 단위 포지션에서 연속적인 손실로 이어지는 RSI 오차가 발생할 수 있습니다.
고정 취익 및 중지 손실은 시장 변동성과 일치하지 않을 수 있습니다. 수익을 얻지 못하거나 조기 중단 할 수 있습니다.
부적절한 범위 설정으로 인해 거래가 누락되거나 수익성이 떨어지는 거래가 자주 발생할 수 있습니다.
이 전략은 백테스트를 기반으로 한 매개 변수 최적화에 많이 의존합니다. 신중한 진행 분석이 필요합니다.
다른 기간 길이를 가진 RSI의 시험 효과
다양한 제품의 특성에 맞게 구매 및 판매 범위 값을 최적화합니다.
연구 동적 수익을 취하고 수익성 및 합리성을 향상시키기 위해 손실을 중지
안정성을 높이기 위해 다른 단위 거래 지표를 결합하는 것을 고려하십시오.
안정성을 위한 파라미터 범위를 자동으로 최적화하기 위한 기계 학습 기술을 탐구
이 전략은 RSI
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Rawadabdo // Ramy's Algorithm //@version=5 strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000) // User input length = input(title = "Length", defval=14, tooltip="RSI period") first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers") second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers") first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers") second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers") takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance") stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance") lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size") // Get RSI vrsi = ta.rsi(close, length) // Entry Conditions long1 = (vrsi <= first_buy_level and vrsi>second_buy_level) long2 = (vrsi <= second_buy_level) short1= (vrsi >= first_sell_level and vrsi<second_sell_level) short2= (vrsi >= second_sell_level) // Entry Orders // Buy Orders if (long1 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") if (long2 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") // Short Orders if (short1 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") if (short2 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") // Exit our trade if our stop loss or take profit is hit strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss) strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss) // plot data to the chart hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) plot (vrsi, title = "RSI", color = color.blue, linewidth=2)