이 전략의 주요 아이디어는 빠른 이동 평균과 느린 이동 평균의 교차를 사용하여 시장 트렌드를 판단하고 단기 및 장기 이동 평균이 역전될 때 위치를 취하여 트렌드를 추적하는 효과를 달성하는 것입니다.
이 전략은 전반적으로 명확하고 이해하기 쉬운 논리를 가지고 있으며, 트렌드 반전 지점을 탐지하기 위해 빠르고 느린 MA 반전을 사용합니다. 이론적으로는 트렌드를 효과적으로 추적 할 수 있습니다. 그러나 실제 구현에서는 여전히 알고리즘 자체를 최적화하고 매개 변수를 조정하여 더욱 견고하고 실용화해야합니다.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Up Down", "Up Down", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.0, initial_capital = 1000, overlay = true) buy = close > open and open > close[1] sell = close < open and open < close[1] longma = input(77,"Long MA Input") shortma = input(7,"Short MA Input") long = sma(close,longma) short = sma(close, shortma) mabuy = crossover(short,long) or buy and short > long masell = crossunder(short,long) or sell and short > long num_bars_buy = barssince(mabuy) num_bars_sell = barssince(masell) //plot(num_bars_buy, color = teal) //plot(num_bars_sell, color = orange) xbuy = crossover(num_bars_sell, num_bars_buy) xsell = crossunder(num_bars_sell, num_bars_buy) plotshape(xbuy,"Buy Up Arrow", shape.triangleup, location.belowbar, white, size = size.tiny) plotshape(xsell,"Sell Down Arrow", shape.triangledown, location.abovebar, white, size = size.tiny) plot(long,"Long MA", fuchsia, 2) // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop if testPeriod() strategy.entry("buy", true, when = xbuy, limit = close) strategy.close("buy", when = xsell)