
이동 평균 크로스 최적화 전략은 이동 평균 크로스, 위치 제어, 위험 관리와 같은 여러 기능을 통합한 양자 거래 전략이다. 이 전략은 빠른 이동 평균과 느린 이동 평균의 크로스를 구매 및 판매 신호로 사용하고 포지션 규모의 동적 제어를 결합하여 위험 관리를 구현한다. 전통적인 이동 평균 크로스 전략에 비해 이 전략은 다방면으로 기능 최적화를 수행하여 더 진보하고 신뢰할 수있는 양자 거래 솔루션을 제공합니다.
이 전략의 핵심 신호는 두 개의 이동 평균의 교차에서 나온다. 단기 빠른 이동 평균과 장기 느린 이동 평균. 구체적으로, 빠른 이동 평균이 아래에서 느린 이동 평균을 통과하면 구매 신호가 발생하고, 빠른 이동 평균이 위로부터 느린 이동 평균을 넘어서는 경우 판매 신호가 발생한다.
이동 평균은 트렌드 추적 지표로서 가격 데이터를 효과적으로 평형화하여 가격 트렌드의 전환점을 식별 할 수 있습니다. 빠른 이동 평균은 가격 변화에 더 민감하여 단기 트렌드를 신속하게 포착 할 수 있습니다. 느린 이동 평균은 가격 변동에 대한 반응이 더 느려서 중·장기 트렌드를 반영 할 수 있습니다. 두 평균의 교차는 트렌드 전환을 판단하는 효과적인 신호입니다.
급속한 이동 평균 상단으로 통과하면 단기 가격이 상승으로 전환되어 중장기 가격이 상승하는 것을 나타냅니다. 급속한 이동 평균 상단으로 통과하면 단기 가격이 하락하기 시작하고 중장기에는 하락하는 것을 나타냅니다.
이 전략의 또 다른 큰 특징은 위험 관리에 있다. 이 전략은 거래자가 거래 당 위험 비율을 설정하고 그에 따라 포지션 규모를 동적으로 조정할 수 있다. 구체적으로, 거래 당 포지션 규모의 계산 공식은 다음과 같다.
포지션 규모 = (계좌 이자 × 위험 비율) / (거래당 위험 비율 × 100)
계좌 자금 상태와 위험을 견딜 수 있는 동적 상황에 따라 포지션을 조정하는 이러한 방식은 거래 위험을 효과적으로 제어할 수 있으며, 이 전략의 큰 장점이다.
원래의 이동 평균 크로스 전략에 비해, 이 전략은 다음과 같은 몇 가지 차원에서 중요한 최적화를 수행합니다:
더 똑똑한 신호장치이 전략은 단일한 평균선 대신 빠르고 느린 두 개의 이동 평균을 사용하여 단기 및 중장기 트렌드를 동시에 식별 할 수 있으며 교차 신호가 더 신뢰할 수 있습니다.
더 과학적인 위험 관리ᄒ 계좌 자금과 견딜 수 있는 위험 동적에 따라 포지션이 계산되면서 수익을 창출하고 위험을 통제하는 것이 실제 전투 요구에 더 적합합니다.
더 인간적인 운영체제직관적인 신호 표기, 실시간 경보 경고, 24시간 작동이 필요없고, 더 편리하게 작동한다.
더 높은 유연성│ 사용자는 개인 취향에 따라 이동 평균 변수와 위험 설정을 사용자 정의하여 전략을 더 잘 맞출 수 있습니다.
비교적 원시적인 이동 평균 교차 전략에 대한 큰 개선에도 불구하고, 이 전략은 실제 적용에서 다음과 같은 위험에 직면할 수 있다:
가격 전환점을 놓친 것: 이동 평균은 트렌드 추적 유형 지표이며, 급격한 가격 반동에 민감하지 않으며, 중요한 매수점을 놓칠 수 있으며, 적시에 손실을 막거나 멈출 수 없습니다.
정리시장에 적용되지 않는다.: 시장이 오랜 시간 수평 정리 상태에 있을 때, 이동 평균 신호는 오해의 소지가 있으며, 포지션 크기를 줄이거나, 다른 유형의 전략을 사용하는 것을 고려해야 한다.
잘못된 변수 설정: 이동 평균 파라미터가 적절하게 설정되지 않으면 오류 신호가 발생하여 반복 테스트를 통해 최적의 파라미터를 얻어야 합니다.
너무 위험합니다.: 위험 비율이 너무 높으면, 계좌는 거래마다 너무 큰 위험을 감수하고, 포지션을 폭발시킬 수 있습니다. 이것은 자신의 실제 용량에 따라 신중하게 구성해야합니다.
위와 같은 위험들에 대해, 우리는 다음과 같은 차원에서 위험을 관리할 수 있습니다.
거래량, KD 지표 등과 같은 다른 지표 필터 신호와 결합하여 가격 전환을 놓치지 않도록하십시오.
다른 시장 상황에 따라 전략을 바꾸거나 지위를 낮추는 것, 예를 들어 흔들림형 전략을 사용하는 것.
최적의 파라미터를 찾기 위해 충분히 재검토하거나, 다른 품종에 따라 파라미터를 세분화한다.
보수적인 위험 배열, 분량으로 창고 건설, 단독 손실을 제어한다.
이 정책에는 확장 가능한 최적화 공간이 있으며, 주로 다음과 같은 측면을 포함합니다.
신호 필터링 최적화: KM 지표, 브린 띠 등과 같은 다른 지표를 도입하여 신호를 필터링 할 수 있으며, 신호를 더 신뢰할 수 있습니다.
변수 적응: 기계 학습 방법을 통해 이동 평균의 변수를 동적으로 최적화하여 시장 변화에 자동으로 적응할 수 있도록 한다.
손해를 막는 전략: 이동식 중지, 고정 비율 중지 등의 기능을 추가하여 수익을 파악하고 손실을 효과적으로 제어 할 수 있습니다.
복합 전략이동 평균 전략과 다른 유형의 전략, 예를 들어 접착평면, 흔들림 전략의 조합을 사용하면 더 안정적인 추가 수익을 얻을 수 있습니다.
크로스마켓 차익거래: 다양한 시장의 가격 관계를 결합하여 Statistical Arbitrage를 수행하여 무위험의 중심을 얻습니다.
지속적인 테스트와 최적화를 통해 우리는 이 전략을 안정적이고, 통제 가능한, 초과 수익을 창출하는 양적 거래 솔루션으로 만들 수 있다고 확신합니다.
운동 평균선 교차 최적화 전략은 빠른 느린 평평선 교차로 거래 신호를 형성하고, 동적 위치 조정을 사용하여 위험을 제어하는 기능이 매우 완벽한 양적 거래 전략이다. 전통적인 이동 평균선 전략에 비해, 이 전략은 신호 판단, 위험 관리, 사용 경험 등에서 큰 진전을 이루었다. 변수 최적화, 신호 필터링, 스톱 로스 , 복합 조합 등에서 계속 개선됨에 따라, 이 전략은 소매 거래자의 수익성 있고 제어 가능한 이상적인 전략 중 하나가 될 전망이다.
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Improved Moving Average Crossover", overlay=true)
// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
riskPercentage = input(1, title="Risk Percentage", minval=0.1, maxval=5, step=0.1)
// Calculate moving averages
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
// Trading signals
longCondition = crossover(fastMA, slowMA)
shortCondition = crossunder(fastMA, slowMA)
// Position sizing based on percentage risk
riskPerTrade = input(2, title="Risk Per Trade (%)", minval=1, maxval=10, step=0.5)
equity = strategy.equity
lotSize = (equity * riskPercentage) / (riskPerTrade * 100)
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
// Plot trades on the chart using plotshape
plotshape(series=longCondition, color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small, title="Sell Signal")
// Alerts
alertcondition(longCondition, title="Buy Signal", message="Buy Signal!")
alertcondition(shortCondition, title="Sell Signal", message="Sell Signal!")