Chiến lược giao dịch đột phá cân bằng áp suất có xác suất cao


Ngày tạo: 2023-11-13 11:40:53 sửa đổi lần cuối: 2023-11-13 11:40:53
sao chép: 2 Số nhấp chuột: 669
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch đột phá cân bằng áp suất có xác suất cao

Tổng quan

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.

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Các quy tắc hoạt động cụ thể như sau:

    • Điều kiện mua: Không tăng, chênh lệch MACD nhỏ hơn 0, giá đóng cửa cao hơn đường trung bình EMA
    • Điều kiện bán: Xu hướng tăng, chênh lệch MACD lớn hơn 0, giá đóng cửa thấp hơn đường trung bình EMA
    • Điều kiện dừng lỗ: Giá chạm mức PSAR tiếp theo
    • Điều kiện dừng: đạt tỷ lệ dừng được đặt

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

  1. 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á.

  2. 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.

  3. Thiết lập điểm dừng lỗ để hạn chế lỗ và khóa lợi nhuận.

  4. 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.

  5. 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.

Rủi ro chiến lược

  1. 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.

  2. 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.

  3. Điểm dừng là quá lớn và không thể dừng kịp thời.

  4. 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.

  5. Các loại giao dịch không đủ thanh khoản và không thể dừng lỗ theo kế hoạch.

  6. 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.

Hướng tối ưu hóa chiến lược

  1. Đ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.

  2. Đ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.

  3. Đ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ỗ.

  4. 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í.

  5. 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.

  6. Đ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.

Tóm tắt

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.

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