이 거래 전략은 두 개의 간단한 이동 평균 라인 (SMA) 만 사용합니다. 트렌드 방향을 정의하기 위해 느린 SMA 라인과 특정 입구 지점을 결정하기 위해 빠른 SMA 라인을 사용합니다. 이 전략은 시간 및 더 높은 시간 프레임에서 암호화폐 거래에 적합합니다.
전략은 빠른 및 느린 SMA 라인을 계산하여 트렌드 방향을 판단합니다. 구체적으로:
느린 SMA 라인 (푸른색) 은 트렌드 방향을 정의하는 데 사용됩니다. 가격이 느린 SMA 아래에있을 때 하향 추세가 정의되며 가격이 그 위에있을 때 상승 추세가 정의됩니다.
빠른 SMA 라인 (붉은) 은 특정 입구 지점을 결정하는 데 사용됩니다. 상승 추세에서 촛불 닫기가 개방보다 낮고 빠른 SMA보다 낮을 때 긴 거리로 이동합니다. 하락 추세에서 닫기가 개방보다 높고 빠른 SMA보다 높을 때 짧은 거리로 이동하십시오.
이 전략은 또한 촛불의 색을 고려하고, 정의된 트렌드 방향으로만 거래를 수행합니다. 상승 트렌드에서 긴 신호와 하락 트렌드에서 짧은 신호, 역 트렌드 거래를 피합니다.
위험을 해결하기 위한 가능한 최적화:
트렌드를 확인하기 위해 MACD를 추가합니다.
위험을 통제하기 위해 스톱 로스를 적용합니다.
적응적인 매개 변수에 대한 매개 변수 최적화를 추가합니다.
오버 트레이딩을 피하기 위해 입력 확인을 추가합니다.
전략의 최적화를 위한 주요 측면:
매개 변수 최적화 시장 조건에 따라 자동 매개 변수 조정 모듈을 추가
입력 확인 MACD, 볼링거 밴드 같은 지표를 추가하여 SMA 신호를 확인합니다.
스톱 러스 전략은 위험도를 제한하기 위해 스톱 러스 전략을 적용합니다.
유출 통제 최대 유출 비율에 도달하면 모든 포지션을 닫습니다.
크로스 타임프레임 검증. 더 낮은 타임프레임 SMA 신호를 확인하기 위해 더 높은 타임프레임 표시기를 사용하십시오.
긴 / 짧은 선택. 다른 시장에 대한 긴 또는 짧은 거래를 선택하기 위해 스위치를 추가합니다.
이 전략은 단순한 트렌드 추종 지표를 사용하여 명확하고 이해하기 쉬운 논리를 가지고 있습니다. 그러나 제한된 수익 잠재력과 불충분한 위험 통제를 가지고 있습니다. 다음 단계는 더 나은 시장 적응력과 효과적인 위험 통제를 위해 매개 변수 및 위험 관리를 최적화하고 전략을 더욱 개선하는 것입니다.
/*backtest start: 2023-08-22 00:00:00 end: 2023-09-21 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Trend SMA Strategy v1.1", shorttitle = "Trend SMA str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) fastlen = input(5, "fast SMA Period") slowlen = input(15, "slow SMA Period") only = input(false, "Only long?") fastsma = ema(close, fastlen) slowsma = ema(close, slowlen) trend = low > slowsma ? 1 : high < slowsma ? -1 : trend[1] up = trend == 1 and low < fastsma and close < open ? 1 : 0 dn = trend == -1 and high > fastsma and close > open ? 1 : 0 plot(fastsma, color = red, title = "Fast SMA") plot(slowsma, color = blue, title = "Slow SMA") longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, only == true ? 0 : na)