Stratégie de stop loss suiveur avec indicateur Fisherman


Date de création: 2024-02-02 14:57:33 Dernière modification: 2024-02-02 14:57:33
Copier: 0 Nombre de clics: 717
1
Suivre
1617
Abonnés

Stratégie de stop loss suiveur avec indicateur Fisherman

Aperçu

La stratégie de stop-loss mobile est une stratégie de trading quantitatif qui combine le stop-loss avec un mécanisme de stop-loss mobile. Cette stratégie utilise le stop-loss pour générer des signaux d’achat et de vente, tout en installant un stop-loss de suivi pour verrouiller les bénéfices et obtenir des gains plus importants tout en protégeant les bénéfices.

Principe de stratégie

  1. Date d’entrée de la plage, période de limitation de la rétro-mesure ou du disque dur
  2. Paramètres pour l’indicateur de pêcheur, 2 cycles par défaut
  3. Ratio de stop loss d’entrée, par défaut 5% de stop loss et 2% de stop loss
  4. Calculer les lignes principales et les lignes de signaux de l’indicateur des pêcheurs
  5. Un signal d’achat est généré lors de la traversée d’une ligne de signal sur la ligne principale
  6. Mise en place d’un stop tracking pour arrêter une baisse de 2% après une position longue
  7. Arrêtez lorsque les prix augmentent de plus de 5%

Analyse des avantages

  1. L’indicateur des pêcheurs permet de juger facilement les tendances et d’acheter des signaux précis
  2. Un mécanisme de suivi des arrêts permet de bloquer la majeure partie des bénéfices tout en évitant de dépasser le seuil de stop-loss défini
  3. Paramètres personnalisables pour s’adapter à différents environnements de marché
  4. Simple, facile à utiliser et facile à comprendre

Analyse des risques

  1. Une mauvaise configuration des paramètres peut conduire à des transactions trop radicales et doit être testée avec prudence.
  2. Des points de rupture trop élevés peuvent avoir un impact sur les Outiliers, entraînant des pertes supérieures aux attentes
  3. Un point d’arrêt trop bas peut entraîner une perte de bénéfices prématurée et affecter la rentabilité
  4. Les paramètres appropriés doivent être déterminés en fonction des variétés

Il est possible d’optimiser les paramètres en ajustant le ratio de stop-loss, en testant différentes combinaisons de paramètres; en combinant des signaux de filtrage avec d’autres indicateurs; en définissant des règles de gestion de position pour contrôler le risque individuel.

Direction d’optimisation

  1. Optimiser les paramètres de l’indicateur des pêcheurs et tester l’impact des différents paramètres sur la stratégie
  2. Combinaison avec d’autres indicateurs tels que MACD, KD et autres pour améliorer la qualité du signal filtré
  3. Augmentation des conditions de jugement avant l’ouverture de la position, telles que la rupture de la ceinture de Brin sur la voie
  4. Ajout d’un module de gestion de position pour contrôler les risques liés à une seule position
  5. Optimisation des arrêts mobiles, par exemple en aplatissant les arrêts mobiles, la sortie de Chandelier

Résumer

La stratégie de stop-loss mobile de l’indicateur de pêcheur, qui intègre le jugement des tendances et la gestion des pertes, peut s’adapter à la plupart des variétés grâce à l’optimisation des paramètres, à la combinaison des indicateurs et à l’amélioration des méthodes de stop-loss, et vaut la peine d’être explorée et mise en pratique pour obtenir de meilleurs rendements tout en évitant les pertes au-delà de ce qui peut être supporté.

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

//@version=5
strategy("Fisher_Yurik Strategy with Trailing Stop", shorttitle="FY Strategy", overlay=true)

// Date Ranges 
from_month = input(defval = 1, title = "From Month")
from_day   = input(defval = 1, title = "From Day")
from_year  = input(defval = 2021, title = "From Year")
to_month   = input(defval = 1, title = "To Month")
to_day     = input(defval = 1, title = "To Day")
to_year    = input(defval = 9999, title = "To Year")
start  = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window = true
period = input(2, title='Period')
cost = input.float(1.05, title='profit level ', step=0.01)
dusus = input.float(1.02, title='after the signal', step=0.01)

var float Value = na
var float Fish = na
var float ExtBuffer1 = na
var float ExtBuffer2 = na

price = (high + low) / 2
MaxH = ta.highest(high, period)
MinL = ta.lowest(low, period)

Value := 0.33 * 2 * ((price - MinL) / (MaxH - MinL) - 0.5) + 0.67 * nz(Value[1])
Value := math.max(math.min(Value, 0.999), -0.999)
Fish := 0.5 * math.log((1 + Value) / (1 - Value)) + 0.5 * nz(Fish[1])

up = Fish >= 0

ExtBuffer1 := up ? Fish : na
ExtBuffer2 := up ? na : Fish

var float entryPrice = na
var float stopPrice = na
 
if (ExtBuffer1 > ExtBuffer1[1])
    entryPrice := close*dusus
    stopPrice := close * cost 
 
if (ExtBuffer2 < ExtBuffer2[1])
    entryPrice := close
    stopPrice := close * cost

// Sadece seçilen test döneminde işlem yapma koşulu eklenmiştir
strategy.entry("Buy", strategy.long, when=ExtBuffer1 > ExtBuffer1[1] and window)
strategy.exit("Take Profit/Trailing Stop", from_entry="Buy", when=(close >= entryPrice * cost) or (close < stopPrice), trail_offset=0.08, trail_price=entryPrice * cost)