Trong các chiến lược đầu cơ, có nhiều loại đầu cơ khác nhau; đầu cơ xuyên thị trường, đầu cơ xuyên thời gian, v.v. Hôm nay chúng ta sẽ nói về đầu cơ xuyên giống, chính xác hơn là chiến lược đầu cơ đa loại tiền tệ trong giao dịch định lượng tài sản blockchain. Các mặt hàng trong giao dịch đầu cơ thông thường đều giống nhau, trong khi đầu cơ đa loại tiền tệ là mua và bán các mặt hàng khác nhau. Trong cùng một loại đầu cơ, chúng ta có thể sử dụng chênh lệch giá như giá mua và giá bán trong giao dịch đầu cơ, và với các giao dịch đầu cơ đa loại đơn giản nhất, giá này chắc chắn sẽ dao động trong phạm vi lặp đi lặp lại.
Ví dụ: Một cặp giao dịch là: LTC_USDT Cặp giao dịch B là: ETH_USDT
TheoA交易对的价格/B交易对的价格
Giá tỷ lệ này là số lượng giá, phân tán giao dịch. tỷ lệ này càng lớn, chúng ta sẽ bán A, mua B. tỷ lệ ngược lại thay đổi quy tắc mua A, bán B. Số tiền USDT bằng nhau trong mỗi lần đầu mối đe dọa thực sự là một chiến lược để giao dịch lưới với giá tương đối mạnh và yếu của LTC / ETH. Ý tưởng chiến lược không phức tạp.
Với một nền tảng giao dịch định lượng của nhà phát minh, bạn có thể dễ dàng viết nguyên mẫu chiến lược: Các mã chính sách cần được trích dẫn khi chạyvà"Draw Line Library":https://www.fmz.com/strategy/27293"Tổ điển giao dịch tiền kỹ thuật số tại chỗ": Đây là những gì mỗi người dùng mang theo trong bảng mẫu khi họ tạo ra một chiến lược mới.
/*backtest
start: 2019-05-01 00:00:00
end: 2019-11-04 00:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"LTC_USDT","balance":100000,"stocks":30},{"eid":"OKEX","currency":"ETH_USDT","balance":100000,"stocks":30}]
*/
/*
A exchanges[0] : EOS_USDT
B exchanges[1] : ETH_USDT
*/
var Interval = 500
// 参数
var numPoint = 100 // 节点数
var distance = 0.08 // 比例间距
var amountPoint = 100 // 节点金额,单位USDT
var arrHedgeList = []
function main () {
var isFirst = true
while(true) {
var rA = exchanges[0].Go("GetTicker")
var rB = exchanges[1].Go("GetTicker")
var tickerA = rA.wait()
var tickerB = rB.wait()
if (tickerA && tickerB) {
var priceRatioSell = tickerB.Buy / tickerA.Sell // B sell , A buy
var priceRatioBuy = tickerB.Sell / tickerA.Buy // B buy , A sell
if (isFirst) {
for (var i = 0 ; i < numPoint ; i++) {
var point = {
priceRatio : priceRatioSell + (i + 1) * distance,
coverRatio : priceRatioSell + i * distance,
amount : (0.08 * i + 1) * amountPoint,
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
for (var j = 0 ; j < arrHedgeList.length; j++) {
if (priceRatioSell > arrHedgeList[j].priceRatio && arrHedgeList[j].isHold == false) {
// B sell , A buy
Log("对冲,价格比", priceRatioSell, "#FF0000")
$.Buy(exchanges[0], arrHedgeList[j].amount / tickerA.Sell)
$.Sell(exchanges[1], arrHedgeList[j].amount / tickerB.Buy)
arrHedgeList[j].isHold = true
LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
$.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
break
}
if (priceRatioBuy < arrHedgeList[j].coverRatio && arrHedgeList[j].isHold == true) {
// B buy , A sell
Log("对冲,价格比", priceRatioBuy, "#32CD32")
$.Sell(exchanges[0], arrHedgeList[j].amount / tickerA.Buy)
$.Buy(exchanges[1], arrHedgeList[j].amount / tickerB.Sell)
arrHedgeList[j].isHold = false
LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
$.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
break
}
}
}
Sleep(Interval)
}
}
Sử dụng cài đặt kiểm tra lại mặc định:
Như bạn có thể thấy, chỉ sử dụng vài chục dòng mã để xây dựng một chiến lược ý tưởng của riêng bạn, trong các nhà phát minh định lượng sàn giao dịch, thực hiện một nguyên mẫu ý tưởng là một điều rất dễ dàng. Nhìn từ biểu đồ trên, tỷ lệ giá này hầu hết thời gian đều biến động, nhưng sẽ có một xu hướng nhất định, hướng tối ưu có thể là kiểm soát vị trí khi bảo hiểm hoặc tham gia nhận dạng xu hướng nhất định.
Về mặt kiểm soát vị trí, bạn có thể tăng số tiền bảo hiểm cho mỗi nút bảo hiểm, ví dụ như trong mã:
if (isFirst) {
for (var i = 0 ; i < numPoint ; i++) {
var point = {
priceRatio : priceRatioSell + (i + 1) * distance,
coverRatio : priceRatioSell + i * distance,
amount : (0.08 * i + 1) * amountPoint, // 每次递增amountPoint的8%
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
Điều này có thể giúp các vị trí tương đối nặng tập trung vào vị trí có tỷ lệ giá cao hơn, tránh chiếm vị trí quá lớn khi tỷ lệ giá thấp hơn. Dĩ nhiên, việc bảo hiểm giữa các loại tiền này rất rủi ro, nếu giá của một đồng tiền tăng liên tục so với giá của đồng tiền khác thì sẽ gây ra tổn thất. Vì vậy, bảo hiểm giữa các loại tiền đòi hỏi sự tương quan mạnh mẽ hơn giữa hai loại tiền.
Chiến lược này chỉ là một bản demo ban đầu và có thể được cải tiến và tối ưu hóa.