
La stratégie est une stratégie de rupture de tendance basée sur l’indicateur ATR. Son idée principale est d’effectuer des opérations de rupture de tendance lorsque le prix dépasse un certain nombre de multiples de l’ATR. La stratégie contient à la fois la confirmation de la tendance et la fonction de limiter les transactions en utilisant la plage de dates.
La stratégie utilise l’indicateur ATR pour déterminer l’amplitude des fluctuations des prix. ATR représente l’amplitude réelle moyenne, qui mesure l’amplitude moyenne des fluctuations des prix au cours d’une période donnée.
Lorsque la hausse des prix dépasse le nombre d’ATRs supérieur multiplié par l’ATR, effectuez une opération de multiplication; lorsque la baisse des prix dépasse le nombre d’ATRs inférieur multiplié par l’ATR, effectuez une opération de blanchiment.
De plus, la stratégie ajoute les variables BOOL qui nécessitent une position longue (needlong) et une position courte (needshort), permettant de contrôler le fait de ne faire que plus ou de ne faire que courte. La stratégie définit également une fourchette de dates, permettant de négocier uniquement entre les dates spécifiées, ce qui permet de limiter la fourchette de temps.
La stratégie utilise la variable de taille pour déterminer la position, en fonction de la situation de la position. Le nombre de mains est calculé en fonction du pourcentage de droits et intérêts du compte.
L’idée générale de cette stratégie est claire et facile à comprendre. L’utilisation de l’indicateur ATR pour s’adapter automatiquement à la volatilité du marché est une stratégie de suivi de tendance générale.
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
length = input(5)
numATRs = input(0.75)
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")
//Indicator
atrs = sma(tr, length) * numATRs
//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[length])) and needlong
strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needlong == false
strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort
strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[length])) and needshort == false
strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))