이 전략은 이동 평균, 가격 패턴 및 부피를 결합하여 시장에서 잠재적 인 트렌드 역전 지점을 식별합니다. 빠른 이동 평균이 느린 이동 평균을 넘어서면 길게 이동하고, 상승 추세 포식 패턴이 나타나고, 저항 수준이 깨지고 거래 부피가 증가합니다. 반대 조건이 발생하면 짧게됩니다.
이 전략의 핵심 아이디어는 이동 평균, 가격 액션 패턴 및 볼륨의 조합을 다가오는 반전을 위한 신호로 사용하는 것입니다. 구체적으로, 이동 평균의 황금 십자가와 죽음의 십자가는 트렌드의 변화를 나타낼 수 있습니다. 상승/하락 포식 패턴은 일반적으로 단기적인 반전을 의미합니다. 거래 부피의 급증은 또한 종종 트렌드 반전을 의미합니다. 세 가지 유형의 신호를 결합함으로써 전략은 반전 전환점을 정확하게 포착하는 것을 목표로합니다.
논리적으로, 전략은 먼저 빠르고 느린 이동 평균을 계산합니다. 그 다음 상승 / 하락 포식 패턴을 식별하기 위해 조건을 정의합니다. 지원 및 저항 수준은 부피 확장과 함께 추가 조건으로 통합됩니다. 빠른 MA가 느린 MA를 넘어서면 구매 신호가 발생하며 상승 패턴이 나타나고 저항이 깨지고 볼륨이 상승합니다. 반대 조건은 판매 신호를 유발합니다.
이 전략의 가장 큰 장점은 반전을 확인하기 위해 여러 신호의 조합을 사용하는데, 이는 잘못된 신호를 피하는 데 도움이됩니다. 이동 평균이나 촛불 패턴과 같은 단일 지표에만 의존하면 잘못된 거래가 발생합니다. 세 가지 요인의 조화를 요구함으로써 반전을 정확하게 포착하는 확률이 크게 향상됩니다.
또한, 이 전략은 트렌드와 역전 개념 모두를 활용한다. 역전들은 기존 트렌드를 따라만 추구된다. 즉, 전략은 트렌딩 시장 내에서 반트렌드 리트레이스를 찾는다. 이것은 무작위성을 줄이고 수익성을 높이는 데 도움이 된다.
이 전략의 가장 큰 위험은 엔트리 신호 후에 가격이 거래 방향에 반대되는 것을 계속하는 실패한 반전입니다. 이것은 일반적으로 반전 신호가 거짓으로 밝혀지거나 지속되는 트렌드에 대한 단기적인 수정일 때 발생합니다.
해결책은 더 나은 트렌드를 정의하기 위해 이동 평균 기간을 조정하고, 더 넓은 스톱 손실을 사용하며, 반전 신호를 거래하기 전에 더 많은 확인 요인을 포함합니다. 더 높은 시간 프레임 트렌드를 기반으로 필터를 추가하는 것도 잘못된 브레이크 아웃 거래를 피하는 데 도움이 될 수 있습니다.
이 전략의 가능한 최적화 경로는 다음을 포함합니다.
최적의 장기/단기 트렌드를 식별하기 위해 이동 평균 기간을 조정합니다.
피보트 포인트와 같은 다양한 지원/저항 계산 방법을 테스트합니다.
차킨 금전 흐름, 볼륨 오시레이터 같은 다른 볼륨 지표를 시도합니다.
장기 차트 패턴, 거대한 부피 스파이크 등과 같은 더 많은 반전 확인 요소를 포함합니다.
주식 지수 선물을 사용하여 시장을 통해 신호를 확인합니다.
매개 변수 조합의 엄격한 테스트를 통해 성능의 추가 개선이 이루어질 수 있습니다.
이 전략은 트렌딩 시장에서만 이동 평균, 가격 액션 및 거래 부피가 트렌딩 시장에서 전환되는 것을 깔끔하게 결합합니다. 매개 변수를 최적화하고 더 많은 신호 확인을 추가함으로써 단기 역 트렌드 거래를위한 강력한 시스템이 될 수 있습니다.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Profit Table Strategy", overlay=true) // Input parameters fastLength = input(10, title="Fast MA Length") slowLength = input(20, title="Slow MA Length") takeProfitPercent = input(1, title="Take Profit (%)") / 100 stopLossPercent = input(1, title="Stop Loss (%)") / 100 trailingStopPercent = input(1, title="Trailing Stop (%)") / 100 // Price action conditions bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1] bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1] // Support and resistance levels supportLevel = input(100, title="Support Level") resistanceLevel = input(200, title="Resistance Level") // Volume conditions volumeCondition = volume > ta.sma(volume, 20) // Calculate moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Buy condition buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition // Sell condition sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition // Strategy logic strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition) // Calculate take profit, stop loss, and trailing stop levels takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent) stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent) trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent) // Plotting levels on the chart plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level") plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level") plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level") plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level") plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level") // Plotting buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)