Chiến lược tiền điện tử cao và thấp dựa trên nhiều chỉ số


Ngày tạo: 2023-12-29 14:16:16 sửa đổi lần cuối: 2023-12-29 14:16:16
sao chép: 0 Số nhấp chuột: 652
1
tập trung vào
1621
Người theo dõi

Chiến lược tiền điện tử cao và thấp dựa trên nhiều chỉ số

Tổng quan

Chiến lược này là một chiến lược cao thấp phù hợp cho thị trường tiền điện tử. Nó sử dụng nhiều chỉ số như MACD, PSAR, ATR, Elliott Wave, và giao dịch trong các chu kỳ thời gian cao hơn như 1 giờ, 4 giờ hoặc 1 ngày. Ưu điểm của chiến lược là tỷ lệ lợi nhuận rủi ro cao, có thể đạt được mức lợi nhuận trung bình từ 1.5 đến 5.

Nguyên tắc chiến lược

Các tín hiệu giao dịch của chiến lược này đến từ các điểm cao và thấp của giá cả và các phán đoán tổng hợp của nhiều chỉ số.

  1. Đánh giá xem liệu đường K có xuất hiện một khoảng giá cao thấp, tức là cao nhất là sáng tạo liên tục cao, thấp nhất là sáng tạo liên tục thấp.

  2. Kiểm tra độ cao của đường thẳng của MACD.

  3. Kiểm tra các chỉ số PSAR để xác định xu hướng.

  4. Kiểm tra các chỉ số xu hướng được tạo ra bởi ATR và MA để xác định xu hướng.

  5. Kiểm tra xu hướng của chỉ số Elliott Wave.

Nếu cả 5 điều kiện trên đều hướng về cùng một hướng, sẽ tạo ra tín hiệu làm nhiều hoặc làm trống.

Lợi thế chiến lược

  1. Tỷ lệ lợi nhuận của rủi ro cao, có thể lên đến 1:30.

  2. Tỷ lệ lợi nhuận trung bình cao, thường là từ 1.5 đến 2.5.

  3. Một sự kết hợp của nhiều chỉ số có thể lọc hiệu quả các đột phá giả.

Rủi ro chiến lược

  1. Tỷ lệ chiến thắng thấp, chỉ khoảng 10% - 20%.

  2. Có một số rủi ro về việc rút lui và rút lui.

  3. Hiệu quả của chỉ số có thể bị ảnh hưởng bởi môi trường thị trường.

  4. Cần có khả năng chịu đựng tâm lý mạnh mẽ hơn.

Phản ứng:

  1. Tăng quy mô giao dịch để cân bằng tỷ lệ chiến thắng.

  2. Kiểm soát chặt chẽ lỗ hổng đơn lẻ.

  3. Điều chỉnh các tham số chỉ số theo thị trường khác nhau.

  4. Hãy xây dựng tâm lý và kiểm soát quy mô vị trí của bạn.

Hướng tối ưu hóa

  1. Các tham số chỉ số thử nghiệm theo các đồng tiền điện tử khác nhau và môi trường thị trường.

  2. Tăng các chiến lược dừng lỗ, ngăn chặn và tối ưu hóa quản lý tiền.

  3. Kết hợp các phương pháp học máy để tăng tỷ lệ chiến thắng.

  4. Tăng các chỉ số cảm xúc xã hội để lọc các tín hiệu giao dịch.

  5. Xem xét xác nhận chỉ số nhiều chu kỳ thời gian.

Tóm tắt

Chiến lược này nói chung là một chiến lược giao dịch có lợi nhuận cao có rủi ro cao cho tiền điện tử. Ưu điểm của nó là tỷ lệ lợi nhuận rủi ro cao, có thể đạt được yếu tố lợi nhuận trung bình cao. Rủi ro chủ yếu là tỷ lệ thắng thấp, cần có khả năng chịu đựng tâm lý mạnh mẽ.

Mã nguồn chiến lược
/*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)