
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.
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ố.
Đá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.
Kiểm tra độ cao của đường thẳng của MACD.
Kiểm tra các chỉ số PSAR để xác định xu hướng.
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.
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.
Tỷ lệ lợi nhuận của rủi ro cao, có thể lên đến 1:30.
Tỷ lệ lợi nhuận trung bình cao, thường là từ 1.5 đến 2.5.
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ả.
Tỷ lệ chiến thắng thấp, chỉ khoảng 10% - 20%.
Có một số rủi ro về việc rút lui và rút lui.
Hiệu quả của chỉ số có thể bị ảnh hưởng bởi môi trường thị trường.
Cần có khả năng chịu đựng tâm lý mạnh mẽ hơn.
Phản ứng:
Tăng quy mô giao dịch để cân bằng tỷ lệ chiến thắng.
Kiểm soát chặt chẽ lỗ hổng đơn lẻ.
Điều chỉnh các tham số chỉ số theo thị trường khác nhau.
Hãy xây dựng tâm lý và kiểm soát quy mô vị trí của bạn.
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.
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.
Kết hợp các phương pháp học máy để tăng tỷ lệ chiến thắng.
Tăng các chỉ số cảm xúc xã hội để lọc các tín hiệu giao dịch.
Xem xét xác nhận chỉ số nhiều chu kỳ thời gian.
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ẽ.
/*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)