이 전략은 엔트리 포인트를 결정하기 위해 단기 및 장기 이동 평균의 황금 십자가를 기반으로 거래 신호를 생성하고 출구 지점으로 스톱 손실 지점을 설정합니다. 이것은 전형적인 트렌드 다음 전략입니다. 명백한 상승 추세를 보이는 시장에 적합하며, 트렌드를 따라 상승 동력으로부터 수익을 창출하고 트렌드가 역전되면 즉시 출구 할 수 있습니다.
이 전략은 주로 단기 및 장기 이동 평균의 교차를 사용하여 시장 트렌드를 결정합니다. 논리는 다음과 같습니다.
3일 간 간단한 이동 평균 short_ma를 단기 이동 평균으로 계산합니다.
19일 간 간단한 이동평균 long_ma를 장기 이동평균으로 계산합니다.
short_ma가 long_ma를 넘으면 긴 신호가 생성됩니다.
가격이 엔트리 가격 * (1 + 스톱 로스 %) 이상 상승하면 모든 포지션을 닫습니다.
short_ma가 long_ma 아래를 넘으면 short 신호가 생성됩니다.
전략의 운영 기간을 제한하기 위해 특정 날짜 범위 내에서 백테스트.
100일 이동 평균 트렌드_ma가 상승 추세를 시사할 때만 거래합니다.
이 전략은 이동 평균의 황금 십자가를 이용합니다. 지속적인 상승 추세 동안, short_ma가 long_ma보다 높을 때 생성되는 긴 신호는 기회를 포착 할 수 있습니다. short_ma가 long_ma보다 낮을 때 짧은 신호는 위험을 관리하는 데 도움이됩니다.
이 전략의 장점:
단순하고 이해하기 쉬운 논리입니다. 이동평균의 크로스오버를 기반으로 합니다.
트렌드를 따르고 위험을 관리하는 명확한 입출입 규칙
트렌드가 역전될 때 수익을 확보하기 위해 손해를 멈추십시오.
잘못된 신호를 피하기 위해 전체 트렌드가 상승했을 때만 거래하십시오.
다양한 시장에 적응 할 수있는 조정 가능한 이동 평균 기간.
특정 기간에 대한 백테스트는 검증을 허용합니다.
이 전략의 위험은:
매개 변수 조정에 민감해서 다른 설정이 성능에 영향을 미칩니다.
역사적인 데이터에 맞춘 곡선, 이상에서 효과적이지 않습니다.
가격 격차를 처리할 수 없으니, 스톱 로스를 초과할 위험이 있습니다.
다양한 시장에서 속일 확률이 높습니다.
트렌드가 보이는 시장에서만 작동합니다.
백테스트 기간 선택은 결과에 영향을 미칩니다.
이 전략은 다음과 같은 측면에서 개선될 수 있습니다.
다양한 매개 변수 집합을 테스트하여 최적 값을 찾습니다.
의사결정을 개선하기 위해 MACD, 볼링거 밴드 같은 다른 지표를 포함합니다.
더 나은 리스크 통제를 위해 동적 후속 스톱 손실을 사용하십시오.
입구, 출구 논리를 최적화해
다른 시장 조건에서 견고성을 테스트합니다.
매개 변수 조정 및 신호 생성에 대한 기계 학습을 탐구합니다.
가격 격차 처리 및 손실 중지 화프사 시나리오를 추가하십시오.
이 간단하고 효과적인 전략은 이동 평균 크로스를 사용하여 상승 추세를 포착하고 스톱 로스를 통해 위험을 관리합니다. 강한 트렌딩 시장에서 잘 수행하지만 한계가 있습니다. 탄력성을 향상시키기 위해 추가 최적화와 테스트가 필요합니다. 전반적으로 명확한 논리가 있으며 이해하기 쉽고 구현하기 쉽고 초보자도 배울 수 있습니다.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Ta3MooChi //@version=5 strategy("전략", overlay=true,process_orders_on_close = true, pyramiding = 100) short_ma = ta.sma(close,input.int(3, "단기 이평", minval = 1)) long_ma = ta.sma(close, input.int(19,"장기 이평", minval = 1)) trend_ma = ta.sma(close, input.int(100," 추세 이평", minval = 20, group = "추세 이평")) up_trend = (trend_ma > trend_ma[1]) use_trend_ma = input.bool(true, title = "추세용 이평 사용", group = "추세 이평" ) inTrendMa = not use_trend_ma or up_trend useDateFilter = input.bool(true, title = "특정 기간 백테스트", group = "기간 백테스트") backtestStartDate = input(timestamp("1 Jan 2021"), title = "시작날짜", group = "기간 백테스트") backtestEndDate = input(timestamp("1 Jan 2022"), title = "종료날짜", group = "기간 백테스트") inTradeWindow = true longStopPerc = 1 + input.float(3, "최소수익률%", minval = 1)*0.01 longcondition = ta.crossover(short_ma, long_ma) shortcondition = ta.crossunder(short_ma, long_ma) if (longcondition) and inTradeWindow and inTrendMa strategy.entry("long", strategy.long) if (shortcondition) and (close > strategy.position_avg_price*longStopPerc) and inTradeWindow strategy.close_all() if not inTradeWindow and inTradeWindow[1] strategy.cancel_all() strategy.close_all(comment = "매매 종료") plot(short_ma,color = color.yellow) plot(long_ma,color = color.blue) plot(trend_ma,color = color.gray)