Strategi Dagangan Terobosan Kemungkinan Tinggi Berdasarkan Keseimbangan Tekanan

Penulis:ChaoZhang, Tarikh: 2023-11-13 11:40:53
Tag:

img

Ringkasan

Strategi ini menggunakan gabungan pelbagai penunjuk untuk menentukan arah trend dan peluang perdagangan, menggunakan pendekatan keseimbangan tekanan untuk meningkatkan kadar kemenangan perdagangan. Ia terutamanya menggunakan penunjuk MACD, PSAR dan EMA untuk penghakiman, dan melaksanakan stop loss dan mengambil keuntungan untuk mencapai keuntungan yang berkesan.

Logika Strategi

  1. Gunakan EMA untuk mengira purata bergerak untuk menentukan arah trend keseluruhan. Nilai EMA yang lebih besar menunjukkan trend menaik, sementara nilai EMA yang lebih kecil menunjukkan trend menurun.

  2. Gunakan MACD untuk mengira perbezaan antara purata bergerak pantas dan perlahan. Apabila perbezaannya lebih besar daripada 0, ia menunjukkan aliran menaik, apabila kurang daripada 0, ia menunjukkan aliran menurun.

  3. Gunakan PSAR untuk mengira titik berubah berterusan. Apabila nilai PSAR besar, ia menunjukkan trend menurun, apabila nilai PSAR kecil, ia menunjukkan trend menaik.

  4. Menggabungkan tiga penunjuk di atas untuk menentukan konsistensi trend. Apabila penilaian ketiga-tiga penunjuk adalah konsisten, ia mewakili trend yang jelas yang membolehkan perdagangan kemasukan.

  5. Masukkan perdagangan berdasarkan kriteria beli dan jual, dan tetapkan titik stop loss dan ambil keuntungan. keluarkan perdagangan apabila syarat berhenti kehilangan atau mengambil keuntungan dipenuhi untuk merealisasikan keuntungan.

  6. Peraturan khusus ialah:

    • Keadaan beli: tidak dalam trend menaik, histogram MACD < 0, harga penutupan > EMA
    • Keadaan jual: dalam trend menaik, histogram MACD > 0, harga tutup < EMA
    • Keadaan Stop Loss: harga mencapai nilai PSAR seterusnya
    • Syarat mengambil keuntungan: mencapai nisbah mengambil keuntungan yang telah ditetapkan

Kelebihan Strategi

  1. Menggunakan pelbagai penunjuk untuk menentukan trend meningkatkan ketepatan.

  2. Pembukaan perdagangan berdasarkan trend yang pasti yang dikenal pasti melalui imbangan tekanan meningkatkan kadar kemenangan.

  3. Menetapkan stop loss dan mengambil keuntungan boleh mengehadkan kerugian dan mengunci keuntungan.

  4. Peraturan perdagangan yang jelas dan sistematik menjadikannya sesuai untuk perdagangan algoritma.

  5. Parameter boleh dioptimumkan untuk menyesuaikan diri dengan produk dan jangka masa yang berbeza.

Risiko Strategi

  1. Penghakiman trend mungkin salah, mengakibatkan arah perdagangan yang salah.

  2. Pergerakan pasaran yang melampau boleh menghasilkan isyarat palsu dari penunjuk.

  3. Hentikan kehilangan terlalu luas, tidak dapat keluar tepat pada masanya.

  4. Penyesuaian parameter yang tidak betul membawa kepada perdagangan berlebihan atau perdagangan yang hilang.

  5. Produk tidak cair tidak boleh memenuhi pelan stop loss dan mengambil keuntungan.

  6. Risiko boleh dikurangkan dengan mengoptimumkan parameter, menyesuaikan berhenti, dan memilih produk cecair.

Arahan pengoptimuman

  1. Sesuaikan tempoh EMA untuk mengoptimumkan ketepatan trend.

  2. Tuning tempoh MACD cepat dan perlahan untuk meningkatkan kepekaan.

  3. Mengoptimumkan stop loss dan mengambil nisbah keuntungan untuk mencari keseimbangan yang ideal.

  4. Tambah penunjuk tambahan lain untuk meningkatkan masa kemasukan.

  5. Pilih produk dengan kecairan yang baik dan turun naik yang besar.

  6. Sesuaikan jangka masa untuk menyesuaikan dengan ciri produk yang berbeza.

Ringkasan

Strategi ini mengintegrasikan beberapa penunjuk untuk analisis trend dan memasuki perdagangan berdasarkan trend yang pasti, dengan stop loss dan mengambil keuntungan yang telah ditetapkan sebelumnya, yang dapat menangkap pergerakan pasaran dengan berkesan dan mencapai pulangan yang baik sambil memastikan keuntungan tertentu. Penambahbaikan lanjut terhadap kestabilan dan keuntungan dapat dicapai melalui penyesuaian parameter dan penunjuk tambahan. Peraturan perdagangan yang jelas menjadikan strategi ini sangat sesuai untuk perdagangan algoritma.


/*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')

	

Lebih lanjut