
이 전략은 이동 평균과 무작위 지표를 결합하여 자동화 된 주식 거래 시스템을 구현합니다. 그것은 두 개의 다른 길이의 이동 평균과 무작위 지표를 사용하여 트렌드 및 오버 바이 오버 세의 신호를 캡처하고 트렌드 방향과 오버 바이 오버 세 지역의 지표 신호에 따라 거래합니다.
빠른 선 ((5일선) 과 느린 선 ((20일선) 두 개의 이동 평균을 사용한다. 빠른 선에서 느린 선을 통과할 때 구매 신호로, 아래를 통과할 때 판매 신호로 한다. 이동 평균의 역할은 가격 경향과 방향을 판단하는 것이다.
무작위 지표의 파라미터 설정은: K선 주기 14, K선 평면 주기 3, D선 평면 주기 3. K선 20 이하는 초과 판매 지역이며, 80 이상은 초과 판매 지역이다. 무작위 지표의 역할은 초과 구매 초과 판매 지역에 있는지 판단하는 것이다.
구매 조건: 빠른 라인에서 느린 라인 and K 라인 <20 (오버셀 지역) 판매 조건: 빠른 라인 아래로 느린 라인을 통과 and K 라인> 80 ((오버 바이 지역)
구매 조건이 충족되면 더 많이 구매하고, 판매 조건이 충족되면 더 적게 판매한다.
매입 후 1%의 스톱을 설정하고 매각 후 1%의 스톱로스를 설정한다.
이 전략은 추세와 지표를 결합하여 가격의 중장선 추세를 효과적으로 포착할 수 있으며, 동시에 무작위 지표를 사용하여 매매 시기를 제어하고, 명확한 방향성이 없는 상태에서 임의의 매매 작업을 피한다. 전략의 매개 변수는 넓게 조정할 수 있으며, 다른 시장 환경에 맞게 조정할 수 있다.
만약 급격한 시장상황이 발생하면 큰 손실이 발생할 수 있다. 위험을 통제하기 위해 스톱 라인을 설정할 수 있다.
지속적인 수평 정리 시장에 직면하면 연속으로 작은 손실이 발생할 수 있습니다. 이동 평균 주기 변수를 적절히 조정하여 손실을 줄일 수 있습니다.
주식시장의 중요한 시기를 피하는 것은 주의가 필요합니다. 왜냐하면 가격의 반전이 잘못된 거래로 이어질 수 있기 때문입니다.
다양한 변수 조합을 테스트하여 최적의 변수 조합을 찾을 수 있다. 예를 들어, 다양한 길이의 이동 평균 조합의 효과를 테스트한다.
거래량, 변동률 등과 같은 다른 분석 도구와 결합하여 필터링 조건을 설정하여 전략 수익률을 높일 수 있습니다.
주식 선택 메커니즘, 성과 주식 또는 중화 지수 등을 연구하여 주식 위험을 줄일 수 있다.
이 전략은 전반적으로 원활하게 작동하며, 스톱로스 스톱을 설정한 후 전반적인 수익이 좋은 결과입니다. 파라미터 조정과 주식 풀 필링의 최적화를 통해 효과를 더욱 향상시킬 수 있습니다. 전반적으로, 이것은 안정적으로 작동하는, 실행하기 쉬운 양적 거래 전략입니다.
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average and Stochastic Strategy 80% ", overlay=true)
// Moving Average Settings
maShortLength = input(5, title="Short MA Length")
maLongLength = input(20, title="Long MA Length")
// Stochastic Settings
stochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="Stochastic %K")
smoothD = input(3, title="Stochastic %D")
stochOverbought = 80
stochOversold = 20
// Profit Target Settings
profitTarget = input(1, title="Profit Target (%)") // 1% profit target
// Calculate Moving Averages
maShort = sma(close, maShortLength)
maLong = sma(close, maLongLength)
// Calculate Stochastic
k = sma(stoch(close, high, low, stochLength), smoothK)
d = sma(k, smoothD)
// Entry Conditions
longConditionMA = crossover(maShort, maLong) and k < stochOversold
shortConditionMA = crossunder(maShort, maLong) and k > stochOverbought
// Opposite Conditions
oppositeLongConditionMA = crossunder(maShort, maLong) and k < stochOversold
oppositeShortConditionMA = crossover(maShort, maLong) and k > stochOverbought
// Strategy Logic
if (longConditionMA)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", profit=close * (50 + profitTarget / 100))
if (shortConditionMA)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", profit=close * (20 - profitTarget / 100))
// Opposite Strategy Logic
if (oppositeLongConditionMA)
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", profit=close * (50 - profitTarget / 100))
if (oppositeShortConditionMA)
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", profit=close * (20 + profitTarget / 100))
// Plot Moving Averages
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")
// Plot Stochastic
hline(stochOverbought, "Overbought", color=color.red)
hline(stochOversold, "Oversold", color=color.green)
plot(k, color=color.black, title="Stochastic %K")