В предыдущих статьях мы узнали, что так называемая запрограммированная и количественная торговля - это скриптовая программа, основанная на данных, полученных от платформ, после серии вычислений, суждений и триггеров для выполнения некоторых операций и работы с аккаунтами платформы для торговли. Эти действия по получению данных и работе с аккаунтами все выполняются через интерфейсы API платформы. Проще говоря, скриптовые программы взаимодействуют с платформами. Поскольку это взаимодействие, должно быть нормальное взаимодействие и ненормальное взаимодействие. Когда происходит ненормальное взаимодействие, интерфейс возвращает информацию об исключениях.
Конечно, запрограммированные и количественные торговые системы на рынке или самостоятельно разработанные программы будут иметь различные запросы и сообщения об ошибках. Эти сообщения об ошибках не ограничиваются сообщениями об ошибках, сообщаемыми API платформы. Существуют также другие ошибки, такие как: ошибка исключения программы во время работы, ошибка конфигурации, ошибка синтаксиса программы и так далее.
На платформе FMZ Quant Trading сообщения об ошибках могут быть примерно разделены на несколько категорий:
Ошибка синтаксиса стратегии Этот вид ошибки является наиболее распространенной ошибкой, которая обычно вызвана ситуацией, когда новички не знакомы с программированием, и их код, написанный во время изучения, имеет синтаксические ошибки.
Код был написан без символов, таких как скобки. Для такого рода ошибок, как правило, можно увидеть запрос на ошибку на странице редактирования стратегии, и при этом стратегия не может быть запущена (как только стратегия будет запущена, будет сообщена ошибка, как показано на изображении).
Поэтому вы можете привыкнуть к тому, чтобы посмотреть на страницу редактирования стратегии после завершения написания кода, чтобы увидеть, есть ли маленький красный крест; если есть, это означает, что есть определенно очевидная ошибка.
Исключение программы во время работы, вызванное стратегической программой BUG Если программа имеет ошибки во время ее работы, запуск исключения заставит программу остановиться ненормально, и будет отображаться такое сообщение об ошибке.
Такие ошибки могут вызвать исключение программы и остановить ее запуск.
Ошибка, вызванная неправильной конфигурацией и настройками
На платформе FMZ все торговые пары определяются в видеX_Y
, в котором BTC_USDT
; предположим, что я пишу это неправильно, я пишу это вBTC-USDT
.
Сообщение об ошибках в системе обратного тестирования на платформе FMZ:
Сообщение об ошибке в боте:
Или, самая распространенная ошибка, с которой начинающие часто сталкиваются:
Этот вид ошибки вызван недействительностьюAPI KEY
в конфигурированном объекте обмена после изменения пароля учетной записи FMZ (API-ключи пользователей все зашифрованы концом браузера и настроены на платформе FMZ). Это сделает стратегию неспособной начать, что вызовет сообщенную ошибку.
Ошибка вызвана вызовом интерфейса
В предыдущих статьях мы изучали и узнали, что интерфейсы на платформе FMZ разделены на:интерфейсы, которые делают сетевые запросыиинтерфейсы, которые не делают сетевых запросов. Ошибка интерфейса не будет непосредственно вызывать остановку программы стратегии. Обычно из-за исключения вызова интерфейса возвращаются неправильные данные, и стратегия не выполняет допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустимую допустиму
Здесь я перечисляю несколько сообщений об ошибках интерфейсов, которые делают сетевые запросы:
Тайм-аут сети
Одно из ошибочных сообщений, с которым часто сталкиваются новички, вызвано использованием устройства внутренней сети (ПК или внутренних серверов).
http 429 ошибка
Это одно из классических сообщений об ошибке; причина в том, что интерфейс платформы вызван слишком часто, превышая лимит частоты платформы. (упоминается в предыдущих статьях). Некоторые новые студенты могут сказать, что ошибка не будет поднята, если они подают заявку на API-ключи нескольких других платформ или нескольких других учетных записей платформы. Нам нужно знать, что частотный предел доступа к интерфейсам платформ обычно основан на IP-адресах. Проще говоря, до тех пор, пока все запросы, отправленные с IP-адреса, учитываются на адресе, сервер платформы откажет в доступе к IP, если количество запросов превысит предел.
Ошибка службы интерфейса платформы
Вышеупомянутые тайм-аут и 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"
Вы, вероятно, знаете, что ошибка вызвана неправильным настроением торговой пары, потому что символ
Система бэкстеста также является ключевым моментом количественного инструмента. Система бэкстеста может легко протестировать прототип стратегии и сначала проверить потенциальные ошибки и логические проблемы в стратегии, но система бэкстеста должна рассматриваться рационально. Система бэкстеста может в определенной степени отражать некоторые проблемы стратегии.
Ниже приведено краткое описание системы бэкстеста на платформе FMZ с уровня различных языков стратегии, поддерживаемых FMZ. (Некоторые введения в систему бэкстеста были упомянуты в предыдущих статьях.)
JavaScript
Обратный тест выполняется в браузере и использует локальные аппаратные ресурсы.
Питон
При обратном тестировании на докере вы можете выбрать, какой докер назначить (или докер, развернутый самим собой, или публичный докер платформы FMZ). Ввиду большой нагрузки публичного докера на платформе FMZ рекомендуется использовать локальный докерный backtest (это также будет быстрее. При обратном тестировании публичного докера, когда он перегружен, некоторые задачи обратного тестирования будут отменены, при этом результат обратного тестирования будет прерван).
C++
В отличие от языков сценариев, стратегии C ++ должны компилироваться, а затем выполняться. Стратегия языка C ++ будет сначала компилироваться на платформе FMZ (сервер) (если возникает проблема с написанием кода, компиляция может не пройти, и сообщение об ошибке будет отправлено непосредственно). После того, как компиляция пройдет, она будет проверена на платформе FMZ (сервер).
Милангаж
Подложка реализуется с помощью JavaScript, а обратный тест также выполняется в браузере.
Визуализация
Подложка реализована с помощью JavaScript, а обратный тест также выполняется в браузере
Система бэкстеста платформы FMZ Quant Trading имеет два режима бэкстеста (независимо от того, на каком языке написана стратегия, режим бэкстеста является настройкой системы бэкстеста, а параметры настройки одинаковы для всех языков, поддерживаемых на FMZ).
Для получения инструкции по системе бэкстеста вы можете ознакомиться с соответствующей частью учебника по написанию стратегии на платформе FMZ:
There are the highest, the lowest, open and close prices in one bar, which forms a price structure. Within the time range represented by the K-line, the prices are all in the price structure. Therefore, as long as the generated price is within the K-line structure of the four prices, the simulated price is reasonable.
Точно так же, как на следующем изображении:
Конечно, это немного сложнее, чем то, что показано на рисунке, чтобы реализовать симуляцию в системе бэкстеста, о которой здесь не будет больше обсуждаться. После Знание принципа, вы должны обратить внимание на недостатки обратного теста на уровне моделирования. Хотя обратный тест на уровне моделирования очень быстрый (потому что цены, генерируемые имитацией, не являются реальными ценами секунды за секундой, выпущенными последовательно). Однако, если стратегия соответствуетсимулируемая тенденция изменения тика, стратегия будет работать отлично (но на самом деле цена может не меняться с трендом, хотя цена находится в структуре K-линии). К-линия, используемая для генерации данных симулированного тика здесь называется нижней K-линией, и период K-линии называетсяпериод нижней линии K, который на странице настройки стратегии представлен следующим рисунком:
Здесь я устанавливаю 1 минуту, что означает использование данных K-линии с периодом 1 минуты в качестве источника данных для генерации симулированных данных о клетках.
Есть еще один момент, что для высокочастотной стратегии обратный тест на уровне моделирования, очевидно, не подходит, но для стратегии тренда обратный тест на уровне моделирования может в некоторой степени показать эффективность стратегии.
Где находится источник данных системы FMZ Quant backtest? Система backtest использует данные панели управления на платформе FMZ по умолчанию. панель управления FMZ автоматически собирает установленные рыночные данные каждой валюты на каждой платформе и предоставляет их системе backtest платформы.
В документации FMZ API также есть некоторые инструкции о пользовательском источнике данных:https://www.fmz.com/api#Custom Data Source
Есть также некоторые схемы в Digest на платформе FMZ. Начинающие, которые заинтересованы в этом, могут обратиться к этим схемам и изучить их.
Вы не можете вести программируемую и количественную торговлю безучиться, испытанияимыслить- Да, конечно. Это неэффективно думать о вопросах из ничего.поиск информацииТогда...Попробуй сам., иДумай и анализируй.Если проблема не решена, повторите вышеперечисленные действия.
Но обычно, когда новички сталкиваются с проблемами, они чувствуют:
О, писать запрограммированные и количественные стратегии очень сложно!
По-прежнему смущен, даже я изучаю это уже некоторое время! Я просто хочу сдаться, прежде чем начать! - Что?
Начало работы с платформой 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 the email address? ", " Answer:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " Is it the 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, попробовав операции на системе backtest во время просмотра учебников JavaScript. После того, как синтаксис JavaScript почти освоен, вы можете войти в следующий этап, чтобы фактически использовать интерфейс платформы для получения данных и тестирования.инструмент отладкина FMZ для проведения реальных испытаний интерфейсов. Затем вам нужно больше думать, делать выводы из одного случая, с помощью тестов, проверки и сравнительного анализа и т.д. Это делает обучение и начало очень быстрыми.