Tài nguyên đang được tải lên... tải...

Đánh giá chi tiết về chiến lược tần số cao của tiền kỹ thuật số

Tác giả:Cỏ nhỏ, Tạo: 2023-03-10 10:09:13, Cập nhật: 2024-11-11 22:39:27

img

[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.

Điều kiện giao dịch tần số cao

  • 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.

Nguyên tắc tần số cao

Các chiến lược tần số cao có nhiều cách khác nhau:

  • Tần số cao, cơ hội để tìm được một cái gì đó bằng cách giao dịch hoặc các sàn giao dịch khác, lợi nhuận dựa trên lợi thế của tốc độ.
  • Xu hướng tần số cao, lợi nhuận bằng cách đánh giá xu hướng ngắn hạn
  • Là một thương gia, bạn có thể đăng ký giao dịch ở cả hai bên mua bán, kiểm soát cổ phiếu và kiếm được lợi nhuận bằng cách lấy lại hoa hồng.
  • Nhiều người khác, nhưng không phải tất cả.

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.

Cấu trúc chiến lược

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)
    }
}

Chỉ số chiến lược

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.

  • Số lượng giao dịch trung bình, là tổng hợp các đơn đặt hàng khác nhau theo cùng hướng và giá trong vòng 100 ms, phản ánh kích thước của đơn đặt hàng mua và bán. Dữ liệu này có trọng lượng cao, có thể giả định rằng nếu số lượng giao dịch mua lớn hơn đơn đặt hàng bán, thì đây là thị trường thống trị của người mua.
  • Tỷ lệ đặt hàng hoặc khoảng thời gian đặt hàng, cũng dựa trên dữ liệu giao dịch từng mẩu, số lượng giao dịch trung bình trước đó là không quan tâm đến khái niệm thời gian, không hoàn toàn chính xác, nếu một hướng lệnh mặc dù trung bình giao dịch nhỏ, nhưng tần suất cao, cũng góp phần vào cường độ của hướng này.
  • Giá chênh lệch giá trung bình, điều này dễ hiểu hơn, đó là bán một giảm mua một. Hầu hết các giao dịch hiện tại là chênh lệch giá một tick, nếu giá chênh lệch giá lớn hơn, thường đại diện cho thị trường xuất hiện.
  • Giá mua bán trung bình, tính toán giá bán mua bán riêng biệt cho mỗi giao dịch, so sánh với giá mới nhất. Ví dụ: giá mua gần đây lớn hơn giá mua trung bình, có thể đưa ra phán đoán ban đầu về sự đột phá.

Logic chiến lược

Xác định xu hướng ngắn hạn

//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.

Giá thấp 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.

Số lượng đặt hàng

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.

Các điều kiện dưới đây

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.

Kiến trúc đồng thời

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() +"&timestamp="+Date.now()]})
*/

Dữ liệu giám sát

  • Sự chậm trễ, tốc độ chiến lược tần số cao đã được nhấn mạnh, trong đó nên theo dõi và ghi lại các sự chậm trễ khác nhau, chẳng hạn như đặt hàng xuống, rút tiền, vị trí trở lại, độ sâu, luồng đơn đặt hàng, vị trí, chu kỳ tổng thể, vv.
  • Tỷ lệ giao dịch, tỷ lệ giao dịch theo thống kê là tỷ lệ giao dịch tổng thể, nếu tỷ lệ thấp, còn có chỗ tăng. Trong thời điểm cao điểm, tỷ lệ chiến lược đạt hơn 10% tổng khối lượng giao dịch cũng có thể.
  • Tỷ lệ lợi nhuận sàn giao dịch, mức lợi nhuận sàn giao dịch trung bình theo thống kê, là tiêu chuẩn quan trọng nhất để đánh giá liệu chiến lược có hiệu quả hay không.
  • Tỷ lệ trả lại hoa hồng, tỷ lệ trả lại hoa hồng thống kê là tỷ lệ tổng lợi nhuận, phản ánh mức độ phụ thuộc của chiến lược vào hoa hồng. Giao dịch tất cả các cấp độ trả lại khác nhau, các chiến lược không có lợi nhuận có thể kiếm được lợi nhuận nếu trả lại hoa hồng cao hơn một cấp độ.
  • Tỷ lệ thất bại của đơn đặt hàng, đơn đặt hàng chỉ được giao dịch theo đơn đặt hàng, có thể không được treo vì thời gian bị trì hoãn của đơn đặt hàng, nếu tỷ lệ này cao, điều này cho thấy tốc độ chiến lược không tốt.
  • Tỷ lệ giao dịch của các đơn đặt hàng, nền tảng thường có yêu cầu về tỷ lệ giao dịch, nếu quá thấp, đó là một biểu hiện của chiến lược thu hồi quá thường xuyên và cần phải giải quyết.
  • Khoảng cách mua bán trung bình, dữ liệu này phản ánh khoảng cách đặt hàng và thanh toán chiến lược, bạn có thể thấy phần lớn vẫn chiếm vị trí mua bán một lần.

Các đề xuất khác

  • Giao dịch nhiều đồng tiền, chiến lược tần số cao của bài viết này chỉ đề cập đến thị trường đơn đồng tiền của một sàn giao dịch duy nhất, hạn chế lớn, hầu hết các trường hợp và hầu hết các loại tiền tệ đều không có lợi nhuận, nhưng cũng không thể dự đoán loại tiền tệ nào sẽ có lợi nhuận trong tương lai, vì vậy bạn có thể giao dịch nhiều hoặc thậm chí tất cả các loại tiền tệ, đừng bỏ lỡ cơ hội. Ngay cả khi có giới hạn tần số sàn giao dịch, một robot cũng có thể giao dịch nhiều cặp giao dịch, tất nhiên để có tốc độ tối ưu, một tài khoản con có thể giao dịch một giao dịch, một máy chủ đối với một robot, chỉ cần như vậy sẽ tốn kém nhiều.
  • Theo tỷ lệ lợi nhuận, quyết định số lượng đơn và điều kiện đặt hàng. Giao dịch nhiều loại tiền tệ sẽ dẫn đến chi phí quá cao để thử, nếu theo dõi không có lợi nhuận, hãy sử dụng khối lượng giao dịch tối thiểu và giảm tần suất giao dịch cho đến khi chiến lược theo dõi động lực cho đến khi tỷ lệ lợi nhuận là dương tính, sau đó tăng dần khối lượng giao dịch để nâng cao lợi nhuận.
  • Để có được nhiều thông tin hơn, giao dịch tần số cao là một đặc điểm khác là lượng dữ liệu được xử lý lớn hơn, thông tin được sử dụng nhiều hơn. Tất cả thông tin thị trường của cặp giao dịch đơn lẻ trên một sàn giao dịch nên được tham khảo, và liên tục cũng có thể tham khảo dữ liệu hiện tại, cũng có thể tham khảo dữ liệu của các sàn giao dịch khác, thậm chí dữ liệu của các loại tiền tệ khác, dữ liệu càng nhiều, lợi thế tương ứng càng lớn. Ví dụ, Binance có thể đăng ký thông tin danh sách được ưu tiên của Symbol, vì độ sâu và thời gian đẩy ngắn nhất của luồng đơn đặt hàng là 100ms, chỉ có điều này là thời gian thực, rất có giá trị cho chiến lược tần số cao.
  • Các máy chủ của Binance nằm ở Tokyo và các máy chủ của các sàn giao dịch khác nhau, bạn có thể tham khảo ý kiến của các chuyên gia giao dịch.
  • Mã chiến lược trong bài viết này chỉ là mã ví dụ đơn giản, loại bỏ nhiều chi tiết khó khăn nhưng phải xem xét, và các chỉ số được sử dụng chỉ để tham khảo, không phải sử dụng trực tiếp.

Có liên quan

Thêm nữa

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ì.