Khung chiến lược và chức năng API
Trong các chiến lược được viết trongJavaScript
, Python
vàcpp
, cácSleep()
Trong giao dịch trực tiếp, nó được sử dụng để kiểm soát các khoảng thời gian thăm dò chiến lược, và cũng kiểm soát tần suất yêu cầu truy cập giao diện API của sàn giao dịch.
function onTick(){
//Write strategy logic here, and it will be called constantly, such as printing ticker information
Log(exchange.GetTicker())
}
function main(){
while(true){
onTick()
// The function "Sleep" is mainly used to control the polling frequency of cryptocurrency strategies to prevent accessing the exchange API interafce too frequently
Sleep(60000)
}
}
def onTick():
Log(exchange.GetTicker())
def main():
while True:
onTick()
Sleep(60000)
void onTick() {
Log(exchange.GetTicker());
}
void main() {
while(true) {
onTick();
Sleep(60000);
}
}
Các ví dụ cơ bản về các chiến lược tiền điện tử:
function onTick(){
// It is just an example; for all the assets will be used to place orders fast during backtest or in live trading, do not implement the example in live trading
exchange.Buy(100, 1)
}
function main(){
while(true){
onTick()
// The pause period can be customized in millisecond (1 second = 1000 milliseconds)
Sleep(1000)
}
}
def onTick():
exchange.Buy(100, 1)
def main():
while True:
onTick()
Sleep(1000)
void onTick() {
exchange.Buy(100, 1);
}
void main() {
while(true) {
onTick();
Sleep(1000);
}
}
Hãy lấy ví dụ đơn giản nhất, nếu tôi muốn đặt một lệnh mua với giá 100 và số lượng 1 trên sàn giao dịch mỗi giây, tôi có thể viết nó như thế này:
Dưới đây cho thấy các chức năng API thường được sử dụng trong phát triển và thiết kế chiến lược.FMZ Quant Trading Platform API Manual.
Chức năng toàn cầu
Tên chức năng |
Lời giới thiệu ngắn |
Phiên bản |
Trả về |
Số phiên bản hiện tại của hệ thống |
|
Ngủ đi |
Chức năng ngủ, |
tham số là giá trị của milliseconds để tạm dừng |
|
IsVirtual |
Xác định |
môi trường thực thi, trả về một giá trị thực để chỉ ra một backtest
môi trường.
Ừm.Bưu điệnHãy gửi email.
Ừm.Mail_Go∙∙ Không đồng bộ
phiên bản củaMail
chức năng
Ừm.SetErrorFilterLỗi bộ lọc
logs, các tham số là một chuỗi biểu thức bình thường, các logs lỗi
phù hợp với biểu thức thường này sẽ không được tải lên đăng ký
hệ thống.
Ừm.GetPidỪm.
ID quy trình.
Ừm.GetLastErrorHãy lấy cái cuối cùng.
thông báo lỗi.
Ừm.GetCommandHãy có chiến lược.
lệnh tương tác, các thiết lập điều khiển tương tác chiến lược có thể được
yêu cầu: [kiểm soát tương tác]
Ừm.GetMetaHãy nhận ra giá trị của
Meta được viết khi tạo mã đăng ký chiến lược.
Ừm.NhậpĐược sử dụng để làm nguyên liệu
truy cập ổ cắm.
Ừm.HttpQueryGửi yêu cầu HTTP.
Ừm.HttpQuery_Go∙∙ Không đồng bộ
phiên bản củaHttpQuery
chức năng
Ừm.Mã hóaỨng dụng mã hóa dữ liệu
chức năng
Ừm.UnixNanoHãy lấy một nanosecond.
dấu thời gian.
Ừm.UnixỪm, hãy đi đến cấp độ hai.
dấu thời gian.
Ừm.GetOSỨng dụng hệ thống
thông tin.
Ừm.MD5Tính toán MD5
Ừm.DBExecCơ sở dữ liệu
các hàm có thể được sử dụng để thực thi lệnh SQL và thực hiện
Các hoạt động cơ sở dữ liệu.
Ừm.UUIDTạo ra UUID.
Ừm.EventLoopHãy lắng nghe các sự kiện
và trở lại sau khi bất kỳ websocket được đọc hoặc các nhiệm vụ đồng thời nhưexchange.Go
, HttpQuery_Go
, vv được hoàn thành, chức năng này
chỉ có sẵn cho giao dịch trực tiếp.
Ừm._GTiếp tục lưu dữ liệu,
chức năng này thực hiện một chức năng từ điển toàn cầu có thể lưu.
cấu trúc là một bảng KV, được lưu trữ trong cơ sở dữ liệu địa phương của docker
file vĩnh viễn.
Ừm._DNgười xử lý dấu thời gian, chuyển đổi
một con dấu thời gian hoặc đối tượng ngày của một chuỗi thời gian.
Ừm._NLàm định dạng dấu chấm nổi
số, ví dụ:_N(3.1415, 2)
sẽ loại bỏ giá trị của 3.1415 sau khi
hai vị trí thập phân, và hàm trả về 3.14
Ừm._CHãy thử lại chức năng
Lưu ý rằng, ví dụ, dung nạp lỗi cho
cácexchange.GetTicker
chức năng là_C(exchange.GetTicker)
và không_C(exchange.GetTicker())
|
| _ Chữ thậpMột chức năng phán xét chéo._Cross()
hàms trả về giá trị là một con số dương
thời gian thâm nhập lên, một con số âm cho thấy
thời gian thâm nhập xuống, và 0 đề cập đến giá hiện tại của
giống nhau.
Ừm.JSONParseParsing JSON, có thể
chính xác phân tích các chuỗi JSON có chứa các giá trị lớn hơn, sẽ phân tích lớn hơn
các giá trị đến một loại chuỗi.JSONParse()
chức năng không được hỗ trợ
trong hệ thống backtesting.
Chức năng log
Tên chức năng |
Lời giới thiệu ngắn |
Ký hiệu |
Lịch xuất, hỗ trợ cài đặt màu văn bản log, hỗ trợ cài đặt push, hỗ trợ in hình ảnh sau mã hóa base64 |
LogProfit |
Dữ liệu P&L đầu ra, in các giá trị P&L và đường cong năng suất biểu đồ dựa trên các giá trị P&L |
LogProfitReset |
RỗngLogProfit hàm đầu ra tất cả nhật ký thu nhập, biểu đồ thu nhập |
LogStatus |
Thông tin đầu ra trong thanh trạng thái, hỗ trợ thiết kế các điều khiển nút trong thanh trạng thái, hỗ trợ đầu ra biểu mẫu |
EnableLog |
Bật hoặc tắt ghi lại thông tin đơn đặt hàng |
Biểu đồ |
Các chức năng biểu đồ, dựa trên thư viện biểu đồ Highcharts/Highstocks |
KLineChart |
Chức năng vẽ kiểu ngôn ngữ Pine, được sử dụng để vẽ tùy chỉnh tại thời gian chạy chiến lược bằng cách sử dụng kiểu vẽ ngôn ngữ Pine |
LogReset |
Xóa nhật ký, hỗ trợ để giữ lại một số lượng nhất định các nhật ký gần đây thông qua các thiết lập tham số |
LogVacuum |
Reclaim SQLite resources để reclaim storage space occupied by SQLite khi xóa dữ liệu sau khi xóa nhật ký bằng cách gọiLogReset() chức năng |
console.log |
Thông tin gỡ lỗi đầu ra trong cột Debug Information trên trang giao dịch trực tiếp |
console.error |
Thông tin lỗi được xuất ra trong cột Debug Information của trang giao dịch trực tiếp |
Chức năng của Ticker
Chức năng giao dịch
Tên chức năng |
Lời giới thiệu ngắn |
exchange.Buy |
Gửi lệnh mua, hợp đồng tương lai phải chú ý đến hướng giao dịch được đặt đúng, nếu hướng giao dịch và chức năng giao dịch không phù hợp, lỗi sẽ được báo cáo! |
exchange.Sell |
Gửi lệnh bán, hợp đồng tương lai khi đặt lệnh phải chú ý đến hướng giao dịch được thiết lập chính xác, nếu hướng giao dịch và chức năng giao dịch không phù hợp, nó sẽ báo cáo một lỗi |
exchange.CreateOrder |
Gửi lệnh và chỉ định loại giao dịch, hướng giao dịch, giá và số lượng thông qua các tham số |
exchange.CancelOrder |
Hủy lệnh |
exchange.GetOrder |
Nhận thông tin đặt hàng, cấu trúc dữ liệu làTrật tựcấu trúc |
exchange.GetOrders |
Nhận đơn đặt hàng chưa hoàn thành với cấu trúc dữ liệuTrật tựStruct array (danh sách) |
exchange.GetHistoryOrders |
Nhận các lệnh lịch sử của cặp giao dịch hiện tại và hợp đồng; hỗ trợ xác định các sản phẩm giao dịch cụ thể |
exchange.SetPrecision |
Thiết lập độ chính xác của giá và số lượng lệnh của đối tượng trao đổi, sau khi thiết lập hệ thống sẽ tự động bỏ qua sự dư thừa dữ liệu. |
exchange.SetRate |
Đặt tỷ giá hối đoái |
exchange.IO |
Đối với các cuộc gọi giao diện khác liên quan đến các đối tượng trao đổi |
exchange.Log |
Output, ghi lại nhật ký giao dịch và không đặt lệnh |
exchange.Encode |
tính toán mã hóa chữ ký |
exchange.Go |
Các chức năng hỗ trợ không đồng bộ đa đường |
exchange.GetAccount |
Nhận thông tin tài khoản |
exchange.GetAssets |
Yêu cầu thông tin tài sản tài khoản trao đổi |
exchange.GetName |
Nhận tên đối tượng trao đổi |
exchange.GetLabel |
Nhận nhãn của đối tượng trao đổi |
exchange.GetCurrency |
Nhận cặp giao dịch hiện tại |
exchange.SetCurrency |
Chuyển cặp giao dịch |
exchange.GetQuoteCurrency |
Nhận tên của đồng tiền của cặp giao dịch hiện tại |
Các chức năng tương lai
Chức năng mạng
JavaScript Multi-Threading
FMZ Quant Trading Platform thực sự hỗ trợ các chức năng đa luồng củaJavaScript
chiến lược ngôn ngữ từ dưới cùng của hệ thống, và thực hiện các mục tiêu sau:
Các đối tượng |
Hướng dẫn |
Nhận xét |
sợi |
Đối tượng toàn cầu đa luồng |
Các chức năng của thành viên:Thread , getThread , mainThread , vv |
Sợi |
Đối tượng Thread |
Các chức năng của thành viên:peekMessage , postMessage , join , vv |
ThreadLock |
Đối tượng khóa sợi |
Các chức năng của thành viên:acquire , release Chúng có thể được truyền vào môi trường thread như các tham số của chức năng thực thi thread. |
ThreadEvent |
Đối tượng sự kiện |
Các chức năng của thành viên:set , clear , wait , isSet Chúng có thể được truyền vào môi trường thread như một tham số của chức năng thực thi thread. |
ThreadCondition |
Đối tượng điều kiện |
Các chức năng của thành viên:notify , notifyAll , wait , acquire , release Chúng có thể được truyền vào môi trường thread như một tham số của chức năng thực thi thread. |
ThreadDict |
Đối tượng từ điển |
Các chức năng của thành viên:get , set Chúng có thể được truyền vào môi trường thread như các tham số của chức năng thực thi thread. |
FMZ Quant Trading Platform Syntax Manual:JavaScript Multi-Threading
Web3
Thư viện chỉ số TA
Tên chức năng |
Lời giới thiệu ngắn |
TA.MACD |
Tính toán chỉ số trung bình chênh lệch trơn dần theo cấp số nhân |
TA.KDJ |
Tính toán các chỉ số stochastic |
TA.RSI |
Tính toán chỉ số sức mạnh |
TA.ATR |
Tính toán chỉ số biến động thực tế trung bình |
TA.OBV |
Tính toán các chỉ số thủy triều năng lượng |
TA.MA |
Tính toán các chỉ số trung bình động |
TA.EMA |
Tính toán các chỉ số trung bình hàm số |
TA.BOLL |
Tính toán chỉ số Bollinger Band |
TA.Alligator |
Tính toán chỉ số đường cá sấu |
TA.CMF |
Tính toán chỉ số dòng tiền Chaikin |
TA.Highest |
Tính toán giá tối đa trong thời gian |
TA.Lowest |
Tính toán giá tối thiểu trong thời gian |
TA.SMA |
Tính toán các chỉ số trung bình di chuyển đơn giản |
talib Thư viện chỉ số
Thư viện chỉ số talib có nhiều chỉ số giao dịch, chẳng hạn như:talib.CDL2CROWSBạn có thể nhảy đến hướng dẫn cú pháp để biết chi tiết.
Chức năng nhập chiến lược
Thư viện mẫu