이 전략은 상대적 강도 지표 (RSI) 지표에 기반한 양적 거래 전략이다. 전략은 RSI 지표를 사용하여 시장에서 과잉 구매 및 과잉 판매 조건을 결정하고 적절한 시간에 구매 및 판매 명령을 실행합니다. 또한 전략은 마틴게일 시스템의 개념을 도입하여 특정 조건이 충족되면 거래 위치 크기를 증가시킵니다.
이 전략의 주요 아이디어는 다음과 같습니다.
이 전략은 RSI 지표에 기반을 둔 양적 거래 전략이며 마틴게일 시스템을 도입합니다. 전략의 장점은 RSI 지표의 효과와 전략 논리의 명확함에 있습니다. 그러나 전략에는 RSI 지표의 실패와 마틴게일 시스템으로 인한 위험 증폭과 같은 몇 가지 위험도 있습니다. 미래에 다른 기술 지표를 도입하고, 마틴게일 시스템을 최적화하고, 수익을 취하고 손실을 중지하고, RSI 매개 변수를 최적화하여 전략을 최적화 할 수 있습니다. 전반적으로, 전략은 여전히 끊임없이 변화하는 시장 환경에 적응하기 위해 지속적으로 최적화되고 실무에서 개선되어야합니다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_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/ // © Cloudexp1 //@version=5 strategy("RSI Martingale Strategy", overlay=true) // RSI settings rsi_length = input(14, title="RSI Length") overbought_level = input(70, title="Overbought Level") oversold_level = input(30, title="Oversold Level") // Martingale settings initial_quantity = input(1, title="Initial Quantity") martingale_multiplier = input(2, title="Martingale Multiplier") // Calculate RSI rsi = ta.rsi(close, rsi_length) // Entry conditions buy_condition = ta.crossover(rsi, oversold_level) sell_condition = ta.crossunder(rsi, overbought_level) // Take profit and stop loss take_profit_percent = 0 stop_loss_percent = 0 // Strategy logic strategy.entry("Buy", strategy.long, when = buy_condition) strategy.entry("Sell", strategy.short, when = sell_condition) // Calculate take profit and stop loss levels take_profit_level = close * (1 + take_profit_percent / 100) stop_loss_level = close * (1 - stop_loss_percent / 100) // Exit conditions strategy.exit("Exit Buy", "Buy", limit = take_profit_level, stop = stop_loss_level) strategy.exit("Exit Sell", "Sell", limit = take_profit_level, stop = stop_loss_level) // Martingale logic var float last_quantity = na if (buy_condition) last_quantity := initial_quantity if (sell_condition) last_quantity := initial_quantity if (strategy.position_size > 0) strategy.entry("Buy Martingale", strategy.long, qty = last_quantity * martingale_multiplier) if (strategy.position_size < 0) strategy.entry("Sell Martingale", strategy.short, qty = last_quantity * martingale_multiplier)