Stratégie de suivi des cases de pourcentage dynamiques


Date de création: 2023-11-23 10:32:39 Dernière modification: 2023-11-23 10:32:39
Copier: 1 Nombre de clics: 605
1
Suivre
1617
Abonnés

Stratégie de suivi des cases de pourcentage dynamiques

Aperçu

Cette stratégie utilise le pourcentage de variation du prix pour définir les lignes d’achat et de vente, pour construire des positions en fonction du prix de rupture des lignes d’achat et de vente en dessous des lignes de vente. Sa principale caractéristique est d’assumer un seul unité de risque, c’est-à-dire qu’une position précédente n’est mise en position que lorsque le profit prévu est atteint.

Principe de stratégie

La stratégie commence par définir un prix de référence, avec 10% de ce prix comme une fourchette de prix, avec une marge supérieure comme ligne de vente et une marge inférieure comme ligne de vente. Lorsque le prix franchit la ligne de vente, acheter en quantité fixe.

Un autre point clé de cette stratégie est de ne prendre que le risque d’une unité. C’est-à-dire qu’une nouvelle position n’est mise en place que lorsque la position actuelle a atteint son objectif de profit. La nouvelle position est également configurée selon les nouvelles lignes d’achat et de stop-loss. Cela limite le risque.

Analyse des avantages

Cette stratégie combine les avantages du suivi des pertes et de la gestion des stocks, permettant de contrôler efficacement le risque tout en profitant.

  1. L’utilisation d’une marge de pourcentage pour définir une ligne d’achat et une ligne de perte peut être utilisée pour suivre automatiquement la tendance
  2. Les risques sont maîtrisés à un chiffre, les pertes sont limitées.
  3. Il n’y a pas d’argent à la banque, il n’y a pas d’argent à la banque, il n’y a pas d’argent à la banque
  4. La ligne de stop-loss a été déplacée après la prise de bénéfices et les bénéfices ont été bloqués.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. La marge de pourcentage est trop grande, la ligne d’achat et la ligne d’arrêt sont trop éloignées, le risque augmente
  2. La marge de pourcentage est trop petite, les lignes d’achat et de stop sont trop proches et l’espace de profit est limité
  3. Les avantages de l’arrêt sont mal configurés et peuvent entraîner une perte prématurée.
  4. Les investissements trop radicaux pourraient accroître les pertes

Ces risques peuvent être contournés par des ajustements de paramètres, tels que la taille de la fourchette de pourcentage, la modification des conditions de mise en position, etc.

Direction d’optimisation

Il y a encore de la place pour optimiser cette stratégie:

  1. Les investisseurs peuvent établir des positions après avoir déterminé la direction de la tendance en combinant les indicateurs de tendance.
  2. Des modèles d’apprentissage automatique peuvent être ajoutés pour rendre les lignes d’achat et d’arrêt plus intelligentes
  3. Il est possible de définir différentes conditions d’hypothèque pour réduire davantage le risque.
  4. Vous pouvez tester différentes périodes de tenue pour trouver la meilleure période de tenue

Résumer

Il s’agit d’une stratégie de négociation utilisant des intervalles de pourcentage. Elle est simple, pratique et maîtrise efficacement le risque. Grâce à l’ajustement des paramètres et à l’optimisation des modèles, la stratégie peut devenir un système fiable de suivi des tendances, générant des gains supplémentaires stables pour les investisseurs.

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

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HermanBrummer 4 April 2021

strategy ("The Box Percent Strat", shorttitle="The Box", overlay = true)

///     Designed for LONG only on Daily, 2D or 3D Charts
///     Uses fixed investment risk amount, meaning you're willing to lose that amount per trade
///     Limit buy to not overpay

RiskPerTrade            = input(10000, "Risk losing this much per trade", tooltip="This calculates how much you will lose based on difference between the entry price and stop loss price")
TradeAboveMAFilterPer   = input(50, "The System won't trade if price is below this MA")

UpBoxSize               = (input(10, "Box size in %") * 0.01)+1 // 1.1 == 10% up
DnBoxSize               = 1-(input(10, "Box size in %") * 0.01) // 0.9 == 10% dn


var FirstBar            = close > 0 ? close : na
var FirstTop            = FirstBar * UpBoxSize
var FirstBot            = FirstBar * DnBoxSize


var top                 = sma(FirstTop, 1)
var bot                 = sma(FirstBot, 1)

///     The Box Calcs
if  high[2] > top
    top                 := top * UpBoxSize
    bot                 := bot * UpBoxSize
if  low[1]  < bot
    top                 := top * DnBoxSize
    bot                 := bot * DnBoxSize

 
plot(bot,   "Bot",      #ff0000) // Green
plot(top,   "Top",      #00ff00) // Red

mid                     = ((top-bot)/2)+bot 
plot(mid,   "Mid", color.gray)

TradeAboveMAFilter      = sma(close, TradeAboveMAFilterPer)
plot(TradeAboveMAFilter, "Trade AboveMAF Filter", color.yellow, 3, style=plot.style_circles)

// col = high[1] < top and high >= top ? color.white : na
// bgcolor(col)


///     Shares
RiskRange                   = close * abs(DnBoxSize - 1) // 0.9 - 1 == 1.10 // 10% abs so you don't get a neg number NB NB
Shares                      = RiskPerTrade / RiskRange 
//plot(close-RiskRange, "RiskRange", color.fuchsia)

Enter   =   high >= top
             and close[1] > TradeAboveMAFilter
             and strategy.opentrades[0] == strategy.opentrades[1]
             and strategy.opentrades[1] == strategy.opentrades[2] 
             and strategy.opentrades[2] == strategy.opentrades[3]
             and strategy.opentrades[3] == strategy.opentrades[4] 
             and strategy.opentrades[4] == strategy.opentrades[5]
             and strategy.opentrades[5] == strategy.opentrades[6]
             // won't enter if new positon was taken in the last 6 bars
             // need better code for this.

///     Buy & Sell
//  (new highs)    and  (Close above moving average filter) and (No new trades were taken receently)
if  Enter //(high >= top)  and  (close[1] > TradeAboveMAFilter) and strategy.opentrades[0] == strategy.opentrades[1] 
    strategy.order("En", strategy.long, qty=Shares, limit=top)//, stop=top)
    
//barcolor(strategy.position_size != 0 ? #00ff00 : color.gray)


// ///     If ONE Position THEN this Stop Because: 
// if  strategy.position_size == 1
//     strategy.exit("Ex", "En", stop=bot)
///     If it has more than one trad OPEN
if  strategy.position_size > 0
    strategy.exit("Ex", "En", stop=bot[2] )   // puts stop on old bot

//plot(strategy.position_avg_price, "Avg Price", color.yellow)