Chiến lược đường trung bình động MA chuyển động tương đối thực


Ngày tạo: 2024-01-30 16:04:19 sửa đổi lần cuối: 2024-01-30 16:04:19
sao chép: 0 Số nhấp chuột: 698
1
tập trung vào
1617
Người theo dõi

Chiến lược đường trung bình động MA chuyển động tương đối thực

Tổng quan

TRMMA là một chiến lược theo dõi xu hướng kết hợp chỉ số tương đối mạnh (RSI) và chỉ số mạnh thực sự (TSI). Nó sử dụng các chỉ số RSI và TSI làm tín hiệu mua và bán, hỗ trợ tối ưu hóa chiến lược bằng đường trung bình di chuyển.

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

Chiến lược này bao gồm:

  1. Tính toán TSI Bằng cách tính toán tỷ lệ biến động giá bằng giá trơn bằng hai chỉ số, sau đó chia tỷ lệ trơn bằng giá trị tuyệt đối của tỷ lệ biến động giá, bạn sẽ có chỉ số TSI. Trong đó, thời gian dài là 25 ngày, ngắn hạn là 5 ngày và đường tín hiệu là 14 ngày.

  2. Tính toán RSI Chỉ số RSI có chiều dài 5 với giá đóng cửa là giá nhập.

  3. Đánh giá tín hiệu Khi TSI trên đi qua đường tín hiệu của nó và RSI trên đi qua 50 là tín hiệu mua. Khi TSI xuống đường tín hiệu của nó và RSI xuống 50 là tín hiệu bán.

  4. Màu sắc của dòng K Đánh giá phụ thuộc vào tín hiệu để nhuộm màu K.

  5. Các thông số chiến lược Thiết lập các tham số như tỷ lệ vị trí và số tiền.

Phân tích lợi thế

Chiến lược này kết hợp hai chỉ số TSI và RSI, có thể đánh giá hiệu quả xu hướng thị trường và tình trạng quá mua quá bán, do đó tạo ra tín hiệu giao dịch. Ngoài ra, chiến lược này sử dụng các thiết lập tham số TSI và RSI mạnh mẽ hơn so với các tham số mặc định, có thể nhận được tín hiệu giao dịch sớm và chất lượng cao hơn.

Phân tích rủi ro

Chiến lược này có những rủi ro:

  1. Rủi ro tối ưu hóa tham số. Các tham số tối ưu nhất của TSI và RSI có thể khác nhau trong các thị trường khác nhau, các loại khác nhau và các chu kỳ khác nhau, cần tối ưu hóa cho từng trường hợp cụ thể.

  2. Rủi ro đảo ngược xu hướng. Chiến lược tự nó tập trung vào xu hướng, chiến lược sẽ phải đối mặt với tổn thất lớn nếu một sự cố bất ngờ gây ra điều chỉnh ngắn hạn hoặc đảo ngược xu hướng trung hạn dài hạn.

  3. Tín hiệu tần suất rủi ro. Đối với các tham số mặc định, chiến lược này sử dụng các thiết lập tham số cực đoan hơn, có thể tạo ra các tín hiệu giao dịch thường xuyên hơn, dẫn đến chi phí giao dịch cao hơn và khó thực hiện.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kết hợp với các chỉ số như đường trung bình di chuyển để lọc thêm tín hiệu để giảm bớt các vấn đề giao dịch thường xuyên.

  2. Kiểm tra sự kết hợp tối ưu của các tham số TSI và RSI cho các thị trường và giống khác nhau để tìm các thiết lập tham số tối ưu.

  3. Tăng chiến lược dừng lỗ để kiểm soát rủi ro mất mát đơn lẻ.

  4. Tối ưu hóa quản lý vị trí, tăng vị trí khi xu hướng mạnh và giảm vị trí khi xu hướng yếu.

Tóm tắt

Chiến lược TRMMA kết hợp với TSI và chỉ số RSI để xác định thời điểm mua và bán, có khả năng nắm bắt xu hướng mạnh mẽ. So với việc sử dụng TSI hoặc RSI một mình, nó có thể lọc hiệu quả các tín hiệu giả.

Mã nguồn chiến lược
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// "True relative Movement" or "TRM" for short is a system that combines my two favorite indicators: RSI and TSI. I strived to put together an indicator that combined the best of both 
// in order to help discretionary traders predict market direction, weakness and strength. As with most technical indicators there are "Buy and sell" signals. Similiar to Elder Impulse system, 
///TRM paints bars 3 different colors to display 3 different conditions: Blue for "Buy", Pink for "Sell", and gray for "Take profit/Hold". When the bars turn blue, that means all conditions
/// have been met. When they turn pink, no conditions have been met. When they are gray, only one condition has been met. The system is simple, yet effective. A buy signal is prodcued when 
/// TSI is above the signal line, and RSI is above 50, and vice versa for sell signals. I have modified the default parameters for TSI and RSI for more "aggressive" entries and exits. I may later on
/// name this condition "Fast-TRM" and "Slow-TRM" for when default settings for TSI and RSI are applies, as this is a very robust system as well. 

///******ES 1HR, 15MIN/5MIN SYSTEM***** Go long, when all time frame on a buy signal and vice versa. Take profit when the 5 min chart flips to buy or sell depending on what side of the trade you are on. Close or flip
//// long/short when time all time frames flip to Buy/Hold if short and Sell/Hold if long. Use 20EMA for additional confirmation. 

//@version=4
strategy("TKP-TRM Strategy", overlay=true)
Note = input( 0, title = "TSI standard values are 25, 13, 13, and RSI is 14. Can change the default values to these for 'Slow TRM'")
long = input(title="TSI-Long Length", type=input.integer, defval=25)
short = input(title="TSI-Short Length", type=input.integer, defval=5)
signal = input(title="TSI-Signal Length", type=input.integer, defval=14)
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)
TSI_Signal_Line = (ema(tsi_value, signal))


/////////////////////////////RSI////////////////////////////////////////////////

src = close, len = input(5, minval=1, title="RSILength")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiBuyfilterlevel = input(50, minval = 1, title = "RSI cross above Buy Level")
rsiSellfilterlevel = input(50, minval = 1, title = "RSI cross below Sell Level")

////////////////////////////Bar Coloring//////////////////////////////////////////////////////////

TRM_Buy = ((tsi_value > TSI_Signal_Line) and (rsi > rsiBuyfilterlevel))
TRM_Sell = ( (tsi_value < TSI_Signal_Line) and (rsi <rsiSellfilterlevel))
TRM_Color = TRM_Buy? #3BB3E4 : TRM_Sell? #FF006E : #b2b5be
barcolor(TRM_Color)


///////////////////////////Strategy Paramters////////////////////////////////////////

if (TRM_Buy)
    strategy.entry("Long", strategy.long, comment="Long")

if (TRM_Sell)
    strategy.close("Long", comment="Sell")