Gem Forest 1분 스칼핑 전략

저자:차오장, 날짜: 2024-02-19 10:45:18
태그:

img

전반적인 설명

Gem Forest One Minute Scalping 전략은 단기 거래를 위한 양적 거래 전략이다. 1분 시간 내에 시장 변동 특성을 식별하고 초단형 스칼핑을 위한 긴 포지션과 짧은 포지션 사이를 전환하기 위해 여러 지표를 결합한다.

전략 논리

  1. ATR 지표는 가격 변동 범위를 결정하기 위해 상위 및 하위 대역을 만듭니다.
  2. 빠르고 느린 EMA 크로스오버는 거래 신호를 생성합니다.
  3. 듀얼 RSI 지표가 크로스오버 신호를 확인합니다.
  4. 진입점과 출구점은 지표 신호와 가격 수준을 결합하여 결정됩니다.

가격이 하위 밴드 아래에 있을 때, 빠르고 느린 EMA 황금 교차가 발생하고, 빠른 RSI가 느린 RSI를 넘을 때, 구매 신호가 생성됩니다. 가격이 상위 밴드 위에 있을 때, 빠르고 느린 EMA 죽은 교차가 발생하고, 빠른 RSI가 느린 RSI를 넘을 때, 판매 신호가 생성됩니다. 진입 후, 스톱 로스와 영업이 종료됩니다.

이점 분석

  1. 여러 지표가 결합되면 신뢰성이 향상됩니다.
  2. 높은 운영 빈도는 더 큰 수익 잠재력을 제공합니다.
  3. 더 적은 수요, 더 나은 안정성
  4. 1분 또는 그보다 짧은 시간 내에 극단 스칼핑을 할 수 있습니다

위험 분석

  1. 높은 주파수 때문에 네트워크와 하드웨어에 대한 더 높은 요구 사항
  2. 과잉 거래 및 자본 분산 위험
  3. 잘못된 지표 구성으로 인한 잘못된 신호
  4. 적지 않은 시장 조건에서 손실을 막는 취약성

이러한 위험은 매개 변수를 최적화하고, 스톱을 조정하고, 최대 일일 거래를 제한하고, 적절한 제품을 선택함으로써 관리 될 수 있습니다.

최적화 방향

  1. 다른 ATR 기간의 시험 영향
  2. 다른 EMA 유형을 시도하거나 하나의 EMA를 교체하십시오.
  3. RSI 기간을 조정하거나 KDJ, 스토카스틱 등과 같은 다른 오시레이터를 테스트하십시오.
  4. 트렌드 같은 더 많은 요소로 입력 논리를 개선
  5. 더 나은 리스크/상금 비율을 위해 정지를 최적화하십시오.

결론

이 전략은 극단 양적 거래의 특성을 완전히 고려합니다. 합리적인 지표 설정, 여러 확인 및 조합은 높은 신뢰성을 보장합니다. 엄격한 위험 통제와 함께 상당한 수익 잠재력을 가지고 있으며 충분한 컴퓨팅 능력과 심리적 품질을 가진 투자자에게 적합합니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Gem Forest 1 Dakika Scalp", overlay=true)

source = close
atrlen = input.int(14, "ATR Period")
mult = input.float(1, "ATR Multi", step=0.1)
smoothing = input.string(title="ATR Smoothing", defval="WMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlen) => 
    if smoothing == "RMA"
        ta.rma(source, atrlen)
    else
        if smoothing == "SMA"
            ta.sma(source, atrlen)
        else
            if smoothing == "EMA"
                ta.ema(source, atrlen)
            else
                ta.wma(source, atrlen)

atr_slen = ma_function(ta.tr(true), atrlen)
upper_band = atr_slen * mult + close
lower_band = close - atr_slen * mult

ShortEMAlen = input.int(21, "Fast EMA")
LongEMAlen = input.int(65, "Slow EMA")
shortSMA = ta.ema(close, ShortEMAlen)
longSMA = ta.ema(close, LongEMAlen)
RSILen1 = input.int(25, "Fast RSI Length")
RSILen2 = input.int(100, "Slow RSI Length")
rsi1 = ta.rsi(close, RSILen1)
rsi2 = ta.rsi(close, RSILen2)
atr = ta.atr(atrlen)

RSILong = rsi1 > rsi2
RSIShort = rsi1 < rsi2

longCondition = open < lower_band
shortCondition = open > upper_band
GoldenLong = ta.crossover(shortSMA,longSMA)
Goldenshort = ta.crossover(longSMA,shortSMA)

plotshape(shortCondition, title="Sell Label", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
plotshape(longCondition, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(Goldenshort, title="Golden Sell Label", text="Golden Crossover Short", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.blue, textcolor=color.white, transp=0)
plotshape(GoldenLong, title="Golden Buy Label", text="Golden Crossover Long", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.yellow, textcolor=color.white, transp=0)

if (longCondition)
    stopLoss = low - atr * 2
    takeProfit = high + atr * 5
    strategy.entry("long", strategy.long, when = RSILong)

if (shortCondition)
    stopLoss = high + atr * 2
    takeProfit = low - atr * 5
    strategy.entry("short", strategy.short, when = RSIShort)

plot(upper_band)
plot(lower_band)
plot(shortSMA, color = color.red)
plot(longSMA, color = color.yellow)


더 많은