Strategi Cryptocurrency Tinggi/Rendah Berdasarkan Beberapa Indikator

Penulis:ChaoZhang, Tanggal: 2023-12-29 14:16:16
Tag:

img

Gambaran umum

Strategi ini adalah strategi tingkat tinggi/rendah yang cocok untuk pasar cryptocurrency. Ini mengintegrasikan MACD, PSAR, ATR, Elliott Wave dan beberapa indikator lainnya untuk perdagangan pada jangka waktu yang lebih tinggi seperti 1 jam, 4 jam atau 1 hari. Keuntungan dari strategi ini terletak pada rasio imbalan risiko tinggi dengan faktor keuntungan rata-rata berkisar dari 1,5 hingga 2,5.

Logika Strategi

Sinyal perdagangan dari strategi ini berasal dari tingkat harga tinggi / rendah dan penilaian komposit dari beberapa indikator.

  1. Pertimbangkan apakah ada kisaran tingkat tinggi/rendah yang dibentuk oleh puncak tinggi atau terendah yang berturut-turut pada grafik harga.

  2. Periksa tingkat histogram MACD.

  3. Periksa indikator PSAR untuk arah tren.

  4. Periksa arah tren berdasarkan ATR dan MA.

  5. Konfirmasi arah tren dengan indikator Elliott Wave.

Jika semua 5 kondisi menunjuk ke arah yang sama, sinyal panjang atau pendek dihasilkan.

Keuntungan

  1. Rasio risiko dan imbalan tinggi sampai 1:30.

  2. Faktor keuntungan rata-rata tinggi, biasanya antara 1,5-2.5.

  3. Kombinasi dari beberapa indikator membantu menyaring kebocoran palsu secara efektif.

Risiko

  1. Tingkat kemenangan yang relatif rendah sekitar 10%-20%.

  2. Potensi penarikan dan risiko whipsaw ada.

  3. Kinerja indikator dapat dipengaruhi oleh rezim pasar.

  4. Membutuhkan ketahanan psikologis yang layak.

Langkah-langkah yang sesuai:

  1. Meningkatkan modal untuk menyeimbangkan tingkat kemenangan.

  2. Tetapkan stop loss yang ketat untuk setiap perdagangan.

  3. Sesuaikan parameter berdasarkan pasar yang berbeda.

  4. Memperkuat psikologi dan kontrol ukuran posisi.

Arahan Optimasi

  1. Parameter pengujian berdasarkan berbagai crypto dan pasar.

  2. Tambahkan stop loss dan ambil keuntungan untuk mengoptimalkan manajemen uang.

  3. Meningkatkan tingkat kemenangan dengan metode pembelajaran mesin.

  4. Tambahkan filter sentimen sosial untuk sinyal perdagangan.

  5. Pertimbangkan konfirmasi di beberapa kerangka waktu.

Kesimpulan

Kesimpulannya, ini adalah strategi perdagangan cryptocurrency berisiko tinggi dengan pengembalian tinggi yang agresif. Keuntungannya terletak pada rasio imbalan risiko dan faktor keuntungan yang tinggi. Risiko utama berasal dari tingkat kemenangan yang relatif rendah yang membutuhkan psikologi yang kuat. Arah optimasi masa depan bisa menjadi penyesuaian parameter, manajemen uang, meningkatkan tingkat kemenangan dan sebagainya. Secara keseluruhan strategi ini memiliki nilai praktis bagi pedagang cryptocurrency yang mencari keuntungan tinggi.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 45m
basePeriod: 5m
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/
// © SoftKill21

//@version=4
strategy("Crypto strategy high/low", overlay=true)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
//sar
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)


// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

CCI = input(20)
ATR = input(5)
Multiplier=input(1,title='ATR Multiplier')
original=input(true,title='original coloring')
thisCCI = cci(close, CCI)
lastCCI = nz(thisCCI[1])
bufferDn= high + Multiplier * sma(tr,ATR)
bufferUp= low - Multiplier * sma(tr,ATR)
if (thisCCI >= 0 and lastCCI < 0) 
    bufferUp := bufferDn[1]
if (thisCCI <= 0 and lastCCI > 0) 
    bufferDn := bufferUp[1]

if (thisCCI >= 0)
    if (bufferUp < bufferUp[1])
        bufferUp := bufferUp[1]
else
    if (thisCCI <= 0)
        if (bufferDn > bufferDn[1])
            bufferDn := bufferDn[1]
x=0.0
x:=thisCCI >= 0 ?bufferUp:thisCCI <= 0 ?bufferDn:x[1]
swap=0.0

swap:=x>x[1]?1:x<x[1]?-1:swap[1]

swap2=swap==1?color.lime:color.red
swap3=thisCCI >=0 ?color.lime:color.red
swap4=original?swap3:swap2

//elliot wave
srce = input(close, title="source")
sma1length = input(5)
sma2length = input(35)
UsePercent = input(title="Show Dif as percent of current Candle", type=input.bool, defval=true)
smadif=iff(UsePercent,(sma(srce, sma1length) - sma(srce, sma2length)) / srce * 100, sma(srce, sma1length) - sma(srce, sma2length))
col=smadif <= 0 ? color.red : color.green

longC = high > high[1] and high[1] > high[2] and close[2] > high[3] and hist > 0 and uptrend and smadif < 0 and swap4==color.lime 
//longC = high > high[1] and high[1] > high[2] and high[2] > high[3] and high[3] > high[4] and close[4] > high[5]
shortC = low < low[1] and low[1] < low[2] and close[2] < low[3] and hist < 0 and not uptrend and  smadif > 0 and swap4==color.red 
//shortC = low < low[1] and low[1] < low[2] and low[2] < low[3] and low[3] < low[4] and close[4] < low[5]

tp=input(0.15, title="tp")
sl=input(0.005, title="sl")


strategy.entry("long",1,when=longC)
strategy.entry("short",0,when=shortC)

strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)

strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit  = close * tp / syminfo.mintick,alert_message = "closeshort")
//strategy.entry("long",1, when = loss = close * sl / syminfo.mintick)

//strategy.close("long",when= hist < 0)
//strategy.close("short", when= hist > 0)

Lebih banyak