
La stratégie de retracement Harami inverse en bourse permet d’effectuer des transactions automatiques en identifiant le mouvement Harami inverse en bourse sur le graphique. Lorsque le mouvement Harami inverse est identifié, la stratégie entre en position de coupe.
La clé de la stratégie est que la première ligne K est une ligne longue, que la deuxième ligne K est une ligne de clôture contenue dans la première ligne K, et que la deuxième ligne K est une ligne négative.
La logique du jugement est la suivante:
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
La stratégie peut également être optimisée dans les domaines suivants:
La logique globale de la stratégie de rétro-évaluation Harami est claire, facile à comprendre et à optimiser, et les résultats de la rétro-évaluation sont meilleurs. Le risque est contrôlable, avec un espace d’ajustement en direct.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-19 23:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 16/01/2019
// This is a bearish reversal pattern formed by two candlesticks in which a short
// real body is contained within the prior session's long real body. Usually the
// second real body is the opposite color of the first real body. The Harami pattern
// is the reverse of the Engulfing pattern.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bearish Harami Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip")
input_stoploss = input(10, title="Stop Loss pip")
input_minsizebody = input(3, title="Min. Size Body pip")
barcolor(abs(close- open) >= input_minsizebody ? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue )
posprice = 0.0
posprice := abs( close - open) >= input_minsizebody? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, -1, 0)
if (pos == 0)
strategy.close_all()
if (pos == -1)
strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 , nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 , nz(posprice, 0))