이 전략은 이동 평균 및 거래량 지표를 결합하여 긴 및 짧은 입출장 규칙을 설계하여 완전한 양적 거래 전략을 형성합니다.
장기 출입 조건:
짧은 출입 조건:
빠른 MA는 느린 MA보다 낮습니다.
긴 입력:긴 조건이 충족되면 길게 가십시오.
짧은 소개:짧은 조건이 충족될 때 단축
이윤을 취하고 손실을 중지합니다.롱 포지션의 수익 및 스톱 로스 레벨이 표시됩니다.
개선 사항:
이 전략은 MA와 볼륨 지표를 통합하여 명확한 출입 조건, 수익 / 중지 손실, 작동하기 쉬운 완전한 양 전략을 설계합니다. 빈번한 거래 문제를 예방하고 볼륨 데이터 품질 및 과잉 최적화를 모니터링해야합니다. 다음 단계는 다변수 최적화, 동적 TP / SL 및 여러 시간 프레임 분석입니다.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA and Volume Strategy", overlay=true) // Input parameters fastLength = input(9, title="Fast MA Length") slowLength = input(21, title="Slow MA Length") volumePercentageThreshold = input(50, title="Volume Percentage Threshold") // Calculate moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Calculate 24-hour volume and weekly volume average dailyVolume = request.security(syminfo.tickerid, "D", volume) weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7) // Strategy conditions longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100) shortCondition = ta.crossunder(fastMA, slowMA) // Set take profit and stop loss levels takeProfitLong = close * 1.50 stopLossLong = close * 0.90 // Strategy orders strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Plot moving averages plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") // Plot 24-hour volume and weekly volume average plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0) plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average") // Plot entry signals plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small) plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small) // Plot take profit and stop loss levels only when a valid trade is active plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small) plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)