Stratégie d'achat avec stop-loss basée sur le temps et l'ATR


Date de création: 2024-02-28 17:36:50 Dernière modification: 2024-02-28 17:36:50
Copier: 0 Nombre de clics: 630
1
Suivre
1617
Abonnés

Stratégie d’achat avec stop-loss basée sur le temps et l’ATR

Aperçu

L’idée centrale de cette stratégie est de combiner le temps et l’indicateur ATR pour définir le moment d’achat et le point d’arrêt. La stratégie émet un signal d’achat à un moment donné à un moment donné, en prenant le prix de clôture comme prix d’achat, puis en ajoutant le ATR au prix d’achat comme point d’arrêt. Cela permet de filtrer certains moments d’achat inappropriés, tout en utilisant l’ATR pour contrôler les risques.

Principe de stratégie

La stratégie est principalement composée des éléments suivants:

  1. Paramètres d’entrée: comprenant le temps d’achat timeTrade et le paramètre ATR atLength. timeTrade détermine le temps d’achat et atLength détermine le paramètre de cycle ATR.

  2. Calculer l’indicateur ATR: calculer la valeur de l’indicateur ATR selon le paramètre atRLength atRValue

  3. Définition des conditions d’achat: génère un signal d’achat lorsque la combinaison des heures et des minutes est égale à timeTrade.

  4. Émettre un ordre d’achat: faire plus lorsque les conditions d’achat sont remplies, enregistrer le prix d’achat buyprice.

  5. Définition d’un point d’arrêt: le point d’arrêt est ajouté au prix d’achat. Le point d’arrêt est retiré lorsque le prix dépasse ce point d’arrêt.

  6. Dessinez une ligne horizontale de stop loss.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’utilisation du temps et de l’indicateur ATR pour double confirmation de l’heure d’achat et du point d’arrêt. Cela évite de suivre aveuglément les achats du marché et contrôle efficacement les risques. Deuxièmement, l’utilisation du point d’arrêt de la configuration ATR est dynamique et permet de définir une plage d’arrêt raisonnable en fonction de la volatilité du marché.

Analyse des risques

Les principaux risques liés à cette stratégie sont les suivants:

  1. Le mauvais réglage du moment de l’achat peut vous faire manquer un bon moment ou un mauvais marché.

  2. Les paramètres ATR sont mal configurés, et les points d’arrêt trop grands ou trop petits peuvent affecter l’efficacité de la stratégie.

  3. Il n’est pas possible de suivre efficacement les tendances en ligne longue, ce qui est plus approprié pour les opérations en ligne courte.

  4. Les facteurs fondamentaux n’ont pas été pris en compte.

Direction d’optimisation

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

  1. La combinaison de modèles multifactoriels permet de déterminer des délais d’achat plus scientifiques.

  2. Optimisation des paramètres ATR combinée à une modélisation du taux de volatilité.

  3. L’ajout d’un mécanisme de suivi des tendances permettant de s’adapter à des périodes de détention plus longues.

  4. L’analyse fondamentale de l’acquisition de la propriété a été intégrée pour déterminer si l’achat était justifié.

Résumer

Cette stratégie est globalement une stratégie de trading intraday à haute fréquence qui est simple et intuitive. L’idée centrale est d’utiliser le temps et la double confirmation des indicateurs ATR pour bloquer les moments d’achat et les points d’arrêt. Les avantages sont que le risque est contrôlable et relativement facile à réaliser.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Time-based Strategy with ATR Take Profit", overlay=true)

// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na



// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")

// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))

// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders


if (buyCondition)
    strategy.entry("Buy", strategy.long)
    buyprice := close
    takeProfitLevel := buyprice + atrValue
strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel) 
    

  

// if (sellCondition)
//     strategy.entry("Sell", strategy.short)
//     sellprice := close
//     takeProfitLevelForSell := sellprice -atrValue
// strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)


// Plot horizontal lines for take profit levels


plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")