
Strategi ini adalah strategi perdagangan kuantitatif garis pendek berdasarkan purata bergerak sederhana (SMA), purata bergerak indeks (EMA), saluran Keltner, penunjuk MACD, penunjuk rawak (Stochastic). Strategi ini menggabungkan isyarat polygon dari saluran Keltner, penunjuk MACD, penunjuk Stochastic, untuk memasuki dan keluar perdagangan automatik, bergantung kepada cara harga menembusi SMA dan EMA.
Strategi ini menggunakan SMA 25 kitaran, EMA 200 kitaran untuk membina penunjuk purata bergerak ganda. Ia menghasilkan isyarat beli apabila harga menembusi purata bergerak ganda dari bawah ke atas; ia menghasilkan isyarat jual apabila harga menembusi purata bergerak ganda dari atas ke bawah.
Pada masa yang sama, strategi ini menggunakan 10 kitaran untuk membina saluran Keltner, dengan harga menembusi saluran atas dan bawah sebagai isyarat tambahan. Indikator MACD menghasilkan isyarat beli dan jual melalui garis cepat, garis perlahan dan bentuk tiang MACD. Indikator Stochastic melalui garis% K dan garis% D juga membentuk isyarat kosong.
Khususnya, apabila harga penutupan lebih tinggi daripada SMA dan EMA, dan berada di dalam saluran Keltner, corak tiang MACD adalah negatif, dan Stochastic% K bernilai di bawah 50, menghasilkan isyarat beli, buat lebih banyak; apabila harga penutupan lebih rendah daripada SMA dan EMA, dan berada di dalam saluran Keltner, corak tiang MACD adalah positif, dan Stochastic% K bernilai di atas 50, menghasilkan isyarat jual, buat kosong.
Strategi ini mengintegrasikan empat petunjuk teknikal yang biasa digunakan iaitu purata bergerak, petunjuk saluran, petunjuk MACD dan petunjuk Stochastic. Ia adalah strategi perdagangan kuantitatif garis pendek yang tipikal. Ia menggunakan penilaian pelbagai petunjuk untuk meningkatkan ketepatan isyarat berbanding dengan satu petunjuk, dan ia patut diuji dan dioptimumkan lebih lanjut.
/*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)