
이 전략은 비트 코인의 이동 평균 교차 원리에 기초하여 설계된 트렌드를 따르는 거래 전략이다. 전략은 빠른 이동 평균과 느린 이동 평균의 교차를 구매 및 판매 신호로 사용한다. 빠른 이동 평균 위에 느린 이동 평균을 통과할 때, 금 포크로 간주하고, 더 많은 돈을 벌고, 빠른 이동 평균 아래에서 느린 이동 평균을 통과할 때, 죽은 포크로 간주하고, 공백을 만든다. 동시에, 전략은 RSI 지표와 결합하여 부자 현장을 피한다.
이 전략은 크게 두 가지 지표에 기반을 두고 있습니다.
이동 평균 (Moving Average, MA): 특정 주기 내의 폐쇄 가격 평균을 계산하여 가격 움직임을 판단하고 전환이 일어나는 신호를 사용한다.
상대적 강도 지수 (Relative Strength Index, 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)