[TOC]
Tìm kiếm FAQ để dễ dàng xem. Làm thế nào để tìm kiếm một từ khóa trên bài đăng?
Sử dụngCtrl + f
để mở trang và tìm kiếm; nhập một từ khóa, ví dụ:
Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Weixin:
Tại sao?mua một giávàbán một giáthu được bằngGetTicker
và những người thu được bằngGetDepth
là khác nhau?
Dữ liệu củaGetTicker
vàGetDepth
Có một sự chậm trễ thời gian, vì vậy dữ liệu sẽ thay đổi.GetTicker
sẽ nhanh hơn một chút, cho dữ liệu là ít hơn dữ liệu thu được bởiGetDepth
.
exchang.GetOrders
nhận được các lệnh chưa hoàn thành, vì vậy làm thế nào để có được các lệnh thực hiện?
Có một API khác để truy vấn lệnh, đó là,exchange.GetOrder
Nó truy vấn các lệnh của tất cả các loại, theoID
Nhập thứ tự.ID
Do đó, để có được lệnh thực thi, bạn cần phải xem liệu nền tảng cung cấp loại giao diện này; giao diện được cung cấp bởi mỗi nền tảng là khá khác nhau.
TrongJavaScript
Các chiến lược, kết quả của chuỗi thời gian chuyển đổi đến dấu thời gian là sai.
Bạn cần phải xem xét của múi giờ trong cài đặt thời gian hệ thống.
Tại sao giá mở và giá đóng tôi in lại giống nhau?
1.Có thể vào thời điểm bạn in, thực sự không có giao dịch trên nền tảng, vì vậy giá mở, đóng, giá cao nhất và thấp nhất của BAR luôn giống nhau. 2.Bạn cần phải kiểm tra xem BAR bạn quan sát là BAR cuối cùng, vì giá mở, đóng, giá cao nhất và thấp nhất của BAR cuối cùng là giống nhau.
Lỗi xác minh thời gian với máy chủ, chẳng hạn nhưSignature not valid:Invalid submission time or incorrect time format
Lỗi này là vấn đề của các hệ điều hành cũ nhưwindows2000/2003/XP
, xin vui lòng tham khảo:
Chúng tôi khuyên bạn nên sử dụngLinux
máy chủ, hoặc bạn có thể cài đặt phần mềm đồng bộ hóa thời gian trong nhữngwindows
hệ thống khi xảy ra lỗi, để đồng bộ hóa thời gian ở tần số cao và ngăn chặn lỗi xác minh thời gian xảy ra.
ATR
(TR
) của Mylanguage và những người được tính toán bởiTA
/talib
thư viện?Lý do là phương pháp tính toán của các chỉ số Mylanguage không phù hợp với thuật toán cơ bản củaTA
/talib
cả hai đều đúng, nhưng các thuật toán khác nhau. tương tự nhưMACD
, một số sử dụng mộtDIF-DEA
, và một số sử dụng hai lầnDIF-DEA
, cả hai đều đúng.
Nó đại diện cho cái gì, nếu tên nền tảng làFutures_Esunny
?
Nó đại diện cho đối tượng trao đổi củaNghị định thư Esunny, mà có thể được trả về bởi các chức năngexchange.GetName()
.
Hiện tại, đài FMZ quốc tế chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
#EXPORTTEST...#END
tuyên bố các biến trong tham chiếu khối mã nhiều giai đoạn.REF
được sử dụng khi tham chiếu trong chiến lược, dữ liệu sẽ được tham chiếu theo thời gian hiện tại, khác với những gì bạn mong đợi.Dữ liệu nhiều thời gian bạn cần sẽ được xử lý trong#EXPORTTEST...#END
, để bạn có thể sử dụng trực tiếp bên ngoài.
Tôi không thể tìm thấy tài liệu API FMZ.
Bạn có thể nhập trực tiếp địa chỉ trang:https://www.fmz.com/api, hoặc nhấp vào liên kết như hình sau:
Tại sao?MACD
Tính toán của FMZ khác với tính toán của nền tảng?
Khi so sánh, cần phải chú ý đến việc liệu các giai đoạn đường K có giống nhau hay không,MACD
Các thông số chỉ số là giống nhau, các khoảng thời gian là giống nhau, và các biểu tượng là giống nhau.MACD
; một số làDIF-DEA
, và một số là2*(DIF-DEA)
; DIF
vàDEA
nên nhất quán.
Điều gì được kết nối với số K-line thu được, khi dữ liệu K-line lịch sử được thu được?
Khi truy cậpexchange.GetRecords
Trong trường hợp này, docker sẽ gọi giao diện để lấy dữ liệu lịch sử giao dịch nền tảng khi chiến lược gọi.exchange.GetRecords
. Giao diện dữ liệu tổng hợp K-line theo lịch sử giao dịch). Các K-line nhận được bởi docker sẽ được tích lũy liên tục với nhau, và nó là cần thiết để truy cập vào các giao dịch.exchange.GetRecords
giao diện với tần số nhất định, nếu không, tính liên tục của dữ liệu có thể bị ảnh hưởng.
Tôi thấy rằng gọi hàmexchange.Buy
Chỉ trả vềID
trong tài liệu API, nhưng tại sao nó trả về rất nhiều thông tin khi tôi vận hành?
Các hàm có thể tạo ra xuất nhật ký trong các hàm FMZ API, chẳng hạn như:Log
, exchange.Buy
, exchange.CancelOrder
, vv, tất cả có thể được theo sau bởi một số tham số bổ sung sau các tham số cần thiết.exchange.CancelOrder(orders[i].Id, orders[j])
thêm xuất thông tin đặt hàng khi hủy bỏorders[j]
.
Làm thế nào để thực hiện WeChat Push thông điệp trong một bot?
WeChat push chỉ hợp lệ trên bot; thêm'@'
vào cuốiLog
chức năng, và sau đó các thông tin in củaLog
có thể được đẩy; bạn có thể tìm thấy chi tiết trong tài liệu API tại:https://www.fmz.com/api#LogHiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
WeChat push chỉ được hỗ trợ trên đài FMZ trong nước.
Các hợp đồng tương lai hàng hóa có thể sử dụng hợp đồng liên tục chính và hợp đồng chỉ số không?
Nó hỗ trợ các hợp đồng liên tục chính và các hợp đồng chỉ số của hợp đồng tương lai hàng hóa. Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
var records = exchange.GetRecords(PERIOD_D1)
Nếu tôi giao dịch hợp đồng tương lai trong một bot, thì tôi sẽ nhận được K-line hợp đồng hàng ngày như thế nào? Tôi nên viết gì nếu tôi muốn có được dữ liệu K-line hợp đồng hàng ngày cụ thể, chẳng hạn như dữ liệu K-line của RB hoặc I?
Anh nên đặtmã hợp đồngtrước khi nhận được TAQ (ít nhất đặt mã hợp đồng một lần kể từ khi chương trình bắt đầu).SetContractType("rb1805")
, Đặt hợp đồng hiện tại hoạt động đểrb1805
. Gọi lại API mà lấy TAQ, bạn có thể nhận được dữ liệu TAQ của hợp đồng rb1805.
Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Làm thế nào để viết mã hợp đồng tương lai hàng hóa?
Bạn có thể tham khảo tài liệu API FMZ. Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử. Các hợp đồng tương lai hàng hóa, chứng khoán và các doanh nghiệp khác được hỗ trợ bởi FMZ trong nước, bạn có thể đăng nhập:https://www.fmz.cn.
Will.exchange.GetAccount
không thể lấy thông tin do các vấn đề mạng và các vấn đề khác, và lớp dưới của hệ thống FMZ đã xử lý lỗi chưa? Hay người dùng phải tự xử lý sự thất bại của yêu cầu? Tại sao FMZ không xử lý nó?
FMZ không xử lý dữ liệu, và dữ liệu được trả lại cho người dùng là dữ liệu chưa xử lý. Phương pháp hoặc logic chịu lỗi cụ thể được xây dựng bởi chiến lược cụ thể. Bởi vì nếu nó được xử lý, nó có thể ảnh hưởng đến quyết định của người dùng, và quyết định sẽ được xử lý bởi chiến lược, đặc biệt đề cập đếnthông tin lỗi lọchoặcthử lạivà các phương pháp chế biến khác.
Đơn vị của khối lượng đơn đặt hàng của hợp đồng OKEX là gì?
Số lượng lệnh của hợp đồng OKEX được tính bằng số tiền hợp đồng; ví dụ:exchange.Buy(1000,1)
nghĩa là đặt lệnh với giá 1000, với số tiền hợp đồng là 1.
Có nghĩa là tôi phải ra lệnh giới hạn khi tôi gọiexchange.Sell
vàexchange.Buy
trên FMZ?
Để biết chi tiết, bạn cần xem tham số đầu tiên được truyền vào (chỉ số đầu tiên là giá lệnh).-1
ý nghĩa của khối lượng mua và bán khối lượng là một cách khác nhau (các thông số thứ hai), và nếu giá không phải là-1
Trong hầu hết giao diện lệnh nền tảng giao ngay, khối lượng lệnh của lệnh mua thị trường làSố tiền tài sảnkhôngSố tiền xuTrong giao diện lệnh của các nền tảng tương lai tiền điện tử, khối lượng lệnh thường là một số nguyên của số tiền hợp đồng.
Kiểm tra giao diện lệnh:https://www.fmz.com/api#exchange.buyprice-amount https://www.fmz.com/api#exchange.sellprice-amount
Chức năng thư
Mail("smtp.qq.com", "xxxx@qq.com", "xxx", "xxx@qq.com", "test title", "test body")
Truy cập vào QQ
Các tham số mẫu cho ngôn ngữ Pine, Mylanguage: số thời gian tối đa của biến ảnh hưởng đến tính toán chỉ số
Theo mặc định,
Kiểm tra khu vực chỉnh sửa mã chiến lược cho bất kỳ lời nhắc lỗi nào. Kiểm tra xem có tên biến nào bị thiếu khi khai báo một biến, chẳng hạn như quên viết tên trong
BITMEX
429 lỗi,{"error":{"message":"Rate limit exceeded retry in 1seconds……"}}
Khi bạn thấy lỗi 429, điều đó có nghĩa là tần suất truy cập một nền tảng quá cao.
Only support CTP
lỗi
Điều đó có nghĩa là anh đã gọi cho mộtCTP tương lai hàng hóagiao diện hoặc thư viện trongchiến lược tiền điện tử. Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Bittrex
lỗi trong bot:{"success":false,"message":"NOT_ALLOWED","result":null}
Nó chỉ ra các quyền hạn nền tảng. Bạn có thể đăng nhập vào trang web củaBittrex
, và xem liệu cần phải kiểm tra thông tin, chẳng hạn như thỏa thuận người dùng.
Lỗi hoạt động của bot:TypeError:value has no property at
Bởi vì các lỗi được báo cáo trong backtest và bot là khác nhau, lỗi này không thể được phát hiện trong quá trình backtest.
unable to open database
lỗi
Nếu hệ thốngMac OS
hệ thống, chú ý để kiểm tra xem nó có phải là một vấn đề giấy phép.
Hoặc, nó có thể là lỗi gây ra bởi không gian đầy đủ của ổ cứng thiết bị, mà vô hiệu hóa việc tạo ra các tệp cơ sở dữ liệu bot.
Lỗi:do not support the function
Nó đề cập đến tình huống mà đối tượng trao đổi được thêm vào trong quá trình backtest là một nền tảng giao dịch tiền điện tử, nhưng hàm API tương lai được gọi trong mã.
Lỗi:in SetCurrency OSError: exception: access violation reading 0x000000FCF25F0000
Trong một tương lai tiền điện tửPython
chiến lược, hệ thống backtest sử dụng một docker riêng, và cặp giao dịch được chuyển đổi trong mã, gây ra lỗi được báo cáo.
Lý do là hệ thống backtest không hỗ trợ backtest tương lai tiền điện tử để chuyển đổi cặp giao dịch.
Lỗi
Python
Báo cáo về thử nghiệm máy tại địa phươngEOFerror
.
EOF
lỗi là lỗi ở cuối backtest. bắt ngoại lệ là đủ và bạn có thể gọi nó bất cứ nơi nàoPython
được hỗ trợ.
# encoding: utf-8
'''backtest
start: 2021-08-30 00:00:00
end: 2022-09-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
from fmz import *
task = VCtx(__doc__) # initialize backtest engine from __doc__
def main():
while not exchange.IO("status"):
Sleep(1000)
exchange.SetContractType("swap")
while True:
bars_1min = _C(exchange.GetRecords, PERIOD_M1) # Get 1min K-line
print(len(bars_1min))
_CDelay(2000)
# Calling the main function
try:
main()
except:
print(task.Join(False))
Mylanguage liên quan đến một lỗi rất ẩn của tính toán thời gian, và giá trị tính toán có thể là N / A, chẳng hạn như ví dụ sau:
Lý do là tham số khoảng thời gian tính toán vượt quá phạm vi dữ liệu, dẫn đến tính toán giá trị N/A. Phương pháp xử lý:
Một lỗi đã xảy ra trong Mylanguage: lỗi phân tích, và chiến lược chỉ có mã đơn giản, số dòng lỗi rất dài, và nguyên nhân lỗi không thể được tìm thấy.
Nó có thể là một lỗi do vấn đề của các mẫu Mylanguage ban đầu. Giải pháp: 1. Xuất khẩu chiến lược dưới dạng tệp xml. 2. Tạo một chiến lược Mylanguage trống mới. 3. Nhập tệp xml vào chiến lược trống mới được tạo. 4. Thêm bot để kiểm tra.
Lỗi:fatal error:unexpected signal during runtime execution...go routine 11[syscall,locked to thread]
Kiểm tra xem chiến lược được viết trongC++
sử dụng một con trỏ null, và đề nghị bạn sử dụng chế độ lỗi dung nạp backtest để phát hiện.
Lỗi gọiexchange.SetMarginLevel(10)
: Futures_OP 0:403:{"error":{"message":"Access Denied","name":"HTTPError"}}
Kiểm tra xem các quyền liên quan củaAPI KEY
được áp dụng bởi nền tảng đang hoạt động.
Lỗi backtest:symbol not set
Đó là bởi vì bạn không đặt hợp đồng trong mã trong quá trình backtest của nền tảng tương lai; bạn có thể tham khảo cácexchange.SetContractType
chức năng trong tài liệu API.
LỗiERR_INVALID_POSITION
Nếu hệ thống backtest báo cáo lỗi, nó thường là một lỗi do lỗi viết chiến lược. Nếu bạn cố gắng đặt lệnh đóng một vị trí khi không có vị trí hoặc số lượng vị trí là không đủ, lỗi sẽ được báo cáo. Kiểm tra xem có bất kỳ vị trí đóng băng nào do các lệnh chưa hoàn thành hay không.
LỗiERR_INVALID_ORDER
Nếu hệ thống backtest báo cáo lỗi, nó thường là một lỗi gây ra bởi lỗi viết chiến lược. Bạn nên lưu ý để kiểm tra giá lệnh (tiền tương lai tiền điện tử trong hệ thống backtest tạm thời không hỗ trợ lệnh thị trường), cho dù khối lượng lệnh là 0, số âm hoặc phân số (kích thước lệnh của hợp đồng tương lai được tính bằng số lượng hợp đồng, đó là số nguyên).
LỗiERR_INSUFFICIENT_ASSET
Nếu backtest báo cáo lỗi, nó thường chỉ ra số tiền tài sản có sẵn đã không đủ để đặt lệnh hiện tại. Nói đơn giản, nó có nghĩa là không có tài sản để đặt lệnh.
Binding Error:Cannot passnon-string to std::string
thông tin lỗi
Trong các mã chiến lược, lỗi thường gây ra bởi việc đặt sai tên thuộc tính (sử dụng thuộc tính chưa xác định).
Lỗi{"status":6004,"msg":"timestamp is out of range"}
Lỗi có nghĩa là dấu thời gian của máy chủ nằm ngoài phạm vi, và bạn cần cập nhật thời gian của máy chủ, mà không có độ lệch lớn.
Lỗitimeout
Lỗi là lỗi thời gian hết, cho thấy một lỗi được báo cáo do không nhận được dữ liệu phản hồi từ giao diện nền tảng trong một khoảng thời gian nhất định sau khi truy cập giao diện nền tảng. Nói chung, đó là một vấn đề truy cập mạng của hệ thống nơi docker nằm (nhiều vấn đề là do tường), hoặc một vấn đề của giao diện nền tảng. Giải pháp chung: sử dụng máy chủ nước ngoài để chạy docker.
Lỗi trong bot chạy sau khi viết chiến lược:syntax error invalid label
Nguồn lỗi:
function main(){
if(1){
continue
}
}
//That will cause the error during operation
continue
tuyên bố phải được sử dụng trong vòng lặp!
Lỗi:(CTP_T@9999)Error:140CTP:change the password when first log in, and please log in again after changing
Mật khẩu nào đã được sửa đổi?
Ở đây nó chỉ ra để sửa đổisimnow
mật khẩu tài khoản; khi bạn sử dụng một tài khoản công ty tương lai cụ thể để đăng nhập, bạn cũng cần sửa đổi mật khẩu cho lần đăng nhập đầu tiên (một tài khoản mới có mật khẩu ban đầu và bạn không thể sử dụng tài khoản mà không sửa đổi mật khẩu ban đầu).
Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Lỗi:400:{"error":{"message":"Nonce is not increasing.This nonce:1523891993165,last nonce:1523891993165","name":"HTTPError"}}
Đó là mộtnonce
lỗi xác minh, và thông tin lỗi liên quan đếnnonce
Bạn có thể thử đồng bộ hóa thời gian của hệ thống nơi bot docker nằm.
LỗiSecretkey decrypt failed
Lỗi chỉ ra sự thất bại của giải mãAPI KEY
. Kiểm tra xem bạn đã sửa đổi mật khẩu tài khoản FMZ sau khi bạn cấu hìnhAPI KEY
Hãy cố gắng cấu hìnhAPI KEY
trên trang
Vị trí mở tương lai hàng hóaCTP: only close position
Có nhiều lý do tại sao câu chuyện cho thấy tình trạng củacan only close position
Giải pháp: liên hệ với công ty tương lai nơi bạn mở tài khoản để kiểm tra tình trạng tài khoản để xác định vấn đề.
Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử. Các hợp đồng tương lai hàng hóa, chứng khoán và các doanh nghiệp khác được hỗ trợ bởi FMZ nhà nước, bạn có thể đăng nhập:https://www.fmz.cn.
Lý do gì có thể là nếu lỗi:GetOrder(455284455):Error:invalid order id or order canceled.
luôn luôn được nâng lên khi tôi gọiexchange.Getorder
?
Ý nghĩa theo nghĩa đen: đơn đặt hàng đã bị hủy hoặc ID đơn đặt hàng không hợp lệ. Lý do: trong một số nền tảng, nếu bạn hủy đơn đặt hàng, thông tin đơn đặt hàng sẽ không được duy trì, và nó sẽ bị xóa. Do đó, khi bạn truy vấn đơn đặt hàng trongexchange.GetOrder
, lỗi sẽ được báo cáo, hoặc ID đơn đặt hàng bạn truy vấn ban đầu là sai.
Lỗi: giới hạn tỷ lệ, 429 Quá nhiều yêu cầu
rate limit, 429 Too Many Requests
chỉ ra tần suất truy cập giao diện nền tảng quá cao, vì vậy bạn cần phải giảm tần suất truy cập giao diện nền tảng.
Luôn luôn nângInvalid order price/amount
trong bot và backtest
Loại lỗi này được gây ra bởi giá sai và khối lượng lệnh được truyền vào khi gọi hàm lệnhexchange.Buy
hoặcexchange.Sell
Vì.khối lượng đơn đặt hàng âm, 0và các phương pháp phát hiện lỗi khác: bạn có thể gọiLog
để xuất tham số giá hoặc tham số khối lượng được truyền trước khi đặt đơn đặt hàng bởiexchange.Buy
hoặcexchange.Sell
, để xác định vấn đề.
Lỗi gì thế?GetOrders:400:{"code":-1121,"msg":"Invalid symbol."}
?
Sai nghĩa là:cặp giao dịch không hợp lệBạn cần kiểm tra xem cài đặt cặp giao dịch có sai không.
Điều đó có nghĩa là gì nếu có một số mã lỗi khi nhật ký bot báo cáo một lỗi?
Bạn có thể xem các giải thích cho các mã lỗi được trả về bởi các giao diện nền tảng khác nhau trong tài liệu API của các nền tảng đó.
Thời gian in đường cong lợi nhuận thị trường thực của ngôn ngữ Pine và Mylanguage In thường xuyên theo cài đặt trên các thông số mẫu ngôn ngữ Pine / Mylanguage, và in khi chiến lược hoàn toàn đóng.
Mylanguage bot in số lượng các đường kích hoạt tín hiệu, nhưng không có hoạt động lệnh.
Có thể là các cài đặt tham số của mẫu Mylanguage không phù hợp, chẳng hạn như độ chính xác, khối lượng đơn đặt hàng tối thiểu và các tham số khác. Lý do là lớp kích hoạt tín hiệu được đánh giá thành công, và ở lớp thực thi giao dịch, nó đã được đánh giá là lệnh không thể được đặt do một số vấn đề với các tham số và không có lệnh thực sự được đặt. Bạn có thể tham khảo các bài viết liên quan đến Mylanaguage:https://www.fmz.com/bbs-topic/9788 https://www.fmz.com/bbs-topic/9791
Tại sao bot không thể nhận được tín hiệu yêu cầu khi tôi đã đặt webhook url cảnh báo trên Tradingview?
Kiểm tra xem API KEY có đúng trong địa chỉ URL webhook hay không. API KEY ở đây đề cập đến API KEY mở rộng của FMZ, được đặt trong cài đặt tài khoản ở góc trên bên phải của FMZ. Kiểm tra xem ID bot trong URL webhook đã được điền đúng không. Kiểm tra xem các đặc quyền API KEY mở rộng của FMZ có được đưa ra đúng không. Các đặc quyền được tách bằng dấu phẩy trong tiếng Anh. mặc định là *, có nghĩa là tất cả các đặc quyền. Đừng viết tên hàm với các đặc quyền ngay sau *.
Tại sao các biểu tượng của cặp tiền tệ bị giới hạn trong cấu hình cặp giao dịch nền tảng khi thêm một bot?
Bạn có thể thiết lập điều khiển tùy chỉnh của các cặp giao dịch (nó chỉ có thể được thiết lập trong bot; cho các biểu tượng trong trung tâm dữ liệu backtest bị giới hạn, nó không thể được thiết lập trong backtest), như sau:
Tại sao các ticker không thể được lấy khi tôi chạy FutuOpenD trên máy chủ, và các ticker có thể được lấy trên thiết bị cục bộ?
Bạn cần kiểm tra xem địa chỉ IP của máy chủ có ở nước ngoài hay không, vì FutuOpenD có giới hạn về địa chỉ IP ở nước ngoài. Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Không có hành động khi chiến lược Mylanguage được vận hành, và nó chỉ cập nhật TAQ đầu tiên.
Kiểm tra xem bạn đã sử dụng mô hình giá đóng, có thể được kiểm tra bằng các tham số mẫu chiến lược Mylanguage.
Các hợp đồng tương lai hàng hóa
Trong CTP, chỉ có Sở giao dịch tương lai Thượng Hải có thể được sử dụng để đóng các vị trí ngày hôm nay và các vị trí ngày hôm qua.
Các backtest không phân biệtvị trí ngày hôm naytừvị trí ngày hôm qua, vì vậy nó không thể chỉ định để đóng các vị trí ngày hôm nay hoặc các vị trí hôm qua.
Một số biểu tượng trong robot, nhưIF
, có mặc định rằng nếu có các vị trí hôm nay, nó sẽ đóng các vị trí hôm nay đầu tiên. Trong trường hợp này, bạn không thể chỉ định, và bạn chỉ có thể đóng các vị trí hôm nay đầu tiên. Do đó, thông tin vị trí của các vị trí hôm nay và hôm qua được hợp nhất thành một.
Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Tại sao dấu thời gian của một quán bar trongBITMEX
Dữ liệu đường K có thêm một khoảng thời gian so với cùng một vị trí trong dữ liệu đường K nền tảng khác?
Lý do làBITMEX
lấy thời gian kết thúc của thanh hiện tại như dấu thời gian dòng K (một số thời gian dòng K không được hỗ trợ bởiBITMEX
giao diện, vì vậy các dấu thời gian của các giai đoạn đó được tạo ra bởi thời gian bắt đầu của Bar).
Trong chiến lược tương lai hàng hóa,Profit
trong dữ liệu được trả về bởi hàmexchange.GetPosition
khác với lợi nhuận và lỗ thay đổi được tính toán?
Vui lòng tham khảo tài liệu API:https://www.fmz.com/api#exchange.getposition. Profit
trongCTP protocol
được định nghĩa là:Lợi nhuận và lỗ theo giá trị thị trường, đại diện cho lợi nhuận và lỗ của vị trí hiện tại của bạn so với giá thanh toán của ngày giao dịch trước đó.
Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.
Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.
Kiểm tra xem tính năng
/*backtest
start: 2022-11-08 00:00:00
end: 2023-02-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
function main() {
var t = exchange.GetTicker()
exchange.Buy(t.Last - 10, 100/(t.Last - 10))
while(1){
t = exchange.GetTicker()
Sleep(1000)
}
}
Trong backtest của Binance tương lai vàBITMEX
, tỷ lệ tài trợ được tính theo đường cong lợi nhuận và lỗ được tạo ra bởi hệ thống backtest?
Tỷ lệ tài trợ được tính theo đường cong lợi nhuận và lỗ được tạo ra bởi hệ thống backtest.
Nút
Bạn cần kiểm tra xem proxy có bật không, điều này sẽ ảnh hưởng đến việc tải hoàn thành các tệp trên trang của
TrongTick thật sựbacktest, tại sao lại có giới hạn 50MB?
Các backtest cấp thị trường thực chỉ ra trong Tick thực tế, TAQ thực sự được ghi lại giây theo giây. Ngoài ra, có các ảnh chụp thị trường và dữ liệu luồng đơn đặt hàng, có khối lượng lớn, vì vậy chỉ có 50MB khối lượng dữ liệu được hỗ trợ.
Tại sao nó không hoạt động khi tôi sửa đổi các thông số phí trong hệ thống backtest?
Trong hệ thống backtest, khi bạn đặt lại các thông số phí, chúng sẽ có hiệu lực sau khi bạn xóa cặp giao dịch nền tảng cũ và thêm cặp giao dịch nền tảng lại; cặp giao dịch nền tảng đã được thêm trước đó không thể được sửa đổi bằng điều khiển trên trang.
Làm thế nào để làm cho backtest bản vẽ tùy chỉnh hiển thị dữ liệu nhiều hơn?
Khi bạn vẽ một biểu đồ tùy chỉnh (bằngChart
(công thức), khối lượng dữ liệu của bản vẽ được hiển thị trong backtest liên quan đếnbiểu đồtham số trong các thiết lập backtest, và các tham số điều khiển số thanh tối đa của một biểu đồ.chart.reset
chức năng được sử dụng để xóa một phần của dữ liệu cũ.
C++
backtest không hiển thị bất cứ điều gì, không có báo cáo lỗi và không có nhật ký, và không có gì trên trang thay đổi sau khi tôi nhấp vào nút.
Một số lỗi củaC++
Ví dụ: trong các tính toán chỉ số, số lượng K-line không đủ dẫn đến so sánh và đánh giá các chỉ số khác nhau.NAN
và loại số sauNAN
được tính toán, sẽ gây ra sự cố chương trình.
python
Backtest bị kẹt rồi!
Bạn không thể viết hàmSleep
trongtry
phát hiện lỗi, và văn bản trong hình ảnh sẽ gây ra sự tắc nghẽn.
Trong backtest, tại sao chỉ có một số tùy chọn cho nền tảng, và các biểu tượng cho cặp giao dịch cũng bị giới hạn?
Có quá nhiều cặp giao dịch trên nền tảng, vì vậy chỉ có một vài cặp giao dịch đại diện được chọn để thử nghiệm trong hệ thống backtest.kiểm soát tùy chỉnhđể thiết lập các cặp giao dịch được hỗ trợ bởi các nền tảng đó trong bot.
Tại sao backtest không hỗ trợ nhiều cặp giao dịch hơn?
Hệ thống backtest, trong thời điểm này, chỉ hỗ trợ các loại tiền tệ chính của một số nền tảng tương đối lớn, và một số loại tiền tệ vẫn chưa được hỗ trợ. Nếu bạn cần kiểm tra một chiến lược, bạn có thể thay thế các loại tiền tệ bằng các loại tiền tệ tương tự khác trong backtest. Trên thực tế, ngoại trừ báo giá thị trường có thể bị ảnh hưởng, việc sử dụng các loại tiền điện tử tương tự khác để kiểm tra lại chiến lược là tốt. Nói một cách đơn giản, hệ thống backtest cố gắng hỗ trợ các cặp giao dịch chính thống, và backtest không nên phù hợp với một biểu tượng cụ thể. nghĩa là, nếu chiến lược hiệu quả, ngay cả khi đó là một loạt các thay đổi báo giá thị trường được tạo ngẫu nhiên với các quy tắc giao dịch, hoặc báo giá thị trường của các loại tiền tệ khác, về cơ bản sẽ có lợi nhuận tích cực. Đây là tính phổ quát của một chiến lược. Nếu nó chỉ có thể phù hợp với một khoảng thời gian trong lịch sử hoặc hoạt động tốt trên một biểu tượng nhất định thì chiến lược này thực sự có tiềm năng rủi ro hoặc khiếm khuyết.
Trong hệ thống backtest: Các khái niệm vềLợi nhuận và lỗ cuối cùng, Lợi nhuận và lỗ cổ phần, Lãi suất, Lợi nhuận ước tính, USDT hiện có
Kết thúc P&L: Đó là lợi nhuận và lỗ tích lũy của tất cả các giao dịch mở và đóng trước vị trí hiện tại. Holding P&L: Đó là lợi nhuận và lỗ của vị trí hiện tại, nếu vị trí hiện tại không được giữ, nó là 0, Tiền bảo hiểm: Số tiền bảo hiểm được chiếm bởi vị trí hiện tại. Lợi nhuận ước tính: Lợi nhuận và tổn thất được tạo ra bằng cách đóng vị trí hiện tại ở mức giá hiện tại (về giả thuyết) sau đó được thêm vào lợi nhuận và tổn thất tích lũy của vị trí đóng để tính toán lợi nhuận ước tính. USDT hiện có: Số USDT hiện có để mở các vị trí.
Tính toán tỷ lệ thắng trong hệ thống backtest
for (var i = 0; i < profits.length; i++) {
if (i == 0) {
if (profits[i][1] > 0) {
winningResult++
}
} else {
if (profits[i][1] > profits[i - 1][1]) {
winningResult++
}
}
if ((profits[i][1] + totalAssets) > maxAssets) {
maxAssets = profits[i][1] + totalAssets
maxAssetsTime = profits[i][0]
}
if (maxAssets > 0) {
var drawDown = 1 - (profits[i][1] + totalAssets) / maxAssets
if (drawDown > maxDrawdown) {
maxDrawdown = drawDown
maxDrawdownTime = profits[i][0]
maxDrawdownStartTime = maxAssetsTime
}
}
}
Trên đây là thuật toán tỷ lệ thắng, được tính như sau: Sau khi hệ thống backtest thường xuyên tính toán lợi nhuận và lỗ nổi, đường cong lợi nhuận và lỗ nổi được tính toán. Bắt đầu từ điểm đầu tiên để so sánh với điểm tiếp theo. Nếu nó cao hơn, nó sẽ được ghi nhận là thắng, và nếu thấp hơn, nó sẽ được ghi nhận là thua lỗ, và sau đó tiếp tục so sánh với điểm tiếp theo.
Đâu là video giảng dạy triển khaiLinux
Docker?
Bilibili:https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web
Có cần thiết để dừng lại một cái cũ khi tôi cập nhật docker, và xóa cácrobot
chương trình, và chạy nó lại?
Bạn có thể xóa trực tiếp cũrobot
tập tin chương trình mà không dừng lại docker, sau đó tải xuống một gói nén mới, giải nén mớirobot
Trong thời gian này, docker được cập nhật, nhưng bot đang chạy vẫn sử dụng phiên bản cũ trong bộ nhớ, và phiên bản mới nhất sẽ chỉ được sử dụng khi bot được khởi động lại.
Việc triển khai Docker củaLinux
máy chủ
Các bước để cài đặt một docker trênLinux
: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web
Khi sử dụngscreen
để chạy chương trình dockerrobot
, -bash:screen:command not found
xảy ra, và docker không thể chạy.
Linux
hệ thống không cài đặtscreen
phần mềm, và cài đặt chung là đủ.CentOS
lệnh cài đặt hệ thống:yum install screen
.
Docker hiện tại đã hỗ trợSSH
để ngắt kết nối chuyển đổi để chạy trong nền.screen
, bạn có thể trực tiếp sử dụng lệnh trongrobot
thư mục của chương trình docker:./robot -s node.fmz.com/xxxxxxx
, và nhập mật khẩu tài khoản FMZ; khiLogin OK
được hiển thị, nó có nghĩa là việc triển khai thành công../robot -s node.fmz.com/xxxxxxx
là mã nhận dạng duy nhất của mỗi tài khoản FMZ, và chỉ cần nhập riêng của bạn (sau khi tài khoản được đăng nhập, nhảy đến trang docker, nhấp vào xxxxxxx
.
Bảng ghi nhận bot ở đâu khi một docker đang chạy một bot?
TrongDB3
tập tin cơ sở dữ liệu tronglogs
thư mục nơi chương trình docker nằm, tên tập tin cơ sở dữ liệu làid
của bot, và phần mở rộng làdb3
.
TrongLinux
hệ thống, sử dụng./robot -l
để xem tên của các nền tảng được hỗ trợ bởi docker, nền tảng nào làexchange
trong số những cái tên?
Đối tượng trao đổi màtênlàexchange
đề cập đến nền tảng màgiao thức chungchi tiết của giao thức chung:https://www.fmz.com/api#通用协议
Trang dockers không hiển thị các dockers theo định dạng danh sách.
Nếu thêm nhiều hơn 5 dockers, một điều khiển để hiển thị theo định dạng danh sách sẽ xuất hiện.
Có phải là bình thường có một docker không được triển khai bởi tôi trong hộp combo của tham số docker khi tạo một bot?
Docker công cộng được cung cấp bởi FMZ là một công cụ khởi động nhanh cho người mới bắt đầu, vì vậy người dùng không cần triển khai docker khi học, và dễ dàng cho người mới bắt đầu. Tuy nhiên, nên sử dụng dockers riêng để thử nghiệm bot thực sự.
Là chuỗi địa chỉ (./robot -s node.fmz.com/1234567
) độc quyền cho tôi hoặc những người khác, khi triển khai một docker?
Địa chỉ này là nhận dạng địa chỉ của mỗi người dùng, và giá trị của/1234567
một phần của mỗi người dùng là duy nhất để xác định người dùng. Khi triển khai một docker, bấm nút
Các biến môi trường của hệ thống nơi docker nằm đã thêmpython2.7
, nhưng tại sao nó vẫn được yêu cầu rằng các biến môi trường không thể tìm thấy?
Khi nào?windows
hệ thống lần đầu tiên cài đặtpython
, bạn cần thiết lập biến môi trường và khởi động lại để làm cho nó hợp lệ.
Lỗi EOF
Python backtest được kết thúc bằng ngoại lệ EOF (vì đôi khi một chiến lược có thể là một vòng lặp vô hạn).
Một docker có thể chạy bao nhiêu bot?
Không có giới hạn về số lượng, tùy thuộc vào cấu hình máy chủ và sự phức tạp của chiến lược. Cụ thể, cần phải xem xét liệu các bot này có truy cập vào cùng một giao diện nền tảng không (xem tần suất gọi giao diện, bởi vì nhiều bot hơn có nghĩa là tần số cao hơn); nói chung 5 đến 6 bot là tốt.
Docker, Bot và các giải thích khái niệm cơ bản khác
Nội dung của trang
Nếu nội dung của bot và trang docker đều biến mất, khi bot và docker đều chạy bình thường trên máy chủ, bạn cần đọc thông báo lỗi của trình duyệt, để xem trình duyệt có cài đặt plugin, gây ra vấn đề ô nhiễm biến toàn cầu không. Giải pháp là viết vào plugin của trình duyệt hoặc sử dụng trình duyệt không có plugin trình duyệt để đăng nhập FMZ.
Đối với các chiến lược chính thức cho thuê và thuê một máy chủ dock, phí sẽ được tự động gia hạn, miễn là số dư tài khoản FMZ là đủ?
Các chiến lược thuê sẽ không tự động nạp phí, và một nhấp chuột thuê một docker sẽ tự động nạp phí.
Tôi muốn tách một số hàm vào mẫu, để các chiến lược khác cũng có thể sử dụng chúng.
Mô tả trongFMZ API
tài liệu:https://www.fmz.com/api#模板类库
Có phảiwexApp
nền tảng mô phỏng của FMZ mô phỏng bot chỉ cung cấpBTC_USDT
Làm thế nào tôi có thể tùy chỉnh các cặp giao dịch khác?
wexApp
robot mô phỏng chỉ hỗ trợ một vài cặp giao dịch chính thức tại thời điểm này, và không phải tất cả các cặp giao dịch đều được mô phỏng.
Tôi có một vấn đề của các cuộc gọi đồng thời đến API mở rộng, đó là, một lỗi xác minh
Bạn có thể tạo nhiều nền tảng FMZ mở rộngAPI KEY
s cho các yêu cầu đồng thời.
Các chủ đề gỡ lỗi được tạo trên một docker sẽ ghi lại trạng thái nhật ký khi sử dụng công cụ gỡ lỗi?
Khi công cụ gỡ lỗi được thực hiện, nếu không có gì được sửa đổi lần thứ hai, đối tượng trao đổi được tạo trước đó sẽ được giữ lại và sẽ không được phát hành.Chế độ tiền tệhoặcchế độ đòn bẩy.
Tại sao khi tôi đăng kýwexApp
mô phỏng nền tảng và đăng nhập, không có tài sản, cả trong ví và phần tiền tệ?
Sau khi đăng ký, bạn cần xác minh email của mình để kích hoạt tài khoản của mình, và bạn có thể kích hoạt tài khoản của mình trong trung tâm cá nhân.
Thông tin nhật ký tương đối dài và bị cắt, và cuối cùng nó cho thấy "... Nhưng tôi cần xem cấu trúc của dữ liệu, tôi nên làm gì?
Giải pháp là sử dụngCông cụ gỡ lỗitrênBảng điều khiển, và sử dụngreturn
tuyên bố trong công cụ gỡ lỗi để trả lại nội dung được hiển thị, và hiển thị nội dung sẽ không bị cắt ngắn.
Các hàm bắt đầu bằng$.
trongJavaScript
Ý của chiến lược là gì?
Các chức năng với sự khởi đầu của$.
là các chức năng xuất của mẫu, tương tự như các chức năng giao diện của mô-đun.https://www.fmz.com/api#模板类库
Các chức năng xuất khẩu củapython
các chiến lược được tuyên bố vớiext.
ngay từ đầu.
Làm thế nào để vẽ các đường thẳng trên biểu đồ thị trường của kết quả backtest?
Có hai loại biểu đồ cuối cùng được hiển thị trong backtest: một được tạo bởi hệ thống, mà chiến lược không thể kiểm soát.Chart
chức năng của giao diện API FMZ trong mã chiến lược.https://www.fmz.com/api#chart...
Tôi đã xóa trình xác thực Google trên điện thoại của mình vì nhầm lẫn, làm thế nào để đặt lại trình xác thực Google? Trên trang cài đặt tài khoản trên nền tảng, tôi không thể tìm thấy nơi để đặt lại bằng email.
Bạn có thể đăng nhập vào nền tảng FMZ bằng trình duyệt khác, và khi bạn cần nhập mã xác minh Google, hãy nhấp vào
Bệ hạAPI KEY
kiểm soát an ninh
CácAPI KEY
FMZ không lưu thông tin văn bản đơn giản của tài khoản nền tảng của người dùng và sử dụngHttps
protocol.
Vấn đề an ninh chiến lược
Đối với điều đó, bạn có thể tham khảo:https://www.fmz.com/bbs-topic/1657.
Hệ thống thanh toán FMZ
Tiêu chuẩn thanh toán cho giao dịch trực tiếp:
Thời gian thanh toán được đề cập đề cập đến thời gian xử lý cho các hoạt động thanh toán. Do thời gian cần thiết cho các hoạt động xử lý này, thời gian khấu trừ có thể bị trì hoãn. Ví dụ, nếu thời gian thanh toán hiện tại là 9:00, thì có thể thời gian xử lý cho hoạt động thanh toán này là 9:02 (như được hiển thị trong ảnh chụp màn hình). Điều này sẽ được điều chỉnh trong hoạt động thanh toán tiếp theo (thời gian khấu trừ tiếp theo sẽ là 10:00, không phải là thanh toán trước).
Thư viện talib xử lý dữ liệu với độ chính xác hạn chế
Nếu dữ liệu đặc biệt nhỏ, nó sẽ được cắt và cuối cùng hiển thị dưới dạng 0. Xin tham khảo:https://github.com/TA-Lib/ta-lib-python/issues/157