
Cette stratégie est une stratégie de trading quantitative basée sur des courts-circuits basés sur les moyennes mobiles simples (SMA), les moyennes mobiles indicielles (EMA), le canal de Keltner, l’indicateur MACD, l’indicateur aléatoire (Stochastic). Elle permet l’entrée et la sortie automatisées des transactions en combinant les signaux polyvalents du canal de Keltner, de l’indicateur MACD et de l’indicateur Stochastic, en fonction de la façon dont les prix dépassent le SMA et l’EMA.
La stratégie utilise les SMA de 25 cycles et les EMA de 200 cycles pour construire un indicateur de double moyenne mobile. Un signal d’achat est généré lorsque le prix franchit la double moyenne mobile de bas en haut et un signal de vente lorsque le prix franchit la double moyenne mobile de haut en bas.
Dans le même temps, la stratégie utilise 10 cycles pour construire le canal de Keltner, et les voies supérieures et inférieures du canal de rupture des prix servent également de signaux auxiliaires. L’indicateur MACD génère des signaux d’achat et de vente via les lignes rapides, les lignes lentes et les diagrammes de la colonne MACD.
Plus précisément, lorsque le prix de clôture est supérieur aux SMA et EMA et à l’intérieur du canal de Keltner, le diagramme de la colonne MACD est négatif, le signal de vente est généré lorsque le stochastique% K est inférieur à 50, et le signal de vente est généré lorsque le prix de clôture est inférieur aux SMA et EMA et à l’intérieur du canal de Keltner, le diagramme de la colonne MACD est positif, le stochastique% K est supérieur à 50, et le signal de vente est généré.
Cette stratégie intègre les quatre indicateurs techniques couramment utilisés, les moyennes mobiles, les indicateurs de canal, les indicateurs MACD et les indicateurs stochastiques. Le jugement de la polyvalence par la rupture ou la non-rupture du prix est une stratégie de trading quantitative typique de la ligne courte.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
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/
// © exlux99
//@version=5
strategy(title="Scalping Trading System Crypto and Stocks", overlay=true)
src = input(low, title="Source")
//sma and ema
len = input.int(25, minval=1, title="Length SMA" , group="Moving Averages")
len2 = input.int(200, minval=1, title="Length EMA", group="Moving Averages")
out = ta.sma(src, len)
out2 = ta.ema(src, len2)
//keltner
lengthk = input.int(10, minval=1, title="Length Keltner Channel",group="Keltner")
mult = input(2.0, "Multiplier",group="Keltner")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style",group="Keltner")
atrlength = input(14, "ATR Length",group="Keltner")
ma = ta.sma(src, lengthk)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, lengthk)
upper = ma + rangema * mult
lower = ma - rangema * mult
//stoch
periodK = input.int(10, title="%K Length", minval=1,group="Stochastic")
smoothK = input.int(1, title="%K Smoothing", minval=1,group="Stochastic")
periodD = input.int(1, title="%D Smoothing", minval=1,group="Stochastic")
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
//macd 1
fast_length = input(title="Fast Length MACD", defval=4,group="MACD Fast")
slow_length = input(title="Slow Length MACD", defval=34,group="MACD Fast")
signal_length = input.int(title="Signal Smoothing MACD", minval = 1, maxval = 50, defval = 5,group="MACD Fast")
sma_source = input.string(title="Oscillator MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
sma_signal = input.string(title="Signal Line MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
long= close > out and close < upper and close > lower and hist < 0 and k < 50 and close > out2
short= close < out and close < upper and close > lower and hist > 0 and k > 50 and close < out2
strategy.entry("long",strategy.long,when= long)
strategy.entry("short",strategy.short,when=short)