
Chiến lược này sử dụng EMA trung bình di chuyển, RSI tương đối mạnh và CCI kênh hàng hóa kết hợp với ba chỉ số chính để xác định xu hướng giá thông qua EMA trung bình hay không, sau đó sử dụng các chỉ số RSI và CCI đã mua và bán để đưa ra phán đoán hỗ trợ, tạo ra tín hiệu giao dịch.
Trao đường trung bình của EMA 4 chu kỳ và 8 chu kỳ để xác định xu hướng giá, 4 chu kỳ phán đoán nhanh, 8 chu kỳ xác định chậm;
Khi đường EMA trung bình quay trở lại, tức là 4 chu kỳ trên đường 8 chu kỳ, sau đó hỗ trợ phán đoán RSI cao hơn 65 ((thương đối vùng mua quá mức) và chỉ số CCI cao hơn 0 ((nghĩa là không có mua quá mức), thỏa mãn sẽ tạo ra tín hiệu giao dịch;
Khi đường EMA trung bình quay trở lại xuống, tức là đường 4 chu kỳ đi qua đường 8 chu kỳ, sau đó hỗ trợ phán đoán RSI thấp hơn 35 ((vùng bán tháo tương đối) và chỉ số CCI thấp hơn 0 ((có nghĩa là không có quá mua quá bán), thỏa mãn sẽ tạo ra tín hiệu bán tháo;
Sau khi tín hiệu được tạo ra, giá dừng và giá dừng được thiết lập dựa trên khoảng cách dừng và dừng của đầu vào.
Nhìn chung, chiến lược tổng hợp xem xét xu hướng giá trung hạn và các chỉ số ngắn hạn vượt quá bán tháo, tương đối ổn định, trong khi thiết lập dừng lỗ cũng sẽ kiểm soát hiệu quả tổn thất tối đa của một giao dịch.
Xác định tổng hợp nhiều chỉ số để tránh các chiến lược giao dịch chỉ số đơn có khả năng bị sai lệch;
EMA có thể đánh giá xu hướng chính để tránh bị sai lệch bởi biến động ngắn hạn; RSI và CCI tránh quá mua quá bán, tăng tỷ lệ thắng;
Thiết lập tự động các lệnh dừng lỗ và chặn để kiểm soát rủi ro giao dịch đơn lẻ, ngăn chặn hiệu quả tình huống cực đoan dẫn đến tổn thất;
Chiến lược này thuộc về chiến lược giao dịch kỹ thuật, không bị ảnh hưởng bởi cơ bản, có thể được sử dụng cho bất kỳ chu kỳ giá trị nào trên thị trường, dễ dàng thực hiện.
Các chỉ số kỹ thuật có thể bị mất hiệu lực khi có những tin tức bất ngờ về lợi nhuận lớn/lợi nhuận;
Khi giá cổ phiếu biến động mạnh, lệnh dừng có thể bị phá vỡ, nên được nới lỏng một cách thích hợp;
Chiến lược này thuộc chiến lược giao dịch tần số ngắn, chi phí giao dịch sẽ ảnh hưởng đến lợi nhuận, phù hợp với chiến lược tần số cao có lợi thế chi phí.
Thêm các thuật toán học máy để tự động điều chỉnh các tham số kết hợp với các yếu tố cơ bản của cổ phiếu;
Tăng cơ chế tự điều chỉnh, thay vì khoảng cách cố định.
Chiến lược giao dịch này tổng hợp nhiều chỉ số phán đoán, với các tham số hợp lý, có thể đạt được lợi nhuận giao dịch trung hạn tương đối ổn định, thuộc chiến lược kỹ thuật dễ thực hiện. Tuy nhiên, cũng nên chú ý đến việc phòng ngừa các thông tin cơ bản quan trọng bất ngờ, các biện pháp phòng ngừa rủi ro như khoảng cách dừng lỗ thích hợp, đây cũng là hướng có thể được tối ưu hóa hơn nữa trong tương lai.
/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 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(title="Moving Average Exponential", shorttitle="EMA", overlay=true)
len4 = input(4, minval=1, title="Length_MA4")
src4 = input(close, title="Source")
offset4 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out4 = ema(src4, len4)
plot(out4, title="EMA", color=color.blue, offset=offset4)
len8 = input(8, minval=1, title="Length_MA8")
src8 = input(close, title="Source")
offset8 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out8 = ema(src8, len8)
plot(out8, title="EMA", color=color.blue, offset=offset8)
//rsioma
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(ema(src, len)), 0), len)
down = rma(-min(change(ema(src, len)), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//plot(rsi, color=color.blue)
//band1 = hline(80)
//band0 = hline(20)
//fill(band1, band0, color=color.purple, transp=90)
//hline(50, color=color.gray, linestyle=plot.style_line)
sig = ema(rsi, 21)
//plot(sig, color=color.purple)
//woodie
cciTurboLength = input(title="CCI Turbo Length", type=input.integer, defval=6, minval=3, maxval=14)
cci14Length = input(title="CCI 14 Length", type=input.integer, defval=14, minval=7, maxval=20)
source = close
cciTurbo = cci(source, cciTurboLength)
cci14 = cci(source, cci14Length)
last5IsDown = cci14[5] < 0 and cci14[4] < 0 and cci14[3] < 0 and cci14[2] < 0 and cci14[1] < 0
last5IsUp = cci14[5] > 0 and cci14[4] > 0 and cci14[3] > 0 and cci14[2] > 0 and cci14[1] > 0
histogramColor = last5IsUp ? color.green : last5IsDown ? color.red : cci14 < 0 ? color.green : color.red
// Exit Condition
// Exit Condition
a = input(12)*10
b = input(15)*10
c = a*syminfo.mintick
d = b*syminfo.mintick
longCondition = crossover(out4, out8) and (rsi >= 65 and cci14>=0)
shortCondition = crossunder(out4, out8) and (rsi <=35 and cci14<=0)
long_stop_level = float(na)
long_profit_level1 = float(na)
long_profit_level2 = float(na)
long_even_level = float(na)
short_stop_level = float(na)
short_profit_level1 = float(na)
short_profit_level2 = float(na)
short_even_level = float(na)
long_stop_level := longCondition ? close - c : long_stop_level [1]
long_profit_level1 := longCondition ? close + d : long_profit_level1 [1]
//long_profit_level2 := longCondition ? close + d : long_profit_level2 [1]
//long_even_level := longCondition ? close + 0 : long_even_level [1]
short_stop_level := shortCondition ? close + c : short_stop_level [1]
short_profit_level1 := shortCondition ? close - d : short_profit_level1 [1]
//short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1]
//short_even_level := shortCondition ? close + 0 : short_even_level [1]
//ha
// === Input ===
//ma1_len = input(1, title="MA 01")
//ma2_len = input(40, title="MA 02")
// === MA 01 Filter ===
//o=ema(open,ma1_len)
//cc=ema(close,ma1_len)
//h=ema(high,ma1_len)
//l=ema(low,ma1_len)
// === HA calculator ===
//ha_t = heikinashi(syminfo.tickerid)
//ha_o = security(ha_t, timeframe.period, o)
//ha_c = security(ha_t, timeframe.period, cc)
//ha_h = security(ha_t, timeframe.period, h)
//ha_l = security(ha_t, timeframe.period, l)
// === MA 02 Filter ===
//o2=ema(ha_o, ma2_len)
//c2=ema(ha_c, ma2_len)
//h2=ema(ha_h, ma2_len)
//l2=ema(ha_l, ma2_len)
// === Color def ===
//ha_col=o2>c2 ? color.red : color.lime
// === PLOTITING===
//plotcandle(o2, h2, l2, c2, title="HA Smoothed", color=ha_col)
tp=input(120)
sl=input(96)
strategy.entry("long", strategy.long, when = longCondition)
//strategy.close("long", when = o2>c2 , comment="ha_long")
strategy.entry("short", strategy.short , when =shortCondition )
//strategy.close("short", when = o2<=c2 , comment = "ha_short" )
//strategy.close("long",when=long_profit_level1 or long_stop_level , comment="tp/sl")
//strategy.close("short",when=short_profit_level1 or short_stop_level , comment="tp/sl")
strategy.exit("x_long","long",profit = tp, loss = sl) //when = o2>c2)
strategy.exit("x_short","short",profit = tp, loss = sl) //when = o2<c2)