다차원 수학 모델 거래 전략

ROC EMA LR LPF SIG
생성 날짜: 2024-09-26 17:36:11 마지막으로 수정됨: 2024-09-26 17:36:11
복사: 0 클릭수: 857
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다차원 수학 모델 거래 전략

개요

이 전략은 다차원 수학 모델을 기반으로 한 고급 거래 전략으로, 여러 수학적 함수와 기술 지표를 사용하여 거래 신호를 생성합니다. 이 전략은 동력, 경향 및 변동성 분석을 결합하여 여러 차원의 시장 정보를 통합하여 더 포괄적인 거래 결정을 내립니다.

전략 원칙

이 전략의 핵심 원칙은 여러 수학적 모델과 기술 지표를 통해 시장의 다양한 측면을 분석하는 것입니다.

  1. 변화율 (ROC) 지표를 사용하여 가격의 동력과 방향을 계산하십시오.
  2. 선형 회귀를 적용하여 단기 가격 추세를 식별한다.
  3. 지수 이동 평균 ((EMA) 을 낮은 관통 필터로 사용하여 장기 동향을 잡는다.
  4. 시그모이드 함수를 통해 가격 변화의 변동성을 조정한다.

전략은 이러한 요소들을 종합적으로 고려하여, 동력이 긍정적일 때, 단기 추세가 상승하고, 장기 추세가 확인되고, 변동성이 적당할 때 구매 신호를 발산한다. 반대로 조건의 조합은 판매 신호를 유발한다.

전략적 이점

  1. 다차원 분석: 여러 수학적 모델과 지표를 결합하여 전략은 다양한 관점에서 시장을 분석하여 의사 결정의 포괄성과 정확성을 향상시킬 수 있습니다.
  2. 자기 적응성: 시그모이드 함수를 사용하여 변동성을 조정하여 전략이 다른 시장 조건에 적응할 수 있도록 한다.
  3. 트렌드 확인: 단기 및 장기 트렌드 분석과 결합하여 가짜 돌파의 위험을 줄이는 데 도움이됩니다.
  4. 시각화: 전략은 차트에 선형 회귀선과 낮은 관통 파동선을 그리며, 거래자가 시장의 움직임을 직관적으로 이해할 수 있도록 도와줍니다.

전략적 위험

  1. 과도한 적합성: 여러 지표를 사용하면 전략이 역사적인 데이터에서 잘 작동하지만 실제 거래에서는 좋지 않습니다.
  2. 지연성: 일부 지표인 EMA의 지연성이 발생하여 출전이나 출전 시기가 적당히 되지 않을 수 있다.
  3. 시장 조건 민감: 급격한 변동이나 추세 변동이 있는 시장에서 전략이 좋지 않을 수 있다.
  4. 매개 변수 민감성: 여러 지표의 매개 변수 설정은 전략 성능에 중대한 영향을 미칠 수 있으며, 신중하게 최적화해야 한다.

전략 최적화 방향

  1. 동적 변수 조정: 시장의 변동성에 따라 동적으로 지표 변수를 조정하여 다른 시장 환경에 적응 할 수 있습니다.
  2. 필터 추가: 가짜 신호를 줄이기 위해 거래량 분석이나 시장 폭 지표와 같은 추가 필터 조건을 도입합니다.
  3. 최적화 탈퇴 전략: 현재 전략은 주로 입시점에 초점을 맞추고 있으며, 전체적인 성능을 최적화하기 위해 더 복잡한 탈퇴 메커니즘을 개발할 수 있다.
  4. 기계 학습을 도입: 지표 무게를 최적화하거나 최고의 거래 기회를 식별하기 위해 기계 학습 알고리즘을 사용하는 것을 고려하십시오.

요약하다

다차원 수학 모델 거래 전략은 통합적이고 이론적으로 견고한 거래 방법이다. 여러 수학적 모델과 기술 지표를 결합하여 여러 관점에서 시장을 분석하고 거래 의사 결정의 정확성을 향상시킬 수 있다. 그러나 전략의 복잡성은 과도한 적합성과 변수 민감성 등의 위험을 초래한다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Advanced Math Strategy", overlay=true)

// =======================
// ฟังก์ชันที่ใช้คำนวณเบื้องหลัง
// =======================

// ฟังก์ชันซิกมอยด์
sigmoid(x) =>
    1 / (1 + math.exp(-x))

// ฟังก์ชันหาอัตราการเปลี่ยนแปลง (Derivative)
roc = ta.roc(close, 1)

// ฟังก์ชันการถดถอยเชิงเส้น (Linear Regression)
linReg = ta.linreg(close, 14, 0)

// ฟังก์ชันตัวกรองความถี่ต่ำ (Low-pass filter)
lowPass = ta.ema(close, 50)

// =======================
// การคำนวณสัญญาณ Buy/Sell
// =======================

// การคำนวณอนุพันธ์สำหรับทิศทางการเคลื่อนที่ของราคา
derivativeSignal = roc > 0 ? 1 : -1

// ใช้ Linear Regression และ Low-pass Filter เพื่อช่วยในการหาจุดกลับตัว
trendSignal = linReg > lowPass ? 1 : -1

// ใช้ฟังก์ชันซิกมอยด์เพื่อปรับความผันผวนของราคา
priceChange = close - close[1]
volatilityAdjustment = sigmoid(priceChange)

// สร้างสัญญาณ Buy/Sell โดยผสมผลจากการคำนวณเบื้องหลังทั้งหมด
buySignal = derivativeSignal == 1 and trendSignal == 1 and volatilityAdjustment > 0.5
sellSignal = derivativeSignal == -1 and trendSignal == -1 and volatilityAdjustment < 0.5

// =======================
// การสั่ง Buy/Sell บนกราฟ
// =======================

// ถ้าเกิดสัญญาณ Buy
if (buySignal)
    strategy.entry("Buy", strategy.long)

// ถ้าเกิดสัญญาณ Sell
if (sellSignal)
    strategy.close("Buy")

// =======================
// การแสดงผลบนกราฟ
// =======================

// วาดเส้นถดถอยเชิงเส้นบนกราฟ
plot(linReg, color=color.green, linewidth=2, title="Linear Regression")

// วาดตัวกรองความถี่ต่ำ (Low-pass filter)
plot(lowPass, color=color.purple, linewidth=2, title="Low-Pass Filter")

// วาดจุด Buy/Sell บนกราฟ
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")