Stratégie de négociation de robots de prise de profit par lots à plusieurs niveaux BTC

Auteur:ChaoZhang est là., Date: 2023-10-18 11:12:39 Je suis désolé
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading multi-niveaux de robots de prise de profit BTC. Il entre dans des positions longues en trouvant le point le plus bas et fixe plusieurs points de prise de profit pour les sorties de lot. Il définit également un point de stop-loss pour le contrôle des risques. Cette stratégie est adaptée lorsque vous êtes haussier sur BTC.

La logique de la stratégie

  1. Trouver des signaux d'entrée: Générer des signaux d'achat lorsque l'indicateur CC passe sous 0, acheter des positions longues à ce stade.

  2. Définir le stop loss: définir le pourcentage de stop loss à travers l'entrée, convertir au niveau de prix pour le stop loss.

  3. Définir plusieurs points de prise de profit: 4 points de sortie, définir le pourcentage de prise de profit pour chaque point à travers l'entrée, convertir en niveaux de prix.

  4. Contrôle des risques: définition de la taille maximale de la position, définition du pourcentage de sortie pour chaque point de sortie à l'aide de l'entrée pour la dispersion des risques.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Signalement d'entrée fiable en achetant au point le plus bas, en évitant d'acheter au plus haut.

  2. Les prises de bénéfices à plusieurs niveaux bloquent les bénéfices partiels tout en maintenant certains bénéfices en cours.

  3. Le stop loss contrôle le risque et limite les pertes à une certaine plage.

  4. Les sorties par lots dispersent les risques, évitant les pertes complètes en une seule fois.

  5. Le retrait peut être contrôlé dans une certaine mesure.

Analyse des risques

Les risques de cette stratégie sont les suivants:

  1. L'indicateur CC ne peut pas garantir pleinement le point le plus bas, peut manquer des opportunités d'achat.

  2. Un mauvais réglage du stop loss peut entraîner un stop loss inutile.

  3. Les sorties de lots incorrectes peuvent également entraîner une perte de bénéfices.

  4. Il est plus difficile de réaliser des bénéfices sur des marchés diversifiés.

  5. Il peut être difficile d'arrêter les pertes en cas de revers brusques.

Directions d'optimisation

Optimisations potentielles:

  1. Optimisez les signaux d'entrée avec plus d'indicateurs ou d'apprentissage automatique pour un meilleur timing.

  2. Optimiser la stratégie de stop loss pour la rendre plus élastique face aux mouvements du marché.

  3. Optimiser les sorties pour une meilleure adaptation aux marchés en évolution et en tendance.

  4. Ajoutez des arrêts pour des bénéfices plus flexibles.

  5. Testez différents actifs pour les meilleurs ensembles de paramètres.

Conclusion

En résumé, il s'agit d'une stratégie de trading de BTC basée sur l'achat aux points les plus bas avec des profits multi-niveaux et un stop loss. Elle présente certains avantages et des domaines qui peuvent être améliorés.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni


// © theCrypster 2020

//@version=4
// strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS
higherTF = input("W", type=input.resolution)
pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true)
ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true)
pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true)

PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0

PP := (ph + pl + pc) / 3
R1 := PP     + (PP   - pl)
S1 := PP     - (ph - PP)
R2 := PP     + (ph - pl)
S2 := PP     - (ph - pl)
factor=input(2)
R3 := ph  + factor * (PP   - pl) 
S3 := pl   - 2 * (ph - PP) 

// 
length=input(21)
//
p = close
vrsi = rsi(p, length)
pp=ema(vrsi,length)
d=(vrsi-pp)*5
cc=(vrsi+d+pp)/2
//
low1=crossover(cc,0)

sell=crossover(close[1],R3) 
//
l = low1
s=sell
if l 
    strategy.entry("buy", strategy.long)
if s 
    strategy.entry("sell", strategy.short)
per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=15, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=3, minval=0.01)
tp2=input(title=" Take profit2", defval=5, minval=0.01)
tp3=input(title=" Take profit3", defval=7, minval=0.01)
tp4=input(title=" Take profit4", defval=10, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Plus de