
Chiến lược này sử dụng nhiều chỉ số kết hợp để xác định hướng xu hướng và thời gian giao dịch, sử dụng phương pháp cân bằng áp lực để tăng tỷ lệ giao dịch.
Sử dụng EMA để tính toán đường trung bình để xác định hướng xu hướng tổng thể. Giá trị EMA lớn hơn đại diện cho xu hướng tăng và giá trị EMA nhỏ hơn đại diện cho xu hướng giảm.
Sử dụng MACD để tính toán chênh lệch giữa đường nhanh và đường chậm, khi chênh lệch lớn hơn 0 nghĩa là hiện đang trong xu hướng tăng, khi chênh lệch nhỏ hơn 0 nghĩa là hiện đang trong xu hướng giảm.
Sử dụng PSAR để tính toán các điểm biến động liên tục, khi giá trị PSAR lớn hơn đại diện cho hiện tại đang trong xu hướng giảm, khi giá trị PSAR nhỏ hơn đại diện cho hiện tại đang trong xu hướng tăng.
Kết hợp ba chỉ số trên để đánh giá sự nhất quán của xu hướng. Khi ba chỉ số kết quả đánh giá là nhất quán, đại diện cho xu hướng rõ ràng hơn, có thể mua hoặc bán hoạt động.
Mở vị trí theo các điều kiện mua và bán, và thiết lập điểm dừng lỗ, thanh toán vị trí khi đạt được điều kiện dừng lỗ hoặc dừng lỗ, để đạt được lợi nhuận.
Các quy tắc hoạt động cụ thể như sau:
Sử dụng nhiều chỉ số để đánh giá xu hướng, nâng cao tính chính xác của đánh giá.
Sử dụng phương pháp cân bằng áp lực, mở vị trí khi xu hướng rõ ràng, tăng xác suất lợi nhuận.
Thiết lập điểm dừng lỗ để hạn chế lỗ và khóa lợi nhuận.
Hệ thống giao dịch có quy tắc rõ ràng, phù hợp với giao dịch theo quy trình.
Có thể được tối ưu hóa thông qua các tham số, điều chỉnh để thích ứng với các giống và chu kỳ giao dịch khác nhau.
Có thể có những sai lầm trong việc đánh giá xu hướng, dẫn đến sai lầm trong việc mở đầu.
Thị trường có thể biến động mạnh và các chỉ số có thể phát ra tín hiệu sai.
Điểm dừng là quá lớn và không thể dừng kịp thời.
Thiết lập tham số không đúng, dẫn đến giao dịch quá thường xuyên hoặc không thể mở vị trí kịp thời.
Các loại giao dịch không đủ thanh khoản và không thể dừng lỗ theo kế hoạch.
Có thể giảm rủi ro bằng cách tối ưu hóa các tham số, điều chỉnh điểm dừng lỗ và chọn các loại giao dịch có tính thanh khoản tốt.
Điều chỉnh tham số chu kỳ EMA, tối ưu hóa tính chính xác của xu hướng phán đoán.
Điều chỉnh tham số chu kỳ MACD đường nhanh và đường chậm để tối ưu hóa độ nhạy của chỉ số MACD.
Điều chỉnh các tham số tỷ lệ dừng lỗ để đạt được sự cân bằng tối ưu của dừng lỗ.
Thêm các chỉ số phụ trợ khác để tăng độ chính xác trong việc chọn thời gian mở vị trí.
Tối ưu hóa lựa chọn các loại giao dịch, chọn các loại có tính thanh khoản tốt và biến động lớn.
Điều chỉnh chu kỳ giao dịch để phù hợp với đặc điểm thị trường của các giống khác nhau.
Chiến lược này sử dụng nhiều chỉ số để đánh giá xu hướng, mở vị trí khi xu hướng rõ ràng, và thiết lập dừng lỗ, có thể nắm bắt hiệu quả xu hướng thị trường, thu được lợi nhuận tương đối lý tưởng trong trường hợp đảm bảo lợi nhuận nhất định. Bằng cách tối ưu hóa tham số và thêm các chỉ số hỗ trợ khác, bạn có thể nâng cao hơn nữa sự ổn định và lợi nhuận của chiến lược. Quy tắc giao dịch của chiến lược này rõ ràng, dễ hiểu và rất phù hợp với giao dịch lập trình.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
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/
// © exlux99
//@version=4
strategy(title = "Crypto Scalper", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03)
len = input(60, minval=1, title="Length EMA")
src = input(close, title="Source")
out = ema(src, len)
//
fast_length = input(title="Fast Length MACD", type=input.integer, defval=12)
slow_length = input(title="Slow Length MACD", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
// Calculating
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
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)
tplong=input(0.245, step=0.005)
sllong=input(1.0, step=0.005)
tpshort=input(0.055, step=0.005)
slshort=input(0.03, step=0.005)
if (uptrend and hist >0 and close < out)
strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')
if (not uptrend and hist <0 and close > out)
strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')