La stratégie de prix de clôture Harami est une stratégie de trading quantitative basée sur des modèles de bougies.
La logique de base est la suivante: lorsque le chandelier actuel est une bougie rouge et que le précédent est une bougie verte, et que le prix le plus bas de la bougie actuelle est supérieur au prix le plus bas de la bougie précédente, le prix le plus élevé de la bougie actuelle est inférieur au prix le plus élevé de la bougie précédente, le modèle
La moyenne du corps de la bougie est utilisée comme ligne de stop loss.
Les principaux avantages de la stratégie de prix de clôture Harami sont les suivants:
Cette stratégie comporte également certains risques:
Pour atténuer ces risques, il est recommandé de combiner avec le volume des transactions, les moyennes mobiles et d'autres indicateurs techniques, afin de faire des jugements plus complets sur les tendances du marché.
La stratégie de prix de clôture de Harami peut également être améliorée par les aspects suivants:
La stratégie de prix de clôture Harami est facile à comprendre et à mettre en œuvre pour générer certains signaux d'achat et de vente basés sur des modèles de bougies. Mais elle présente également certaines limitations telles que la génération de faux signaux et la cécité. Ces problèmes indiquent également des directions pour d'autres optimisations, en appliquant des jugements plus complets avec des volumes de trading, plusieurs délais et autres indicateurs techniques. Cela peut grandement améliorer l'efficacité de la stratégie.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Harami Strategy v1.0", shorttitle = "Harami str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(false, defval = false, title = "Short") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Body body = abs(close - open) abody = sma(body, 10) //MinMax Bars min = min(close, open) max = max(close, open) bar = close > open ? 1 : close < open ? -1 : 0 //Signals up = bar == 1 and bar[1] == -1 and min > min[1] and max < max[1] dn = bar == -1 and bar[1] == 1 and min > min[1] and max < max[1] exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 //Trading if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()