Stratégie d'échec à l'intérieur du bar

Auteur:ChaoZhang est là., Date: 14 septembre 2023 à 16h43
Les étiquettes:

La logique de la stratégie

Si le haut/bas de la barre suivant une barre intérieure pénètre dans la plage antérieure de la barre intérieure, des signaux de trading sont générés.

La logique est la suivante:

  1. Vérifiez si les 2 barres précédentes ont formé une barre intérieure, c'est-à-dire une barre 2s haute/basse dans la plage de barres 1s

  2. Si la barre 3 haute dépasse la barre 2 haute, et ferme au-dessus de la barre 2 basse, aller long

  3. Si la barre 3 basse se brise la barre 2 basse, et se ferme en dessous de la barre 2 haute, aller court

  4. Optionnellement clôturer les commandes X bars plus tard (par exemple 3 bars)

Il vise à capturer les tendances émergentes des consolidations de barres internes.

Les avantages

  • Les barreaux à l'intérieur sont faciles à identifier, les pannes donnent des signaux clairs

  • La fermeture précoce des commandes évite les problèmes

  • Des règles simples et intuitives

Les risques

  • Nécessité de valider davantage l'efficacité du signal

  • Formation de barres à l'intérieur et ruptures moins fréquentes

  • Peut être négocié contre la tendance majeure

Résumé

Cette stratégie tente de capitaliser sur les tendances des pannes de barres internes, mais la fréquence inférieure des transactions nécessite une évaluation du risque-rendement.


/*backtest
start: 2022-09-07 00:00:00
end: 2022-10-31 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Inside Bar Failure", overlay=true)

forward = input(defval=3, title="Look Forward")

longCondition = if (high[2] > high[1] and low[2] < low[1] and low < low[1] and high < high[1] and close > low[1])
    x = true
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = if (high[2] > high[1] and low[2] < low[1] and high > high[1] and low > low[1] and close < high[1])
    y = true
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
if (longCondition[forward])
    strategy.close("Long")
if (shortCondition[forward])
    strategy.close("Short")

Plus de