리소스 로딩... 로딩...

KRK ADA 1H 더 많은 엔트리와 AI로 스토카스틱 느린 전략

저자:차오장, 날짜: 2024-04-12 16:26:06
태그:EMARSITPSL알리RNN

img

전반적인 설명

이 전략은 스토카스틱 슬로우 오시레이터 (Stochastic Slow Oscillator) 를 기반으로 움직이는 평균, 상대적 강도 지수 (RSI) 및 인공 지능 (AI) 기술과 결합한 거래 전략이다. 이 전략은 스토카스틱 슬로우 오시레이터의 크로스오버 신호를 분석하여 가격의 위치를 200일 이동 평균에 상대적으로 고려하고 AI 모델에 의해 생성된 신호를 통합하여 구매 및 판매 신호를 결정합니다. 이 전략은 또한 위험을 관리하기 위해 수익을 취하고 손실을 멈추는 수준을 설정합니다.

전략 원칙

  1. 30의 기간으로 스토카스틱 느린 오시레이터를 계산합니다. 여기서 K 값의 평형 기간은 18이고 D 값의 평형 기간은 7입니다.
  2. 과잉 매입 및 과잉 판매의 기준값은 각각 40과 19로 결정하고 최소 K값은 12로 설정합니다.
  3. 트렌드 필터로 200일 간편 이동평균을 계산합니다.
  4. 구매 및 판매 신호를 생성하기 위해 반복 신경 네트워크 (RNN) 모델을 사용합니다.
  5. 긴 진입 조건: 가격은 200일 이동 평균을 넘고, K 값은 과반 판매 한계 이하이고 최소 K 값은 1이고, AI 신호는 1입니다.
  6. 단기 엔트리 조건: 가격은 200일 이동 평균 아래로 넘어가고, K 값은 과잉 매수 임계치와 최소 K 값 이상이며 AI 신호는 -1입니다.
  7. 구매 및 판매 신호는 스토카스틱 오시레이터가 크로스오버를 표시하고 과잉 구매 또는 과잉 판매 조건을 충족할 때 생성됩니다.
  8. 현재 가격보다 500포인트 높거나 낮거나, 현재 가격보다 200포인트 높거나 낮거나 로 스톱 로스 레벨을 설정합니다.

전략적 장점

  1. 여러 기술 지표와 인공지능 기술을 결합하여 전략의 안정성과 적응력을 향상시킵니다.
  2. 주력 구매 및 판매 신호로 스토카스틱 느린 오시레이터를 사용하여 과잉 구매 및 과잉 판매 시장 조건을 효과적으로 파악합니다.
  3. 트렌드 필터로 200일 이동평균을 도입하여 트렌드에 반대하는 거래를 피합니다.
  4. 구매 및 판매 신호를 생성하는 인공지능 모델을 사용하여 전략의 지능을 향상시킵니다.
  5. 리스크를 효과적으로 관리하기 위해 명확한 취익과 스톱-러스 수준을 설정합니다.

전략 위험

  1. 스토카스틱 오시레이터는 특정 시장 조건에서 잘못된 신호를 생성할 수 있습니다.
  2. 인공지능 모델의 효과는 훈련 데이터의 품질과 모델 설계에 달려 있으며 불확실성을 도입합니다.
  3. 고정된 영업이익과 스톱 로스 수준은 다른 시장 변동 조건에 잘 적응하지 못할 수 있습니다.
  4. 이 전략은 갑작스러운 시장 현상과 비정상적인 변동에 대응하는 장치가 없습니다.

전략 최적화 방향

  1. 지표의 효율성을 향상시키기 위해 K와 D 값에 대한 평형 기간 조정과 같은 스토카스틱 오시레이터의 매개 변수를 최적화하십시오.
  2. 인공지능 모델의 디자인을 개선하여 더 많은 시장 특징과 데이터를 통합하여 예측 정확도를 향상시킵니다.
  3. 시장의 변동성과 위험 수준에 적응할 수 있는 동적인 수익 및 스톱 로스 메커니즘을 구현한다.
  4. 급격한 시장 이벤트에 대응하는 전략의 능력을 향상시키기 위해 시장 정서 분석과 이벤트 주도 요소를 도입하십시오.
  5. 전략의 자본 활용 효율성과 위험 통제를 최적화하기 위해 포지션 크기와 자금 관리 모듈을 추가하는 것을 고려하십시오.

요약

이 전략은 스토카스틱 슬로우 오시일레이터, 이동 평균, 상대적 강도 지수 및 AI 기술을 결합하여 다중 요소 거래 전략을 구성합니다. 전략은 트렌드 필터와 지능적인 신호 생성 기능을 사용하여 견고성과 적응력을 향상시키는 동안 과소 구매 및 과소 판매 신호를 캡처하기 위해 스토카스틱 오시일레이터를 활용합니다. 전략에는 지표 실패 및 모델 불확실성과 같은 특정 위험이 있지만 지표 매개 변수를 최적화하고 AI 모델을 향상시키고 동적 위험 관리 조치를 구현하고 위치 사이징 및 돈 관리에 대한 추가 모듈을 통합하여 이러한 위험을 완화 할 수 있습니다.


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

//@version=5
strategy("Stochastic Slow Strategy with More Entries and AI", overlay=true)

length = input.int(30, minval=1)
OverBought = input(40)
OverSold = input(19)
smoothK = input.int(18, minval=1)
smoothD = input.int(7, minval=1)
minKValue = input(12, title="Minimum K Value")

// Stochastic calculations
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
co = ta.crossover(k, d)
cu = ta.crossunder(k, d)

// Trend filter (200-period simple moving average)
ema200 = ta.sma(close, 200)

// Define la función para calcular la señal de la red neuronal recurrente
rnn_signal(price_series) =>
    // Aquí implementa tu modelo de red neuronal recurrente para generar la señal
    // Puedes usar bibliotecas externas o implementar tu propio modelo aquí

    // Ejemplo de señal aleatoria
    signal = ta.rsi(price_series, 14) > 50 ? 1 : -1
    
    // Devuelve la señal generada por la red neuronal recurrente
    signal

// Calcula la señal utilizando la función definida anteriormente
ai_signal = rnn_signal(close)

// Entry conditions
longCondition = ta.crossover(close, ema200) and k < OverSold and k > minKValue and ai_signal == 1
shortCondition = ta.crossunder(close, ema200) and k > OverBought and k > minKValue and ai_signal == -1

if (not na(k) and not na(d))
    if (co and k < OverSold and k > minKValue)
        strategy.entry("LONG", strategy.long, comment="LONG")
        strategy.exit("ExitLong", "LONG", profit = close * 500, loss = close * 200)
    if (cu and k > OverBought and k > minKValue)
        strategy.entry("SHORT", strategy.short, comment="SHORT")
        strategy.exit("ExitShort", "SHORT", profit = close * 500, loss = close * 200)
    
if (longCondition)
    strategy.entry("LongEntry", strategy.long, comment="LongEntry")
    strategy.exit("ExitLongEntry", "LongEntry", profit = close * 500, loss = close * 200)
if (shortCondition)
    strategy.entry("ShortEntry", strategy.short, comment="ShortEntry")
    strategy.exit("ExitShortEntry", "ShortEntry", profit = close * 500, loss = close * 200)

// Plotting
plot(ema200, color=color.blue, title="200 SMA")

관련

더 많은