
쌍평균선 교차 전략은 비교적 간단한 양적 거래 전략이다. 그것은 최근 7 K 선의 평균 종료 가격과 20 K 선의 평균 종료 가격을 계산하여, 단기평균선이 아래에서 장기평균선을 통과할 때 더 많은 것을 하고, 단기평균선이 위에서 아래에서 장기평균선을 통과할 때 공백을 하고, 이러한 작업을 함으로써 시장의 중기 경향의 전환점을 잡을 수 있다.
이 전략의 핵심 논리는 최근 7개의 K선 (현재의 K선을 포함하지 않는) 의 평균 종결 가격을 단기 평균으로 계산하고, 20개의 K선 (최근 7개의 K선을 포함하지 않는) 의 평균 종결 가격을 장기 평균으로 계산하는 것이다. 단기 평균이 아래에서 장기 평균을 통과하면 시장이 하향에서 하향으로 이동하는 것을 나타냅니다.
다중 신호 발동 후, 전체 계정 자금의 수에 따라 더 많은 포지션을 개시한다. 적폐 신호 발동 후, 다중 포지션의 수에 따라 더 많은 포지션을 평형화하고 그 수에 따라 포지션을 개시한다. 매번 포지션을 개시한 후의 포지션은 20-25 K 라인을 보유하게 될 것이며, 이 기간 동안 손실이 발생하면 포지션의 절반이 중단되며, 충분한 수익이 발생하면 포지션의 절반이 중단된다.
이것은 매우 간단한 쌍평선 교차 전략이며, 그 장점은 다음과 같습니다.
이것은 좀 더 간단한 트렌드 추적 전략이지만, 몇 가지 잠재적인 위험도 있습니다.
위와 같은 위험은 다음과 같은 방법으로 최적화할 수 있습니다.
이 전략은 간단하지만, 다음과 같은 부분에서 심층적으로 최적화 할 수 있습니다.
평균선 변수를 최적화하고, 다양한 단기 및 장기 평균선 조합을 테스트하여 최적의 변수를 찾습니다.
에너지 지표, 변동률 지표 등과 같은 다른 필터링 지표를 추가하여 불안정한 시장에서 잘못된 신호를 피합니다.
스톱 스톱 전략을 최적화하고, 다양한 스톱 스톱 비율을 테스트하여 최적의 매개 변수를 결정합니다.
다양한 시장 사이클을 테스트하고, 포지션 기간을 최적화하여, 어떤 사이클이 전략에 가장 적합한지 판단하는 것.
기계 학습 알고리즘을 추가하여 역 테스트를 통해 전략 매개 변수를 지속적으로 최적화하여 전략을 더욱 안정화하십시오.
이 전략은 비교적 간단한 양평선 교차 전략으로, 서로 다른 주기들의 평평선 교차를 계산하여 중기 트렌드 전환점을 판단한다. 이 전략은 실용성이 강하며, 아이디어는 쉽게 조작한다. 그러나 이 전략은 또한 제한이 있다. 주요 문제는 시장의 실제 전환점을 효과적으로 판단하지 못한다는 것이다.
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nrathi2211
//@version=5
strategy("Closing Prices", overlay=true)
//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000
//functions
qty_find(float price) => capital / int(price)
profit_take() =>
profit = strategy.opentrades.profit(strategy.opentrades - 1)
profit*.95
if(closingB7 < closingB14)
if(ta.crossover(close, closingB7))
strategy.entry("long_buy", strategy.long, qty_find(close))
current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
if(current_profit < 0)
strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
else if(current_profit < profit_take())
strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
if(ta.crossunder(close, closingB7))
strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)
plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)