
Cette stratégie est une stratégie de négociation de suivi de tendance qui utilise une simple moyenne mobile pour déterminer la direction de la tendance du marché et place des ordres de prix limités en fonction de la direction de la tendance sur la moyenne mobile pour réaliser des transactions de suivi de tendance.
Calculer la moyenne mobile simple (SMA), ainsi que la direction de la tendance.
Si le filtre de rétroaction est activé, les points bas supérieurs à la SMA sont considérés comme tendance à la hausse et les points hauts inférieurs à la SMA sont considérés comme tendance à la baisse. Si le filtre de rétroaction n’est pas activé, les prix de clôture supérieurs à la SMA sont considérés comme tendance à la hausse et les prix de clôture inférieurs à la SMA sont considérés comme tendance à la baisse.
En fonction de la direction de la tendance et des paramètres de direction de la transaction activés, le placement d’un ordre limite sur le prix SMA est logique:
Si vous avez besoin de faire plus (needlong est vrai) et que vous êtes dans une tendance à la hausse, placez un ordre de limite maximale au prix SMA
Si un besoin de short est vrai et qu’il est en baisse, placez un ordre de short limité au prix SMA
Configurer une logique de stop-loss, si la direction de la position est en désaccord avec la direction de la tendance, le stop-loss est retiré.
Selon le paramètre de la plage de dates, négociez uniquement dans la plage de dates indiquée.
L’utilisation d’un SMA pour déterminer les tendances permet de filtrer efficacement le bruit du marché et de localiser les tendances les plus longues.
Le placement d’un ordre limité au prix SMA permet d’obtenir de meilleurs points d’entrée au début de la tendance.
Il est possible de choisir de ne faire que de l’argent comptant ou de ne faire que de l’argent comptant, et de s’adapter à son style de trading.
Il est possible de mettre en place un mécanisme d’arrêt de perte et de sortie pour éviter l’expansion des pertes.
Il est possible d’établir des délais de négociation afin d’éviter les fluctuations marquées par des événements majeurs.
Le SMA est utilisé comme indicateur de tendance, il y a des problèmes de retard, il peut manquer le tournant de la tendance, ce qui entraîne des pertes.
Il y a un problème avec la flexibilité du prix limité, qui pourrait être limité par une modification à court terme de la tendance.
Les paramètres de la période SMA doivent être réglés de manière raisonnable. S’ils ne sont pas réglés correctement, une mauvaise évaluation de la tendance peut être obtenue.
Il est nécessaire de prendre en compte la rationalité des paramètres de la période de négociation pour éviter de rater une opportunité de négociation ou une période de risque.
Il est possible d’envisager d’ajouter d’autres indicateurs de jugement, de faire une vérification multi-indicateurs, d’éviter les problèmes de retard de SMA.
Il est possible de configurer le mode de suivi des quotas à terme, qui est remplacé par le suivi des quotas du marché lorsque le prix dépasse la SMA, ce qui améliore la flexibilité du suivi.
Optimiser dynamiquement les paramètres de la période SMA pour l’adapter à l’environnement de marché de différentes périodes.
La position de stop-loss est définie comme le prix le plus bas/le plus haut de la tendance, plutôt que comme une position SMA stricte, ce qui permet une plus grande flexibilité de stop-loss.
L’ajout d’éléments de trading algorithmique pour rendre les heures de trading plus intelligentes et plus flexibles, évitant ainsi les périodes de risque majeur.
Cette stratégie est une stratégie de suivi de tendance relativement simple, dont l’idée centrale est d’utiliser le SMA pour déterminer la direction de la tendance et de placer des ordres de prix limités sur le prix SMA pour suivre les transactions. La flexibilité, l’adaptabilité et l’intelligence de la stratégie peuvent être améliorées par une certaine optimisation.
/*backtest
start: 2022-10-27 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2020
//@version=4
strategy(title = "Noro's CrossLimit", shorttitle = "CrossLimit", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0, commission_value = 0.0)
needlong = input(true, "long")
needshort = input(true, "short")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
src = input(close, defval = close, title = "MA Source")
len = input(5, defval = 5, minval = 1, title = "SMA length")
off = input(0, defval = 0, minval = 0, title = "SMA offset")
anti = input(true, defval = true, title = "Anti-saw filter")
rev = input(false, defval = false, title = "Reverse")
showma = input(true, defval = true, title = "Show MA")
showbg = input(false, defval = false, title = "Show background")
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
ma = sma(src, len)[off]
macol = showma ? color.blue : na
plot(ma, color = macol, linewidth = 3, transp = 0)
//Background
trend = 0
trend := anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
bgcol = showbg ? trend == 1 ? color.lime : trend == -1 ? color.red : na : na
bgcolor(bgcol, transp = 70)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = (trend == 1 and rev == false) or (trend == -1 and rev == true)
dn = (trend == -1 and rev == false) or (trend == 1 and rev == true)
//Trading
size = strategy.position_size
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if trend != 0
strategy.entry("Long", strategy.long, lot, limit = ma, when = needlong and truetime and up)
strategy.entry("Short", strategy.short, lot, limit = ma, when = needshort and truetime and dn)
if size > 0 and needshort == false and trend == -1
strategy.exit("Stop Long", "Long", limit = ma)
if size < 0 and needlong == false and trend == 1
strategy.exit("Stop Short", "Short", limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("Long")
strategy.cancel("Short")