
Strategi ini menggunakan pelbagai kombinasi indikator untuk menentukan arah trend dan masa perdagangan, menggunakan pendekatan keseimbangan tekanan untuk meningkatkan peluang perdagangan. Ia menggunakan tiga indikator MACD, PSAR dan EMA untuk membuat keputusan, digabungkan dengan stop loss untuk mencapai keuntungan yang cekap.
Menggunakan EMA untuk mengira garis rata-rata, menentukan arah trend keseluruhan. Nilai EMA yang lebih besar mewakili kini dalam trend naik, nilai EMA yang lebih kecil mewakili kini dalam trend menurun.
Menggunakan MACD untuk mengira perbezaan antara garis cepat dan lambat, apabila perbezaan lebih besar daripada 0 menandakan bahawa ia sedang dalam trend naik, dan apabila perbezaan kurang dari 0 menandakan bahawa ia sedang dalam trend menurun.
Menggunakan PSAR untuk mengira titik perubahan berturut-turut, apabila nilai PSAR yang lebih besar mewakili kini dalam trend menurun, apabila nilai PSAR yang lebih kecil mewakili kini dalam trend naik.
Gabungan ketiga-tiga penunjuk di atas, menilai kesesuaian trend. Apabila ketiga-tiga penunjuk menilai keputusan yang sama, mewakili trend yang lebih jelas, boleh melakukan pembelian atau penjualan operasi.
Buka kedudukan mengikut syarat membeli dan menjual, dan tetapkan titik henti rugi, tutup kedudukan apabila mencapai syarat henti rugi atau henti rugi, dan dapatkan keuntungan.
Peraturan operasi adalah seperti berikut:
Menggunakan pelbagai indikator untuk menilai trend, meningkatkan ketepatan penilaian.
Menggunakan tekanan keseimbangan, membuka kedudukan apabila trend jelas, meningkatkan peluang keuntungan.
Tetapkan titik henti kerugian, anda boleh mengehadkan kerugian dan mengunci keuntungan.
Sistem peraturan perdagangan yang jelas, sesuai untuk perdagangan berprogrami.
Ia boleh dioptimumkan dengan parameter, menyesuaikan untuk pelbagai jenis dan kitaran dagangan.
Mungkin terdapat kesilapan dalam penilaian trend, yang menyebabkan salah arah untuk membuka kedudukan.
Ia juga boleh menyebabkan pasaran berubah-ubah dengan ketara dan mungkin memberi isyarat yang salah.
Stop loss set terlalu besar dan tidak dapat dihentikan dalam masa yang tepat.
Tetapan parameter yang tidak betul menyebabkan terlalu banyak dagangan atau tidak dapat membuka kedudukan tepat pada masanya.
Tidak ada kecairan dalam jenis dagangan, tidak dapat menghentikan kerugian seperti yang dirancang.
Risiko boleh dikurangkan dengan mengoptimumkan parameter, menyesuaikan titik berhenti kerugian, memilih jenis perdagangan yang mempunyai kecairan yang baik.
Menyesuaikan parameter kitaran EMA, mengoptimumkan ketepatan penilaian trend.
Menyesuaikan parameter kitaran MACD baris pendek dan baris lambat untuk mengoptimumkan kepekaan penunjuk MACD.
Menyesuaikan parameter nisbah stop loss untuk mencapai keseimbangan optimum stop loss.
Menambah petunjuk tambahan untuk meningkatkan ketepatan pemilihan masa untuk membuka kedudukan.
Optimumkan pilihan varian perdagangan, pilih varian yang mempunyai kecairan yang baik dan turun naik.
Menyesuaikan kitaran masa dagangan untuk menyesuaikan diri dengan ciri-ciri pasaran yang berbeza.
Strategi ini menggunakan pelbagai indikator untuk menilai trend, membuka posisi apabila trend jelas, dan menetapkan stop loss, dapat memahami pergerakan pasaran dengan berkesan, dan memperoleh pulangan yang lebih ideal dengan menjamin keuntungan tertentu. Dengan mengoptimumkan parameter dan menambahkan petunjuk tambahan, anda dapat meningkatkan lagi kestabilan dan tahap keuntungan strategi.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
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/
// © exlux99
//@version=4
strategy(title = "Crypto Scalper", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03)
len = input(60, minval=1, title="Length EMA")
src = input(close, title="Source")
out = ema(src, len)
//
fast_length = input(title="Fast Length MACD", type=input.integer, defval=12)
slow_length = input(title="Slow Length MACD", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
tplong=input(0.245, step=0.005)
sllong=input(1.0, step=0.005)
tpshort=input(0.055, step=0.005)
slshort=input(0.03, step=0.005)
if (uptrend and hist >0 and close < out)
strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')
if (not uptrend and hist <0 and close > out)
strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')