Système de trading à niveau de support dynamique à double intervalle de temps

SMA EMA
Date de création: 2024-12-05 16:44:56 Dernière modification: 2024-12-05 16:44:56
Copier: 0 Nombre de clics: 366
1
Suivre
1617
Abonnés

Système de trading à niveau de support dynamique à double intervalle de temps

Aperçu

La stratégie est un système de négociation de positions de support dynamique basé sur deux périodes de temps, qui se négocie en combinant les signaux croisés des courbes SMA et EMA sur les périodes de jour et de nuit. Le système utilise les supports formés entre les courbes pour identifier les tendances du marché et les opportunités de négociation, et améliore l’exactitude des transactions en confirmant les signaux de deux périodes de temps différentes. La stratégie utilise une méthode de gestion de position en pourcentage et prend en compte les coûts de négociation et les facteurs de dérapage.

Principe de stratégie

Le principe central de la stratégie est de déterminer les signaux de transaction en surveillant la relation entre la croix et la position de la ligne moyenne sur deux périodes de temps:

  1. La courte période (la ligne du jour) utilise le SMA de 50 jours et l’EMA de 51 jours
  2. Pendant les longues périodes, les EMA produisent un signal de plus en plus fort lorsqu’elles traversent la SMA vers le haut et un signal de plus en plus fort lorsqu’elles traversent la SMA vers le bas.
  3. Dans les courts cycles, un signal de multiplication est généré lorsque l’EMA traverse le SMA vers le haut et que l’EMA court-cycle est au-dessus de l’EMA long-cycle
  4. Lorsque des signaux négatifs de courte période ou des périodes longues sont croisées vers le bas, le système élimine tous les polynômes
  5. La stratégie fonctionne dans la plage de temps spécifiée, au-delà de la plage automatique

Avantages stratégiques

  1. Mécanisme de confirmation multiple: confirmation du signal sur deux périodes de temps, réduisant ainsi l’impact des faux signaux
  2. Les bandes de support dynamiques: les bandes de support formées entre les lignes de support permettent une adaptation dynamique aux changements du marché
  3. Gestion des risques: prise en compte des coûts de transaction et des points de glissement, gestion des positions en pourcentage
  4. Adaptation: les bandes de support s’adaptent automatiquement aux fluctuations du marché
  5. Règles d’opération claires: conditions d’entrée et de sortie claires, faciles à exécuter et à réévaluer

Risque stratégique

  1. Risque de choc: Faux signaux peuvent être fréquents dans les marchés à choc horizontal
  2. Risque de retard: l’indicateur de la ligne moyenne est lui-même retardé et peut manquer le meilleur point d’entrée
  3. Sensitivité des paramètres: le choix d’une période moyenne a un impact plus important sur la performance de la stratégie
  4. Dépendance aux conditions du marché: la stratégie est plus performante dans les marchés tendanciels, mais peut être moins performante dans les marchés très volatils
  5. Risques de gestion de fonds: les positions en pourcentage fixe peuvent être trop risquées dans certaines conditions

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de volatilité: envisagez d’ajouter des indicateurs de volatilité tels que l’ATR pour ajuster dynamiquement la taille de la position
  2. Optimisation des paramètres: les performances du système peuvent être optimisées en remontant les paramètres de la ligne moyenne pour différentes périodes de temps
  3. Augmenter le filtrage des conditions de marché: ajouter des indicateurs de force de tendance pour filtrer les conditions de marché inappropriées
  4. Amélioration des mécanismes de stop-loss: envisagez d’ajouter des stop-loss mobiles ou fixes pour mieux contrôler les risques
  5. Optimisation de la gestion des positions: la taille des positions peut être ajustée dynamiquement en fonction de l’intensité des signaux et des fluctuations du marché

Résumer

La stratégie construit un système de trading relativement stable en combinant des signaux de croisement homogène de différentes périodes de temps. La stratégie est conçue en tenant compte de divers facteurs dans la négociation réelle, y compris les coûts de négociation, les points de glissement et la gestion du temps. Bien qu’il existe des risques inhérents, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées en fournissant des directions d’optimisation.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bull Market Support Band", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)

start_date = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")

lsmaLength = input.int(20, title="Long SMA Length", minval=1)
lemaLength = input.int(21, title="Long EMA Length", minval=1)
customLongTimeframe = input.timeframe("W", title="Long Timeframe")  // Khung thời gian dài
ssmaLength = input.int(50, title="Short SMA Length", minval=1)
semaLength = input.int(51, title="Short EMA Length", minval=1)
customShortTimeframe = input.timeframe("D", title="Short Timeframe")  // Khung thời gian ngắn

source = close

// Tính toán SMA và EMA cho khung thời gian dài
smaLong = ta.sma(source, lsmaLength)
emaLong = ta.ema(source, lemaLength)
outSmaLong = request.security(syminfo.tickerid, customLongTimeframe, smaLong)
outEmaLong = request.security(syminfo.tickerid, customLongTimeframe, emaLong)

// Tính toán SMA và EMA cho khung thời gian ngắn
smaShort = ta.sma(source, ssmaLength)
emaShort = ta.ema(source, semaLength)
outSmaShort = request.security(syminfo.tickerid, customShortTimeframe, smaShort)
outEmaShort = request.security(syminfo.tickerid, customShortTimeframe, emaShort)

// Plot các chỉ báo trên biểu đồ
smaPlotLong = plot(outSmaLong, color=color.new(color.red, 0), title='20w SMA (Long)')
emaPlotLong = plot(outEmaLong, color=color.new(color.green, 0), title='21w EMA (Long)')
smaPlotShort = plot(outSmaShort, color=color.new(color.red, 0), title='20d SMA (Short)')
emaPlotShort = plot(outEmaShort, color=color.new(color.green, 0), title='21d EMA (Short)')

// Fill vùng giữa các đường SMA và EMA
fill(smaPlotLong, emaPlotLong, color=color.new(color.orange, 75), fillgaps=true)
fill(smaPlotShort, emaPlotShort, color=color.new(color.orange, 75), fillgaps=true)

// Điều kiện long và short cho khung thời gian dài
longConditionLong = ta.crossover(outEmaLong, outSmaLong)
shortConditionLong = ta.crossunder(outEmaLong, outSmaLong)

// Điều kiện long và short cho khung thời gian ngắn
longConditionShort = ta.crossover(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong)
shortConditionShort = ta.crossunder(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong) // Điều kiện short khi EMA ngắn hạn cắt xuống dưới SMA ngắn hạn và EMA ngắn hạn cao hơn EMA dài hạn

// Kiểm tra điều kiện trong khoảng thời gian được chỉ định
inDateRange = true

// Nếu khung ngắn hạn xuất hiện tín hiệu short, ưu tiên đóng tất cả các lệnh Long
if shortConditionShort and inDateRange
    strategy.close_all()

// Nếu khung dài có tín hiệu short, đóng tất cả các lệnh Long
if shortConditionLong and inDateRange
    strategy.close_all()

// Nếu khung ngắn hạn có tín hiệu long và không có tín hiệu short từ khung dài, vào lệnh Long
if longConditionShort and not shortConditionLong and not shortConditionShort and inDateRange
    strategy.entry("Long", strategy.long)

// Đóng tất cả các lệnh khi không trong khoảng thời gian được chọn
if not inDateRange
    strategy.close_all()