다양한 기술 지표와 함께 트렌드 추적 및 정량화 전략


창간 날짜: 2024-01-22 10:40:01 마지막 수정: 2024-01-22 10:40:01
복사: 0 클릭 수: 283
1
관심
1105
관심자

多重技术指标配合的趋势追踪型量化策略

개요

이 전략은 브린밴드, 무작위 오시레이터 및 상대적 약점 지수와 같은 여러 기술 지표들을 결합하여 구매 신호와 판매 신호를 설정하여 암호화폐와 같은 자산에 대한 긴선 추적을 구현합니다. 전략 이름은 다중 인자 암호화폐 정량화 전략입니다.

전략적 원칙

전략은 먼저 브린밴드, 무작위 오시레이터, RSI와 같은 지표의 계산 매개 변수를 설정한다. 그 다음 구매 신호 조건은: 브린밴드 아래 경로, K 라인 20 아래와 D 라인 상위, RSI 30 아래로 설정한다. 이 세 가지 조건이 동시에 충족될 때, 롱깅을 한다. 일부 판매 신호는: K 라인 70 위와 이전 사이클 70 아래 (金叉死叉) 로 정의되며, RSI 오차가 존재한다. 이 두 조건이 충족될 때, 평형 상태는 50%이다.

장점 분석

이 전략은 단일 지표로 인한 잘못된 판단을 피하기 위해 시장 상태를 판단하는 여러 지표를 결합합니다. 브린밴드 판단이 낙하에 있는지, 무작위 오시일러 판단이 과열에 있는지, RSI 판단이 과oversold에 있는지. 여러 지표가 함께 작동하여 시장 하락을 효과적으로 식별하고 정확하게 수행 할 수 있습니다. 또한 전략은 RSI 이탈을 사용하여 잠재적인 트렌드 반전을 판단하고 지연 손실을 방지합니다. 따라서이 전략은 높은 매매의 기회를 더 잘 파악 할 수 있습니다.

위험 분석

이 전략은 매개 변수 최적화에 의존하며, 매개 변수 설정이 잘못되면 낮은 절정과 높은 절정도 제대로 식별할 수 없다. 또한 지표들 사이에 잘못된 조합이 있을 수 있다. 예를 들어, 브린드밴드 오버락을 식별하지만 다른 지표들이 해당 조건을 충족하지 못하는 경우도 있다. 이 모든 상황은 불필요한 손실을 초래할 수 있다. 마지막으로, 전략은 최대 회수와 포지션 관리 문제를 고려하지 않으며, 이는 최적화가 필요한 방향이기도 하다.

최적화 방향

  1. 지표 변수를 테스트하고 최적화하여 최적의 변수 조합을 찾습니다.

  2. 최대 회수 통제를 높이고, 한계값에 도달하면 거래를 중지합니다.

  3. 포지션 관리 모듈을 추가하여 시장 상황에 따라 포지션을 동적으로 조정합니다. 초기 포지션은 작고 나중에 포지션을 증가시킬 수 있습니다.

  4. 마켓 방향이 잘못 판단될 때 합리적인 마켓 지점을 설정하여 단 한 번의 손실을 통제하십시오.

요약

이 전략은 전반적으로 명확하고, 여러 지표에 의해 판단되며, 낮은 계곡의 높이를 포착하는 능력이 강하다. 그러나 일부 매개 변수와 모듈에는 최적화 할 여지가 있으며, 적절히 조정되면 안정적인 수익을 얻을 수 있는 정량화 전략이 될 수 있다.

전략 소스 코드
                
                    /*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stratégie d'Entrée et de Sortie Longue", overlay=true)

// Paramètres des indicateurs
longueurBollinger = 20
stdDevBollinger = 2
longueurStochastic = 14
smoothK = 3
smoothD = 3
longueurRSI = 14

// Bollinger Bands
basis = ta.sma(close, longueurBollinger)
dev = ta.stdev(close, longueurBollinger)
lowerBand = basis - stdDevBollinger * dev

// Stochastic Oscillator
k = ta.sma(ta.stoch(close, high, low, longueurStochastic), smoothK)
d = ta.sma(k, smoothD)

// RSI
rsi = ta.rsi(close, longueurRSI)

// Logique des autres indicateurs (à compléter)

// Conditions d'entrée (à définir)
conditionBollinger = close < lowerBand
conditionStochastic = k < 20 and k > d
conditionRSI = rsi < 30
// Autres conditions (Braid Filter, VolumeBIS, Price Density...)

conditionEntree = conditionBollinger and conditionStochastic and conditionRSI // et autres conditions

// Exécution du trade (entrée)
if (conditionEntree)
    strategy.entry("Long Position", strategy.long)

// Conditions de sortie
stochCrossOver70 = k > 70 and k[1] <= 70

// Simplification de la détection de divergence baissière
// (Cette méthode est basique et devrait être raffinée pour une analyse précise)
highsRising = high > high[1]
lowsRising = low > low[1]
rsiFalling = rsi < rsi[1]
divergenceBearish = highsRising and lowsRising and rsiFalling

// Clôturer la moitié de la position
if (stochCrossOver70 and divergenceBearish)
    strategy.close("Long Position", qty_percent = 50)

                
            
더 많은 내용