
La stratégie est centrée sur la combinaison des concepts traditionnels d’analyse technique et des méthodes modernes de quantification, permettant d’identifier les points de retournement potentiels du marché en analysant le comportement des prix en continu, permettant ainsi d’entrer sur le marché au début des retournements de prix. Le système intègre des fonctionnalités de stop loss et de stop stop stop automatiques pour contrôler les risques et bloquer les bénéfices, tout en fournissant un affichage intuitif des signaux de transaction via des indicateurs visuels tels que les changements de couleur des étiquettes et des graphiques.
Le principe central de cette stratégie est basé sur deux indicateurs techniques principaux: le mode Magic-9⁄13 et le point de retournement de direction (DRP).
Reconnaissance du mode Magic-9⁄13:
Le calcul du point de retournement de direction (DRP):
Signal de transaction généré:
Le mécanisme de gestion des risques:
Fonctions auxiliaires:
Identification précoce du retournement de marché: grâce à la combinaison du mode Magic-9⁄13 et des points de retournement de direction, il est possible de capturer les signaux au début d’un retournement de marché, offrant ainsi un meilleur moment d’entrée.
Mécanisme de confirmation multiple: la stratégie exige que deux conditions indépendantes soient remplies simultanément ((le mode Magic et la direction inverse traversant le point de basculement), ce qui réduit la probabilité de faux signaux et améliore la qualité des transactions.
Contrôle automatisé des risquesLa fonction Stop Loss et Stop Stop est intégrée, ce qui permet de contrôler le risque d’une transaction sans intervention manuelle et d’éviter les décisions de trading émotionnelles.
Signaux de négociation visuelsLes signaux de négociation sont visuellement affichés par les étiquettes et les changements de couleur des graphiques, ce qui permet aux traders d’identifier rapidement les opportunités de négociation potentielles.
Ajustabilité des paramètres: La stratégie offre des options d’ajustement de deux paramètres clés, la longueur et la longueur de rétrocession, permettant aux traders d’optimiser en fonction des différentes conditions du marché et des variétés de transactions.
La robustesse du traitement des données: contient un mécanisme de traitement des valeurs NA, ce qui améliore la stabilité de la stratégie dans diverses conditions de données.
Adaptabilité cyclique: La stratégie peut être appliquée à des graphiques de différentes périodes de temps, allant de graphiques de minutes à des graphiques de jour, offrant une sélection de cadres de temps de négociation flexibles.
Paramètre SensibilitéLa performance de la stratégie dépend fortement des paramètres de longueur et de longueur de rétrocession, différents environnements de marché peuvent nécessiter différentes combinaisons de paramètres, les paramètres incorrects peuvent entraîner des transactions excessives ou des opportunités de transactions manquées. La solution: effectuer un retour d’expérience complet et créer une matrice d’optimisation des paramètres pour différentes conditions de marché.
Risque de fluctuation du marché: dans les marchés à forte volatilité, le paramètre de stop loss fixé à 10 points peut être trop petit, ce qui entraîne un déclenchement fréquent; dans les marchés à faible volatilité, ce paramètre peut être trop grand. Solution: le paramètre de stop loss est basé sur une valeur dynamique de la volatilité du marché (comme l’ATR) et non sur un nombre de points fixes.
Les tendances du marchéLa stratégie est principalement axée sur la conception des points de retournement, qui peuvent générer des signaux erronés fréquents dans les marchés en forte tendance. La solution: Ajouter un filtre de tendance, qui déclenche un signal de transaction uniquement lorsqu’il est confirmé que le marché n’est pas en forte tendance.
Les points de glissement et les risques de liquidité: Dans les marchés moins liquides, le prix d’exécution peut être significativement différent du prix de signal. Solution: augmenter les conditions de filtrage de la liquidité ou prendre en compte les facteurs de glissement lors de l’exécution des ordres.
Le risque d’une suradaptation: la stratégie utilise plusieurs conditions et paramètres, il peut y avoir un risque de sur-adaptation des données historiques. Solution: la robustesse de la stratégie est vérifiée à l’aide de tests hors échantillon et de tests avant.
Accumulation de signaux en continu: Dans certaines conditions de marché, il est possible de générer plusieurs signaux dans la même direction en continu, ce qui entraîne une position excessive. Solution: Mettre en place un mécanisme de filtrage des signaux, limitant le nombre de signaux dans la même direction exécutés dans un court laps de temps.
Limite de stop-loss fixeLa solution: mettre en place un mécanisme d’arrêt-arrêt dynamique basé sur les fluctuations du marché, ou adopter une stratégie de suivi des pertes.
Ajustement des paramètres dynamiques:
Ajouter un filtre de tendance:
Optimiser le mécanisme de stop loss et de take profit:
Augmenter le filtrage du volume des transactions:
Filtrage de temps réalisé:
Ajout de fonctionnalités de gestion de position:
Mise en œuvre de la notation d’intensité du signal:
Augmentation de la reconnaissance des marchés concernés:
La stratégie d’identification des points de retournement multicycliques et de négociation automatique est un système de négociation quantifié basé sur un portefeuille d’indicateurs techniques, combiné à une analyse des points de retournement directionnels par la reconnaissance du modèle Magic-9⁄13, pour capturer les opportunités de retournement potentiels du marché. Le principal avantage de cette stratégie réside dans son mécanisme de confirmation multiple et ses fonctions de gestion du risque intégrées, qui permettent de fournir des signaux de négociation relativement fiables au début des retournements du marché, tout en contrôlant les risques grâce à l’automatisation des arrêts de perte.
Cependant, la stratégie est également confrontée à des limitations telles que la sensibilité des paramètres, l’adaptabilité à l’environnement du marché et les arrêts de perte fixes. Des mesures d’optimisation telles que la mise en œuvre d’ajustements de paramètres dynamiques, l’ajout de filtres de tendance, l’optimisation du mécanisme d’arrêt de perte et l’augmentation de la confirmation du volume des transactions peuvent considérablement améliorer l’adaptabilité et la stabilité des performances de la stratégie.
Pour les traders, la stratégie fournit un cadre pour capturer systématiquement les points de retournement du marché, mais nécessite toujours un ajustement et une optimisation raisonnables des paramètres en combinaison avec les préférences de risque personnelles et la compréhension du marché. Dans le processus de mise en œuvre, il est recommandé d’effectuer d’abord des tests approfondis dans un environnement simulé pour comprendre les caractéristiques de performance de la stratégie dans différents environnements de marché, puis d’appliquer progressivement la stratégie aux transactions en temps réel.
/*backtest
start: 2025-06-05 00:00:00
end: 2025-06-05 15:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy('L3 Magic-9/13 Strategy', overlay=true, max_bars_back=4000, max_labels_count=500)
// 输入参数
length_input = input.int(title='Length', defval=9, minval=1)
lookback_length = input.int(title='Lookback Length', defval=4, minval=1)
// 获取第一个非 NA 值的函数
get_first_non_na_value(values, length) =>
result = float(na)
if length >= 1
for i = 0 to length - 1
if na(result) or not na(values[i])
result := values[i]
result
// 计算连续条件出现次数的函数
count_consecutive_occurrences(condition, length) =>
count = 0
for i = 1 to length
if condition[i - 1]
count += 1
count
// 检查条件是否在给定周期内出现的函数
check_condition_occurrence(condition, length) =>
occurrence = count_consecutive_occurrences(condition, length) != 0 ? 1 : 0
occurrence
// 基于回溯周期过滤出现次数的函数
filter_occurrences(condition, lookback_period) =>
output = 0.0
temp = 0
for i = lookback_period to 0
if temp > 0
output := 0.0
temp := temp[1] - 1
else
if not condition[i]
output := 0.0
else
output := 1.0
temp := lookback_period + 1
output_bool = output == 1 ? true : false
output_bool
// Magic-9/13 逻辑
high_9 = count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 10) == 9
low_9 = count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 10) == 9
// 计算方向反转点
up_count = 0
down_count = 0
for i = 0 to length_input - 1
up_count += (nz(close[i]) > nz(close[i + lookback_length]) ? 1 : 0)
down_count += (nz(close[i]) < nz(close[i + lookback_length]) ? 1 : 0)
directional_reversal_point = down_count == length_input ? 1 : up_count == length_input ? -1 : 0
// 定义交易信号
buy_signal = check_condition_occurrence(low_9, 2) and ta.crossover(directional_reversal_point, 0)
sell_signal = check_condition_occurrence(high_9, 2) and ta.crossunder(directional_reversal_point, 0)
// 执行交易
if (buy_signal)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", "Buy", limit=close + 10 * syminfo.pointvalue, stop=close - 10 * syminfo.pointvalue)
if (sell_signal)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", "Sell", limit=close - 10 * syminfo.pointvalue, stop=close + 10 * syminfo.pointvalue)
// 绘制标签
labels = buy_signal ? label.new(bar_index, low, 'B', color=color.new(color.red, 40), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : sell_signal ? label.new(bar_index, high, 'S', color=color.new(color.lime, 40), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : na
// 绘制蜡烛图颜色
signal = directional_reversal_point > 0 or up_count > down_count ? 1 : directional_reversal_point < 0 or down_count > up_count ? -1 : 0
drp_color = signal > 0 ? color.green : signal < 0 ? color.red : color.black
barcolor(drp_color)