Bản gốc: FMZ Quantwww.fmz.com
NO.1
Người cố vấn của Warren Buffett, Benjamin Graham, đã từng đề cập trong cuốn sách <
50% số tiền trong tay được đầu tư vào quỹ cổ phần, và 50% còn lại được đầu tư vào quỹ trái phiếu.
Sự cân bằng lại vị thế tài sản dựa trên các khoảng thời gian cố định hoặc thay đổi thị trường khôi phục tỷ lệ tài sản cổ phiếu đối với tài sản trái phiếu trở lại mức ban đầu là 1: 1.
Đây là toàn bộ logic của toàn bộ chiến lược, bao gồm cả khi mua và bán, và bao nhiêu để mua và bán.
Số 2
Trong phương pháp này, sự biến động của các quỹ trái phiếu thực sự rất nhỏ, thấp hơn nhiều so với sự biến động của cổ phiếu, vì vậy trái phiếu được sử dụng ở đây như
Nếu giá cổ phiếu tăng, giá trị thị trường của cổ phiếu sẽ lớn hơn giá trị thị trường của trái phiếu. Khi tỷ lệ giá trị thị trường của hai loại này vượt quá ngưỡng đặt ra, tổng vị trí sẽ được điều chỉnh lại, cổ phiếu sẽ được bán và trái phiếu sẽ được mua để tỷ lệ giá trị cổ phiếu so với giá trị trái phiếu trở lại mức ban đầu 1: 1.
Ngược lại, nếu giá cổ phiếu giảm, giá trị thị trường của cổ phiếu sẽ thấp hơn giá trị thị trường của trái phiếu. Khi tỷ lệ giá trị thị trường của hai loại trái phiếu này vượt quá mức ngưỡng, tổng vị trí sẽ được điều chỉnh lại, cổ phiếu sẽ được mua và trái phiếu sẽ được bán để tỷ lệ vốn hóa thị trường của giá trị trái phiếu so với giá trị cổ phiếu được khôi phục trở lại mức ban đầu 1: 1.Theo cách này, tỷ lệ giữa sự cân bằng năng động của cổ phiếu và trái phiếu là đủ để tận hưởng lợi nhuận của tăng trưởng cổ phiếu và giảm biến động tài sản.
Vì đây là một chiến lược hoàn chỉnh và chung, tại sao chúng ta không sử dụng nó trên thị trường tiền điện tử?
Số 3
Chiến lược cân bằng năng động tài sản Blockchain trong BTC
Chiến lược logic
Theo giá trị hiện tại của BTC, số dư tài khoản được giữ lại ở mức 6400 đô la tiền mặt và 1 BTC, tức là tỷ lệ ban đầu của tiền mặt so với giá trị thị trường BTC là 1: 1.
Nếu giá BTC tăng lên $7400, nghĩa là giá trị thị trường BTC lớn hơn số dư tài khoản, và sự khác biệt giữa chúng vượt quá ngưỡng đã thiết lập, thì (7400-6400)/7400/2 coin được bán.
Nếu giá của BTC giảm xuống còn $5400, tức là giá trị thị trường BTC ít hơn số dư tài khoản và sự khác biệt giữa chúng vượt quá ngưỡng đặt, mua (6400-5400)/5400/2 đồng xu. Điều đó có nghĩa là BTC đã mất giá và chúng ta cần mua BTC trở lại.
Bằng cách này, bất kể BTC được đánh giá cao hay mất giá, số dư tài khoản và giá trị thị trường của BTC luôn được giữ bằng động.
Số 4
Vậy làm thế nào để thực hiện nó bằng mã lập trình?
Hãy lấy nền tảng giao dịch định lượng FMZ làm ví dụ.
// strategy parameter
var threshold = 0.05; // Threshold
var LoopInterval = 60; // Polling interval(seconds)
var MinStock = 0.001; // Minimum transaction volume
var XPrecision = 4; // Quantity accuracy
var ZPrecision = 8; // Price accuracy
// Withdrawal order function
function CancelPendingOrders() {
}
// Placing Order function
function onTick() {
}
// Main function
function main() {
// Filter non-critical information
SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
while (true) { // Polling mode
if (onTick()) { // Execute the onTick function
CancelPendingOrders(); // Cancel unexecuted pending orders
}
Sleep(LoopInterval * 1000); // Sleep
}
}
Toàn bộ khuôn khổ chiến lược thực sự rất đơn giản, một chức năng
NO.5
Mô-đun lệnh
// Placing Order function
function onTick() {
var acc = _C(exchange.GetAccount); // Get account information
var ticker = _C(exchange.GetTicker); // Get Tick data
var spread = ticker.Sell - ticker.Buy; // Get the bid-ask spread of Tick data
// 0.5 times the difference between the account balance and the current position value
var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
var ratio = diffAsset / acc.Balance; // diffAsset / Account Balance
LogStatus('ratio:', ratio, _D()); // Print ratio and current time
if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
return false; // return false
}
if (ratio > 0) { // If ratio is greater than 0
var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
return false; // return false
}
exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Buy order
} else {
var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
return false; // return false
}
exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell order
}
return true; // return true
}
Logic của giao dịch đặt hàng là rõ ràng, và tất cả các bình luận đã được viết vào mã.
Quá trình chính là như sau:
Tìm thông tin tài khoản.
Lấy dữ liệu Tick.
Tính toán Tick dữ liệu bid-ask spread.
Tính toán số dư tài khoản và chênh lệch giá trị thị trường BTC.
Tính toán điều kiện kích hoạt giao dịch, giá lệnh và số lượng lệnh.
Đặt hàng và trả lại đúng.
NO.6
Hủy bỏ mô-đun lệnh đang chờ
// Withdrawal order function
function CancelPendingOrders() {
Sleep(1000); // Sleep 1 second
var ret = false;
while (true) {
var orders = null;
// Continue to get an array of unexecuted orders, if an exception is returned, continue to get
while (!(orders = exchange.GetOrders())) {
Sleep(1000); // Sleep 1 second
}
if (orders.length == 0) { // If the order array is empty
return ret; // Return to withdrawal status
}
for (var j = 0; j < orders.length; j++) { // Traversing the array of unexecuted orders
exchange.CancelOrder(orders[j].Id); // Cancel unexecuted orders one by one
ret = true;
if (j < (orders.length - 1)) {
Sleep(1000); // Sleep 1 second
}
}
}
}
Các mô-đun hủy lệnh đang chờ thậm chí còn đơn giản hơn, các bước là như sau:
Chờ 1 giây trước khi rút lệnh, bởi vì một số nhà trao đổi có thể có sự chậm trễ của máy chủ.
Tiếp tục nhận được một mảng các lệnh chưa thực hiện, và nếu một ngoại lệ được trả về, tiếp tục thử cho đến khi nó thành công.
Nếu mảng lệnh chưa được thực hiện trống, nó sẽ trả về trạng thái rút tiền ngay lập tức.
Nếu có các lệnh chưa được thực hiện, toàn bộ mảng được đi qua và lệnh được rút lại theo ID lệnh.
NO.7
Chiến lược này là tất cả các mã nguồn lập trình Trên nền tảng giao dịch định lượng FMZ, chỉ với 80 dòng mã, một chiến lược cân bằng năng động blockchain BTC hoàn chỉnh đã được xây dựng thành công.
Số 8
Tiếp theo, chúng ta hãy kiểm tra chiến lược cân bằng năng động đơn giản này để xem nó có hiệu quả hay không.
Môi trường kiểm tra ngượcHiệu suất thử nghiệm sauĐường cong thử nghiệm ngượcMột cái khác, cùng thời kỳ biểu đồ giá BTCAnh có bị sốc không?
BTC đã tiếp tục giảm trong tám tháng, và thậm chí sự sụt giảm lớn nhất đã vượt quá 70%, khiến nhiều nhà đầu tư mất niềm tin vào tài sản blockchain.
Thu nhập tích lũy của chiến lược này cao tới 160%, và tỷ lệ rủi ro lợi nhuận hàng năm vượt quá 5. Đối với một chiến lược giao dịch đơn giản như vậy, lợi nhuận đầu tư này đã vượt quá phần lớn các loại người chơi All-in.
NO.9
Chiến lược cân bằng này, chỉ có một tham số cốt lõi (giá hạn), là một phương pháp đầu tư rất đơn giản không theo đuổi lợi nhuận vượt quá mà là lợi nhuận vững chắc.
Ngược lại với chiến lược xu hướng, chiến lược cân bằng năng động là chống lại xu hướng. Chiến lược này là để giảm vị trí và làm mát xuống khi thị trường quá nóng. Khi thị trường bị bỏ hoang, nó sẽ được ẩn trong, tương tự như quy định kinh tế vĩ mô.
Trong thực tế, chiến lược cân bằng năng động dựa trên ý tưởng rằng giá là không thể đoán trước, đồng thời nắm bắt biến động giá.
Nhìn vào chiều dài của bài viết, không thể có một bài viết toàn diện về tất cả mọi thứ. Như một câu nói cổ xưa
Thị trường chứng khoán không phải là một
Để trực tiếp sao chép mã nguồn, vui lòng truy cập vào chiến lược của chúng tôi ở:https://www.fmz.com/strategy/110900
có rất nhiều chiến lược mà bạn có thể nghiên cứu, tải xuống, thuê, hoặc mua.
NO.10
về chúng tôi
Lý do để vận hành trang web này là để thay đổi tình trạng hiện tại của thế giới giao dịch định lượng nơi thiếu
Nếu bạn cảm thấy bài viết này hữu ích cho bạn, vui lòng chuyển tiếp cho bạn bè của bạn và hỗ trợ chúng tôi. Chia sẻ cũng là một loại trí tuệ!
Liên hệ với chúng tôi
Telegram: FMZ Quant
Email:henry@fmz.com
Trang web:www.fmz.com