Cette stratégie définit des points de stop-loss basés sur les plus hauts et les plus bas récents pour entrer rapidement dans les tendances et contrôler strictement les risques. Elle entre dans des positions longues lorsque les prix augmentent consécutivement et des positions courtes lorsque les prix tombent consécutivement. Lors de la tenue de positions, le niveau de stop-loss pour les positions longues est le plus bas des quelques barres récentes, et le niveau de stop-loss pour les positions courtes est le plus haut. Cette approche dynamique de stop-loss peut capturer efficacement les tendances tout en limitant strictement les pertes.
input
fonction pour définir les périodes de repéragehiLen
etloLen
pour les plus hauts et les plus bas, en défaut à 20.hiHighs
jusqu'à la barre précédente en utilisantta.highest(high, hiLen)[1]
, et le plus bas basloLows
en utilisantta.lowest(low, loLen)[1]
.loLows
pour les positions longues ethiHighs
Ne tracez pas lorsque vous êtes à plat pour faciliter la confirmation.higherCloses
: les 3 dernières barres ont des clôtures plus élevées consécutiveslowerCloses
: les 3 dernières barres ont des clôtures plus basses consécutivesisFlat
: aucune position actuelleisFlat
ethigherCloses
, entrez à court lorsqueisFlat
etlowerCloses
.loLows
; pour les positions courtes, arrêt àhiHighs
.En bref, cette stratégie utilise les plus hauts et les plus bas récents pour définir des arrêts de trailing, en entrant rapidement dans des tendances fortes et en limitant strictement les pertes, capturant ainsi efficacement les profits de tendance.
Cette stratégie d'arrêt le plus élevé / le plus bas bas définit des arrêts dynamiques basés sur les prix eux-mêmes pour capturer efficacement les fortes tendances et contrôler strictement les risques. Ses avantages sont la simplicité, l'efficacité, les entrées rapides, les arrêts stricts et une grande adaptabilité. Cependant, il fonctionne mal sur les marchés agités, les fins de tendance et les mouvements extrêmes, et nécessite une attention aux paramètres. Les améliorations futures peuvent ajouter une confirmation de tendance et de momentum, optimiser les arrêts et la dimensionnement des positions.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Highest high/lowest low stop", overlay=true) // STEP 1: // Make inputs for length of highest high and lowest low hiLen = input.int(20, title="Highest High Lookback", minval=2) loLen = input.int(20, title="Lowest Low Lookback", minval=2) // STEP 2: // Calculate recent extreme high and low hiHighs = ta.highest(high, hiLen)[1] loLows = ta.lowest(low, loLen)[1] // Plot stop values for visual confirmation plot(strategy.position_size > 0 ? loLows : na, style=plot.style_circles, color=color.green, linewidth=3, title="Lowest Low Stop") plot(strategy.position_size < 0 ? hiHighs : na, style=plot.style_circles, color=color.red, linewidth=3, title="Highest High Stop") // Trading conditions for this example strategy higherCloses = close > close[1] and close[1] > close[2] and close[2] > close[3] lowerCloses = close < close[1] and close[1] < close[2] and close[2] < close[3] isFlat = strategy.position_size == 0 // Submit entry orders if isFlat and higherCloses strategy.entry("EL", strategy.long) if isFlat and lowerCloses strategy.entry("ES", strategy.short) // STEP 3: // Submit stops based on highest high and lowest low if strategy.position_size > 0 strategy.exit("XL HH", stop=loLows) if strategy.position_size < 0 strategy.exit("XS LL", stop=hiHighs)