Cette stratégie est basée sur la formation de canaux de négociation basés sur des moyennes mobiles et génère des signaux de négociation lorsque les prix franchissent les voies d’accélération et de descente.
Pour calculer une moyenne mobile, il est possible de choisir entre plusieurs types de moyenne mobile, comme SMA/EMA/WMA/RMA.
Une augmentation proportionnelle de la moyenne mobile en haut de la voie. Une diminution proportionnelle en bas de la voie.
Faire plus lorsque le prix dépasse la barre supérieure; faire moins lorsque le prix dépasse la barre inférieure. Vous pouvez choisir de faire plus, de faire moins ou de négocier dans les deux sens.
Il s’agit d’un point d’arrêt. Le point d’arrêt correspond à une augmentation du prix d’entrée. Le point d’arrêt correspond à une diminution du prix.
Les moyennes mobiles sont faciles à calculer et permettent de discerner les tendances.
Les paramètres peuvent être ajustés pour permettre des durées de position et des préférences de risque différentes.
Il est possible d’effectuer plus de couvre-feu, ce qui permet de s’adapter à de multiples situations de marché.
Le freinage et le freinage à perte de vitesse sont réglables et contrôlables.
Les tendances changent facilement.
Une mauvaise configuration des paramètres peut entraîner des transactions trop fréquentes ou retardées.
Le stop loss à taux fixe n’est pas assez flexible.
Les transactions bilatérales augmentent la fréquence des transactions et les frais de traitement.
Optimiser les paramètres de la moyenne mobile, équilibrer la latence et le bruit.
Optimiser la bande passante des canaux pour correspondre à la fréquence des fluctuations du marché.
Testez différents réglages de stop-loss. La stop-loss dynamique est plus efficace.
Il est également possible d’ajouter des indicateurs de tendance, d’oscillation et d’autres pour évaluer les grandes villes.
Filtrez les périodes d’adhésion pour éviter les effets d’événements majeurs.
La stratégie permet un suivi simple des tendances via le canal des moyennes mobiles, mais nécessite un renforcement de l’optimisation des paramètres et du contrôle des risques. Sur cette base, plus d’indicateurs techniques peuvent être introduits pour améliorer encore la logique de la stratégie.
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TaylorTneh
//@version=4
// strategy("Moving Average Band Taylor V1",shorttitle="MA Band+",overlay=true,default_qty_type=strategy.cash,default_qty_value=1000,initial_capital=1000,currency=currency.USD,commission_value=.1)
price = input(close, title="Source")
mabtype = input(title="Moving Average Type", defval="RMA", options=["SMA", "EMA", "RMA", "WMA"])
malen = input(10, "MA Period : 10")
magap = input(0.6, "Band Gap : 0.6", minval = -10, maxval = 10, step = 0.1)
mabup = if mabtype == "SMA"
sma(high, malen)
else
if mabtype == "EMA"
ema(high, malen)
else
if mabtype == "WMA"
wma(high, malen)
else
if mabtype == "RMA"
rma(high, malen)
mabdn = if mabtype == "SMA"
sma(low, malen)
else
if mabtype == "EMA"
ema(low, malen)
else
if mabtype == "WMA"
wma(low, malen)
else
if mabtype == "RMA"
rma(low, malen)
upex = mabup * (1 + magap/100)
dnex = mabdn * (1 - magap/100)
plot(upex, "Upper MA Band", color.orange)
plot(dnex, "Lower MA Band", color.orange)
//-------------------------------------------- (Strategy)
strategy.entry("Long", strategy.long, stop = upex)
strategy.entry("Short", strategy.short, stop = dnex)
//Long Only//strategy.entry("Long", strategy.long, stop = upex)
//Long Only//strategy.exit("Short", stop = dnex)
//Short Only//strategy.entry("Short", strategy.short, stop = dnex)
//Short Only//strategy.exit("Long", stop = upex)
//-------------------------------------------- (Take Profit & Stop Lose)
stopPer = input(500.0, title='# Stop Loss %', type=input.float) / 100
takePer = input(500.0, title='# Take Profit %', type=input.float) / 100
//Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)
if strategy.position_size > 0
strategy.exit(id="L-TP/SL", stop=longStop, limit=longTake)
if strategy.position_size < 0
strategy.exit(id="S-TP/SL", stop=shortStop, limit=shortTake)
//-------------------------------------------- (Sample Time Filter Strategy)
//fromyear = input(2018, 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(10, defval = 10, 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")
//strategy.entry("Long", strategy.long, stop = upex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
//strategy.entry("Short", strategy.short, stop = dnex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
//--------------------------------------------