Chiến lược này là một chiến lược cấp cao / thấp phù hợp với thị trường tiền điện tử. Nó tích hợp MACD, PSAR, ATR, Elliott Wave và nhiều chỉ số khác để giao dịch trong khung thời gian cao hơn như 1 giờ, 4 giờ hoặc 1 ngày.
Các tín hiệu giao dịch của chiến lược này đến từ mức giá cao / thấp và đánh giá tổng hợp của nhiều chỉ số.
Đánh giá liệu có một phạm vi mức cao/dưới được hình thành bởi các mức cao hơn hoặc thấp hơn liên tục trên biểu đồ giá.
Kiểm tra mức histogram của MACD.
Kiểm tra chỉ số PSAR về hướng xu hướng.
Kiểm tra hướng xu hướng dựa trên ATR và MA.
Xác nhận hướng xu hướng với chỉ số sóng Elliott.
Nếu tất cả 5 điều kiện đều hướng về cùng một hướng, các tín hiệu dài hoặc ngắn sẽ được tạo ra.
Tỷ lệ phần thưởng rủi ro cao đến 1:30.
Tỷ lệ lợi nhuận trung bình cao, thường nằm trong khoảng 1,5-2,5.
Sự kết hợp của nhiều chỉ số giúp lọc các sự đột phá giả hiệu quả.
Tỷ lệ thắng tương đối thấp khoảng 10% -20%.
Có khả năng rút tiền và rủi ro đòn chọc.
Hiệu suất chỉ số có thể bị ảnh hưởng bởi các chế độ thị trường.
Cần sức chịu đựng tâm lý tốt.
Các biện pháp tương ứng:
Tăng vốn để cân bằng tỷ lệ thắng.
Thiết lập lệnh dừng lỗ nghiêm ngặt cho mỗi giao dịch.
Điều chỉnh các thông số dựa trên các thị trường khác nhau.
Tăng cường tâm lý và kiểm soát vị trí kích thước.
Các thông số thử nghiệm dựa trên các loại tiền điện tử và thị trường khác nhau.
Thêm dừng lỗ và lấy lợi nhuận để tối ưu hóa quản lý tiền.
Tăng tỷ lệ chiến thắng bằng các phương pháp học máy.
Thêm bộ lọc tình cảm xã hội cho tín hiệu giao dịch.
Xem xét xác nhận qua nhiều khung thời gian.
Kết luận, đây là một chiến lược giao dịch tiền điện tử rủi ro cao lợi nhuận cao. Ưu điểm của nó nằm trong tỷ lệ phần thưởng rủi ro cao và yếu tố lợi nhuận. Các rủi ro chính đến từ tỷ lệ thắng tương đối thấp đòi hỏi tâm lý mạnh mẽ.
/*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)