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

Tóm tắt câu hỏi thường gặp (Sự cập nhật...)

Tác giả:FMZ~Lydia, Tạo: 2023-07-13 14:44:41, Cập nhật: 2024-02-05 20:04:06

[TOC]

img

Tóm tắt câu hỏi thường gặp (Sửa đổi...)

  • 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ụ: docker. Sau đó vị trí trên trang với từ docker sẽ được tìm kiếm.

  • Hiện tại FMZ International Station chỉ hỗ trợ kinh doanh tiền điện tử.https://www.fmz.cn.

  • Weixin:

    img

Giao diện API

  • Tại sao?mua một giábán một giáthu được bằngGetTickervà những người thu được bằngGetDepthlà khác nhau?

    Dữ liệu củaGetTickerGetDepthCó một sự chậm trễ thời gian, vì vậy dữ liệu sẽ thay đổi.GetTickersẽ nhanh hơn một chút, cho dữ liệu là ít hơn dữ liệu thu được bởiGetDepth.

  • exchang.GetOrdersnhậ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.GetOrderNó truy vấn các lệnh của tất cả các loại, theoIDNhập thứ tự.IDDo đó, để 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.

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

    img

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

https://support.microsoft.com/en-us/help/821893/the-system-clock-may-run-fast-when-you-use-the-acpi-power-management-t

Chúng tôi khuyên bạn nên sử dụngLinuxmáy chủ, hoặc bạn có thể cài đặt phần mềm đồng bộ hóa thời gian trong nhữngwindowshệ 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.

  • Tại sao có sự khác biệt giữa các giá trị được tính toán bởiATR (TR) của Mylanguage và những người được tính toán bởiTA/talibthư 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/talibcả 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.

    • Mylanguage đề cập đến dữ liệu trong nhiều giai đoạn, sau#EXPORTTEST...#ENDtuyê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:

    img

  • Tại sao?MACDTí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,MACDCá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); DIFDEAnê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.GetRecordsTrong 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.GetRecordsgiao 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.BuyChỉ trả vềIDtrong 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ốiLogchức năng, và sau đó các thông tin in củaLogcó 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.GetAccountkhô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.Sellexchange.Buytrê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à-1Trong 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 QQs smtp203.205.232.7Hiện nay, hầu hết các máy chủ đám mây được bảo vệ từ cổng 25, ngoại trừ các máy chủ vật lý, các nhà khai thác sẽ không bảo vệ cổng 25. Hầu hết các máy chủ đám mây cũng có thể áp dụng để mở khóa cổng 25. Tôi đã áp dụng và mở khóa nó.

  • 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, số thời gian tối đa biến là 600, nếu tham số chỉ số được đặt quá lớn, ví dụ, tính toán MA ((1000).

Báo cáo lỗi

  • Popup thông báo lỗi: SyntaxError: tên biến dự kiến.

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 var name = a. Ngoài ra, kiểm tra xem liệu các từ khóa ngôn ngữ lập trình đã được sử dụng khi thiết lập các thông số giao diện chiến lược hay không. Không nên sử dụng các từ khóa ngôn ngữ lập trình thường được sử dụng như tên biến, vì nó có thể dẫn đến xung đột, ngay cả khi ngôn ngữ lập trình hiện tại không có từ khóa cụ thể đó.

  • BITMEX429 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 CTPlỗ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.

  • Bittrexlỗ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

    img

    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 databaselỗi

    imgNếu hệ thốngMac OShệ 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ửPythonchiế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 giải mã [Bức ảnh]imgDo mật khẩu tài khoản FMZ đã được sửa đổi, điều đó làm cho API KEY được cấu hình không hợp lệ, và gây ra lỗi. Giải pháp: cấu hình nền tảng API KEY một lần nữa, dừng lại và khởi động lại docker, và sau đó thử khởi động lại bot.

  • PythonBáo cáo về thử nghiệm máy tại địa phươngEOFerror.

    EOFlỗ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:

    img

    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ý:

    img

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

    img

  • 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.SetContractTypechứ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_ORDERNế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::stringthô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 
    

    continuetuyê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 changingMật khẩu nào đã được sửa đổi?

    Ở đây nó chỉ ra để sửa đổisimnowmậ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ộtnoncelỗi xác minh, và thông tin lỗi liên quan đếnnonceBạ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

    img

    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 KEYHãy cố gắng cấu hìnhAPI KEYtrên trang Add platform của FMZ, khởi động lại docker, và chạy bot một lần nữa để kiểm tra.

  • 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 positionGiả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

    img

    rate limit, 429 Too Many Requestschỉ 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/amounttrong 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.Buyhoặcexchange.SellVì.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.Buyhoặ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 đó.

Robot

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

    img

  • 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 hậu giá gần ngày hôm qua vấn đề

    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 trongBITMEXDữ 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àBITMEXlấ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ởiBITMEXgiao 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).

    img

  • Trong chiến lược tương lai hàng hóa,Profittrong dữ liệu được trả về bởi hàmexchange.GetPositionkhá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. ProfittrongCTP 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.

Hệ thống kiểm tra ngược

  • Lỗi được báo cáo bởi hệ thống backtesting: Lỗi được báo cáo bởi hệ thống backtesting:
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 Custom Data Source đang được sử dụng và liệu dữ liệu được cung cấp bởi dịch vụ nguồn dữ liệu tùy chỉnh có chính xác hay không.

  • Làm thế nào để trả phí cho người làm thử nghiệm? Kiểm tra các kịch bản về phí người mua / người tạo.
/*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 Backtest không thể được nhấp.

    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 Backtest; kiểm tra xem có thông tin lỗi nào trên bảng điều khiển trang không.

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

    img

    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.resetchứ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.NANvà loại số sauNANđược tính toán, sẽ gây ra sự cố chương trình.

  • pythonBacktest bị kẹt rồi!

    Bạn không thể viết hàmSleeptrongtryphát hiện lỗi, và văn bản trong hình ảnh sẽ gây ra sự tắc nghẽn.

    img

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

Docker

  • Đâu là video giảng dạy triển khaiLinuxDocker?

    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ácrobotchương trình, và chạy nó lại?

    Bạn có thể xóa trực tiếp cũrobottậ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ớirobotTrong 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ủaLinuxmá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 foundxảy ra, và docker không thể chạy.

    Linuxhệ thống không cài đặtscreenphần mềm, và cài đặt chung là đủ.CentOSlệ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 trongrobotthư 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/xxxxxxxlà 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 Add docker vào trang Add docker để xem); lưu ý ở đây không chỉ để nhậpxxxxxxx.

  • Bảng ghi nhận bot ở đâu khi một docker đang chạy một bot?

    TrongDB3tập tin cơ sở dữ liệu tronglogsthư mục nơi chương trình docker nằm, tên tập tin cơ sở dữ liệu làidcủa bot, và phần mở rộng làdb3.

  • TrongLinuxhệ 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àexchangetrong số những cái tên?

    Đối tượng trao đổi màtênexchangeđề 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.

    img

  • 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/1234567mộ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 Add docker trênBảng điều khiển-> clickThêm docker->Thêm trang docker, và sau đó bạn có thể thấy địa chỉ này; sao chép và dán nó trực tiếp và bạn có thể sử dụng nó.

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

    img

    Khi nào?windowshệ 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ệ.

Nghiên cứu

  • Lỗi EOF

    img

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

Chức năng nền tảng

  • 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

    https://www.fmz.com/bbs-topic/9152

  • Nội dung của trang BotDocker đều biến mất

    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 APItài liệu:https://www.fmz.com/api#模板类库

  • Có phảiwexAppnền tảng mô phỏng của FMZ mô phỏng bot chỉ cung cấpBTC_USDTLàm thế nào tôi có thể tùy chỉnh các cặp giao dịch khác?

    wexApprobot 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 annoce luôn được báo cáo trong quá trình đồng thời.

    Bạn có thể tạo nhiều nền tảng FMZ mở rộngAPI KEYs 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ýwexAppmô 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ụngreturntuyê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ủapythoncá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.Chartchứ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 Enable twofactor để chuyển đến trang để hủy liên kết qua email.

Các loại khác

  • Bệ hạAPI KEYkiểm soát an ninh

    CácAPI KEYFMZ 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:

    1. Việc thanh toán xảy ra mỗi giờ một lần cho mỗi tài khoản giao dịch trực tiếp (0,05 USD / giờ) và dựa trên thời gian sử dụng một giờ.
    2. Việc dừng và khởi động lại tài khoản giao dịch trực tiếp trong vòng một giờ không dẫn đến tính toán trùng lặp.
    3. Một tài khoản giao dịch trực tiếp đã bị dừng sẽ không kích hoạt thanh toán trong một giờ tới.
    4. Tài khoản giao dịch trực tiếp mới được tạo sẽ được tính ngay lập tức trong một giờ.

    img

    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


Thêm nữa