Cette stratégie utilise des indicateurs de dynamique de prix pour déterminer la direction du trading. Plus précisément, elle calcule la moyenne mobile et le prix moyen respectivement. Lorsque le prix dépasse la moyenne mobile et le prix moyen, un signal d'achat est généré. Pour filtrer les faux signaux, elle ne nécessite pas de signaux antérieurs similaires.
La stratégie repose principalement sur des indicateurs de dynamique des prix pour juger de la direction de la tendance.
swmaClose = swma(close)
vwapClose = vwap(close)
Où?swma
est la moyenne mobile lissée etvwap
Les deux peuvent refléter le niveau moyen des prix.
Ensuite, comparez le prix avec la moyenne pour voir si le prix dépasse la moyenne mobile et le prix moyen, pour juger s'il s'agit d'un signal haussier:
swmaLong = close > swmaClose
vwapLong = close > vwapClose
Pour filtrer les faux signaux, il n'est pas nécessaire d'avoir reçu des signaux antérieurs de ces deux indicateurs:
triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
Ensuite, économisez le signal haussier:
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]
Enfin, lorsque le signal de croisement enregistré et le prix franchissent à nouveau la moyenne mobile, générer le signal de position d'ouverture:
startLong = saveLong and swmaLong
Cela peut filtrer certains faux signaux et rendre les signaux plus fiables.
La stratégie contient également des paramètres de stop loss et de take profit.
La stratégie présente les avantages suivants:
La stratégie comporte également certains risques:
Les contre-mesures:
La stratégie peut également être optimisée dans les directions suivantes:
Ces optimisations peuvent améliorer la flexibilité, la robustesse et la rentabilité de la stratégie.
Dans l'ensemble, cette stratégie de suivi de l'élan des prix est une stratégie de suivi de tendance simple, simple et logique. La stratégie utilise des moyennes mobiles des prix et des prix moyens pour déterminer la direction de l'élan des prix, et conçoit un mécanisme de vérification en plusieurs étapes pour améliorer la qualité du signal. La stratégie contient également des paramètres de stop loss et de prise de profit raisonnables. En termes de code, la logique de la stratégie est très concise, nécessitant seulement plus de 20 lignes de script Pine à mettre en œuvre. En résumé, cette stratégie est un très bon exemple d'apprentissage, les débutants peuvent l'utiliser comme un très bon point de départ pour comprendre les stratégies de trading quantitatives. Bien sûr, la stratégie elle-même a également une valeur commerciale pratique.
/*backtest start: 2023-12-03 00:00:00 end: 2024-01-02 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "Simple Price Momentum", shorttitle = "SPM", overlay = true, initial_capital = 20000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025) // How To Create A Simple Trading Strategy With TradingView // https://docs.google.com/document/d/1fXxCtPuGgTXb-RuBJNbwlfgkeiLTK5060LfTrzRlr5k/view swmaClose = swma(close) vwapClose = vwap(close) swmaLong = close > swmaClose vwapLong = close > vwapClose triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1] saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1] startLong = saveLong and swmaLong startLong := input(false, "Consecutive Orders") ? startLong : startLong and not startLong[1] stopLoss = input(250, "Stop Loss", step = 50) takeProfit = input(10, "Reward/Risk") * stopLoss strategy.entry("Open Long", strategy.long, when = startLong) strategy.exit("Exit Long", "Open Long", profit = stopLoss, loss = takeProfit) // bgcolor(swmaLong ? color.blue : na) // bgcolor(vwapLong ? color.orange : na) // bgcolor(triggerLong ? color.purple : na) // bgcolor(saveLong ? color.yellow : na) bgcolor(startLong[1] ? color.green : na)