Dépasser la stratégie du prix le plus élevé d'hier


Date de création: 2023-11-06 10:49:57 Dernière modification: 2023-11-06 10:49:57
Copier: 0 Nombre de clics: 709
1
Suivre
1617
Abonnés

Dépasser la stratégie du prix le plus élevé d’hier

Aperçu

La stratégie de dépassement des prix les plus élevés d’hier est une stratégie de suivi des tendances qui ouvre des positions multiples lorsque le prix dépasse les prix les plus élevés d’hier, même si plusieurs dépassements sont effectués dans la journée. Elle est principalement caractérisée par le suivi des tendances et s’applique aux situations où le marché présente une tendance évidente et une volatilité élevée.

Le principe

La stratégie consiste à identifier les moments d’entrée et de sortie en introduisant une série d’indicateurs.

  • Filtreur de courbe ROC - Une stratégie est déclenchée lorsque la hausse ou la baisse du prix de clôture du jour par rapport au prix de clôture du jour de négociation précédent dépasse le seuil fixé. L’indicateur est utilisé pour filtrer les marchés volatiles qui ne correspondent pas à la stratégie.

  • Le point de rupture - indique le prix le plus élevé, le prix le plus bas et le prix d’ouverture du jour.

  • Conditions d’entrée et de sortie - Réglez les stop-loss et les stop-loss après l’entrée, et vous pouvez activer le stop-loss tracking pour verrouiller les bénéfices. Vous pouvez également avoir des stop-loss conditionnels pour des EMA spécifiques.

  • Optimisation de la configuration - la proportion d’espacement avant l’entrée peut être réglée pour personnaliser le timing de l’entrée, éviter les fausses percées. Les paramètres dynamiques d’arrêt, d’arrêt et de suivi des pertes peuvent être définis.

Plus précisément, la stratégie juge le moment d’entrée en enregistrant le prix le plus élevé de la journée. Lorsque le prix dépasse le prix le plus élevé de la journée, il y a plusieurs entrées. Après cela, un arrêt de perte et un arrêt de sortie sont définis, et un arrêt de suivi peut être activé.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  • Le but de ce blog est de suivre les tendances et d’en tirer profit.

  • La stratégie de percée, le signal d’entrée est clair.

  • En fonction du prix le plus élevé du jour, évitez les entrées consécutives.

  • Le réglage de l’arrêt des dommages aide à la maîtrise des risques.

  • Suivez les paramètres de stop-loss et verrouillez les bénéfices.

  • Les paramètres d’optimisation permettent d’ajuster le temps d’entrée et de contrôler les risques.

  • La mise en œuvre est simple, intuitive et facile à comprendre.

  • Les deux directions de la multi-espace sont disponibles.

Analyse des risques

La stratégie présente également les risques suivants:

  • Les stratégies de rupture sont facilement emprisonnées. Les prix peuvent revenir immédiatement après l’entrée.

  • Le taux d’inflation est basé sur les tendances, mais il est faible en cas de choc.

  • Il est nécessaire d’établir un ratio de stop-loss raisonnable, car une trop grande flexibilité peut augmenter les pertes.

  • Il est nécessaire d’avoir un ratio raisonnable d’intervalle entre les parties, trop radical peut augmenter les pertes.

  • La fausse percée peut entraîner des pertes inutiles et nécessite des ajustements et des optimisations.

  • Il est important de se demander si le volume de transactions atteint par la rupture est suffisant pour soutenir la tendance à venir.

  • Attention à la coordination entre les paramètres des différentes périodes.

Direction d’optimisation

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

  • Ajouter d’autres indicateurs techniques, tels que le volume des transactions, les indicateurs de choc, etc., afin d’éviter d’être piégé dans une situation de choc.

  • Augmenter les indicateurs de correspondance de la courbe pour juger de la qualité de la tendance et éviter de suivre une fausse tendance.

  • Optimisation dynamique des paramètres d’intervalles d’entrée, en ajustant les intervalles requis en fonction des fluctuations du marché.

  • Optimisation dynamique des paramètres de l’arrêt de perte, suivant les paramètres d’ajustement du marché.

  • Les paramètres sont différents selon les variétés et selon les périodes.

  • La méthode d’apprentissage automatique TRAINING est utilisée pour tester l’impact de différents paramètres sur la stratégie.

  • Ajout d’options pour optimiser la configuration

  • Les chercheurs ont étudié comment appliquer cette stratégie en cas de tremblement de terre.

  • Étendre la stratégie de combinaison à travers les périodes et les variétés.

Résumer

Cette stratégie est basée sur la méthode de suivi de la tendance qui consiste à dépasser le sommet de la journée précédente. Elle fonctionne bien dans la tendance. Cependant, il existe des problèmes d’optimisation des paramètres et des risques.

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

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

//@version=5

strategy("Yesterday's High v.17.07", overlay=true, pyramiding = 1,
         initial_capital=10000, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=10,
         slippage=1, backtest_fill_limits_assumption=1, use_bar_magnifier=true,
         commission_type=strategy.commission.percent, commission_value=0.075
         )

// -----------------------------------------------------------------------------
// ROC Filter
// -----------------------------------------------------------------------------

// f_security function by LucF for PineCoders available here: https://www.tradingview.com/script/cyPWY96u-How-to-avoid-repainting-when-using-security-PineCoders-FAQ/
f_security(_sym, _res, _src, _rep) => request.security(_sym, _res, _src[not _rep and barstate.isrealtime ? 1 : 0])[_rep or barstate.isrealtime ? 0 : 1]
high_daily = f_security(syminfo.tickerid, "D", high, false)

roc_enable = input.bool(false, "", group="ROC Filter from CloseD", inline="roc")
roc_threshold = input.float(1, "Treshold", step=0.5, group="ROC Filter from CloseD", inline="roc")

closed = f_security(syminfo.tickerid,"1D",close, false)
roc_filter= roc_enable ? (close-closed)/closed*100  > roc_threshold  : true


// -----------------------------------------------------------------------------
// Trigger Point 
// -----------------------------------------------------------------------------

open_session = ta.change(time('D'))
price_session = ta.valuewhen(open_session, open, 0)
tf_session = timeframe.multiplier <= 60

bgcolor(open_session and tf_session ?color.new(color.blue,80):na, title = "Session")

first_bar = 0
if open_session
    first_bar := bar_index

var max_today = 0.0
var min_today = 0.0
var high_daily1 = 0.0
var low_daily1 = 0.0
var today_open = 0.0

if first_bar
    high_daily1 := max_today
    low_daily1 := min_today
    today_open := open
    max_today := high
    min_today := low


if high >= max_today
    max_today := high

if low < min_today
    min_today := low


same_day  = today_open == today_open[1]

plot( timeframe.multiplier <= 240 and same_day ? high_daily1 : na, color= color.yellow , style=plot.style_linebr, linewidth=1, title='High line')
plot( timeframe.multiplier <= 240 and same_day ? low_daily1 : na, color= #E8000D , style=plot.style_linebr, linewidth=1, title='Low line')

// -----------------------------------------------------------------------------
// Strategy settings 
// -----------------------------------------------------------------------------

Gap = input.float(1,"Gap%", step=0.5, tooltip="Gap di entrata su entry_price -n anticipa entrata, con +n posticipa entrata", group = "Entry")
Gap2 = (high_daily1 * Gap)/100

sl  = input.float(3, "Stop-loss", step= 0.5,  group = "Entry")
tp  = input.float(9, "Take-profit", step= 0.5, group = "Entry")
stop_loss_price = strategy.position_avg_price * (1-sl/100)
take_price = strategy.position_avg_price * (1+tp/100)

sl_trl = input.float(2, "Trailing-stop", step = 0.5, tooltip = "Attiva trailing stop dopo che ha raggiunto...",group = "Trailing Stop Settings")//group = "Trailing Stop Settings")
Atrl= input.float(1, "Offset Trailing", step=0.5,tooltip = "Distanza dal prezzo", group = "Trailing Stop Settings")
stop_trl_price_cond = sl_trl * high/syminfo.mintick/100
stop_trl_price_offset_cond = Atrl * high/syminfo.mintick/100

stop_tick = sl * high/syminfo.mintick/100
profit_tick = tp * high/syminfo.mintick/100

mess_buy = "buy"
mess_sell = "sell"

// -----------------------------------------------------------------------------
// Entry - Exit - Close
// -----------------------------------------------------------------------------

if close < high_daily1 and roc_filter
    strategy.entry("Entry", strategy.long, stop = high_daily1 + (Gap2), alert_message = mess_buy)

ts_n  = input.bool(true, "Trailing-stop", tooltip = "Attiva o disattiva trailing-stop", group = "Trailing Stop Settings")
close_ema = input.bool(false, "Close EMA", tooltip = "Attiva o disattiva chiusura su EMA", group = "Trailing Stop Settings")
len1 = input.int(10, "EMA length", step=1, group = "Trailing Stop Settings")
ma1 = ta.ema(close, len1)

plot(ma1, title='EMA', color=color.new(color.yellow, 0))

if ts_n == true
    strategy.exit("Trailing-Stop","Entry",loss= stop_tick, stop= stop_loss_price, limit= take_price, trail_points = stop_trl_price_cond, trail_offset = stop_trl_price_offset_cond, comment_loss="Stop-Loss!!",comment_profit ="CASH!!", comment_trailing = "TRL-Stop!!", alert_message = mess_sell)
else
    strategy.exit("TP-SL", "Entry",loss= stop_tick, stop=stop_loss_price, limit= take_price, comment_loss= "Stop-loss!!!", comment_profit = "CASH!!", alert_message = mess_sell)

if close_ema == true and ta.crossunder(close,ma1)
    strategy.close("Entry",comment = "Close" , alert_message = mess_sell)