Chiến lược kết hợp Ichimoku Mixed Macd và Tsi


Ngày tạo: 2023-11-27 11:50:43 sửa đổi lần cuối: 2023-11-27 11:50:43
sao chép: 0 Số nhấp chuột: 641
1
tập trung vào
1617
Người theo dõi

Chiến lược kết hợp Ichimoku Mixed Macd và Tsi

1. Ghi chú về chiến lược

Chiến lược này sử dụng nhiều chỉ số kỹ thuật như bảng cân bằng, chỉ số Macd, chỉ số dòng tiền Chaikin và chỉ số dao động Tsi để đánh giá chính xác xu hướng thị trường và giao dịch ngắn.

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

Chiến lược sử dụng các chỉ số như đường chân trời, đường chuẩn và đường dẫn trong bảng cân bằng đầu tiên để xác định xu hướng giá trong ngày. Đồng thời kết hợp với tín hiệu chéo đường trung bình nhanh và chậm của Macd, và chỉ số dòng tiền và chỉ số biến động để xác định dòng tiền vào và ra. Quyết định mua bán sau khi đánh giá tổng hợp nhiều chỉ số.

Khi đường viền trên đường viền vượt qua đường viền, đường dẫn trên 0 và giá đóng cửa ở trên mây của bảng cân bằng đầu tiên, đó là tín hiệu đi lên. Ngược lại, khi đường viền dưới đường viền vượt qua đường viền, đường dẫn dưới 0 và giá đóng cửa ở dưới mây, đó là tín hiệu đi xuống. Chiến lược đồng thời phát hiện xem biểu đồ thẳng của Macd có phải là giá trị dương hay không và chỉ số dòng chảy vàng Chaikin và chỉ số dao động có đồng hướng dương hay không, nếu chỉ số đồng hướng đi lên, mua nhiều hơn; nếu chỉ số đồng hướng đi xuống, thì bán trống.

Khi chỉ số phát ra một tín hiệu ngược lại với trước đó, hãy thực hiện giao dịch ngược trước khi thanh toán vị trí.

Ba, lợi thế chiến lược.

  1. Sử dụng nhiều chỉ số đánh giá tổng hợp để tăng độ chính xác của đánh giá.

  2. Các hoạt động ngắn gọn, theo dõi biến động thị trường trong thời gian thực.

  3. Không cần sự can thiệp của con người, giao dịch hoàn toàn tự động.

Chiến lược, rủi ro và giải pháp

  1. Các chỉ số khác nhau có thể đưa ra phán đoán sai lầm. Một số điều kiện phán đoán có thể được nới lỏng một cách thích hợp để giảm tỷ lệ sai lầm.

  2. Giao dịch đường ngắn tần số cao có chi phí xử lý cao và khó nắm bắt xu hướng. Có thể kéo dài chu kỳ giữ vị trí thích hợp, theo đuổi lợi nhuận dư thừa để bù đắp chi phí.

  3. Thiết lập không mất mát có thể gây ra tổn thất lớn hơn. Có thể kết hợp với ATR để thiết lập điểm dừng thích hợp hoặc dừng di chuyển.

V. Chiến lược tối ưu hóa

  1. Tối ưu hóa các tham số. Điều chỉnh tham số đường trung bình để phù hợp với các chu kỳ và giống khác nhau.

  2. Thêm cơ chế dừng lỗ. Động thái thiết lập đường dừng lỗ di động kết hợp với chỉ số ATR.

  3. Tăng quản lý vị trí. Đổi hướng tỷ lệ giao dịch.

  4. Kết hợp công nghệ học máy để tối ưu hóa các chỉ số và tín hiệu.

VI. Kết luận

Chiến lược này sử dụng nhiều chỉ số kỹ thuật để đánh giá xu hướng biến động thời gian thực, giao dịch đường ngắn tần số cao. Mặc dù có một số rủi ro, nhưng có thể được cải thiện bằng cách tối ưu hóa. Chiến lược này đáng để nghiên cứu sâu hơn và kiểm tra thực tế, giảm rủi ro giao dịch bằng cách tăng mức dừng lỗ và quản lý vị trí.

Mã nguồn chiến lược
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
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("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0)



//Inputs
ts_bars = input(10, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(30, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(52, minval=1, title="Senkou-Span B Bars")
cs_offset = input(26, minval=1, title="Chikou-Span Offset")
ss_offset = input(26, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)


ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
fast_length = input(title="Fast Length", type=input.integer, defval=17)
slow_length = input(title="Slow Length", type=input.integer, defval=28)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)

// 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


tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(close, cs_offset-1) > 0
cs_cross_bear = mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low


//CMF
lengthA = input(8, minval=1, title="CMF Length")
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthA) / sum(volume, lengthA)


//TSI
long = input(title="Long Length", type=input.integer, defval=8)
short = input(title="Short Length", type=input.integer, defval=8)
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)



bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0  and mf < -0.1 and tsi_value < 0



strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.entry("Short", strategy.short, when=bearish and short_entry)

strategy.close("Long", when=bearish and not short_entry)
strategy.close("Short", when=bullish and not long_entry)