Chiến lược băng Hash BTC

Tác giả:ChaoZhang, Ngày: 2024-01-12 12:13:54
Tags:

img

Tổng quan

Chiến lược BTC Hash Ribbons sử dụng chỉ số tỷ lệ băm của mạng Bitcoin để đi dài khi đầu hàng của thợ mỏ kết thúc và phục hồi bắt đầu, và đi ngắn khi thợ mỏ bắt đầu đầu hàng, để kiếm lợi nhuận từ sự biến động của chu kỳ thợ mỏ.

Chiến lược logic

Chiến lược này sử dụng dữ liệu IntoTheBlock để hiển thị tỷ lệ băm hàng ngày của Bitcoin trên dạng xem giao dịch. Nó tính toán trung bình di chuyển nhanh và trung bình di chuyển chậm. Khi trung bình di chuyển nhanh vượt qua mức trung bình di chuyển chậm, nó đi dài, tin rằng sự đầu hàng của thợ mỏ đã kết thúc và sự phục hồi đã bắt đầu. Khi trung bình di chuyển nhanh vượt dưới mức trung bình di chuyển chậm, nó đi ngắn, tin rằng các thợ mỏ đang bắt đầu đầu đầu hàng.

Cụ thể, chiến lược xác định hai đường trung bình động: SignalLine (dài nguyên 30 ngày) và LongLine (dài nguyên 60 ngày). Khi SignalLine vượt trên LongLine, nó được coi là tín hiệu dài; khi SignalLine vượt dưới LongLine, nó được coi là tín hiệu ngắn. Theo tham số hướng, chiến lược sẽ mở các vị trí dài hoặc ngắn khi tín hiệu tương ứng xuất hiện.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là nó sử dụng các đặc điểm của mạng Bitcoin, phản ánh chu kỳ mở rộng và co rút của các thợ mỏ thông qua tỷ lệ hash để tạo ra tín hiệu giao dịch. Điều này tránh phân tích phức tạp về giá Bitcoin, sử dụng dữ liệu mạng như một chỉ số dự đoán, tương đối đơn giản và đáng tin cậy.

Một lợi thế khác là số lượng nhỏ các tham số. Những điều chính chỉ là các cài đặt chiều dài của các đường trung bình di chuyển nhanh và chậm, rất đơn giản mà không cần quá tải. Đồng thời, nhiều thuật toán được cung cấp cho việc lựa chọn đường trung bình di chuyển, cho phép điều chỉnh linh hoạt.

Phân tích rủi ro

Nguy cơ chính của chiến lược này là chất lượng của nhà cung cấp dữ liệu tỷ lệ băm. Nếu có vấn đề về chất lượng dữ liệu, nó sẽ ảnh hưởng nghiêm trọng đến độ chính xác của các tín hiệu. Hiện tại IntoTheBlock cung cấp dữ liệu chất lượng tốt, nhưng tính bền vững của nó cũng cần chú ý.

Một rủi ro khác là rủi ro hệ thống của chính thị trường. Ngay cả khi các đặc điểm của việc mở rộng và thu hẹp các thợ mỏ được nắm bắt, nó vẫn có thể chịu tổn thất trong trường hợp biến động lớn trong thị trường tổng thể.

Hướng dẫn tối ưu hóa

Xem xét kết hợp với các chỉ số giá để tăng sự tự tin khi mở các vị trí, chẳng hạn như kết hợp các chỉ số mô hình đường K, chỉ số trung bình động, v.v. Chỉ mở các vị trí khi cả hai chỉ ra tín hiệu dài hoặc ngắn.

Kiểm tra các chỉ số băng băm dựa trên các chu kỳ khác nhau để xây dựng chiến lược. Ví dụ, sử dụng các chỉ số hàng tuần hoặc hàng tháng để lọc ra quá nhiều tiếng ồn và xác định sự đảo ngược xu hướng trong các khung thời gian lớn hơn.

Hãy thử các mô hình học máy để xác định các điểm đảo ngược chính của tỷ lệ băm. So với các đường trung bình động tham số cố định, các mô hình học máy có thể mô phỏng tốt hơn các đặc điểm phức tạp của sự đảo ngược.

Kết luận

Lý thuyết tổng thể của chiến lược này là rõ ràng và đơn giản. Bằng cách phản ánh chu kỳ khai thác thông qua dữ liệu của mạng Bitcoin, nó tạo ra các tín hiệu giao dịch trong khi tránh dự báo giá phức tạp, mang lại cho nó một độ tin cậy nhất định. Nhưng vẫn cần tối ưu hóa và kết hợp thêm để giảm tác động của rủi ro hệ thống thị trường và cải thiện lợi nhuận ổn định.


/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
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/
// © Powerscooter
// Since IntoTheBlock only provides daily hashrate data, this chart might look chunky on lower timeframes, even with smoothing.

//@version=5
strategy("BTC Hashrate ribbons", overlay = true)
enableDirection = input(0, title="Both(0), Long(1), Short(-1)", group="Direction")
smoothingS = input.string(title="Smoothing short MA", defval="SMA", options=["SMA", "RMA", "EMA", "WMA"], group="Hashrate Settings")
SmoothLengthS = input(30, 'Short MA length', group="Hashrate Settings")
smoothingL = input.string(title="Smoothing long MA", defval="SMA", options=["SMA", "RMA", "EMA", "WMA"], group="Hashrate Settings")
SmoothLengthL = input(60, 'Long MA length', group="Hashrate Settings")
ma_functionS(source, length) =>
	switch smoothingS
		"RMA" => ta.rma(source, length)
		"SMA" => ta.sma(source, length)
		"EMA" => ta.ema(source, length)
		=> ta.wma(source, length)
ma_functionL(source, length) =>
	switch smoothingL
		"RMA" => ta.rma(source, length)
		"SMA" => ta.sma(source, length)
		"EMA" => ta.ema(source, length)
		=> ta.wma(source, length)

HashRate = request.security("INTOTHEBLOCK:BTC_HASHRATE", "D", close)

SignalLine = ma_functionS(HashRate, SmoothLengthS)
LongLine = ma_functionL(HashRate, SmoothLengthL)

plot(ma_functionS(HashRate, SmoothLengthS), "Short MA", color=color.yellow)
plot(ma_functionL(HashRate, SmoothLengthL), "Long MA", color=color.blue)

LongCondition = ta.crossover(SignalLine, LongLine)
ShortCondition = ta.crossunder(SignalLine, LongLine)

//Long Entry Condition
if LongCondition and (enableDirection == 1 or enableDirection == 0)
    strategy.entry("Long", strategy.long)
if LongCondition and (enableDirection == -1)
    strategy.close("Short")

//Short Entry condition
if ShortCondition and (enableDirection == -1 or enableDirection == 0)
    strategy.entry("Short", strategy.short)
if ShortCondition and (enableDirection == 1)
    strategy.close("Long")

Thêm nữa