
この戦略は,単純移動平均 ((SMA),指数移動平均 ((EMA),ケルトナーチャネル,MACD指標,ランダム指標 ((Stochastic)) によるショートラインの定量取引戦略である.これは,価格がSMAとEMAを突破するかどうかによって,ケルトナーチャネル,MACD指標,ストキャスティック指標の多空信号を組み合わせて,自動化された取引入場と出場を実現する.
この戦略は,25周期SMA,200周期EMAを用いて,2つの移動平均指標を構成する.価格が下から上へと2つの移動平均を突破すると,買いのシグナルが生じ,価格が上から下へと2つの移動平均を突破すると,売りのシグナルが生じます.
同時に,この戦略は10サイクルを使ってケルトナー通路を構築し,価格突破通路の上線と下線も補助信号として働く.MACD指標は,快線,慢線,MACD柱形状を通じて買入シグナルを生成する.ストーカスティック指標は,%K線と%D線の金叉死叉によって多空信号も構成する.
具体的には,閉盘価格がSMAとEMAより高く,Keltnerチャネル内にあるとき,MACD柱図は負値であり,ストキャスティック%K値が50より低いとき,買入シグナルを生じ,多めに;閉盘価格がSMAとEMAより低く,Keltnerチャネル内にあるとき,MACD柱図は正値であり,ストキャスティック%K値が50より高いとき,売り出シグナルを生じ,空っぽにする.
この戦略は,移動平均,通路指標,MACD指標およびストキャスティック指標の4つの一般的な技術指標を統合している.価格の突破と不突破によって多空判断し,典型的なショートラインの定量取引戦略に属している.単一の指標と比較して,多指標の判断を総合的に使用することで,信号の正確性が向上し,さらなるテストと最適化の価値があります.
/*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)