В предыдущих статьях мы узнали, что так называемая программатическая и количественная торговля - это скриптная программа, основанная на данных, полученных от биржи через серию вычислений, суждений и триггеров для выполнения некоторых операций и управления обменным счетом для торговли. Эти действия по получению данных и управлению счетами все выполняются через интерфейс API биржи. Проще говоря, скриптная программа взаимодействует с биржей. Поскольку это взаимодействие, должно быть нормальное взаимодействие и ненормальное взаимодействие. Когда происходит ненормальное взаимодействие, интерфейс возвращает сообщение об исключении.
Конечно, существуют всевозможные запросы на ошибку и сообщения об ошибке в программных и количественных торговых системах на рынке, или в программах, разработанных нами. Эти сообщения об ошибке не ограничиваются сообщениями об ошибке, сообщаемыми интерфейсом API обмена. Есть также ошибки исключения выполнения программы, ошибки конфигурации, ошибки грамматики программы и так далее.
Сообщения об ошибках на Платформе количественной торговли FMZ также относятся примерно к нескольким категориям:
Ошибка грамматики стратегии Этот тип ошибок является наиболее распространенным, поскольку новичок не знаком с программированием, и в процессе обучения и тестирования в коде возникают грамматические ошибки.
Такие ошибки обычно можно увидеть на странице редактирования стратегии, и стратегия не может быть запущена (ошибка будет сообщена непосредственно во время выполнения, как показано на рисунке ниже).
Итак, после написания стратегии, взгляните на страницу редактирования стратегии платформы, чтобы увидеть, есть ли красный XX, если да, то должна быть очевидная ошибка.
Исключения программы во время выполнения, вызванные программой стратегии BUG В программе есть ошибка. При запуске программы, запуск исключения приведет к тому, что программа остановится ненормально и отобразит такие сообщения об ошибке.
Подобные ошибки приведут к тому, что программа станет ненормальной, и программа перестанет работать.
Ошибки, вызванные неправильной конфигурацией и настройками
На платформе FMZ торговая пара единообразно определена в форматеX_Y
, где X - название валюты, в которой осуществляется торговля, и Y - название деноминированной валюты (деноминированная валюта валютной пары фьючерсных контрактов обычно выражается в долларах США, как описано в предыдущих статьях), например:BTC_USDT
, если я напишу торговую пару случайным образом, напишите это какBTC-USDT
.
Сообщается ошибка в системе обратного тестирования платформы FMZ:
Кроме того, ошибка, с которой часто сталкиваются новички:
Этот тип ошибки вызван изменением пароля на учетной записи платформы FMZ, что приводит к недействительностиAPI KEY
в конфигурированном объекте обмена (User
Сообщается ошибка при вызове интерфейса
В предыдущих статьях мы узнали, что интерфейсы на платформе FMZ разделены наинтерфейсы, которые генерируют сетевые запросыиинтерфейсы, которые не генерируют сетевые запросы. Ошибка интерфейса не приведет к остановке программы стратегии, как правило, из-за исключений вызова интерфейса и возвращения неправильных данных, стратегия не делает терпимости к ошибкам, а ошибка исключения программы, вызванная неправильными данными, приводит к остановке программы (концепция терпимости к ошибкам, упомянутая в предыдущих статьях).
Вот несколько сообщений об ошибке интерфейса, которые генерируют сетевые запросы:
Тайм-аут сети
Одним из частых сообщений об ошибке, с которыми сталкиваются новички, является использование внутреннего сетевого оборудования (собственного компьютера или домашнего сервера).
http 429 ошибка
Одно из классических сообщений об ошибке заключается в том, что интерфейс обмена называется слишком часто, превышая лимит частоты обмена (упоминается в предыдущих статьях).
Некоторые начинающие могут сказать, что я хотел бы подать заявку наAPI KEY
Мы должны знать, что частота ограничений доступа к интерфейсу обменами обычно основана на IP-адресах. Проще говоря, до тех пор, пока все запросы, отправленные на IP-адрес, учитываются на этом IP-адресе, сервер обмена будет отказывать в доступе, если запрос превышает лимит.
Сообщение об ошибках в работе интерфейса обмена
Timeout и 429 упомянутые выше являются сетевыми ошибками. Если есть проблема с работой обменного интерфейса, также будет сообщена ошибка. Например, если я хочу получить цену спотового рынка, но я настроил несуществующую торговую пару. Я протестировал его в инструменте отладки платформы FMZ, инструмент отладки является очень удобным инструментом тестирования, который очень подходит для реального тестирования ботов вызовов функций и сбора данных.
Результаты выполнения инструмента отладки, нет разницы между выполнением инструмента отладки и выполнением реального бота.
Huobi error GetTicker: Invalid ticker: {"Info":{"err-code":"invalid-parameter","err-msg":"invalid symbol","status":"error","ts":1620872079355},"High":0,"Low":0,"Sell":0,"Buy":0,"Last":0,"Volume":0,"OpenInterest":0,"Time":0}
Ошибочное сообщение здесь означает, что торговая пара недействительна (как показано здесь)."err-msg":"invalid symbol"
)).
Например, существует много таких ошибок, связанных с бизнесом, таких как установка рычага, когда некоторые биржи не поддерживают значения рычага с десятичными частями, в это время, если значение рычага имеет десятичную часть, это также вызовет ошибку в вызове интерфейса.
Перечислить вызов интерфейса, который не генерирует сетевой запрос
Код фьючерсного контракта Некоторые интерфейсы просто устанавливают некоторые глобальные переменные в системе и не генерируют сетевые запросы, например:
Однако, если параметр передан неправильно или написан, будет сообщена ошибка.
Но независимо от типа ошибки, отображаемое сообщение об ошибке является ключевой информацией для поиска проблемы, и проблема обычно может быть видна из сообщения об ошибке."err-msg":"invalid symbol"
In the above example, the translation is:
Система обратного тестирования также является центром количественного инструмента. Система обратного тестирования может удобно тестировать прототипы стратегии, потенциальные ошибки и логические проблемы в предварительной стратегии тестирования. Система обратного тестирования должна рассматриваться рационально. Система обратного тестирования может в определенной степени отражать некоторые проблемы стратегии.
Ниже приведено краткое описание системы обратного тестирования на платформе FMZ с уровня различных языков стратегии, поддерживаемых FMZ. (Некоторые введения системы обратного тестирования были упомянуты в предыдущих статьях)
JavaScript
Бактестирование в браузере использует родные аппаратные ресурсы.
Питон
При обратном тестировании на докере вы можете выбрать, какой докер назначить (либо докер, развернутый самим собой, либо публичный докер на платформе FMZ). Ввиду большой нагрузки публичных хранителей на платформе FMZ рекомендуется использовать локальный докер для обратного тестирования (это также будет быстрым, когда публичный докер проводит обратное тестирование, если задачи превышают нагрузку, некоторые задачи обратного тестирования будут отменены, что приведет к прерыванию обратного тестирования).
C++
В отличие от языков сценариев, стратегии C++ должны компилироваться, а затем выполняться. Стратегия языка C++ будет сначала компилироваться на платформе FMZ (сервер) (если есть проблема с кодом, компиляция может не пройти, и сообщение об ошибке будет появляться непосредственно).
MyLanguage
Основной реализацией является JavaScript, а бэкстестинг также выполняется в браузере.
Визуализация
Основной реализацией является JavaScript, а бэкстестинг также выполняется в браузере.
Система обратного тестирования на платформе FMZ Quant Trading разделена на два режима обратного тестирования (независимо от языка стратегии, это настройка обратного тестирования, и обратное тестирование стратегии во всех языках одинаково).
A bar in the K-line opens high and closes low, which constitutes a price framework, within which the prices are all in this price frame, so as long as the generated price opens high and closes low in this K-line frame within the range, the simulated price is reasonable.
Это похоже на симуляцию:https://www.fmz.comКонечно, когда система обратного тестирования реализует это моделирование, ситуация немного сложнее, чем на рисунке. Зная этот принцип, важно отметить недостатки обратного тестирования на уровне симуляции, хотя обратное тестирование на уровне симуляции очень быстро (потому что цены, генерируемые симуляцией, не являются реальными ценами секунды за секундой, выпущенными по одному).моделируемая тенденция движения клещей, стратегия будет работать очень хорошо (но на самом деле цена может не быть этой тенденцией, хотя цена находится в рамках этой K-линии). К-линия, используемая для генерации данных о симулированном тике здесь называется нижней K-линией, а период этой K-линии называетсяпериод нижней линии K, который устанавливается как показано на странице настройки стратегии:
Настройка 1 минуты здесь означает, что данные K-линии с периодом 1 минуты используются в качестве источника данных для генерации моделируемого тика.
Еще один момент заключается в том, что для высокочастотных стратегий очевидно нецелесообразно использовать обратное тестирование на уровне симуляции.
Где находится источник данных системы бэкстестинга FMZ Quant Trading Platform? Система бэкстестинга использует по умолчанию данные центра обработки данных платформы FMZ. Центр обработки данных платформы FMZ автоматически собирает установленные рыночные данные каждой валюты каждой биржи и предоставляет их системе бэкстестинга на платформе.
Есть также некоторые замечания о пользовательских источниках данных в документации FMZ API:https://www.fmz.com/api#custom-data-source
Вы не можете вести программатическую и количественную торговлю безобучение, испытания, имыслить- Да, конечно. Мыслить о проблемах нельзя напрасно, это неэффективно.Найти информациюТогда...Попробуй., Думай и анализируй, если проблема не решена, пожалуйста, повторите вышеперечисленные действия.
Но когда новичок сталкивается с проблемами, он или она будет чувствовать:
Упс~ это слишком сложно запрограммировать, количественно оценить и написать стратегии . После долгого просмотра, я все еще ошеломлен! Я хочу сдаться, прежде чем начать! - Что?
Начало работы на платформе FMZ на самом деле очень просто. Прежде всего, вы должны уметь искать информацию.
Во-вторых, это практические навыки, которые можно легко протестировать с помощью системы бэкстестинга и инструментов отладки. Это не означает, что нужно тестировать полную стратегию. На самом деле, вы даже можете изучить основы программ JavaScript на системе бэкстестинга FMZ Quant, если вы полностью базовы.
Это учебный сайт, где я часто учусь JS:https://www.runoob.com/js/js-loop-for.html, это не ограничивается JS, все виды ИТ знаний могут быть запрошены и изучены здесь. Например, я не знаю, как использовать регулярные выражения JS, что мне делать? Конечно, сначала поищите информацию, а потом попробуйте сделать это ~
Я видел пример:Я хочу проверить его, и я могу использовать систему обратного тестирования платформы FMZ для тестирования и обучения.
Настроить случайный обмен на системе обратного тестирования
Проверьте следующий код:
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
function main() {
var strEmailAddress1 = "13512345678"
Log(strEmailAddress1, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress2))
}
Посмотрите, какой учебный инструмент! Например, я хочу научиться писать логику цикла языка JavaScript и попробовать:
Перейдите через элементы переменной массива в том порядке, в котором они появляются в массиве:
function main() {
var arr = [{coinName: "BTC", price: 10000}, {coinName: "LTC", price: 100}, {coinName: "ETH", price: 2000}, {coinName: "ETC", price: 500}]
for (var i = 0 ; i < arr.length ; i++) {
Log(arr[i])
}
}
Чувствуете ли вы желание учиться в одно мгновение? На самом деле, на FMZ, вы можете изучить основы JavaScript на системе backtesting, смотря на учебник JavaScript. Грамматика JavaScript почти освоена, и на следующем этапе вам нужно использовать интерфейс обмена для получения тестирования данных.инструмент отладкиПлатформы FMZ для проведения реальных испытаний интерфейсов.
Затем нужно больше думать, делать выводы из одного случая, проверять тесты, проводить сравнительный анализ и т. д. Это позволяет очень быстро начать обучение.