이중 EMA 시스템에 기반한 크로스오버 거래 전략

저자:차오장, 날짜: 2023-09-20 11:39:40
태그:

전반적인 설명

이 전략은 한 가지 빠른 EMA 지표와 한 가지 느린 EMA 지표를 계산하여, 전형적인 트렌드 다음 전략에 속하는 크로스오버 상황에 따라 구매 및 판매 신호를 생성합니다. 빠른 선이 느린 선 위에 넘어가면 길게, 빠른 선이 느린 선 아래에 넘어가면 길게 평평합니다. 반대로, 빠른 선이 느린 선 아래에 넘어가면 짧게, 빠른 선이 느린 선 위에 넘어가면 짧게 평평합니다.

전략 논리

이 전략은 각각 13와 50의 기간을 가진 한 개의 빠른 EMA 라인과 한 개의 느린 EMA 라인을 계산합니다. 빠른 라인이 느린 라인을 넘어서 상향으로 튀어나오면, 길게 갈 구매 신호가 생성됩니다. 빠른 라인이 느린 라인을 넘어서 하향으로 튀어나오면, 짧은 판매 신호가 생성됩니다.

긴 라인을 거쳐서 빠른 라인이 느린 라인을 넘어선다면 평평한 긴 신호가 생성됩니다. 짧은 라인을 거쳐서 빠른 라인이 느린 라인을 넘어선다면 평평한 짧은 신호가 생성됩니다.

이점 분석

이 전략은 공통적인 이중 EMA 시스템을 채택하고, 서로 다른 시간 프레임 EMA 사이의 교차 상황을 기반으로 트렌드와 입구점을 판단합니다. 이중 EMA는 함께 사용할 때 노이즈를 효과적으로 필터하고 트렌드를 식별 할 수 있습니다.

작업은 간단하고 직관적이며 자동화하기가 쉽습니다. 다른 복잡한 요소를 고려하지 않고 가격 정보만 필요합니다. EMA 기간은 다른 시장 환경에 적응하도록 자유롭게 조정 할 수 있습니다.

위험 분석

이중 EMA 크로스오버 시스템은 복잡한 트렌드를 식별하는 데 평균적인 성능을 가지고 있다. 범위 시장에서 EMA 크로스오버 신호는 빈번하게 발생할 수 있으며, 윙사 (whipsaws) 의 위험이 있다. 다른 요소를 포함하지 않고 가격 요소만 고려된다.

EMA 기간 사이의 간격을 증가시키는 것은 크로스오버 빈도를 줄일 수 있습니다. 볼륨 또는 변동성 지표는 또한 추가적인 통찰력을 제공하는 데 도움이 될 수 있습니다. 스톱 로스 전략을 최적화하는 것은 또한 윙사 위험을 줄일 수 있습니다.

최적화 방향

  1. 최적의 설정을 찾기 위해 EMA 기간 매개 변수를 테스트하고 최적화합니다.

  2. 부피, 변동성 또는 다른 판단 규칙을 추가합니다.

  3. 더 엄격한 진입 조건을 설정하기 위해 파업 신호 등을 포함합니다.

  4. 추세를 예측하고 EMA 신호 품질 결정에 도움이되는 기계 학습을 적용하십시오.

  5. 트레일링 스톱, 평균 스톱 등의 스톱 손실 전략을 최적화합니다.

  6. 자본 관리를 최적화하기 위해 역동적으로 위치 크기를 조정합니다.

요약

이 전략은 전형적인 이중 EMA 크로스오버 시스템에 속하며, 간단한 지표 조합에 의해 트렌드를 측정합니다. 구현하기가 쉽지만 잘못된 신호에도 취약합니다. 더 많은 지표와 매개 변수 최적화를 결합하면 안정성을 향상시킬 수 있습니다. 전반적으로 전략 템플릿을 따르는 간결한 트렌드를 제공합니다.


/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-12 22:00:00
period: 5m
basePeriod: 1m
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/
// © himanshumahalle

//@version=4
strategy("CROSS_ALGO SYSTEM")


// INPUT CONTROLS

lengthSEMA= input(title="LSEMA", type = input.integer, defval=13,minval=1,maxval=100,step=1)
lengthLEMA= input(title="LLEMA", type = input.integer, defval=50,minval=1,maxval=100,step=1)

//INDICATOR

SEMA= ema(close,lengthSEMA)
LEMA= ema(close,lengthLEMA)

// BUY AND SELL

buy = crossover(SEMA,LEMA)
sell = crossunder(SEMA,LEMA)

//EXITS

buyexit = crossunder(SEMA,LEMA)
sellexit = crossover(SEMA,LEMA)


//EXECUTION

strategy.entry("long",strategy.long,when=buy,comment = "Buy")
strategy.entry("short",strategy.short,when=sell,comment = "Sell")

strategy.close("long",when= buyexit , comment= "Sell")
strategy.close("short",when= sellexit , comment= "Buy")




더 많은