이 전략은 비트코인의 이동 평균 라인의 크로스오버 원리에 기초하여 설계된 트렌드 다음 거래 전략이다. 이 전략은 빠른 이동 평균 라인과 느린 이동 평균 라인의 크로스오버를 구매 및 판매 신호로 사용합니다. 빠른 이동 평균 라인이 느린 이동 평균 라인의 위를 넘을 때 황금 십자가로 간주되고 길게 갈 때; 빠른 이동 평균 라인이 느린 이동 평균 라인의 아래를 넘을 때, 죽음의 십자가로 간주되어 짧게 갈 때. 동시에 전략은 무분별한 진입을 피하기 위해 RSI 지표를 포함합니다.
이 전략은 주로 두 가지 지표에 기반합니다.
이동 평균 (MA): 특정 기간 동안의 평균 폐쇄 가격을 계산하여 가격 추세와 반전 신호를 결정합니다.
상대적 강도 지수 (RSI): 특정 기간 동안 가격 상승 및 하락 속도를 계산하여 과소매 및 과소매 지역을 판단합니다.
구체적으로, 전략은 빠른 라인으로서 짧은 MA를 사용하고 느린 라인으로서 더 긴 MA를 사용합니다. 빠른 라인이 느린 라인 위에 넘어가면 단기 가격 상승이 가속화되고 구매 신호가 생성된다는 것을 나타냅니다. 빠른 라인이 느린 라인 아래에 넘어가면 단기 가격 하락이 가속화되고 판매 신호가 생성된다는 것을 나타냅니다.
동시에, 전략은 또한 RSI에 대한 한계를 설정하고, RSI가 50보다 높을 때만 구매 신호를 생성하고, RSI가 50보다 낮을 때만 판매 신호를 생성하며, 가격이 격렬하게 변동할 때 무모한 입력을 피합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략은 또한 몇 가지 위험을 안고 있습니다.
위험을 줄이기 위해 이동 평균 기간 매개 변수를 최적화하고 스톱 로스 포지션을 조정하고 포지션 크기를 적절히 축소하는 것이 좋습니다. 큰 근본적인 변화가 발생하면 전략을 중단해야합니다.
이 전략의 주요 최적화 방향은 다음과 같습니다.
이동 평균 기간 매개 변수를 최적화하여 최적의 매개 변수 조합을 찾아내기 위해 추가 검색, 유전 알고리즘 등을 통해
필터링을 위한 다른 기술적 지표, 예를 들어 KDJ, MACD 등을 증가시켜 거래 신호 품질을 향상시킵니다.
가격 변동을 모니터링하고 그에 따라 포지션을 조정하고 손실을 멈추십시오.
가짜 브레이크오웃을 피하기 위해 거래량을 포함하고 거래량이 증가할 때만 신호를 발송합니다.
매개 변수 자체 적응 메커니즘을 개발하여 전략이 다른 시장 환경에 따라 매개 변수 값을 자동으로 조정 할 수 있습니다.
요약하자면, 이것은 전형적인 트렌드를 따르는 전략이다. 이동 평균 크로스오버의 원칙에 기초하여 거래 논리는 간단하고 명확하고 이해하기 쉽고 구현하기 쉽습니다. RSI 지표를 통합하면 비합리적인 거래를 피할 수 있습니다. 전략은 위험과 보상 모두 가지고 있으며, 일부 양 거래 경험이있는 투자자에게 적합하지만 잠재적 인 손실 위험을 경계해야합니다. 개발자가 더 많은 필터를 추가하고 매개 변수 적응력을 최적화 할 수 있다면 전략의 안정적인 수익성을 더욱 향상시킬 수 있습니다.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)