Stratégie d'entrée et de sortie du canal de prix Momentum


Date de création: 2023-12-06 16:44:32 Dernière modification: 2023-12-06 16:44:32
Copier: 1 Nombre de clics: 611
1
Suivre
1619
Abonnés

Stratégie d’entrée et de sortie du canal de prix Momentum

Aperçu

La stratégie est basée sur l’indicateur de la chaîne de prix, qui définit des paramètres de dynamique pour former une ligne médiane de la chaîne de prix en calculant la moyenne des prix les plus élevés et les plus bas des différents cycles, en utilisant comme référence la ligne longue et la ligne courte. Lorsque le prix franchit la ligne longue, faites plus; lorsque le prix franchit la ligne courte, faites moins.

Principe de stratégie

La stratégie utilise l’indicateur de la chaîne de prix pour calculer la moyenne des prix les plus élevés et les plus bas de différentes périodes, formant ainsi la ligne médiane de la chaîne de prix. La ligne médiane est utilisée comme base de référence, la ligne longue et la ligne courte étant définie par des paramètres de déplacement.

Lorsque le prix est inférieur à la ligne longue, utilisez un billet à prix limité pour ouvrir plusieurs offres; lorsque le prix est supérieur à la ligne courte, utilisez un billet à prix limité pour ouvrir plusieurs offres. La méthode d’arrêt des billets à prix limité est de revenir à la ligne médiane du canal.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’utilisation d’indicateurs de canaux de prix permet de capturer efficacement les tendances de prix et les points de résistance de soutien critique.
  2. L’utilisation d’un breakout record pour ouvrir une position peut réduire les pertes causées par une fausse rupture.
  3. La méthode de stop loss est directement basée sur la ligne médiane du canal de prix pour éviter les pertes excessives causées par la poursuite des stop loss.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Les paramètres de la chaîne de prix sont mal configurés, ce qui peut entraîner une absence de tendance positive ou une surabondance de fausses ruptures.
  2. Le coût de l’ouverture d’un entrepôt est plus élevé que celui d’un débarquement.
  3. Les prix ont baissé rapidement, mais les pertes n’ont pas pu être arrêtées à temps.

Il est possible d’atténuer ces risques en optimisant les paramètres, en définissant des ordres de stop-loss, ou en combinant les jugements d’autres indicateurs.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimiser les paramètres de la chaîne de prix pour trouver la meilleure combinaison.
  2. Essayez différentes manières d’ouvrir une position, comme la forme de la ligne K, les signaux d’indicateur de déficit, etc.
  3. Il a ajouté des paramètres de stop-loss pour empêcher les pertes causées par une reprise rapide des cours.
  4. Le volume des transactions, la volatilité et d’autres indicateurs permettent d’éviter une fausse rupture sur le marché des actions.

Résumer

Cette stratégie est basée sur une conception claire des indicateurs de la chaîne de prix. L’ouverture de position de rupture permet de contrôler efficacement le risque. Cependant, il existe également un grand espace d’optimisation des paramètres et un mécanisme d’arrêt des pertes qui doit être amélioré.

Code source de la stratégie
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's PCMA Strategy v1.0", shorttitle = "PCMA 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, title = "Length")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Price Channel
h = highest(high, per)
l = lowest(low, per)
c = (h + l) / 2
ll = c + ((c / 100) * longlevel)
sl = c + ((c / 100) * shortlevel)

//Lines
shortcolor = needshort ? red : na
longcolor = needlong ? lime : na
plot(sl, linewidth = 2, color = shortcolor, title = "Short line")
plot(c, linewidth = 2, color = blue, title = "SMA line")
plot(ll, linewidth = 2, color = longcolor, title = "Long line")

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[per])) and size == 0 and needlong
    strategy.entry("L", strategy.long, lot, limit = ll, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size == 0 and needshort
    strategy.entry("S", strategy.short, lot, limit = sl, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size > 0 
    strategy.entry("Close", strategy.short, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if (not na(close[per])) and size < 0 
    strategy.entry("Close", strategy.long, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()