다양한 기술 지표를 활용한 추세 추종 양적 전략


생성 날짜: 2024-01-22 10:40:01 마지막으로 수정됨: 2024-01-22 10:40:01
복사: 0 클릭수: 553
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다양한 기술 지표를 활용한 추세 추종 양적 전략

개요

이 전략은 브린 띠, 무작위 진동기 및 상대적으로 강한 지수와 같은 여러 가지 기술 지표를 결합하여 구매 신호와 판매 신호를 설정하여 암호화폐와 같은 자산에 대한 긴 라인 추적 작업을 수행합니다. 전략 이름은 다중 인자 암호화폐 수량화 전략 () 이라고 지정되었습니다.

전략 원칙

전략은 먼저 브린띠, 무작위 진동기 및 RSI 등의 지표의 계산 파라미터를 설정한다. 그리고 구매 신호 조건을 다음과 같이 정의한다. 종식 가격은 브린띠 하향 궤도, K선은 20보다 낮고 D선보다 높고, RSI는 30보다 낮다.

우위 분석

이 전략은 여러 지표와 결합하여 시장 상태를 판단하여 단일 지표로 인한 잘못된 판단을 피한다. 브린띠 판단이 초하락, 무작위 진동기 판단이 초과, 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)