Stratégie de négociation à haute fréquence basée sur la ligne d'ombre

Auteur:ChaoZhang est là., Date: 2024-01-24 11h39 et 31 min
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading à haute fréquence basée sur la ligne K de 3 minutes de l'échange Coinbase. Elle calcule les lignes d'ombre supérieure et inférieure de la ligne K pour déterminer s'il existe une opportunité d'inversion à court terme. Lorsque la hausse ou la baisse du prix est relativement importante, la stratégie prendra une position opposée à la tendance, en s'attendant à un renversement à court terme.

Principe

La stratégie juge principalement s'il y a des opportunités de "surachat" ou de "survente" à court terme.

Plus la ligne d'ombre est grande, plus la confrontation entre le pouvoir d'achat et le pouvoir de vente est intense avant la fermeture de la ligne actuelle. Si la ligne d'ombre supérieure est trop grande, cela signifie que de nombreux ordres d'achat ont été vaincus par des ordres de vente avant la fermeture de la ligne K, ce qui indique que le pouvoir haussier est sur le point d'affaiblir. Si la ligne d'ombre inférieure est trop grande, cela signifie que de nombreux ordres de vente ont été absorbés par des ordres d'achat avant la fermeture de la ligne K, ce qui indique que le pouvoir baissier est sur le point d'affaiblir.

Selon cette logique, lorsque la ligne d'ombre est trop grande (c'est-à-dire lorsque le prix apparaît "suracheté" ou "survendu" à court terme), la stratégie choisit de prendre une position opposée à la tendance.

Analyse des avantages

Le plus grand avantage de cette stratégie est de tirer parti des fluctuations irrationnelles à court terme du marché pour obtenir un arbitrage inverse.

Une autre avantage est que Coinbase est une bourse avec de plus grandes fluctuations.

Analyse des risques

Le plus grand risque auquel cette stratégie est confrontée est que les fluctuations de prix à court terme peuvent ne pas avoir beaucoup de prévisibilité. La taille des lignes d'ombre supérieures et inférieures peut ne pas capturer pleinement toutes les informations sur les renversements de prix. Les émotions irrationnelles des traders peuvent également ne pas suivre de règles logiques. Il y a donc encore un certain risque de hasard dans cette stratégie.

En outre, le réglage des points de stop-loss est également essentiel. Les points de stop-loss trop lâches peuvent augmenter la perte de la stratégie. Les points de stop-loss trop stricts peuvent manquer les opportunités. Un équilibre doit être trouvé entre le rapport risque-rendement et le taux de gain.

Directions d'optimisation

Cette stratégie peut être encore optimisée dans les dimensions suivantes:

  1. Testez différentes variétés de trading, telles que les crypto-monnaies les plus volatiles
  2. Optimiser la logique de réglage des points d'arrêt des pertes, tels que l'arrêt des pertes combiné à l'ATR
  3. Ajouter des modèles d'apprentissage automatique pour juger de la probabilité d'inversion des prix
  4. Combiner des indicateurs de sentiment pour mesurer l'optimisme/pessimisme du marché
  5. Optimiser la taille des positions et les stratégies de gestion des fonds

Résumé

Dans l'ensemble, cette stratégie est une stratégie d'arbitrage statistique typique. Elle tente de tirer parti des fluctuations de prix irrationnelles à court terme pour réaliser des profits, avec une certaine logique et faisabilité.


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

//@version=3
//for coinbase, 3min logic
//This strategy trades against the short term trend. The first position can be either long or short.
//In the short term, prices fluctuate up and down on wide spread exchanges.
//And if the price moves to one side, the price tends to return to its original position momentarily.
//This strategy set stop order. Stop price is calculated with upper and lower shadows.

strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50)

fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year")
frommonth = input(12, minval = 1, maxval = 12, title = "From Month")
fromday = input(1, minval = 01, maxval = 31, title = "From day")
toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year")
tomonth = input(12, minval = 01, maxval = 12, title = "To Month")
today = input(31, minval = 01, maxval = 31, title = "To day")
end = true

length = input(3, title="period")
mag = input(1.2, title="sigma", minval=0.1, step=0.1)

up_shadow = abs(high - max(open, close))
dn_shadow = abs(low - min(open, close))

up_shadow_ma = sma(up_shadow, length) * mag
dn_shadow_ma = sma(dn_shadow, length) * mag

upper = close + dn_shadow_ma
lower = close - up_shadow_ma

plot(upper, color=red)
plot(lower, color=blue)

if strategy.position_size == 0
    strategy.entry("Long", strategy.long)

if 0 < strategy.position_size
    strategy.entry("Short", strategy.short, stop=lower, when=end)

if 0 > strategy.position_size
    strategy.entry("Long", strategy.long, stop=upper, when=end)

Plus de