골드 크로스 전략은 간단한 시장 지표로, 장기 투자자에게 진입 시기를 결정하는데 도움을 준다. 이 전략은 단기 및 장기 이동 평균의 교차를 기반으로 거래 신호를 생성한다. 단기 이동 평균 위에 장기 이동 평균을 통과할 때, 골드 크로스 형성, 시장이 황소 시장에 들어간 것을 의미하며, 더 할 수 있다. 단기 이동 평균 아래에 장기 이동 평균을 통과할 때, 사망 크로스 형성, 시장이 곰 시장에 들어간 것을 의미하며, 평정해야 한다.
이 전략은 sma 함수를 사용하여 단기 및 장기 간 간단한 이동 평균을 계산한다. 단기 이동 평균의 길이는 50 일, 장기 이동 평균의 길이는 200 일으로 설정되어 있다. 전략은 크로스 오버 및 크로스 언더 함수를 사용하여 단기 라인이 상위 또는 아래로 장기 라인을 통과하는지 판단하여 거래 신호를 생성한다.
단기 라인에서 장기 라인을 통과하면, 시장 추세가 하향에서 상승으로 바뀌고, 황금 교차가 발생한다는 것을 나타냅니다. 이것은 더 많은 것을하는 신호입니다. 전략은 strategy.entry 함수를 통해 입장을 더 많이 열 것입니다.
시장의 트렌드 전환점을 포착하는 금/죽음 교차점을 통해 입수 시점과 포지션 시점을 결정하여 시장 소음을 효과적으로 필터링 할 수 있습니다. 이것은 간단한 실용적인 트렌드 추적 전략입니다.
위험을 제어하기 위해 스톱로스를 설정할 수 있고, 가짜 신호를 줄이기 위해 이동 평균 변수를 최적화할 수 있으며, 신호 신뢰성을 확인하기 위해 다른 지표와 결합하여 중요한 뉴스에 대응하기 위해 긴급 사건 처리 메커니즘을 개발할 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이동 평균 변수를 최적화하여 단기 및 장기 평균 선의 길이를 조정하여 다른 시장의 특성에 더 잘 맞게합니다.
거래량을 증가시키는 조건 판단은 거래량이 증가하는 경우에만 신호를 생성합니다.
다른 지표들, 예를 들어 MACD, RSI 등과 결합하여 금/죽음의 교차 신호를 확인하고 가짜 신호를 피합니다.
단편적 손실을 통제하기 위해, 추적적 손실, 비율적 손실과 같은 손실을 방지하는 전략을 추가합니다.
포지션 관리 전략, 예를 들어 고정 포지션, 지수 포지션 등으로 포지션을 늘리고, 전체적인 위험을 통제합니다.
출입 시점을 최적화하고, 교차가 발생했을 때 잠시 관찰하고, 가짜 교차를 필터링한다.
이러한 최적화를 통해, 전략의 매개 변수를 시장의 통계적 특성에 더 잘 맞추고, 가짜 신호를 필터링하고, 위험을 제어하고, 전략을 더욱 안정적이고 수익성을 향상시킬 수 있습니다.
골드 크로스 전략은 간단하면서도 실용적인 트렌드 추적 전략이다. 그것은 이동 평균을 가로질러 시장의 흐름을 직관적으로 포착하고, 장거리 투자자에게 진입 및 퇴출 시간을 효과적으로 식별할 수 있다. 이 전략은 구현하기 쉽고, 초보자 학습에 적합하며, 여러 가지 측면에서 확장 및 최적화 할 수 있으며, 이를 유연하고 신뢰할 수있는 양적 거래 전략으로 만든다.
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Dumb strategy 2 - Golden Cross", shorttitle="Golden Cross", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
lShort = input(50, title="short length")
lLong = input(200, title="long length")
src = input(close, title="Source")
smaShort = sma(src, lShort)
smaLong = sma(src, lLong)
plot(smaShort, title="SMA Short", style=line, linewidth=3, color=lime)
plot(smaLong, title="SMA Long", style=line, linewidth=3, color=red)
//
//Backtest Time Inputs
//
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(01, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? blue : na
bgcolor(testPeriodBackgroundColor, transp=80)
testPeriod() => true
if testPeriod()
longCondition = crossover(smaShort, smaLong)
if (longCondition)
strategy.entry("Long Entry", strategy.long)
shortCondition = crossunder(smaShort, smaLong)
if (shortCondition)
strategy.close_all(true)