Chiến lược Ribbon băm Bitcoin


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

Chiến lược Ribbon băm Bitcoin

Tổng quan

Chiến lược hashband của Bitcoin sử dụng chỉ số hash rate của mạng Bitcoin, làm nhiều khi người thợ mỏ kết thúc suy thoái và bắt đầu phục hồi, làm rỗng khi người thợ mỏ bắt đầu suy thoái, và kiếm lợi nhuận bằng cách nắm bắt sự biến động của chu kỳ thợ mỏ.

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

Chiến lược này sử dụng dữ liệu của IntoTheBlock để hiển thị tỷ lệ hash hàng ngày của Bitcoin trong giao dịch. Nó tính toán đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm, làm nhiều hơn khi đi qua đường trung bình di chuyển chậm trên đường trung bình di chuyển nhanh, cho rằng thợ mỏ đã kết thúc và bắt đầu phục hồi; làm trống khi đi qua đường trung bình di chuyển chậm dưới đường trung bình di chuyển nhanh, cho rằng thợ mỏ bắt đầu suy sụp.

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

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là sử dụng các đặc điểm của mạng bitcoin, phản ánh chu kỳ mở rộng và thu hẹp của 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à ít tham số. Chủ yếu là thiết lập độ dài của trung bình nhanh và trung bình chậm, rất đơn giản, không được tối ưu hóa quá mức. Đồng thời, thuật toán trung bình di chuyển cũng cung cấp nhiều lựa chọn, có thể điều chỉnh linh hoạt.

Phân tích rủi ro

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

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

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

Có thể xem xét kết hợp với chỉ số giá, khi chỉ số giá cũng cho thấy tín hiệu đảo ngược, để tăng độ tin cậy mở vị trí. Ví dụ: kết hợp với chỉ số hình dạng K-line, chỉ số trung bình di chuyển, v.v., khi cả hai cùng một lúc nhắc nhở làm nhiều hoặc làm trống, hãy mở vị trí.

Có thể thử nghiệm các chiến lược xây dựng các chỉ số băng tần hash của các chu kỳ khác nhau. Ví dụ: sử dụng các chỉ số đường tròn hoặc đường trăng, lọc ra quá nhiều tiếng ồn và đánh giá mức độ đảo ngược xu hướng lớn hơn.

Các mô hình học máy có thể thử các điểm quan trọng để xác định tỷ lệ đảo ngược hash. Mô hình học máy có thể mô phỏng các đặc điểm phức tạp của sự đảo ngược tốt hơn so với trung bình di chuyển tham số cố định.

Tóm tắt

Chiến lược này có ý tưởng tổng thể rõ ràng, đơn giản, phản ánh chu kỳ của thợ mỏ thông qua dữ liệu của mạng bitcoin, hình thành tín hiệu giao dịch, tránh dự báo giá phức tạp và có độ tin cậy nhất định. Tuy nhiên, vẫn cần tối ưu hóa và kết hợp hơn nữa, giảm tác động của rủi ro hệ thống thị trường, tăng khả năng lợi nhuận ổn định.

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