Người mới, hãy kiểm tra nó Đưa bạn đến giao dịch định lượng tiền điện tử (4)

Tác giả:Ninabadass, Tạo: 2022-04-18 14:16:06, Cập nhật: 2022-04-18 15:39:07

Người mới, hãy kiểm tra nó Đưa bạn đến giao dịch định lượng tiền điện tử (4)

Trong vài bài viết đầu tiên, tôi đã học được rất nhiều khái niệm cơ bản về vòng tròn tiền điện tử cũng như giao dịch theo chương trình và định lượng. Cuối cùng, chúng ta có thể cắt sang chủ đề chính và nói về chính chiến lược. Đối với [Grid chiến lược], sinh viên làm giao dịch nên đã nghe nói về nó, nhưng nó không quan trọng nếu bạn đã không.bệđã đưa ra các chức năng giao dịch theo chương trình và định lượng của riêng họ, và chiến lược phổ biến nhất và dễ sử dụng nhất làChiến lược lướiTuy nhiên, các chức năng chiến lược lưới điện và chi tiết được cung cấp bởi mỗi nền tảng là khác nhau.

Sau đó, một số học sinh có thể nói: Tôi không biết viết mã! Mã làm tôi lo lắng!

Đó là sự thật. Nó thực sự khá khó khăn cho những sinh viên không chuyên về phần mềm máy tính và không tham gia vào công việc lập trình để phát triển một chiến lược giao dịch hoàn chỉnh của chính họ. Bởi vì bạn phải làm một loạt các công việc trước khi kết nối giao diện nền tảng (có thể chương trình logic giao dịch của bạn chỉ có 100 dòng, nhưng công việc mã hóa khác phải làm là khá nhiều, và nó khó hơn so với viết logic giao dịch.)

Vào thời điểm này, nếu bạn có một công cụ rất tiện dụng, nó sẽ khá đơn giản, ít nhất khó khăn được giảm 70%. Bạn có thể tưởng tượng, nếu bạn chỉ viết logic giao dịch, công việc khác, bao gồm giao diện nền tảng dock, xác minh chữ ký, tệp cấu hình, xây dựng môi trường hoạt động, viết giao diện giao diện người dùng, viết tương tác và các chức năng khác, tất cả đều sẵn sàng, thuận tiện và nhanh chóng như thế nào.

Không tin sao? Hãy thử đi!

Thực hiện một chiến lược lưới điểm đơn giản

Công cụ chúng tôi sử dụng là: FMZ Quant Trading Platform (FMZ.COMMục tiêu của chúng tôi là làm cho thiết kế chiến lược đơn giản và dễ hiểu, vì vậy càng ít thông số và logic càng đơn giản thì càng tốt.

Các quy trình cơ bản để thiết kế chiến lược là như sau:

  • 1.Tóm tắt các yêu cầu về chiến lược

    Nói một cách đơn giản, chúng là những gì chiến lược của bạn sẽ làm, làm thế nào để làm và các chức năng mà nó có. Thông tin đó có thể được viết trong một tài liệu (như sổ tay) trước khi bạn thực sự viết mã chiến lược. Việc phát triển chiến lược trên FMZ rất đơn giản. Nền tảng cung cấp cho bạn các giải pháp cho các yêu cầu này, và bạn không cần phải viết các yêu cầu này trong một số sổ tay (không phải là rất thuận tiện để quản lý). Bạn có thể viết các yêu cầu chiến lược trực tiếp trong ghi chú chiến lược.

    img

    Hãy nhớ để lưu chiến lược khi bạn hoàn thành viết, và sau đó chúng tôi tiếp tục viết các yêu cầu chiến lược (những yêu cầu không thay đổi; bạn có thể ghi lại và phát triển cùng một lúc).

    • Chiến lược được thiết kế như một chiến lược giao dịch tại chỗ; cặp giao dịch làXXX_USDT, nhưBTC_USDT.
    • Mạng lưới được thiết kế để là khoảng cách khác nhau bằng nhau; đơn giản hơn, khoảng cách giữa hai điểm liền kề trong lưới là một sự phân tán cố định.
    • Mạng lưới được thiết kế là một mạng lưới vô hạn có thể mở rộng không giới hạn.
    • Cách đặt hàng sử dụng trật tự thị trường.
  • 2.Xây dựng cấu trúc dữ liệu lưới:

    Đối với những ý tưởng không rõ ràng, chúng ta có thể lập kế hoạch để phân tích ngay từ đầu.

    img

    Các lưới có thể được xây dựng theo cả hai hướng lên và xuống từ điểm cơ sở, giá ban đầu ở đầu.

    1. tăng giá;
    2. giảm giá.
      Upcrossing giá có nghĩa là giá đang tăng cao; chúng ta cần phải bán, và sau đó mua vào khi giá giảm sau khi tăng, để kiếm lợi nhuận. Đi xuống giá có nghĩa là giá đang giảm; chúng ta cần mua, và sau đó bán khi giá tăng sau khi giảm, để kiếm lợi nhuận. Do đó, mỗi đường lưới có hai cách giao dịch: mua (bid) và bán (ask). Hơn nữa, mỗi đường lưới có một thuộc tính cố định, đó là giá được đánh dấu bằng đường, chẳng hạn như A, B, C, D được hiển thị trong hình. Khi thiết kế một chiến lược, trước tiên chúng ta nên tìm raCái gì?chúng ta thực sự muốn, và sau đó nó sẽ thuận tiện để làm điều đó.

    Mã hóa chức năng xây dựng cấu trúc dữ liệu lưới:

    function createNet(begin, diff) {   // begin and diff are parameters; begin is the initial price, and diff is the grid interval (the interval of the equal difference grid is a price)
        var oneSideNums = 10            // The grid generates 10 lines on both upward and downward sides. The above image only shows the situation of generating 2 lines on both sides (A and B on on side; C and D on the other side), and you can imagine the situation of generating 10 lines.
        var up = []                     // used to store the data structure of the upward "grid lines"
        var down = []                   // used to store the data structure of the downward "grid lines"
        for (var i = 0 ; i < oneSideNums ; i++) {    // determine the number of times according to the number of oneSideNums; construct the "grid line" data structure by loop 
            var upObj = {                            // construct the data structure of a upward "grid line"
                buy : false,                         // buy mark; the initial mark is false, which means no buying 
                sell : false,                        // sell mark ...
                price : begin + diff / 2 + i * diff, // the price position represented by the "grid line", which can be observed and processed according to the loop; the price position is getting higher successively
            }
            up.push(upObj)                           // put the constructed "grid line" data structure into the up array 
    
            var j = (oneSideNums - 1) - i            // when in the loop, j changes from 9 to 0 
            var downObj = {
                buy : false,
                sell : false,
                price : begin - diff / 2 - j * diff,
            }
            if (downObj.price <= 0) {                // the price cannot be less than or equal to 0 
                continue
            }
            down.push(downObj)                       // put the constructed "grid line" data structure into the down array 
        }    
    
        return down.concat(up)                       // add "up" after "down", forming a grid array structure with grid line prices from low to high 
    }
    

    Bạn có thể thực hiện từng chức năng để xem kết quả. Debug tool trên FMZ hoặc Backtest system đều rất thuận tiện để gỡ lỗi loại mã ngắn này.

    img

    Dữ liệu được xây dựng có thể được quan sát.

    [
        {"buy":false,"sell":false,"price":5},
        {"buy":false,"sell":false,"price":15},
        {"buy":false,"sell":false,"price":25},
        {"buy":false,"sell":false,"price":35},
        {"buy":false,"sell":false,"price":45},
        {"buy":false,"sell":false,"price":55},
        {"buy":false,"sell":false,"price":65},
        {"buy":false,"sell":false,"price":75},
        {"buy":false,"sell":false,"price":85},
        {"buy":false,"sell":false,"price":95},
        {"buy":false,"sell":false,"price":105},  // 100 is the initial price, the first line goes up is from 105, and the interval is 10 
        {"buy":false,"sell":false,"price":115},  // ... 
        {"buy":false,"sell":false,"price":125},
        {"buy":false,"sell":false,"price":135},
        {"buy":false,"sell":false,"price":145},
        {"buy":false,"sell":false,"price":155},
        {"buy":false,"sell":false,"price":165},
        {"buy":false,"sell":false,"price":175},
        {"buy":false,"sell":false,"price":185},
        {"buy":false,"sell":false,"price":195}
    ]
    
    1. Phân tích logic giao dịch

    Sau khi phân tích cấu trúc dữ liệu của lưới, chúng ta cần xem xét logic giao dịch cụ thể của chiến lược lưới. Trên thực tế, logic mua và bán cũng rất đơn giản. Chúng ta đã vẽ nó trong hình trên. Mua có nghĩa là đi xuống một đường nhất định, và bán có nghĩa là đi lên một đường nhất định. Vậy làm thế nào để biểu hiện upcrossing và downcrossing? Nó cũng rất đơn giản, chúng ta chỉ cần so sánh các vị trí giá của hai khoảnh khắc để đánh giá.

    Tôi sẽ cho bạn thấy bằng hình trước.img

    1 là một thời gian, t2 là một thời gian sau khi t1; để đánh giá xem đường thẳng C là lên chéo hay không, chúng ta chỉ cần đánh giáP1 < CP2 > C. Tương tự như vậy, để đánh giá xem đường thẳng B có phải là đường chéo, chúng ta chỉ cần đánh giáP1 > BP3 < B. Tại thời điểm đó, chúng ta chỉ cần đi qua mỗi đường trong mảng lưới (đi qua thường được cho làkiểm tra từng cái một), và đánh giá xem có phải là trên chéo hay dưới chéo.

    Tôi đã bắt được hành động của giá tăng và giảm. Tôi có thể đặt hàng khi các hành động này được kích hoạt không? Rõ ràng là không thể. Nếu giá tăng và giảm nhiều lần trên một đường, nó sẽ không lãng phí phí xử lý cho các giao dịch lặp đi lặp lại ở cùng một giá? Do đó, vẫn còn một loạt các điều kiện phán quyết sau khi kích hoạt upcross và downcross, đòi hỏi phải sử dụng dấu mua / bán trong cấu trúc dữ liệu đường lưới mà chúng tôi vừa xây dựng (ví dụ: {buy:false,"sell ":false,price:5}).

Cảm ơn bạn đã đọc, và chúng ta hãy tiếp tục giải thích và nghiên cứu trong bài tiếp theo.


Thêm nữa