더블 EMA 골든 크로스와 데스 크로스 전략


생성 날짜: 2023-10-16 16:15:38 마지막으로 수정됨: 2023-10-16 16:15:38
복사: 1 클릭수: 638
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 EMA 골든 크로스와 데스 크로스 전략

개요

이 전략은 이중 EMA 지표에 기반한 금 포크 사다리 거래 전략이다. 전략은 빠른 라인 EMA와 느린 라인 EMA를 계산하여, 빠른 라인 상에서 느린 라인을 통과할 때 더 많이 하고, 빠른 라인 아래에서 느린 라인을 통과할 때 평소한다. 이 전략은 간단하고 쉽게 작동하며, 중장기 거래에 적합하다.

전략 원칙

이 전략은 주로 이중 EMA 지표에 기반하여 구현된다. 먼저 빠른 라인 EMA와 느린 라인 EMA를 계산한다. 빠른 라인 EMA 주기는 짧고, 가격 변화를 sensitively 반영할 수 있다. 느린 라인 EMA 주기는 길고, 장기적인 추세를 반영한다. 빠른 라인이 아래에서 느린 라인을 통과할 때 금색 포크 신호를 발생시키면, 단기 가격 상승 동력이 강하다는 것을 의미하며, 더 많이 살 수 있다. 빠른 라인이 위에서 느린 라인을 통과할 때 사형 포크 신호를 발생시키면, 단기 가격 하락 동력이 강하다는 것을 의미하며, 평정해야 한다.

이 전략은 다음과 같은 단계로 구성됩니다.

  1. SMA 주기의 길이나 데이터 소스 등과 같은 빠른 EMA와 느린 EMA의 파라미터를 입력합니다.

  2. 빠른 라인 EMA와 느린 라인 EMA 계산

  3. 골드포크 시계를 정의한다: 빠른 선은 아래에서 느린 선을 통과한다

  4. 데드포크 시기를 정의한다: 빠른 선은 위에서 아래로 느린 선을 통과한다.

  5. 골드 포크에 있을 때 더 많이 사세요.

  6. “죽을 때 을 치”

  7. 선택적으로 공백을 허용하고 스톱 스톱 전략을 사용할 수 있습니다.

  8. 구매 및 판매 소식 통보를 내보내기

이 간단한 이중 EMA 교차 전략으로, 간략하게 가격의 단기 경향을 포착하여 수익을 창출할 수 있다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 전략은 간단하고 명확하며, 이해하기 쉽고, 익힐 수 있습니다.

  2. 두 개의 EMA 지표만 필요해서 편리하게 구현할 수 있습니다.

  3. 가격의 단기 경향을 순차적으로 잡을 수 있고, 변동성 수익을 얻을 수 있다.

  4. 사용자 정의 EMA 사이클, 다른 사이클의 시장 환경에 적응하는 유연함

  5. 공백이 허용되는지 선택 가능하고, 리스크를 조절하는 전략이 유연하다.

  6. 거래 위험을 통제하기 위해 스톱로스 스톱 전략을 사용하거나 사용하지 않는 것을 선택할 수 있습니다.

  7. 구매 및 매매 알림을 내보낼 수 있습니다.

  8. 전략은 쉽게 최적화할 수 있고, EMA 파라미터를 유연하게 설정하여 수익 공간을 최적화할 수 있다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 이중 EMA 전략은 잘못된 신호를 발생시키며 불필요한 손실을 초래할 수 있다.

  2. 부당한 스톱포인트 설정으로 손실을 확대할 수 있다.

  3. 거래 빈도가 너무 높아서 거래 비용과 점유율이 높아질 수 있습니다.

  4. 고정 EMA 파라미터는 시장 변화에 적응할 수 없습니다.

  5. : : : : :

  6. “그때부터, 우리는 트렌드 전환을 예측할 수 없었고, 오히려 역전할 수도 있었다”.

대응 위험 관리 조치:

  1. 가짜 신호의 가능성을 낮추기 위해 EMA 매개 변수를 최적화한다.

  2. 단편적 손실을 통제하기 위한 합리적인 스톱포인트 설정

  3. EMA 사이클을 최적화하고 거래 빈도를 낮추는 것.

  4. 다른 시장 단계에 따라 EMA 파라미터를 동적으로 조정할 수 있다.

  5. 트렌드를 판단하는 지표를 늘리고, 추락을 막는 것을 피한다.

  6. 트렌드를 판단하는 지표와 결합하여 큰 트렌드 방향을 결정한다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.

  1. 동적으로 최적화 EMA 매개 변수, 다른 시장 단계에 따라 다른 EMA 주기 조합을 사용, 매개 변수 중개 효과를 최적화

  2. 주식 선택 조건을 늘리고, 특정 조건을 충족하는 주식을 전략적으로 거래하여 성공률을 높여줍니다.

  3. 변동률 지표와 결합하여 낮은 변동성 단계에서 포지션 회피 위험을 줄입니다.

  4. 합성 교량 지표로, 높은 양으로 트렌드를 확인할 수 있을 때만 신호를 생성한다.

  5. 예를 들어, 20 일선을 돌파하고 EMA 전략 거래를 수행하는 가격 조건을 설정합니다.

  6. 스톱로스 전략을 최적화하고 스톱 조건을 설정하여 수익을 잠금합니다.

  7. 대차적 추세에 대한 판단을 높여 역기점을 피하십시오.

  8. 딥러닝 알고리즘과 다양한 기계 학습 알고리즘을 결합하여 지속적인 최적화 전략.

요약하다

요약하자면, 이 쌍 EMA 금 포크 사포 전략의 전체 아이디어는 간단하고 명확하며, 이해하기 쉽고 구현할 수 있으며, 가격 변동에서 수익을 얻을 수 있지만, 약간의 수익 위험도 있습니다. 우리는 변수 최적화, 손해 막기, 주식 필터, 대규모 트렌드 판단 등의 방법을 통해 위험을 제어 할 수 있으며, 안정적으로 만족스러운 수익을 얻을 수 있습니다. 이 전략은 지속적으로 최적화 할 수 있으며, 지속적인 연구와 개선을 할 가치가 있습니다.

전략 소스 코드
/*backtest
start: 2023-09-15 00:00:00
end: 2023-10-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("EMA Strategy", shorttitle="EMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


// === Inputs ===
// short ma
maFastSource = input(defval=close, title="Fast MA Source")
maFastLength = input(defval=3, title="Fast MA Period", minval=1)

// long ma
maSlowSource = input(defval=close, title="Slow MA Source")
maSlowLength = input(defval=9, title="Slow MA Period", minval=1)

// invert trade direction
shorting = input(defval=false, title="Allow Shorting?")
// risk management
useStop = input(defval=false, title="Use Initial Stop Loss?")
slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1)
useTS = input(defval=false, title="Use Trailing Stop?")
tslPoints = input(defval=120, title="Trail Points", minval=1)
useTSO = input(defval=false, title="Use Offset For Trailing Stop?")
tslOffset = input(defval=20, title="Trail Offset Points", minval=1)

// Messages for buy and sell
message_buy  = input("Buy message", title="Buy Alert Message")
message_sell   = input("Sell message", title="Sell Alert Message")

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)
 
time_cond  = true

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=color.blue)
plot(slowMA, color=color.purple)

goLong() =>
    crossover(fastMA, slowMA)
killLong() =>
    crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_buy)
strategy.close("Buy", when=killLong() and time_cond, alert_message = message_sell)

// Shorting if using
if shorting
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_sell)
    strategy.close("Sell", when=goLong() and time_cond, alert_message = message_buy)

if useStop
    strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08)
    strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08)