
La stratégie utilise les moyennes mobiles et les moyennes réelles pour juger de la direction des tendances du marché et pour suivre les transactions en fonction de la direction des tendances.
Cette stratégie utilise la moyenne mobile de la période de l’année, ma, et la moyenne réelle de la période de l’année,atr, multipliée par deux, pour déterminer la tendance du marché. Les règles de détermination sont:
Lorsque le prix minimum est supérieur à la moyenne mobile plus la moyenne des fluctuations réelles (<< > ma + atr), il est considéré comme une tendance à la hausse.
Lorsque le prix maximal est inférieur à la moyenne mobile moins la moyenne des fluctuations réelles (< ma - atr), il est jugé comme une tendance à la baisse.
Pour les autres cas, la décision précédente est maintenue.
Pour juger de la tendance à la hausse, il est permis de faire plus, mais dans une certaine proportion.
Pour déterminer la tendance à la baisse, le taux de dépréciation doit être proportionnel au taux de dépréciation autorisé.
Les conditions de placement sont d’arriver à la date de clôture de la transaction.
Cette stratégie présente les avantages suivants:
Les principaux risques de cette stratégie sont les suivants:
La solution est simple:
Cette stratégie peut être optimisée dans les domaines suivants:
L’idée générale de la stratégie est claire et facile à comprendre. Elle utilise les moyennes mobiles pour déterminer la direction de la tendance et utilise les moyennes réelles pour définir des arrêts et suivre efficacement la tendance.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//2019
//Noro
//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", 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(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
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")
//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
// strategy.close_all()