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

Cấu trúc

Thương mại

Cấu trúc của hồ sơ giao dịch thị trường.

Đăng ký giao dịch thị trường ID, hoặc nếu giao diện trao đổi không cung cấp ID thì sử dụng dấu thời gian để điền vào nó. ID chuỗi Mẫu thời gian millisecond. Thời gian số Giá giao dịch. Giá cả số Số tiền giao dịch. Số tiền số Loại lệnh, tham khảo {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}. Loại số

Chức năng exchange.GetTrades( trả về một mảng Trade hoặc một mảng trống.

{@fun/Market/exchange.GetTrades exchange.GetTrades}

Chú cỏ

Cấu trúc của thị trường.

Dữ liệu ban đầu được trả về bởi giao diện trao đổi, không có thuộc tính như vậy có sẵn cho backtesting. Thông tin đối tượng CácSymboltrường là mã giống giao dịch được xác định bởi nền tảng FMZ.

  • Đối với đối tượng trao đổi tại chỗ, định dạng củaSymbolGiá trị trường (như một ví dụ):BTC_USDT, chỉ ra cặp giao dịch giao ngay BTC_USDT.
  • Đối với đối tượng giao dịch tương lai, định dạng củaSymbolGiá trị trường (như một ví dụ) làBTC_USDT.swap, đại diện cho hợp đồng vĩnh viễn quyền sở hữu USDT cho BTC.
  • Đối với các đối tượng giao dịch tương lai, định dạng củaSymbolGiá trị trường là (ví dụ):BTC_USDT.BTC-240108-40000-C, đại diện cho một hợp đồng quyền chọn mua BTC bằng USDT với ngày thực thi là ngày 8 tháng 1 năm 2024 và giá thực hiện là 40.000.

Biểu tượng chuỗi Giá cao nhất, hoặc nếu giao diện trao đổi không cung cấp giá cao nhất trong 24 giờ, sau đó sử dụng giá bán một để điền. Cao số Giá thấp nhất, hoặc nếu giao diện trao đổi không cung cấp giá thấp nhất trong 24 giờ, sau đó sử dụng giá mua một để điền. Mức thấp số Khoảnh khắc hiện tại chỉ bán với một giá. Bán đi số Khoảnh khắc hiện tại chỉ có một giá. Mua số Giá giao dịch mới nhất. Cuối cùng. số Giá mở theo thời gian, nếu giao diện trao đổi không cung cấp giá mở theo thời gian 24 giờ, thì giá hiện tại được sử dụng để lấp đầy. Mở số Số tiền giao dịch gần đây, về nguyên tắc, số tiền giao dịch tại chỗ là trong baseCurrency, và số tiền giao dịch hợp đồng là trong số hợp đồng. Nếu giao diện trao đổi không cung cấp dữ liệu như vậy, nó sẽ được lấp đầy với dữ liệu có sẵn trong giao diện trao đổi, ví dụ, số tiền giao dịch có thể là trong quoteCurrency. Khối lượng số Mức độ thời gian là một triệu giây. Thời gian số Các vị trí, hầu hết các giao diện trao đổi không cung cấp dữ liệu này và giá trị là 0 khi dữ liệu này không được hỗ trợ. OpenInterest số

Chức năng exchange.GetTicker() trả về một cấu trúc Ticker. Đối với các hợp đồng quyền chọn,exchange.GetTicker()gọi chức năng dễ bị lỗi. Bởi vì thanh khoản thị trường hợp đồng tùy chọn thường kém, thường không có lệnh chờ cho mua đầu tiên hoặc bán đầu tiên.Tickertrường cấu trúcBuyhoặcSelllà 0, một thông báo lỗi sẽ được kích hoạt.

{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetTickers exchange.GetTickers}

Ghi lại

Cấu trúc của K-Line Bar, cấu trúc OHLC tiêu chuẩn, được sử dụng để vẽ các đường K và các chỉ số để tính toán và phân tích.

Mẫu thời gian cấp millisecond, cho một cấu trúc Record có giá trị thuộc tính Time là dấu thời gian bắt đầu của giai đoạn của thanh K-line này. Thời gian số Giá mở cửa. Mở số Giá cao nhất. Cao số Giá thấp nhất. Mức thấp số Giá đóng cửa. Gắn lại. số Số tiền vị trí, hầu hết các giao diện trao đổi không cung cấp dữ liệu này, giá trị là 0 khi dữ liệu này không được hỗ trợ. OpenInterest số Số tiền giao dịch. Về nguyên tắc, số tiền giao dịch tại chỗ là trong baseCurrency và số tiền giao dịch hợp đồng là trong số hợp đồng. Nếu giao diện trao đổi không cung cấp dữ liệu như vậy, nó sẽ được lấp đầy với dữ liệu hiện có từ giao diện trao đổi, ví dụ, số tiền giao dịch trong quoteCurrency. Khối lượng số

Chức năng exchange.GetRecords () trả về một mảng Record hoặc một mảng trống. Mỗi cấu trúc Record đại diện cho một thanh K-line, tức là một thanh K-line.

{@fun/Market/exchange.GetRecords exchange.GetRecords}

Trật tự

Cấu trúc của trật tự.

Các dữ liệu gốc của phản hồi giao diện trao đổi, không có thuộc tính như vậy có sẵn cho backtesting. Thông tin đối tượng CácSymboltrường là mã sản phẩm giao dịch được xác định bởi nền tảng FMZ và định dạng của nó phù hợp vớiSymboltrường của cấu trúc {@struct/Ticker Ticker}

  • Đối với các đối tượng trao đổi tại chỗ, định dạng củaSymbolGiá trị trường là (ví dụ):BTC_USDT, chỉ ra cặp giao dịch giao ngay BTC_USDT.
  • Đối với các đối tượng giao dịch tương lai, định dạng củaSymbolGiá trị trường là (ví dụ):BTC_USDT.swap, đại diện cho hợp đồng vĩnh viễn tiêu chuẩn USDT của BTC.

Biểu tượng chuỗi Order Id, thuộc tính này bao gồm mã sản phẩm trao đổi và ID đặt hàng ban đầu trao đổi, được tách bằng dấu phẩy tiếng Anh.Idđịnh dạng của cặp giao dịch tại chỗETH_USDTthứ tự trao đổi OKX là:ETH-USDT,1547130415509278720. ID chuỗi Giá của lệnh, lưu ý rằng thuộc tính này có thể là 0 hoặc -1 cho lệnh thị trường. Giá cả số Số lượng lệnh được đặt, lưu ý rằng thuộc tính này của lệnh thị trường có thể là số tiền chứ không phải là tiền tệ. Số tiền số Số lượng giao dịch, có thể được ghi 0 nếu giao diện trao đổi không cung cấp dữ liệu này. Số tiền giao dịch số Giá giao dịch trung bình, lưu ý rằng một số sàn giao dịch không cung cấp dữ liệu này. Giá trung bình số Tình trạng đơn đặt hàng, tham khảo {@var/ORDER_STATE/ORDER_STATE_PENDING ORDER_STATE_PENDING}, {@var/ORDER_STATE/ORDER_STATE_CLOSED ORDER_STATE_CLOSED}, {@var/ORDER_STATE/ORDER_STATE_CANCELED ORDER_STATE_CANCELED}, {@var/ORDER_STATE/ORDER_STATE_UNKNOWN OR_ORDER_STATE_UNKNOWN}. Tình trạng số Loại lệnh, tham khảo {@var/ORDER_TYPE/ORDER_TYPE_BUY ORDER_TYPE_BUY}, {@var/ORDER_TYPE/ORDER_TYPE_SELL ORDER_TYPE_SELL}. Loại số Đối với hướng mở và đóng lệnh hợp đồng, tham khảo {@var/ORDER_OFFSET/ORDER_OFFSET_OPEN ORDER_OFFSET_OPEN}, {@var/ORDER_OFFSET/ORDER_OFFSET_CLOSE ORDER_OFFSET_CLOSE}. Tiền bù số Thuộc tính này trong lệnh tại chỗ là""Trong lệnh hợp đồng, thuộc tính này là mã hợp đồng cụ thể. ContractType chuỗi

CácOrdercấu trúc đơn đặt hàng có thể được trả về bởi cácexchange.GetOrder()exchange.GetOrders()các chức năng.exchange.GetOrders()hàm trả về một mảng củaOrdercấu trúc hoặc một mảng trống. Nếu không có thứ tự chưa hoàn thành, nó trả về[], đó là một mảng trống.Statustài sảnOrdercấu trúc thứ tự có thể được so sánh trực tiếp với các hằng số như:ORDER_STATE_PENDINGđể xác định xem chúng có bằng nhau hay không và do đó xác định trạng thái đơn đặt hàng.

Đối với chế độ vị trí một chiều, khi không thể xác định xem lệnh là lệnh đóng (giảm), lệnhOffsettrường được thiết lập theo hướng mở mặc định, đó là,ORDER_OFFSET_OPEN.

{@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetOrders exchange.GetOrders}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}

Sách đặt hàng

Cấu trúc đơn đặt hàng ở độ sâu thị trường.

Giá cả. Giá cả số Số tiền. Số tiền số

Chức năng GetDepth (()) trả về một cấu trúc dữ liệu trong đó các giá trị thuộc tính của Bids, Asks là mảng OrderBook.

{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/Depth Depth}

Độ sâu

Cấu trúc của chiều sâu thị trường.

Mảng lệnh bán, tức là mảng OrderBook, được sắp xếp theo giá từ thấp nhất đến cao nhất, và cấu trúc OrderBook đầu tiên trong mảng có Giá thấp nhất. Hỏi mảng Mảng lệnh mua, tức là mảng OrderBook, được sắp xếp theo giá từ cao nhất đến thấp nhất, và cấu trúc OrderBook đầu tiên trong mảng có Giá cao nhất. Đề nghị mảng Mức độ thời gian là một triệu giây. Thời gian số

Chức năng exchange.GetDepth (()) trả về cấu trúc Depth.

{@fun/Market/exchange.GetDepth exchange.GetDepth}, {@struct/OrderBook OrderBook}

Tài khoản

Cấu trúc của thông tin tài khoản.

Dữ liệu ban đầu được trả về bởi giao diện trao đổi, không có thuộc tính như vậy có sẵn cho backtesting. Thông tin đối tượng Số lượng các loại tiền tệ có sẵn, tại chỗ, nếu cặp giao dịch là BTC_USDT, Số dư đề cập đến số USDT hiện có. Trong hợp đồng tiêu chuẩn U, Số dư đề cập đến số tiền ký quỹ có sẵn (USDT, quoteCurrency). Số dư số Giá trị tài sản bị đóng băng khi lệnh không được thực hiện. FrozenBalance số Số lượng tiền tệ giao dịch có sẵn, tại chỗ, nếu cặp giao dịch là BTC_USDT, Cổ phiếu đề cập đến số lượng BTC hiện có. Cổ phiếu đề cập đến số lượng ký quỹ có sẵn (tiền tệ, Tiền tệ cơ bản) trong hợp đồng dựa trên tiền tệ. Cổ phiếu số Giá trị tài sản bị đóng băng khi lệnh không được thực hiện. Sản phẩm đông lạnh số Chỉ có các đối tượng trao đổi tương lai hỗ trợ lĩnh vực này.Equitytrường này là tổng vốn chủ sở hữu của ký quỹ ký quỹ tương lai theo thiết lập hợp đồng hiện tại. Nếu giao diện trao đổi không cung cấp dữ liệu có liên quan, trường này là 0.

Tài sản số Trường này chỉ được hỗ trợ bởi các đối tượng trao đổi tương lai.UPnLtrường là tổng củaLợi nhuận và lỗ chưa thực hiệncủa tất cả các vị trí được mở bởi ký quỹ tài khoản tương lai theo các thiết lập hợp đồng hiện tại.

UPnL số

Chức năng exchange.GetAccount () trả về cấu trúc tài khoản. Dữ liệu trong cấu trúc trả về phụ thuộc vào cặp giao dịch được đặt hiện tại, mã hợp đồng.

{@fun/Account/exchange.GetAccount exchange.GetAccount}

Tài sản

Cấu trúc của thông tin tài sản tiền tệ cụ thể.

Tên được xác định bởi sàn giao dịch cho tài sản tiền điện tử, có thể khác nhau từ sàn giao dịch sang sàn giao dịch cho cùng một loại tiền điện tử, ví dụ:BTCcó thể được gọi làXBTtrên một số sàn giao dịch. Tiền tệ chuỗi Số dư tài sản tiền tệ có sẵn. Số tiền số Số lượng tài sản bị đóng băng trong đồng tiền. Số lượng đóng băng số

CácFrozenAmountcủa tài sản tiền tệ có thể bao gồm tài sản bị khóa cho các lệnh chưa hoàn thành và phần ký quỹ bị khóa cho các vị trí tương lai.

{@fun/Account/exchange.GetAssets exchange.GetAssets}

Vị trí

Cấu trúc thông tin về vị trí hợp đồng.

Dữ liệu ban đầu được trả về bởi giao diện trao đổi, không có thuộc tính như vậy có sẵn cho backtesting. Thông tin đối tượng CácSymboltrường là mã sản phẩm giao dịch được xác định bởi nền tảng FMZ và định dạng của nó phù hợp vớiSymboltrường của cấu trúc {@struct/Ticker Ticker}

  • Đối với các đối tượng trao đổi tại chỗ, định dạng củaSymbolGiá trị trường là (ví dụ):BTC_USDT, chỉ ra cặp giao dịch giao ngay BTC_USDT.
  • Đối với các đối tượng giao dịch tương lai, định dạng củaSymbolGiá trị trường là (ví dụ):BTC_USDT.swap, đại diện cho hợp đồng vĩnh viễn tiêu chuẩn USDT của BTC.

Biểu tượng chuỗi Kích thước thanh vị trí, được điền bằng cách tính toán nếu giao diện trao đổi không cung cấp dữ liệu này, nó có thể không chính xác. Mức ký quỹ số Kích thước vị trí, thường là số nguyên dương (số số hợp đồng). Số tiền số Số tiền đóng băng vị trí, số lượng vị trí đóng băng tạm thời khi lệnh đóng không được thực hiện. Số lượng đóng băng số Giá trung bình của vị trí, về nguyên tắc là giá trung bình của toàn bộ vị trí (không tham gia thanh toán). Nếu dữ liệu không được cung cấp bởi giao diện trao đổi, nó được lấp đầy với giá trung bình của các vị trí có sẵn trên giao diện trao đổi (tham gia thanh toán). Giá cả số Lợi nhuận / lỗ động của vị trí về nguyên tắc là lợi nhuận / lỗ chưa thực hiện của vị trí, nếu dữ liệu không được cung cấp bởi giao diện trao đổi, nó sẽ được lấp đầy với các dữ liệu lợi nhuận / lỗ khác của giao diện trao đổi. Đơn vị giá trị lợi nhuận và lỗ giống như đơn vị ký quỹ hợp đồng hiện tại. Lợi nhuận số Loại vị trí, tham khảo {@var/POSITION_DIRECTION/PD_LONG PD_LONG}, {@var/POSITION_DIRECTION/PD_SHORT PD_SHORT}. Loại số Mã hợp đồng, xem mô tả của hàm {@fun/Futures/exchange.SetContractType exchange.SetContractType} để biết chi tiết. ContractType chuỗi Mức ký quỹ được chiếm bởi vị trí, được điền bằng 0 nếu giao diện trao đổi không cung cấp dữ liệu này. Lợi nhuận số

Chức năng exchange.GetPositions (()) trả về một mảng vị trí hoặc một mảng trống. Đối với hợp đồng tương lai tiền điện tử, điều quan trọng cần lưu ý là mảng cấu trúc vị trí được trả về bởi hàm exchange.GetPositions(). Đối với các thuộc tính FrozenAmount, Profit và Margin trong cấu trúc dữ liệu vị trí, vì dữ liệu được cung cấp bởi sàn giao dịch không đồng đều, giao diện GetPositions(), định nghĩa của dữ liệu được trả về bởi đối tượng trao đổi có thể khác nhau. Ví dụ, một số sàn giao dịch không có dữ liệu đóng băng vị trí trong dữ liệu vị trí, vì vậy FrozenAmount là 0.

{@fun/Futures/exchange.GetPositions exchange.GetPositions}

Thị trường

Cấu trúc thông tin thị trường về các giống được giao dịch.

Nhận các giá trị như:"btcusdt", cácSymbolLưu ý rằng định dạng và định nghĩa thuộc tính này khác vớiSymboltrường của cấu trúc {@struct/Ticker Ticker} Biểu tượng chuỗi Nhận các giá trị như:"BTC", cácBaseAssettrường ghi tên của đồng tiền giao dịch (tức là: baseCurrency), được viết bằng chữ cái lớn đồng đều. BaseAsset chuỗi Nhận các giá trị như:"USDT", cácQuoteAssettrường ghi tên của đồng tiền được mệnh giá (tức là: quoteCurrency), được viết bằng chữ cái lớn một cách đồng nhất. Quý vị tài sản chuỗi Nhận các giá trị như:0.01, cácTickSizetrường ghi lại giá trị của sự thay đổi nhỏ nhất trong giá của mục giao dịch trên sàn giao dịch. TickSize số Nhận các giá trị như:0.01, cácAmountSizetrường ghi lại giá trị của sự thay đổi tối thiểu trong khối lượng lệnh được đặt trên sàn giao dịch cho giao dịch đó. Số lượng số Nhận các giá trị như:2, cácPricePrecisiontrường ghi lại độ chính xác của giá của mặt hàng giao dịch trên sàn giao dịch, cho thấy giá chính xác đến 2 số thập phân. PricePrecision số Nhận các giá trị như:3, cácAmountPrecisiontrường ghi lại độ chính xác của các đơn đặt hàng được đặt trên sàn giao dịch cho giống được giao dịch, cho thấy các đơn đặt hàng chính xác đến 3 số thập phân. Số lượngChính xác số Nhận các giá trị như:0.001, cácMinQtytrường ghi lại kích thước lệnh tối thiểu trên sàn giao dịch cho giao dịch đó. Tối thiểu số Nhận các giá trị như:1000, cácMaxQtytrường ghi lại số lượng lệnh tối đa có thể được đặt trên sàn giao dịch cho loại giao dịch đó. MaxQty số Nhận các giá trị như:5, cácMinNotionaltrường ghi lại số tiền tối thiểu của lệnh được đặt trên sàn giao dịch cho loại giao dịch đó. Tiêu chuẩn số Nhận các giá trị như:9999999, cácMaxNotionaltrường ghi lại số lượng lệnh tối đa được đặt trên sàn giao dịch cho loại giao dịch đó. MaxNotional số Vùng đấtCtValghi lại giá trị của một hợp đồng của các sản phẩm giao dịch trên sàn giao dịch, trong tiền tệ ghi trongCtValCcyví dụ:CtVallà 0,01CtValCcy"BTC", có nghĩa là một hợp đồng có giá trị 0,01 BTC. CtVal số Vùng đấtCtValCcyghi lại đơn vị giá trị của hợp đồng.BTC, USD, ETH, vv CtValCcy số Vùng đấtInfoghi lại dữ liệu thô cho các loài được trả về bởi giao diện thông tin thị trường của sàn giao dịch. Thông tin đối tượng

Chức năng exchange.GetMarkets( trả về một từ điển có chứaMarketcấu trúc. Do mức độ hỗ trợ khác nhau cho dữ liệu thông tin thị trường bởi mỗi sàn giao dịch, các trường không được hỗ trợ bởi sàn giao dịch sẽ bị bỏ qua.Info field.

{@fun/Market/exchange.GetMarkets exchange.GetMarkets}

Tài trợ

Cấu trúc thông tin tỷ lệ tài trợ của sản phẩm giao dịch. Chỉ có hợp đồng vĩnh viễn tiền điện tử hỗ trợ tỷ lệ tài trợ.

Dữ liệu thô được trả về khi giao diện tỷ lệ tài trợ trao đổi tương lai tiền điện tử được gọi. Thông tin đối tượng CácSymboltrường là mã sản phẩm giao dịch được xác định bởi nền tảng FMZ. Biểu tượng chuỗi Khoảng thời gian tỷ lệ tài trợ, trong milliseconds.28800000có nghĩa là khoảng thời gian 8 giờ. Khoảng cách số Thời gian bắt đầu của giai đoạn tỷ lệ tài trợ tiếp theo (thời gian thanh toán của giai đoạn này), trong millisecond. Thời gian số Tỷ lệ tài trợ sẽ được sử dụng để thanh toán trong giai đoạn này. Tỷ lệ số

Tỷ lệ tài trợ hợp đồng vĩnh viễn của các sàn giao dịch tương lai khác nhau có các phương pháp và cơ chế tính toán khác nhau và chu kỳ thanh toán là 1 giờ, 4 giờ, 8 giờ và một ngày. Tỷ lệ tài trợ hiện tại của các hợp đồng vĩnh viễn trên sàn giao dịch tương lai có giá trị cố định và giá trị biến động được tính toán trong thời gian thực. CácRatetrường là giá trị tỷ lệ tài trợ mà không có%. Nếu bạn muốn chuyển đổi nó thành một giá trị với%, bạn có thể nhân nó bằng 100 và thêm%cuối cùng.

{@fun/Futures/exchange.GetFundings exchange.GetFundings}

Khác Khắp cấu trúc

HttpQuery-options

Cấu trúc JSON này được sử dụng để cấu hình các tham số của hàm HttpQuery và hàm HttpQuery_Go để gửi yêu cầu Http.

Phương pháp yêu cầu, ví dụ:GET, POST, vv phương pháp chuỗi Ví dụ, trong một yêu cầu POST, cơ thể có thể chứa dữ liệu biểu mẫu, JSON, văn bản, v.v. cơ thể chuỗi Mã hóa tập hợp ký tự. Ví dụ, chỉ định mã hóa dữ liệu văn bản trong phần chính là:"UTF-8". Charset chuỗi Cookie là một phần nhỏ dữ liệu được sử dụng để lưu trữ và trao đổi thông tin trạng thái giữa một khách hàng (thường là trình duyệt) và một máy chủ. bánh quy chuỗi Được sử dụng để mô phỏng dấu vân tay của trình duyệt. hồ sơ chuỗi Khi được đặt thành true, cuộc gọi hàm HttpQuery trả về thông điệp phản hồi hoàn chỉnh. Khi được đặt thành false, chỉ có dữ liệu trong thư phản hồi Body được trả về. debug bool Thông tin tiêu đề yêu cầu tồn tại dưới dạng cặp giá trị khóa (cấu trúc JSON) và được sử dụng để truyền thông tin khác nhau, chẳng hạn như loại nội dung, thông tin xác thực, kiểm soát bộ nhớ cache, v.v. tiêu đề JSON Đặt 1000 nghĩa là thời gian nghỉ 1 giây. thời gian nghỉ số

Ví dụ sử dụng:

function main() {
    var options = {
        method: "POST",
        body: "a=10&b=20&c=30",
        charset: "UTF-8",
        cookie: "session_id=12345; lang=en",
        profile: "chrome_103",
        debug: false,
        headers: {"TEST-HTTP-QUERY": "123"},
        timeout: 1000
    }
    var ret = HttpQuery("http://127.0.0.1:8080", options)
    Log(ret)
}

Thông điệp http được gửi khi mã trên được thực thi:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session_id=12345; lang=en
Host: 127.0.0.1:8080
Test-Http-Query: 123
Transfer-Encoding: chunked
User-Agent: Mozilla/5.0 (Macintosh; ...
Accept-Encoding: gzip, deflate, br

e
a=10&b=20&c=30
0

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

HttpQuery-return

Cấu trúc JSON này là cấu trúc dữ liệu được trả về bởi hàm HttpQuery trong chế độ debug khi trường debug trongoptionsCác thông số cấu trúc là đúng.

Mã trạng thái http Mã trạng thái số Yêu cầu thông tin tiêu đề. Tiêu đề JSON Thông tin về cookie. Cookie mảng Thông tin đường dẫn đầy đủ của yêu cầu. Hồ sơ JSON Chiều dài tin nhắn Chiều dài số Nội dung tin nhắn. Cơ thể chuỗi

Một ví dụ về cấu trúc dữ liệu JSON được trả về là:

{
    "StatusCode": 302,
    "Header": {
        "Content-Type": ["text/html"],
        // ...
    },
    "Cookies": [{
        // ...
    }],
    "Trace": {},
    "Length": 154,
    "Body": "..."
}

{@fun/Global/HttpQuery HttpQuery}, {@fun/Global/HttpQuery_Go HttpQuery_Go}

LogStatus-table

Cấu trúc JSON này được sử dụng để cấu hình nội dung bảng được hiển thị trong thanh trạng thái chiến lược.

Sử dụng để thiết lập loại giao diện người dùng và điều khiển để phân tích và hiển thị. Đối với bảng thanh trạng thái, nó được thiết lập cố định là:table. loại chuỗi Sử dụng để đặt tiêu đề của bảng thanh trạng thái. tiêu đề chuỗi Được sử dụng để đặt tiêu đề cột của bảng thanh trạng thái. bông mảng Được sử dụng để thiết lập dữ liệu hàng của bảng thanh trạng thái. Đơn vị đầu tiên của mảng hàng (mảng hai chiều) cũng là một cấu trúc mảng. Chiều dài của cấu trúc mảng này nên phù hợp với số cột bảng (các yếu tố trong cấu trúc mảng tương ứng với tên cột bảng một lần một), tức là hàng đầu tiên của dữ liệu trong bảng. hàng mảng

function main() {
    var tbl = {
        type: "table", 
        title: "title", 
        cols: ["Column 1", "Column 2", "Column 3"], 
        rows: [
            ["Row 1 Column 1", "Row 1 Column 2", "Row 1 Column 3"],
            ["Row 2 Column 1", "Row 2 Column 2", "Row 2 Column 3"],
            ["Row 3 Column 1", "Row 3 Column 2", "Row 3 Column 3"],
        ]
    }
    LogStatus("`" + JSON.stringify(tbl) + "`")
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeOne

Cấu trúc JSON này được sử dụng để cấu hình điều khiển nút trong thanh trạng thái. Cấu trúc JSON điều khiển nút có thể được nhúng vào cấu trúc bảng JSON thanh trạng thái. Cấu trúc này là một cấu trúc phiên bản cũ, và nền tảng vẫn tương thích. Ví dụ về việc xây dựng điều khiển nút thanh trạng thái (sau khi nút được kích hoạt và nhấp, hộp bật lên chứa một điều khiển đầu vào duy nhất, được xây dựng thông qua trường đầu vào):

{
    "type": "button", 
    "cmd": "open", 
    "name": "opening a position", 
    "input": {
        "name": "number of opening positions", 
        "type": "number", 
        "defValue": 1
    }
}

Các điều khiển trong hộp bật lên được kích hoạt bằng cách nhấp vào nút thanh trạng thái điều khiển được thiết lập thông quainputhoặcgroup.

Đối với các điều khiển nút, cài đặt cố định là:button. loại chuỗi Cài đặt kiểu nút lớp học chuỗi Văn bản trên nút điều khiển, nghĩa là tên nút. tên chuỗi Nội dung lệnh tương tác được gửi đến chiến lược khi điều khiển nút kích hoạt một hoạt động nhấp chuột. cmd chuỗi Mô tả của nút điều khiển. Mô tả được hiển thị khi chuột được đặt trên nút trong thanh trạng thái. mô tả chuỗi Thiết lập nút tắt (true) / bật (false). tàn tật bool Khi xây dựng một nút thanh trạng thái cho tương tác, nhập dữ liệu cũng được hỗ trợ.GetCommand()thêm cácinputmục vào cấu trúc dữ liệu JSON của điều khiển nút trong thanh trạng thái để cấu hình điều khiển đầu vào trong hộp bật lên được hiển thị khi nút được kích hoạt. Ví dụ, để thiết lập giá trị củainputtrường:

{
    "name": "Number of opening positions", 
    "type": "number", 
    "defValue": 1,
    "description": "test",                  
}

Mô tả của mỗi trường trong cấu trúc JSON trên:

  • tên Tiêu đề của điều khiển trong hộp pop-up xuất hiện sau khi nút thanh trạng thái kích hoạt một hoạt động nhấp chuột.
  • mô tả Mô tả điều khiển trong hộp bật lên xuất hiện sau khi nút thanh trạng thái kích hoạt một hoạt động nhấp chuột.
  • loại Loại điều khiển trong hộp bật lên sau khi nút thanh trạng thái kích hoạt hoạt động nhấp chuột. Các giá trị có thể của trường loại là như sau:
    1. "number": điều khiển đầu vào số.
    2. "string": điều khiển đầu vào chuỗi.
    3. "selected": điều khiển hộp thả xuống.
    4. "boolean"Đổi điều khiển.
  • defValue Giá trị mặc định của điều khiển trong hộp pop-up xuất hiện sau khi nút thanh trạng thái kích hoạt hoạt động nhấp. Nếu đó là một kiểm soát loại hộp thả xuống (được chọn), trường defValue được sử dụng để thiết lập các tùy chọn hộp thả xuống. Ví dụ:"input": {"name": "Opening quantity", "type": "selected", "defValue": "A|B|C"}, mô tả văn bản của các tùy chọn hộp thả xuống được đặt là A, B, C.

Đối với các trường được mở rộng bởi điều khiển loại hộp thả xuống:

  • các lựa chọn Các tùy chọn trong trường tùy chọn không chỉ hỗ trợ chuỗi, mà còn hỗ trợ việc sử dụng{text: "description", value: "value"}Sử dụng trường defValue để đặt tùy chọn mặc định, có thể là nhiều lựa chọn.
  • nhiều Khi trường này được đặt thành true, nhiều lựa chọn trong hộp thả xuống được hỗ trợ.

đầu vào JSON Cácinputfield cấu hình một điều khiển trong hộp pop-up xuất hiện sau khi nút thanh trạng thái được kích hoạt bằng cách nhấp vào.groupinputlà nó cấu hình một nhóm các điều khiển.groupcó cùng cấu trúc dữ liệu nhưinputVui lòng tham khảo mô tả liên quan củainput field.

nhóm mảng

Một ví dụ vềclassgiá trị của cấu trúc JSON của nút trong thanh trạng thái:

function main() {
    var table = {
        type: "table",
        title: "Status bar button style",
        cols: ["Default", "Original", "Success", "Information", "Warning", "Danger"], 
        rows: [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "Default"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "Original"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "Success"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "Information"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "Warning"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "Danger"}
            ]
        ]
    }
    LogStatus("`" + JSON.stringify(table) + "`")
}

Ví dụ sử dụnggrouplĩnh vực vớiinputtrường:

function main() {
    // The drop-down box control in the page triggered by the testBtn1 button uses the options field to set options and the defValue field to set the default options. This is different from other examples in this chapter that directly use defValue to set options.
    var testBtn1 = {
        type: "button",
        name: "testBtn1",
        cmd: "cmdTestBtn1",
        input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
    }
  
    /* 
      Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
      it also supports the use of ```{text: "description", value: "value"}``` structure. Use the defValue field to set the default option. The default option can be multiple selection (multiple selection is achieved through an array structure). Multiple selection requires setting the additional field multiple to true.
    */
    var testBtn2 = {
        type: "button", 
        name: "testBtn2",
        cmd: "cmdTestBtn2",
        input: {
            name: "testBtn2MultiComboBox", 
            type: "selected", 
            description: "Implementing multiple selection in drop-down box", 
            options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
            defValue: ["A", "C"],
            multiple: true
        }
    }
  
    // Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    while (true) {
        LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
        var cmd = GetCommand()
        if (cmd) {
            Log(cmd)
        }
        Sleep(5000)
    }
}

{@fun/Log/LogStatus LogStatus}

LogStatus-btnTypeTwo

Cấu trúc JSON này được sử dụng để cấu hình điều khiển nút trong thanh trạng thái. Cấu trúc JSON điều khiển nút có thể được nhúng trong cấu trúc bảng JSON thanh trạng thái. Phiên bản mới nhất của cấu trúc JSON nút. Ví dụ về việc xây dựng một nút điều khiển thanh trạng thái (sau khi nút được kích hoạt và nhấp vào, hộp bật lên chứa nhiều điều khiển đầu vào, được xây dựng thông qua trường nhóm):

{
    "type": "button",
    "cmd": "open",
    "name": "Open a position and place an order",
    "group": [{
        "type": "selected",
        "name": "tradeType",
        "label": "order type",
        "description": "market order, limit order",
        "default": 0,
        "group": "trading setup",
        "settings": {
            "options": ["market order", "limit order"],
            "required": true,
        }
    }, {
        "type": "selected",
        "name": "direction",
        "label": "trading direction",
        "description": "buy, sell",
        "default": "buy",
        "group": "trading setup",
        "settings": {
            "render": "segment",
            "required": true,
            "options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
        }
    }, {
        "type": "number",
        "name": "price",
        "label": "price",
        "description": "order price",
        "group": "trading setup",
        "filter": "tradeType==1",
        "settings": {
            "required": true,
        }
    }, {
        "type": "number",
        "name": "amount",
        "label": "order quantity",
        "description": "order quantity",
        "group": "trading setup",
        "settings": {
            "required": true,
        }
    }],
}

Các điều khiển trong hộp bật lên được kích hoạt bằng cách nhấp vào nút thanh trạng thái điều khiển được thiết lập thông quainputhoặcgroup.

Đối với các điều khiển nút, cài đặt cố định là:button. loại chuỗi Văn bản trên nút điều khiển, nghĩa là tên nút. tên chuỗi Nội dung lệnh tương tác được gửi đến chiến lược khi điều khiển nút kích hoạt một hoạt động nhấp chuột. cmd chuỗi Khi xây dựng một nút thanh trạng thái cho tương tác, nhập dữ liệu cũng được hỗ trợ.GetCommand()thêm cácinputmục vào cấu trúc dữ liệu JSON của điều khiển nút trong thanh trạng thái để cấu hình điều khiển đầu vào trong hộp bật lên được hiển thị khi nút được kích hoạt. So với phiên bản cũ của cấu trúc đầu vào, phiên bản mới có một số trường mới và thay đổi:

{
    "type": "selected",
    "name": "test",         
    "label": "topic",       
    "description": "desc",  
    "default": 1,
    "filter": "a>1",
    "group": "group1",
    "settings": { ... },    // Component configuration
}

Mô tả và giải thích của mỗi trường trong cấu trúc JSON trên:

  • loại Loại điều khiển (quảng trường bắt buộc), hỗ trợ các cài đặt sau:"number"hộp đầu vào số,"string"hộp đầu vào chuỗi,"selected"hộp thả xuống,"boolean"Chuyển điều khiển.

  • tên Nếu cấu trúc JSON hiện tại là giá trị trường của trường đầu vào, khi trường nhãn không được đặt, tên là tiêu đề điều khiển trong hộp bật lên xuất hiện sau khi nhấp vào nút thanh trạng thái. Nếu cấu trúc JSON hiện tại là một phần tử trong giá trị trường (cấu trúc mảng) của trường nhóm, tên không được sử dụng làm tiêu đề điều khiển.

    var testBtn3 = {
        type: "button",                     
        name: "testBtn3",
        cmd: "cmdTestBtn3", 
        group: [
            {name: "comboBox1", label: "labelComboBox1", description: "Drop-down box 1", type: "selected", defValue: 1, options: ["A", "B"]}, 
            {name: "comboBox2", label: "labelComboBox2", description: "Drop-down box 2", type: "selected", defValue: "A|B"}, 
            {name: "comboBox3", label: "labelComboBox3", description: "Drop-down box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]}, 
            {
                name: "comboBox4", 
                label: "labelComboBox4", 
                description: "Drop-down box 4", 
                type: "selected", 
                defValue: ["A", "C"], 
                multiple: true, 
                options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
            }
        ]
    }
    

    Theo đoạn trích này, nếu nút thanh trạng thái kích hoạt tương tác, một hộp pop-up sẽ bật lên với 4 điều khiển, tất cả đều là các điều khiển hộp thả xuống. Sau khi thiết lập các tùy chọn cho mỗi điều khiển và nhấp OK để gửi thông báo tương tác, hàm GetCommand trong chiến lược sẽ nhậncmdTestBtn3:{"comboBox1":1,"comboBox2":0,"comboBox3":[0,2],"comboBox4":["A","C"]}. Giá trị của tên trong cấu trúc JSON được sử dụng như tên trường của thông tin tương tác được trả về, ví dụ: comboBox1, comboBox2, v.v.

  • nhãn Sử dụng để đặt tiêu đề của điều khiển.

  • mô tả Mô tả điều khiển: Nếu cấu trúc JSON hiện tại là một phần tử trong giá trị trường (cấu trúc mảng) của trường nhóm, và trường nhãn không được đặt, mô tả là tiêu đề điều khiển trong hộp bật lên xuất hiện sau khi nhấp vào nút thanh trạng thái.

  • mặc định Giá trị mặc định của điều khiển.

  • bộ lọc Selector, được sử dụng để ẩn các điều khiển. Không đặt trường này có nghĩa là không lọc (hiển thị các điều khiển); khi trường này được đặt, không lọc (hiển thị các điều khiển) xảy ra khi biểu thức là đúng. Khi biểu thức là sai, lọc xảy ra (không hiển thị các điều khiển)

  • nhóm Được sử dụng để điều khiển nhóm các điều khiển, có thể được gấp.

  • cài đặt Cấu hình thành phần, điều khiển có một loạt các tùy chọn UI, sử dụng tùy chọn này để thực hiện các thiết lập cụ thể. Ví dụ:

    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
    

    cài đặt: settings.required: Có cần thiết hay không. settings.disabled: Cho dù để vô hiệu hóa. settings.min: Valid when type=number, chỉ ra giá trị tối thiểu hoặc chiều dài tối thiểu của một chuỗi. settings.max: Có hiệu lực khi type=number, chỉ ra giá trị tối đa hoặc chiều dài tối đa của chuỗi. settings.step: Có hiệu lực khi type=number và render=slider, chỉ ra chiều dài bước. settings.multiple: Valid when type=selected, indicating that multiple selections are supported: hợp lệ khi type= được chọn, cho thấy hỗ trợ nhiều lựa chọn. settings.customizable: Nó có giá trị khi type= được chọn, cho thấy tùy chỉnh được hỗ trợ; người dùng có thể trực tiếp chỉnh sửa và thêm các tùy chọn mới trong điều khiển hộp thả xuống. Nếu tùy chọn mới được chỉnh sửa được chọn, tên của tùy chọn được sử dụng thay vì giá trị đại diện cho tùy chọn khi tương tác được kích hoạt. settings.options: Valid when type=selected, indicating the selector option data format: [option 1, option 2], [{name:xxx,value:0}, {name:xxx,value:1}]. settings.render: Loại thành phần hiển thị. Khi type=number, settings.render không được thiết lập (hộp nhập số mặc định), tùy chọn: thanh trượt ( thanh trượt), ngày (chọn thời gian trả về dấu thời gian). Khi type=string, settings.render không được thiết lập (hộp đầu vào một dòng mặc định), tùy chọn: textarea (nhập nhiều dòng), ngày (chọn thời gian trả về yyyy-MM-dd hh:mm:ss), màu sắc (chọn màu trả về #FF00FF). Khi type= được chọn, settings.render không được thiết lập (bộ thả xuống mặc định), tùy chọn: segment (chọn phân đoạn). Khi type=boolean, hiện chỉ có hộp kiểm mặc định.

đầu vào JSON Cácinputfield cấu hình một điều khiển trong hộp pop-up xuất hiện sau khi nút thanh trạng thái được kích hoạt bằng cách nhấp vào.groupinputlà nó cấu hình một nhóm các điều khiển.groupcó cùng cấu trúc dữ liệu nhưinputVui lòng tham khảo mô tả ở trên củainput field.

nhóm mảng

Hỗ trợ cài đặt song ngữ:

{
    type:'selected',
    name:'test',
    label:'选项|options',
    description:'描述|description',
    default:0,                            // Here, the default value is set to 0, which means the value in the option {name:'xxx|yyy',value:0}
    filter:'a>1&&a<10',
    group:'分组|group',
    settings:{
        multiple:true,
        customizable:true,
        options:[{name:'xxx|yyy',value:0}]
    }
}

{@fun/Log/LogStatus LogStatus}

Các tùy chọn biểu đồ

JSON này được sử dụng để thiết lập thông tin cấu hình biểu đồ của chức năng vẽ tùy chỉnhChart(). Thư viện biểu đồ được sử dụng là Highcharts. Chỉ có một vài trường cấu hình cơ bản được liệt kê ở đây.

Trường mở rộng nền tảng. Đặt thành true để sử dụng biểu đồ Highstocks; đặt thành false để sử dụng biểu đồ Highcharts.

__isStock chuỗi

{
    layout: 'single', // Not participating in grouping, displayed separately, default is group 'group'
    height: 300,      // Specify height
}

gia hạn JSON Tên biểu đồ tiêu đề chuỗi Cấu hình trục X. XAxis JSON Cấu hình trục y. Trục y JSON Dòng dữ liệu biểu đồ. loạt JSON

Một ví dụ vẽ đơn giản:

// This chart is an object in JavaScript language. Before using the Chart function, we need to declare an object variable chart to configure the chart.
var chart = {                                           
    // This field marks whether the chart is a general chart. If you are interested, you can change it to false and run it.
    __isStock: true,                                    
    // Zoom tool
    tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},    
    // title
    title : { text : 'Price difference analysis chart'},                       
    // Select range
    rangeSelector: {                                    
        buttons:  [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
        selected: 0,
        inputEnabled: false
    },
    // The horizontal axis of the coordinate axis is: x-axis, and the current setting type is: time
    xAxis: { type: 'datetime'},                         
    // The vertical axis of the coordinate axis is: the y-axis, the default value is adjusted according to the data size
    yAxis : {                                           
        // title
        title: {text: 'Price difference'},                           
        // Whether to enable the right vertical axis
        opposite: false                                 
    },
    // Data series, this property saves each data series (line, K-line chart, label, etc.)
    series : [                                          
        // The index is 0, and the data array stores the data of the index series.
        {name : "line1", id : "line 1,buy1Price", data : []},                          
        // The index is 1, dashStyle:'shortdash' is set, that is, a dashed line is set
        {name : "line2", id : "line 2,lastPrice", dashStyle : 'shortdash', data : []}  
    ]
}
function main(){
    // Call the Chart function to initialize the chart
    var ObjChart = Chart(chart)         
    // Clear
    ObjChart.reset()                      
    while(true){
        // Get the timestamp of this poll, which is a millisecond timestamp. Used to determine the position of the X-axis written to the chart
        var nowTime = new Date().getTime()
        // Get market data
        var ticker = _C(exchange.GetTicker)
        // Get the buy price from the return value of the market data
        var buy1Price = ticker.Buy    
        // Get the last transaction price. In order to prevent the two lines from overlapping, we add 1.
        var lastPrice = ticker.Last + 1
        // Use the timestamp as the X value and the buy price as the Y value to pass into the data sequence of index 0
        ObjChart.add(0, [nowTime, buy1Price])
        // Same as above
        ObjChart.add(1, [nowTime, lastPrice])
        Sleep(2000)
    }
}

{@fun/Log/Chart Chart}

KLineChart-options

JSON này được sử dụng để thiết lập thông tin cấu hình biểu đồ của chức năng vẽ tùy chỉnhKLineChartChỉ một vài trường cấu hình cơ bản được liệt kê ở đây.

Có nên vẽ trên biểu đồ chính hay không. lớp phủ bool Cấu hình trục X. XAxis JSON Cấu hình trục y. Trục y JSON Cấu hình biểu đồ nến. nến JSON

Xin tham khảo:Bài viết đặc biệt về vẽ biểu đồ bằng chức năng KLineChart.

{@fun/Log/KLineChart KLineChart}

SetData-data

JSON được sử dụng để thiết lập dữ liệu để được tải bởi cácexchange.SetData()Dữ liệu JSON là một cấu trúc mảng, trong đó mỗi phần tử cũng là một mảng, cụ thể là[time, data].

Thời gian của dữ liệu, đánh dấu thời gian của dữ liệu này. thời gian số dữ liệu là một mảnh dữ liệu tương ứng với một thời gian nhất định trong dữ liệu tải bởi cácexchange.SetData()Khi chiến lược được thực hiện,exchange.GetData()chức năng nhận được dữ liệu với dấu thời gian tương ứng theo thời gian hiện tại.

dữ liệu chuỗi, số, bool, đối tượng, mảng, vv

Một ví dụ về tải dữ liệu trong hệ thống backtesting và lấy dữ liệu khi backtest chiến lược đang chạy:

/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
    exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
    while(true) {
        Log(exchange.GetData("test"))
        Sleep(1000 * 60 * 60 * 24)
    }
}

{@fun SetData}, {@fun GetData}

EventLoop-return

JSON này là cấu trúc dữ liệu được trả về bởiEventLoop()chức năng.EventLoop()Các trình giám sát chức năng: 1. Bất kỳ sự kiện dữ liệu có thể đọc WebSocket nào; 2. Các sự kiện hoàn thành nhiệm vụ đồng thời với các chức năng exchange.Go (()) và HttpQuery_Go (()); 3. Các sự kiện tin nhắn được gửi trong các luồng được tạo ra bởithreading.Thread()chức năng trong chiến lược ngôn ngữ JavaScript.

Số chuỗi sự kiện. Tiếp theo số Tên sự kiện. Sự kiện chuỗi ID chuỗi sự kiện. ThreadId số Chỉ số sự kiện. Chỉ số số Mẫu thời gian nano. Nano số

Sử dụngexchange.Go()chức năng để thực hiện các yêu cầu đồng thời và cấu trúc dữ liệu sự kiện trả về bởi cácEventLoop() function.

{
    "Seq":1,
    "Event":"Exchange_GetTrades",
    "ThreadId":0,
    "Index":3,
    "Nano":1682068771309583400
}

Trong cùng một lúc thực thi chủ đề của chiến lược ngôn ngữ JavaScript (được tạo ra bởi cácthreading.Thread()chức năng), khipostMessage()chức năng của đối tượng thread được sử dụng để gửi một thông điệp,EventLoop()chức năng trong chủ đề nhận tin nhắn sẽ theo dõi cấu trúc dữ liệu sự kiện sau:

{
    "Seq":4,
    "Event":"thread",
    "ThreadId":1,
    "Index":0,
    "Nano":1727592066508674000
}

@fun/Global/EventLoop EventLoop

DBExec-return

JSON này là cấu trúc dữ liệu được trả về bởiDBExec()hàm; nó cũng được trả về khi thực thi một lệnh SQL sử dụngexec()phương pháp của đối tượng được tạo ra bởiDial() function.

Tên cột của dữ liệu được truy vấn, một mảng chuỗi. các cột mảng Các dữ liệu cụ thể được truy vấn, trong đó mỗi phần dữ liệu tương ứng với tên cột. Giá trị của trường giá trị là một mảng hai chiều, trong đó mỗi phần tử là một mảng và một bản ghi dữ liệu. giá trị mảng

Ví dụ về truy vấn dữ liệu trong cơ sở dữ liệu:

{
    "columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],
    "values":[
        [1518970320000,100,99.1,90,100,12345.6],
        [1518960320000,100,99.1,90,100,12345.6]
    ]
}

{@fun/Global/DBExec DBExec}, {@fun/Global/Dial Dial}

Thread.join-return

JSON này là cấu trúc dữ liệu được trả về bởi hàm thành viênjoin()củaThreadobject, mà lưu một số thông tin về các chủ đề đồng thời trongJavaScriptChiến lược ngôn ngữThreadđối tượng đề cập đến đối tượng thread, được tạo ra bởithreading.Thread().

Thread ID. id số Cho dù sợi dây bị buộc phải kết thúc. kết thúc bool Thời gian chạy của sợi trong nano giây. đã qua số Giá trị trả về của hàm thread. rt số

Mã sau đây kiểm tra cơ chế thời gian củajoin()chức năng củaThreadđối tượng và in giá trị trả về củajoin() function.

function testFunc() {
    for (var i = 0; i < 5; i++) {
        Log(i)
        Sleep(300)
    }
}

function main() {
    var t1 = threading.Thread(testFunc)
    Log(t1.join(1000))  // undefined
    Log(t1.join())      // {"id":1,"terminated":false,"elapsed":1506864000}
} ```


{@fun/Threads/Thread/join join}
Các chức năng tích hợp Các biến tích hợp