이 전략은 거래 신호를 생성하기 위해 두 개의 이동 평균 (MA) 을 사용합니다. 짧은 기간 MA가 더 긴 기간 MA를 넘을 때 구매 신호가 생성됩니다. 짧은 기간 MA가 더 긴 기간 MA를 넘을 때 판매 신호가 생성됩니다. 전략은 또한 거래 시간 (8 AM ~ 20 PM UTC) 과 수익 목표 (150 포인트) 를 설정합니다.
이 전략은 트렌딩 시장에 적합한 서로 다른 기간의 두 이동 평균의 교차를 기반으로 거래 신호를 생성합니다. 거래 기간과 고정 수익 목표를 설정함으로써 위험을 어느 정도 제어 할 수 있습니다. 그러나 전략은 불안정한 시장에서 잘 수행하지 않을 수 있으며 고정 수익 목표는 전략의 수익 잠재력을 제한 할 수 있습니다. 미래에 더 많은 기술적 인 지표를 통합하고 수익 목표 설정 및 스톱 손실을 최적화하고 시장 미세 구조 정보를 결합하고 다른 시장 상태에 대한 다른 매개 변수 설정을 채택하여 이 전략을 최적화하는 것을 고려할 수 있습니다.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy", overlay=true) // User-defined moving average periods ma1Periods = input(5, title="First Moving Average Periods") ma2Periods = input(20, title="Second Moving Average Periods") // Calculate moving averages ma1 = sma(close, ma1Periods) ma2 = sma(close, ma2Periods) // Plot moving averages plot(ma1, color=color.red, linewidth=2, title="First Moving Average") plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average") // Detect crossovers and crossunders bullishCross = crossover(ma1, ma2) bearishCross = crossunder(ma1, ma2) // Define trading hours (8 AM to 2 PM UTC) startHour = 8 endHour = 20 utcHour = hour(time, "UTC") isMarketOpen = true // Define profit target profitTarget = 150 // Check if the price has closed above/below the MA for the past 4 bars aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1] belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1] // Create buy and sell signals if (bullishCross and isMarketOpen and aboveMa) strategy.entry("Buy", strategy.long) strategy.exit("Sell", "Buy", profit=profitTarget) if (bearishCross and isMarketOpen and belowMa) strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", profit=profitTarget) // Plot shapes on crossovers plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")