이 전략은 서로 다른 기간의 두 이동 평균의 교차를 기반으로 거래 신호를 생성합니다.
이 전략은 사용자가 이동 평균의 종류와 길이를 선택할 수 있습니다. 유형에는 SMA, EMA, VWMA 등이 있습니다. 길이는 이동 평균의 기간을 결정합니다.
두 개의 이동 평균은 사용자의 선택에 따라 계산됩니다. 더 빠른 선이 느린 선 위에 넘어가면 황금 십자가가 형성되어 구매 신호가 생성됩니다. 더 빠른 선이 느린 선 아래에 넘어가면 죽음의 십자가가 형성되어 판매 신호가 생성됩니다.
단기 평균 가격이 장기 평균 가격보다 높으면 상승 추세로 간주되며 긴 포지션을 취해야 합니다. 단기 평균 가격이 장기 가격보다 낮으면 하락 추세로 간주되어 짧은 포지션을 취해야 합니다.
리스크는 매개 변수를 최적화하고 신호를 생성하기 위한 다른 지표를 결합하고, 스톱 로스/프로피트 취득 등을 통해 관리될 수 있습니다.
이 전략은 이중 MAs 크로스오버를 가진 신호를 생성하는 간단하고 명확한 논리를 가지고 있습니다. 유연한 매개 변수 조정 및 최적화를위한 다른 전략과 조합을 허용하지만 시장 범위의 위험을 모니터링하고 돈 관리가 중요합니다. 전반적으로 고려할 가치가있는 전략입니다.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-13 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length") type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type") src = input(close, defval = close, title = "Source") //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 plot(ma, color = blue, linewidth = 3, transp = 0) trend = low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short)