이 전략은 파인 스크립트로 작성되었으며, 기하급수적인 이동 평균 (EMA) 및 이동 평균 컨버전스 디버전스 (MACD) 지표와 관련된 추가 조건과 결합하여 1-2-3 패턴을 기반으로 잠재적 인 구매 및 판매 신호를 식별하는 것을 목표로합니다. 이 전략은 포괄적인 거래 신호를 제공하기 위해 가격 패턴, 트렌드 확인 및 동력 지표를 활용합니다.
이 전략의 핵심은 1-2-3 패턴을 식별하는 것입니다. 이것은 세 개의 연속 촛불으로 구성된 일반적인 가격 패턴으로 잠재적인 트렌드 반전을 나타냅니다. 구매 신호의 경우 첫 번째 촛불이 오픈 상에서 닫히고 두 번째 촛불이 오픈 아래에서 닫히고 세 번째 촛불이 첫 번째 촛불의 폐쇄 상에서 닫히고 마지막으로 네 번째 촛불이 세 번째 촛불의 폐쇄 상에서 닫습니다. 판매 신호의 조건은 완전히 반대입니다.
1-2-3 패턴 외에도 전략은 트렌드 방향 및 잠재적 인 트렌드 반전을 확인하기 위해 EMA 및 MACD 지표를 사용합니다. 9 기간 EMA 및 20 기간 EMA는 트렌드 확인에 사용되며 MACD 라인과 신호 라인은 추진력과 잠재적 인 트렌드 반전을 식별하는 데 사용됩니다.
모든 구매 조건이 충족되면, 즉 1-2-3 패턴이 형성되고, 폐쇄 가격은 EMA 두 가지 이상이며, MACD 라인은 신호 라인의 위에있을 때, 전략은 긴 포지션을 개척합니다. 마찬가지로, 모든 판매 조건이 충족되면 전략은 짧은 포지션을 개척합니다. 전략은 반대 신호가 생성되거나 현재 촛불이 포지션의 반대 방향으로 닫을 때 해당 포지션을 닫습니다.
이 전략은 1-2-3 패턴, EMA 및 MACD 지표에 기반하여 잠재적 인 구매 및 판매 신호를 식별하는 포괄적인 접근 방식을 제공합니다. 신뢰할 수있는 거래 신호를 생성하기 위해 가격 패턴, 트렌드 확인 및 모멘텀 지표를 결합합니다. 그러나 전략에는 위험 관리 조치 및 매개 변수 최적화 부족과 같은 일부 제한도 있습니다. 멀티 타임프레임 분석, 동적 스톱 로스, 포지션 사이징 및 매개 변수 최적화를 통합함으로써 전략의 성능을 더욱 향상시킬 수 있습니다. 또한 다른 기술적 지표 또는 시장 정서 지표를 포함하면 신호의 신뢰성을 향상시키는 데 도움이 될 수 있습니다. 이러한 개선에도 불구하고 전략은 여전히 라이브 거래에 적용하기 전에 철저하게 지원하고 검증해야합니다. 전반적으로이 전략은 트레이더에게 좋은 출발점을 제공하며, 추가적인 최적화와 잠재력 테스트 및 정밀화로 인해 전략이 견고하고 수익성이 높은 거래 전략이되었습니다.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("1-2-3 Pattern Strategy with EMAs, MACD, and 4th Candle Extension", overlay=true) // Define conditions for the 1-2-3 pattern for buy orders buy_candle1_above_open = close[3] > open[3] buy_candle2_below_open = close[2] < open[2] buy_candle3_above_close = close[1] > close[3] buy_candle4_above_close = close > close[3] // Define conditions for the 1-2-3 pattern for sell orders sell_candle1_below_open = close[3] < open[3] sell_candle2_above_open = close[2] > open[2] sell_candle3_below_close = close[1] < close[3] sell_candle4_below_close = close < close[3] // Fetch 9 EMA, 20 EMA, and MACD ema_9 = ta.ema(close, 9) ema_20 = ta.ema(close, 20) [macd_line, signal_line, _] = ta.macd(close, 12, 26, 9) // Implement strategy logic for buy orders if (buy_candle1_above_open and buy_candle2_below_open and buy_candle3_above_close and buy_candle4_above_close and strategy.opentrades == 0 and close > ema_9 and close > ema_20 and macd_line > signal_line) strategy.entry("Buy", strategy.long, qty=5) if (close < open and strategy.opentrades > 0) strategy.close("Buy", qty=5) // Implement strategy logic for sell orders if (sell_candle1_below_open and sell_candle2_above_open and sell_candle3_below_close and sell_candle4_below_close and strategy.opentrades == 0 and close < ema_9 and close < ema_20 and macd_line < signal_line) strategy.entry("Sell", strategy.short, qty=5) if (close > open and strategy.opentrades > 0) strategy.close("Sell", qty=5)