전략의 주요 아이디어는 다음과 같습니다.
이 전략은 유동성 높은 통화 쌍의 단기 하락 추세를 활용합니다. 가격이 특정 조건을 충족하면 전략은 짧은 위치에 진입합니다. 구체적인 원칙은 다음과 같습니다.
유동성 높은 통화 쌍의 단기 단기 판매 전략은 특정 조건 하에서 단기 포지션에 진입하여 수익을 창출하기 위해 동적 포지션 사이징 및 리스크 관리 조치를 사용하여 높은 유동성 통화 쌍의 단기 하락 추세를 파악하는 것을 목표로합니다. 전략의 장점은 단기 거래 접근법, 동적 포지션 사이징 및 단순함입니다. 그러나 시장 위험, 미끄러짐 위험 및 매개 변수 최적화 위험도 있습니다. 전략을 더 최적화하기 위해 더 많은 기술적 지표를 도입하고 매개 변수 선택을 최적화하고 시장 정서 전략 분석을 통합하고 여러 통화 쌍에 전략을 적용하는 것이 고려 될 수 있습니다. 지속적인 최적화와 정교화로 전략은 시장에서 안정적인 수익성을 얻을 수 있습니다.
/*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"}] */ //@version=5 strategy("Short High-Grossing Forex Pair", overlay=true) // Parameters shortDuration = input.int(7, title="Short Duration (days)") priceDropPercentage = input.float(30, title="Price Drop Percentage", minval=0, maxval=100) riskPerTrade = input.float(1, title="Risk per Trade (%)", minval=0.1, maxval=100) / 100 // Risk per trade as a percentage of equity stopLossPercent = input.float(5, title="Stop Loss Percentage", minval=0) // Stop Loss Percentage takeProfitPercent = input.float(30, title="Take Profit Percentage", minval=0) // Take Profit Percentage // Initialize variables var int shortEnd = na var float entryPrice = na // Calculate dynamic position size equity = strategy.equity riskAmount = equity * riskPerTrade pipValue = syminfo.pointvalue stopLossPips = close * (stopLossPercent / 100) positionSize = riskAmount / (stopLossPips * pipValue) // Entry condition: Enter short position at the first bar with calculated position size if (strategy.opentrades == 0) strategy.entry("Short", strategy.short, qty=positionSize) shortEnd := bar_index + shortDuration entryPrice := close alert("Entering short position", alert.freq_once_per_bar_close) // Exit conditions exitCondition = (bar_index >= shortEnd) or (close <= entryPrice * (1 - priceDropPercentage / 100)) // Stop-loss and take-profit conditions stopLossCondition = (close >= entryPrice * (1 + stopLossPercent / 100)) takeProfitCondition = (close <= entryPrice * (1 - takeProfitPercent / 100)) // Exit the short position based on the conditions if (strategy.opentrades > 0 and (exitCondition or stopLossCondition or takeProfitCondition)) strategy.close("Short") alert("Exiting short position", alert.freq_once_per_bar_close) // Plot entry and exit points for visualization plotshape(series=strategy.opentrades > 0, location=location.belowbar, color=color.red, style=shape.labeldown, text="Short") plotshape(series=strategy.opentrades == 0, location=location.abovebar, color=color.green, style=shape.labelup, text="Exit") // Add alert conditions alertcondition(strategy.opentrades > 0, title="Short Entry Alert", message="Entering short position") alertcondition(strategy.opentrades == 0, title="Short Exit Alert", message="Exiting short position")