[TOC] Tôi đã viết một bài viết vào năm 2020 về chiến lược tần số cao.https://www.fmz.com/digest-topic/6228Trong khi đó, tôi đã viết một bài viết về một chiến lược cao tần số và một phần của nó đã được đơn giản hóa và đóng vai trò như một quả cầu dẫn dắt. Xin chào mọi người hãy chia sẻ ý kiến của bạn.
Các tài khoản được trả phí, ví dụ như tiền tệ, hiện tại các nhà sản xuất trả phí một phần trăm nghìn phần năm nếu khối lượng giao dịch hàng ngày là 100 triệu U, trả phí sẽ là 5000 U. Tất nhiên, người nhận vẫn dựa trên tỷ lệ VIP, vì vậy nếu chiến lược không cần phải trả tiền, cấp độ VIP không ảnh hưởng nhiều đến chiến lược tần suất cao. Thông thường, các sàn giao dịch khác nhau có cấp độ khác nhau và tỷ lệ trả phí khác nhau, cần phải duy trì khối lượng giao dịch cao. Trước đó, một số thị trường tiền tệ có sự biến động lớn, trả phí cũng không có lợi nhuận, với sự gia tăng khối lượng nội bộ, trả phí chiếm tỷ lệ lợi nhuận lớn hơn, thậm chí chỉ dựa trên khoản phí trả lại, các nhà giao dịch tần suất cao đều theo đuổi mức phí cao nhất.
Tốc độ. Chính sách tần số cao được gọi là tần số cao vì nó rất nhanh. Tham gia máy chủ colo của sàn giao dịch để có được độ trễ tối thiểu và kết nối ổn định nhất cũng là một trong những điều kiện để có được nội dung. Thời gian nội bộ của chính sách cũng phải là thấp nhất có thể.
Thị trường phù hợp; giao dịch tần suất cao được gọi là ngọc trai của giao dịch định lượng; tin rằng nhiều nhà giao dịch có quy trình đã thử nhưng hầu hết mọi người nên dừng lại vì không kiếm tiền và không tìm ra hướng cải thiện, nguyên nhân chính là tìm thị trường giao dịch sai; giai đoạn khởi đầu của chiến lược nên tìm thị trường kiếm tiền tương đối dễ dàng để giao dịch, điều này có lợi và cũng có phản hồi cải thiện, thuận lợi cho sự tiến bộ của chiến lược; nếu bắt đầu trong thị trường cạnh tranh khốc liệt nhất, cạnh tranh với nhiều đối thủ tiềm năng, cố gắng làm thế nào để mất tiền, bạn sẽ không kiên trì nhanh chóng; Tôi khuyên các cặp giao dịch hợp đồng vĩnh viễn mới, khi đối thủ không nhiều, đặc biệt là giao dịch tương đối lớn, khi kiếm tiền dễ dàng nhất; giao dịch với BTC và ETH là giao dịch lớn nhất, hoạt động nhất nhưng cũng khó tồn tại nhất.
Đối mặt với sự cạnh tranh. Bất kỳ thị trường giao dịch nào đều thay đổi năng động, không có chiến lược giao dịch có thể một lần và mãi mãi, giao dịch tần số cao rõ ràng hơn, bước vào thị trường này trực tiếp đối đầu với một nhóm các nhà giao dịch thông minh và chăm chỉ nhất. Trong thị trường không và chơi trò chơi, bạn kiếm được nhiều hơn người khác kiếm được ít hơn.
Các chiến lược tần số cao có nhiều cách khác nhau:
Chiến lược của tôi là kết hợp xu hướng và thị trường, trước tiên xác định xu hướng, sau đó đặt hàng, đặt hàng ngay lập tức sau khi giao dịch, không giữ hàng tồn kho, dưới đây là giới thiệu mã chiến lược kết hợp.
Mã dưới đây là kiến trúc dựa trên hợp đồng vĩnh cửu của Bitcoin, chủ yếu đăng ký websocket sâu sâu dòng lệnh, thông tin vị trí. Vì thông tin thị trường và thông tin tài khoản được đăng ký riêng biệt, bạn phải liên tục sử dụng read ((-1) để xác định xem có nhận được thông tin mới nhất hay không, sử dụng EventLoop ((1000) để tránh vòng chết trực tiếp, giảm khối lượng hệ thống. EventLoop ((1000) sẽ bị chặn đến với wss hoặc gửi nhiệm vụ đồng thời trở lại, thời gian vượt quá 1000ms.
var datastream = null
var tickerstream = null
var update_listenKey_time = 0
function ConncetWss(){
if (Date.now() - update_listenKey_time < 50*60*1000) {
return
}
if(datastream || tickerstream){
datastream.close()
tickerstream.close()
}
//需要APIKEY
let req = HttpQuery(Base+'/fapi/v1/listenKey', {method: 'POST',data: ''}, null, 'X-MBX-APIKEY:' + APIKEY)
let listenKey = JSON.parse(req).listenKey
datastream = Dial("wss://fstream.binance.com/ws/" + listenKey + '|reconnect=true', 60)
//Symbols是设定的交易对
let trade_symbols_string = Symbols.toLowerCase().split(',')
let wss_url = "wss://fstream.binance.com/stream?streams="+trade_symbols_string.join(Quote.toLowerCase()+"@aggTrade/")+Quote.toLowerCase()+"@aggTrade/"+trade_symbols_string.join(Quote.toLowerCase()+"@depth20@100ms/")+Quote.toLowerCase()+"@depth20@100ms"
tickerstream = Dial(wss_url+"|reconnect=true", 60)
update_listenKey_time = Date.now()
}
function ReadWss(){
let data = datastream.read(-1)
let ticker = tickerstream.read(-1)
while(data){
data = JSON.parse(data)
if (data.e == 'ACCOUNT_UPDATE') {
updateWsPosition(data)
}
if (data.e == 'ORDER_TRADE_UPDATE'){
updateWsOrder(data)
}
data = datastream.read(-1)
}
while(ticker){
ticker = JSON.parse(ticker).data
if(ticker.e == 'aggTrade'){
updateWsTrades(ticker)
}
if(ticker.e == 'depthUpdate'){
updateWsDepth(ticker)
}
ticker = tickerstream.read(-1)
}
makerOrder()
}
function main() {
while(true){
ConncetWss()
ReadWss()
worker()
updateStatus()
EventLoop(1000)
}
}
Như đã nói trước đây, chiến lược tần số cao của tôi đòi hỏi phải xác định xu hướng trước khi thực hiện mua bán. Phán quyết xu hướng ngắn hạn chủ yếu dựa trên dữ liệu giao dịch từng mẩu, tức là AggTrade trong đăng ký, bao gồm hướng giao dịch, giá, số lượng, thời gian giao dịch, v.v.
//bull代表短期看涨,bear短期看跌
let bull = last_sell_price > avg_sell_price && last_buy_price > avg_buy_price &&
avg_buy_amount / avg_buy_time > avg_sell_amount / avg_sell_time;
let bear = last_sell_price < avg_sell_price && last_buy_price < avg_buy_price &&
avg_buy_amount / avg_buy_time < avg_sell_amount / avg_sell_time;
Nếu giá bán gần nhất lớn hơn giá bán trung bình, giá mua gần nhất lớn hơn giá mua trung bình, giá mua khoảng thời gian cố định lớn hơn giá bán, khi đó đánh giá giá cao trong ngắn hạn.
function updatePrice(depth, bid_amount, ask_amount) {
let buy_price = 0
let sell_price = 0
let acc_bid_amount = 0
let acc_ask_amount = 0
for (let i = 0; i < Math.min(depth.asks.length, depth.bids.length); i++) {
acc_bid_amount += parseFloat(depth.bids[i][1])
acc_ask_amount += parseFloat(depth.asks[i][1])
if (acc_bid_amount > bid_amount && buy_price == 0) {
buy_price = parseFloat(depth.bids[i][0]) + tick_size
}
if (acc_ask_amount > ask_amount && sell_price == 0) {
sell_price = parseFloat(depth.asks[i][0]) - tick_size
}
if (buy_price > 0 && sell_price > 0) {
break
}
}
return [buy_price, sell_price]
}
Ở đây vẫn sử dụng ý tưởng cũ, lặp lại chiều sâu đến số lượng cần thiết, ở đây giả sử trong 1s có thể giao dịch thanh toán 10 đồng, không xem xét trường hợp đặt hàng mới, giá bán đơn được thiết lập là vị trí thanh toán 10 đồng bị ảnh hưởng; Cửa sổ thời gian cụ thể cần thiết để tự thiết lập.
let buy_amount = Ratio * avg_sell_amount / avg_sell_time
let sell_amount = Ratio * avg_buy_amount / avg_buy_time
Tỷ lệ đại diện cho tỷ lệ cố định, đại diện cho số lượng mua hàng là tỷ lệ cố định của số lượng đơn hàng bán gần đây. Chiến lược này có thể tự điều chỉnh kích thước đơn hàng theo hoạt động mua bán hiện tại.
if(bull && (sell_price-buy_price) > N * avg_diff) {
trade('buy', buy_price, buy_amount)
}else if(position.amount < 0){
trade('buy', buy_price, -position.amount)
}
if(bear && (sell_price-buy_price) > N * avg_diff) {
trade('sell', sell_price, sell_amount)
}else if(position.amount > 0){
trade('sell', sell_price, position.amount)
}
Trong đó, avg_diff là chênh lệch của giá bán trung bình, chỉ khi giá mua bán đơn đặt hàng lớn hơn một số lần số nhất định giá trị này và quan tâm đến thời điểm thanh toán, nếu giữ đơn đặt hàng trống, thời điểm này cũng sẽ được cân bằng, tránh hóa đơn dài hạn.
var tasks = []
var jobs = []
function worker(){
let new_jobs = []
for(let i=0; i<tasks.length; i++){
let task = tasks[i]
jobs.push(exchange.Go.apply(this, task.param))
}
_.each(jobs, function(t){
let ret = t.wait(-1)
if(ret === undefined){
new_jobs.push(t)//未返回的任务下次继续等待
}
})
jobs = new_jobs
tasks = []
}
/*
需要的任务参数写在param里
tasks.push({'type':'order','param': ["IO", "api", "POST","/fapi/v1/order",
"symbol="+symbol+Quote+"&side="+side+"&type=LIMIT&timeInForce=GTX&quantity="+
amount+"&price="+price+"&newClientOrderId=" + UUID() +"×tamp="+Date.now()]})
*/
mztcoinBạn có thể đặt hàng ngay lập tức sau khi giao dịch, không giữ kho hàng tồn kho, nghĩa là đặt hàng trong cùng một vòng for, đặt giá nào, không giao dịch?
mztcoinThần cỏ mạnh mẽ
DANGOUGrasshopper 1
77924998Grasshopper sử dụng máy chủ AWS nào?
xukittyBạo lực.
bwxiaokGrasshopper đã tạo ra một chương trình cao tốc trả tiền.
Tôi vẫn còn.Có phải chiến lược này có hiệu quả nếu bạn có thể sao chép nó?
Nhà văn: TradeManTôi đã gọi Grasshopper, hy vọng sẽ dạy nhiều hơn, học cách nhập vào giao dịch tần số cao.
♪ Một con sóng trên vòm gió ♪Độc ác
fmzeroThiên thần cỏ mạnh mẽ!
Phân tíchĐộc ác
Cỏ nhỏĐiều đó rất khó khăn và cũng không có ý nghĩa gì.