Strategi Cryptocurrency Tinggi/Rendah Berdasarkan Pelbagai Penunjuk

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

img

Ringkasan

Strategi ini adalah strategi tahap tinggi / rendah yang sesuai untuk pasaran mata wang kripto. Ia mengintegrasikan MACD, PSAR, ATR, Elliott Wave dan pelbagai penunjuk lain untuk berdagang pada jangka masa yang lebih tinggi seperti 1 jam, 4 jam atau 1 hari. Kelebihan strategi ini terletak pada nisbah ganjaran risiko yang tinggi dengan faktor keuntungan purata antara 1.5 hingga 2.5.

Logika Strategi

Isyarat perdagangan strategi ini berasal dari tahap harga tinggi / rendah dan penilaian komposit pelbagai penunjuk.

  1. Menghakimi sama ada terdapat julat tahap tinggi/rendah yang dibentuk oleh paras tertinggi atau paras rendah yang berturut-turut pada carta harga.

  2. Periksa tahap histogram MACD.

  3. Periksa penunjuk PSAR untuk arah trend.

  4. Periksa arah trend berdasarkan ATR dan MA.

  5. mengesahkan arah trend dengan Elliott Wave indikator.

Jika semua 5 keadaan menunjuk ke arah yang sama, isyarat panjang atau pendek dihasilkan.

Kelebihan

  1. Nisbah ganjaran risiko tinggi sehingga 1:30.

  2. Faktor keuntungan purata yang tinggi, biasanya antara 1.5-2.5.

  3. Gabungan beberapa penunjuk membantu menapis pecah palsu dengan berkesan.

Risiko

  1. Kadar kemenangan yang agak rendah sekitar 10% -20%.

  2. Potensi penarikan dan risiko whipsaw wujud.

  3. Prestasi penunjuk boleh dipengaruhi oleh rejimen pasaran.

  4. Perlu daya tahan psikologi yang baik.

Langkah-langkah yang Selaras:

  1. Meningkatkan modal untuk mengimbangi kadar kemenangan.

  2. Tetapkan stop loss yang ketat untuk setiap perdagangan.

  3. Sesuaikan parameter berdasarkan pasaran yang berbeza.

  4. Memperkuat psikologi dan kawalan saiz kedudukan.

Arahan pengoptimuman

  1. Parameter ujian berdasarkan kripto dan pasaran yang berbeza.

  2. Tambah stop loss dan ambil keuntungan untuk mengoptimumkan pengurusan wang.

  3. Meningkatkan kadar kemenangan dengan kaedah pembelajaran mesin.

  4. Tambah penapis sentimen sosial untuk isyarat perdagangan.

  5. Pertimbangkan pengesahan di pelbagai jangka masa.

Kesimpulan

Kesimpulannya, ini adalah strategi perdagangan mata wang kripto yang berisiko tinggi dengan pulangan yang tinggi. Kelebihannya terletak pada nisbah ganjaran risiko dan faktor keuntungan yang tinggi. Risiko utama berasal dari kadar kemenangan yang agak rendah yang memerlukan psikologi yang kuat. Arah pengoptimuman masa depan boleh menjadi penyesuaian parameter, pengurusan wang, meningkatkan kadar kemenangan dan sebagainya. Secara keseluruhan strategi ini mempunyai nilai praktikal untuk peniaga mata wang kripto yang mencari keuntungan yang 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 lanjut