이 전략은 기술 지표의 조합에 기반한 트렌드 추적 전략으로, 주로 RSI 과잉 구매/ 과잉 판매 조건, EMA 크로스오버 및 동적 스톱 로스를 사용하여 거래한다. 이 전략은 수익을 증폭시키기 위해 레버리지와 결합한 1.5% 리스크 컨트롤을 사용한다. 이 전략의 핵심은 자본을 보호하기 위해 동적 인 수익 및 스톱 로스 수준을 사용하여 여러 기술 지표를 통해 트렌드를 확인하는 데 있다. 이 전략은 빠르고 빈번한 거래에 적합한 소액 계좌 특성에 특별히 설계되었다.
이 전략은 세 가지 주요 기술 지표를 이용한다: RSI (비례 강도 지수), EMA (비례 이동 평균), ATR (평균 진정한 범위). 엔트리 신호는 단기 EMA (9 기간) 와 장기 EMA (21 기간) 사이의 교차로 확인되며, RSI가 합리적인 범위 내에 있어야 한다 (장기 RSI<70, 짧은 RSI>30). 이 전략은 ATR 기반의 동적 스톱 로스를 사용하며, 스톱 로스의 4배로 설정된 이윤 취득 수준으로 리스크를 조절하면서 이윤 보호를 허용한다. 각 거래는 잠재적인 이윤을 높이기 위해 2배의 레버리지를 사용하여 계정의 1.5%를 위험에 빠뜨린다.
이 전략은 트렌드를 따르는 전략으로, 거래 성공률을 향상시키기 위해 여러 가지 기술적 지표를 사용합니다. 이 전략은 작은 계정에 적합한 포괄적인 위험 통제 메커니즘을 갖추고 있습니다. 그러나 라이브 트레이딩에서는 시장 상황에 적응하기 위해 적절한 시기에 매개 변수를 조정하여 변화하는 시장 조건에 주의를 기울여야 합니다. 라이브 구현 전에 철저한 백테스팅을 수행하고 작은 포지션을 사용하여 전략의 특성에 점차 적응하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Aggressive Scalper Strategy", overlay=true) // Parameters account_balance = input.float(28.37, title="Account Balance", tooltip="Update this with your balance") risk_per_trade = input.float(0.015, title="Risk per Trade", tooltip="1.5% risk") leverage = input.int(2, title="Leverage", minval=1) stop_loss_percentage = input.float(0.015, title="Stop Loss Percentage", tooltip="1.5% stop loss") take_profit_multiplier = input.float(4, title="Take Profit Multiplier", tooltip="Take Profit is 4x Stop Loss") stop_loss_multiplier = input.float(2, title="Stop Loss Multiplier", tooltip="Dynamic Stop Loss Multiplier") // Trade Size Calculation position_size = account_balance * risk_per_trade / (stop_loss_percentage / leverage) trade_qty = position_size / close // This gives you the qty in terms of contracts // Indicators rsiLength = input.int(14, title="RSI Length") emaShort = input.int(9, title="Short-term EMA Length") emaLong = input.int(21, title="Long-term EMA Length") rsi = ta.rsi(close, rsiLength) emaShortLine = ta.ema(close, emaShort) emaLongLine = ta.ema(close, emaLong) // Entry Conditions longCondition = ta.crossover(emaShortLine, emaLongLine) and rsi < 70 shortCondition = ta.crossunder(emaShortLine, emaLongLine) and rsi > 30 // ATR for dynamic stop loss and take profit levels atrLength = input.int(14, title="ATR Length") atrMultiplier = input.float(1.5, title="ATR Multiplier") atr = ta.atr(atrLength) // Dynamic Take Profit and Stop Loss Levels longTakeProfitLevel = close + (atr * take_profit_multiplier) longStopLossLevel = close - (atr * stop_loss_multiplier) shortTakeProfitLevel = close - (atr * take_profit_multiplier) shortStopLossLevel = close + (atr * stop_loss_multiplier) // Strategy Execution if (longCondition) strategy.entry("Long", strategy.long, qty=trade_qty) strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=longTakeProfitLevel, stop=longStopLossLevel) if (shortCondition) strategy.entry("Short", strategy.short, qty=trade_qty) strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel) // Alert Conditions alertcondition(longCondition, title="Buy Signal", message="Long position entry signal detected.") alertcondition(shortCondition, title="Sell Signal", message="Short position entry signal detected.") // Display Information on Chart var table_info = table.new(position.top_right, 2, 2, frame_color=color.blue, frame_width=1) if (bar_index == na) table.cell(table_info, 0, 0, text="Aggressive Scalper", bgcolor=color.blue) table.cell(table_info, 1, 0, text="Account Balance: $" + str.tostring(account_balance), text_color=color.white) table.cell(table_info, 1, 1, text="Risk per Trade: " + str.tostring(risk_per_trade * 100) + "%", text_color=color.white) table.cell(table_info, 0, 1, text="Leverage: " + str.tostring(leverage) + "x", text_color=color.white)