
Cette stratégie est une stratégie de dynamique simple d’une journée sans courte durée. Elle utilise les SMA, les EMA et les indicateurs de volume de transaction pour tenter d’entrer sur le marché au moment optimal.
La logique de génération de signaux Einty de la stratégie est la suivante: un signal d’entrée est généré lorsque l’indicateur SMA est supérieur à l’indicateur EMA et que 3 lignes K consécutives ou 4 lignes K consécutives forment une tendance à la hausse, et que le prix minimum de la ligne K intermédiaire est supérieur au prix d’ouverture de la ligne K commençant à la hausse.
La logique de génération du signal d’exit est la suivante: lorsque l’indicateur SMA est traversé par le signe EMA, un signal d’exit est généré.
La stratégie ne fonctionne qu’avec des plus-values, pas avec des moins-values. Sa logique d’entrée et de sortie a une certaine capacité à reconnaître les tendances à la hausse persistante.
Cette stratégie présente les avantages suivants:
La logique de la stratégie est simple, facile à comprendre et à mettre en œuvre.
La flexibilité des paramètres est assurée par l’utilisation d’indicateurs techniques courants tels que les SMA, les EMA et les volumes de transactions.
Il y a une certaine capacité à identifier les tendances à la hausse continue et à saisir certaines opportunités dans les tendances.
La stratégie présente également les risques suivants:
L’incapacité d’identifier les marchés en baisse ou en consolidation, qui pourraient entraîner des retraits plus importants;
L’incapacité à tirer parti des opportunités de faillite, à se prémunir contre la récession et à rater de meilleures opportunités de profit;
L’indicateur de quantité de livraison n’est pas efficace pour les données à haute fréquence et nécessite un ajustement des paramètres;
Le stop-loss peut être utilisé pour contrôler le risque.
Cette stratégie peut être optimisée dans les domaines suivants:
L’augmentation des opportunités de négociation à ciel ouvert, de négociation bidirectionnelle à plusieurs niveaux et de l’utilisation du arbitrage de la récession;
L’utilisation d’indicateurs plus avancés, tels que le MACD, le RSI et d’autres stratégies combinées, pour améliorer la capacité de jugement des tendances;
Optimiser la logique de stop-loss et réduire le risque de retrait;
Ajustez les paramètres, testez les données de différentes périodes et recherchez la meilleure combinaison de paramètres.
La stratégie est globalement une stratégie de suivi de tendance très simple, qui permet de déterminer le moment d’entrée en jeu en utilisant les indicateurs SMA, EMA et volume de transactions. Son avantage est qu’elle est simple et facile à mettre en œuvre, adaptée à l’apprentissage de l’entrée, mais ne peut pas identifier les tendances de consolidation et de baisse.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-02 00:00:00
period: 2h
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/
// © slip_stream
//@version=4
// Simple strategy for riding the momentum and optimising the timings of truer/longer price moves upwards for an long posistions on a daily basis (can be used, but with less effect
// on other time frames. Volume settings would have to be adjusted by the user accordingly. (short positions are not used).
// This strategy has default settings of a short(er) SMA of 10, a long(er) EMA of 20, and Volume trigger of 10 units and above. All these settings can be changed by the user
// using the GUI settings and not having to change the script.
// The strategy will only open a long position when there is a clear indication that price momentum is upwards through the SMA moving and remaining above the EMA (mandatory) and price period indicators
// of either 1) a standard 3 bar movement upwards, 2) a standard but "aggressive" 3 or 4 bar play where the low of the middle resting bars can be equal to or higher than (i.e. not
// the more standard low of about half) of the opening of the ignition bar. The "aggression" of the 3/4 bar play was done in order to counteract the conservatisme of having a mandatory
// SMA remaining higher than the EMA (this would have to be changed in the script by the user if they want to optimise to their own specifications. However, be warned, all programmatic
// settings for the maximum acceptable low of the middle resting bars runs a risk of ignoring good entry points due to the low being minutely e.g. 0.01%, lower than the user defined setting)
strategy(title = "Simple Momentum Strategy Based on SMA, EMA and Volume", overlay = true, pyramiding = 1, initial_capital = 100000, currency = currency.USD)
// Obtain inputs
sma_length = input(defval = 10, minval=1, type = input.integer, title = "SMA (small length)")
ema_length = input(defval = 20,minval=1, type = input.integer, title = "EMA (large length)")
volume_trigger = input(defval = 10, title = "Volume Trigger", type = input.integer)
sma_line = sma(close, sma_length)
ema_line = ema(close, ema_length)
// plot SMA and EMA lines with a cross for when they intersect
plot(sma_line, color = #8b0000, title = "SMA")
plot(ema_line, color = #e3d024, title = "EMA")
plot(cross(sma_line, ema_line) ? sma_line : na, style = plot.style_cross, linewidth = 4, color = color.white)
// Create variables
// variables to check if trade should be entered
//three consecutive bar bar moves upwards and volume of at least one bar is more than 10
enter_trade_3_bar_up = sma_line > ema_line and close[1] >= close [2] and close[3] >= close[4] and close[2] >= close[3] and (volume[1] >= volume_trigger or volume[2] >= volume_trigger or volume[3] >= volume_trigger)
// aggressive three bar play that ensures the low of the middle bar is equal to or greater than the open of the instigator bar. Volume is not taken into consideration (i.e. aggressive/risky)
enter_3_bar_play = sma_line > ema_line and close[1] > close[3] and low[2] >= open[3]
// aggressive four bar play similar to the 3 bar play above
enter_4_bar_play = sma_line > ema_line and close[1] > close[4] and low[2] >= open[4]
trade_entry_criteria = enter_trade_3_bar_up or enter_3_bar_play or enter_4_bar_play // has one of the trade entry criterias returned true?
// exit criteria for the trade: when the sma line goes under the ema line
trade_exit_criteria = crossunder (sma_line, ema_line)
if (year >= 2019)
strategy.entry(id = "long", long = true, qty = 1, when = trade_entry_criteria)
strategy.close(id = "long", when = trade_exit_criteria, qty = 1)
// for when you want to brute force close all open positions: strategy.close_all (when = trade_exit_criteria)