옥수수 이동 평균 균형 거래 전략

저자:차오장, 날짜: 2023-11-13 17:59:42
태그:

img

전반적인 설명

옥수수 이동 평균 균형 거래 전략은 긴 및 짧은 균형 거래를 위해 다른 기간과 이동 평균의 황금 및 죽은 크로스오버를 활용합니다. 또한 트렌드 변화를 관찰하는 데 도움이되는 촛불 색상, 배경 색상 및 모양 마커와 같은 다양한 시각 효과를 통합합니다. 이 전략은 이동 평균 이론에 익숙한 중간에서 고급 거래자에게 적합합니다.

전략 논리

이 전략은 먼저 사용자가 조정할 수 있는 두 가지 매개 변수를 정의합니다: 활성 이동 평균 기간 len1 및 기본 이동 평균 기간 len2. 활성 이동 평균은 단기 트렌드 변화를 포착하는 짧은 기간을 가지고 있으며, 기본 이동 평균은 시장 소음을 필터링하는 더 긴 기간을 가지고 있습니다. 사용자는 EMA, SMA, WMA, DEMA 및 VWMA라는 5 가지 다른 유형의 이동 평균을 자유롭게 선택할 수 있습니다. 코드는 사용자의 선택에 따라 다른 유형의 이동 평균을 계산하기 위해 IF 논리를 사용합니다.

단기 이동평균이 장기평균을 넘을 때, 긴 포지션을 개설하기 위해 황금 십자가가 생성됩니다. 죽은 십자가가 발생하면 전략은 짧은 포지션을 개설합니다. 긴 및 짧은 균형 거래는 수익 기회를 증가시킵니다. 또한 촛불 색상은 현재 트렌드 방향을 표시합니다.

모양 마커는 금색과 죽은 십자가의 위치를 시각적으로 보여줍니다. 배경 색은 트렌드 방향을 결정하는 데 도움이됩니다. 이 전략에는 장 및 짧은 균형장만 거래 모드가 모두 있습니다.

장점

  1. 더 신뢰할 수 있는 거래 신호와 여러 표시가 결합
  2. 장기 및 단기 잔액 거래로 수익 잠재력이 증가합니다
  3. 다양한 시장 환경에 적응할 수 있는 조정 가능한 이동 평균 유형 및 기간
  4. 다양한 시각적 효과로 직관적인 트렌드 스포팅
  5. 명확한 코드 구조를 이해하고 사용자 정의하기 쉽습니다

위험 과 해결책

  1. 이동평균의 잘못된 신호

    • 잘못된 신호를 줄이기 위해 다른 기간의 이동 평균 조합을 사용
    • Stop Loss 같은 다른 출구 조건을 추가합니다.
  2. 특정 기간은 전략에 더 적합 할 수 있습니다.

    • 최적의 것을 찾기 위해 다른 기간 매개 변수를 테스트
    • 기간 매개 변수를 동적이고 코드에서 조절할 수 있도록
  3. 긴 거래와 짧은 거래로 손실 위험이 증가합니다

    • 위치 크기를 올바르게 조정
    • 단지 긴 거래 모드를 선택

최적화 방향

  1. 단일 거래 손실을 제어하기 위해 스톱 손실을 추가하십시오.
  2. 시장 재진출을 위한 조건을 구축
  3. 위치 사이즈 전략을 최적화
  4. 변동성 지표와 같은 새로운 거래 신호를 탐구하십시오.
  5. 동적으로 기간 매개 변수를 최적화
  6. 다양한 이동 평균 유형 사이의 가중치를 최적화하십시오.

요약

옥수수 이동 평균 균형 거래 전략은 이동 평균 지표의 장점을 통합하고 긴 및 짧은 균형 거래를 가능하게합니다. 트렌드 스포팅 및 적응성을 위해 사용자 정의 가능한 매개 변수를위한 풍부한 시각 효과가 있습니다. 그러나 오해의 소지가있는 신호와 위치 사이징에 주의해야합니다. 이 전략은 중간에서 고급 거래자에게 사용자 정의 가능한 참조 프레임워크를 제공합니다.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MASelect Crossover Strat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
av1 = input(title="Active MA", defval="EMA", options=["EMA", "SMA", "WMA", "DEMA", "VWMA"])
av2 = input(title="Base MA", defval="EMA", options=["EMA", "SMA", "WMA", "DEMA", "VWMA"])
len1 = input(20, "Active Length")
len2 = input(100, "Base Length")
src = input(close, "Source")
strat = input(defval="Long+Short", options=["Long+Short", "Long Only"])

ema1 = ema(src, len1)
ema2 = ema(src, len2)
sma1 = sma(src, len1)
sma2 = sma(src, len2)
wma1 = wma(src, len1)
wma2 = wma(src, len2)
e1 = ema(src, len1)
e2 = ema(e1, len1)
dema1 = 2 * e1 - e2
e3 = ema(src, len2)
e4 = ema(e3, len2)
dema2 = 2 * e3 - e4
vwma1 = vwma(src, len1)
vwma2 = vwma(src, len2)

ma1 = av1 == "EMA"?ema1:av1=="SMA"?sma1:av1=="WMA"?wma1:av1=="DEMA"?dema1:av1=="VWMA"?vwma1:na
ma2 = av2 == "EMA"?ema2:av2=="SMA"?sma2:av2=="WMA"?wma2:av2=="DEMA"?dema2:av2=="VWMA"?vwma2:na

co = crossover(ma1, ma2)
cu = crossunder(ma1, ma2)
barcolor(co?lime:cu?yellow:na)
col = ma1 >= ma2?lime:red
bgcolor(co or cu?yellow:col)
plotshape(co, style=shape.triangleup, location=location.belowbar)
plotshape(cu, style=shape.triangledown)
plot(ma1, color=col, linewidth=3), plot(ma2, style=circles, linewidth=1)

strategy.entry("Buy", strategy.long, when=co)
if strat=="Long+Short"
    strategy.entry("Sell", strategy.short, when=cu)
else
    strategy.close("Buy", when=cu)

더 많은