
이 전략은 이중 이동 평균을 기반으로 한 거래 전략이다. 그것은 사용자가 설정 한 두 개의 이동 평균의 길이를 따라 금 포크와 사다리 작업을 수행합니다. 즉, 빠른 이동 평균 위에 또는 느린 이동 평균 아래를 통과 할 때 거래 신호를 발산합니다. 빠른 MA 위에 느린 MA를 통과 할 때, 더 많은 것을하십시오. 빠른 MA 아래에 느린 MA를 통과 할 때, 공백을하십시오.
이 전략의 핵심 논리는 쌍 이동 평균의 교차 원리에 기초한다. 이동 평균은 일정 기간 동안의 종전 가격을 계산 평균으로 얻은 평균값이다. 이동 평균은 무작위적 잡음을 효과적으로 제거하고 더 명확한 가격 추세를 반영한다.
이 전략의 단기 MA는 가격의 단기 트렌드를, 장기 MA는 가격의 장기 트렌드를 나타냅니다. 단기 MA는 장기 MA보다 가격 변화에 더 민감하고 가격 반전을 더 빨리 포착 할 수 있습니다. 단기 MA를 착용 할 때, 단기 MA는 단기 트렌드가 올라가는 것을 나타냅니다.
구체적으로, 전략은 ta.sma를 통해 지정된 주기의 간단한 이동 평균을 계산하여 거래 신호로 사용한다. 사용자는 두 개의 MA 파라미터를 사용자 정의할 수 있다. 즉, 긴 라인 주기 long_period와 짧은 라인 주기 short_period이다. 전략은 ta.crossover와 ta.crossunder를 사용하여 MA의 황금 교차와 사각지대를 판단한다.
이 전략에는 다음과 같은 장점이 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위와 같은 위험을 위해, MA 매개 변수를 조정하거나, 스톱 스톱을 설정하거나, 또는 다른 지표와 결합하여 최적화할 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 전체적으로 양적 거래의 입문 전략으로 매우 적합하다. 그것은 간단한 이중 MA 매개 변수가 작동하고, 작동이 간단하고, 이해하기 쉽고, 시장 역전 시기를 직관적으로 반영할 수 있다. 동시에 전략은 최적화 할 수있는 큰 공간을 남겨두고 실제 필요에 따라 매개 변수를 조정하거나 다른 논리를 추가하여 개선 할 수 있다.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)
// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])
// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)
// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)
// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)
// Entry orders
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100
strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))