В процессе загрузки ресурсов... загрузка...

Количественная торговля криптовалютами для новичков - приближение к количественной криптовалюте (3)

Автор:FMZ~Lydia, Создано: 2022-07-29 09:37:22, Обновлено: 2023-09-21 21:03:55

img

Количественная торговля криптовалютами для новичков - приближение к количественной криптовалюте (3)

Сообщение об ошибке

В предыдущих статьях мы узнали, что так называемая программатическая и количественная торговля - это скриптная программа, основанная на данных, полученных от биржи через серию вычислений, суждений и триггеров для выполнения некоторых операций и управления обменным счетом для торговли. Эти действия по получению данных и управлению счетами все выполняются через интерфейс API биржи. Проще говоря, скриптная программа взаимодействует с биржей. Поскольку это взаимодействие, должно быть нормальное взаимодействие и ненормальное взаимодействие. Когда происходит ненормальное взаимодействие, интерфейс возвращает сообщение об исключении.

Конечно, существуют всевозможные запросы на ошибку и сообщения об ошибке в программных и количественных торговых системах на рынке, или в программах, разработанных нами. Эти сообщения об ошибке не ограничиваются сообщениями об ошибке, сообщаемыми интерфейсом API обмена. Есть также ошибки исключения выполнения программы, ошибки конфигурации, ошибки грамматики программы и так далее.

Сообщения об ошибках на Платформе количественной торговли FMZ также относятся примерно к нескольким категориям:

  • Ошибка грамматики стратегии Этот тип ошибок является наиболее распространенным, поскольку новичок не знаком с программированием, и в процессе обучения и тестирования в коде возникают грамматические ошибки.

    img

    Такие ошибки обычно можно увидеть на странице редактирования стратегии, и стратегия не может быть запущена (ошибка будет сообщена непосредственно во время выполнения, как показано на рисунке ниже).

    imgИтак, после написания стратегии, взгляните на страницу редактирования стратегии платформы, чтобы увидеть, есть ли красный XX, если да, то должна быть очевидная ошибка.

  • Исключения программы во время выполнения, вызванные программой стратегии BUG В программе есть ошибка. При запуске программы, запуск исключения приведет к тому, что программа остановится ненормально и отобразит такие сообщения об ошибке.

    img

    img

    Подобные ошибки приведут к тому, что программа станет ненормальной, и программа перестанет работать.

  • Ошибки, вызванные неправильной конфигурацией и настройками

    На платформе FMZ торговая пара единообразно определена в форматеX_Y, где X - название валюты, в которой осуществляется торговля, и Y - название деноминированной валюты (деноминированная валюта валютной пары фьючерсных контрактов обычно выражается в долларах США, как описано в предыдущих статьях), например:BTC_USDT, если я напишу торговую пару случайным образом, напишите это какBTC-USDT.

    img

    Сообщается ошибка в системе обратного тестирования платформы FMZ:

    img

    Кроме того, ошибка, с которой часто сталкиваются новички:

    img

    Этот тип ошибки вызван изменением пароля на учетной записи платформы FMZ, что приводит к недействительностиAPI KEYв конфигурированном объекте обмена (Users API KEY конфигурируется на платформе FMZ после шифрования в браузере), и стратегия не может быть запущена, поэтому сообщается об ошибке.

  • Сообщается ошибка при вызове интерфейса

    В предыдущих статьях мы узнали, что интерфейсы на платформе FMZ разделены наинтерфейсы, которые генерируют сетевые запросыиинтерфейсы, которые не генерируют сетевые запросы. Ошибка интерфейса не приведет к остановке программы стратегии, как правило, из-за исключений вызова интерфейса и возвращения неправильных данных, стратегия не делает терпимости к ошибкам, а ошибка исключения программы, вызванная неправильными данными, приводит к остановке программы (концепция терпимости к ошибкам, упомянутая в предыдущих статьях).

    Вот несколько сообщений об ошибке интерфейса, которые генерируют сетевые запросы:

    • Тайм-аут сети

      Одним из частых сообщений об ошибке, с которыми сталкиваются новички, является использование внутреннего сетевого оборудования (собственного компьютера или домашнего сервера).

    • http 429 ошибка

      Одно из классических сообщений об ошибке заключается в том, что интерфейс обмена называется слишком часто, превышая лимит частоты обмена (упоминается в предыдущих статьях). Некоторые начинающие могут сказать, что я хотел бы подать заявку наAPI KEYМы должны знать, что частота ограничений доступа к интерфейсу обменами обычно основана на IP-адресах. Проще говоря, до тех пор, пока все запросы, отправленные на IP-адрес, учитываются на этом IP-адресе, сервер обмена будет отказывать в доступе, если запрос превышает лимит.

    • Сообщение об ошибках в работе интерфейса обмена

      Timeout и 429 упомянутые выше являются сетевыми ошибками. Если есть проблема с работой обменного интерфейса, также будет сообщена ошибка. Например, если я хочу получить цену спотового рынка, но я настроил несуществующую торговую пару. Я протестировал его в инструменте отладки платформы FMZ, инструмент отладки является очень удобным инструментом тестирования, который очень подходит для реального тестирования ботов вызовов функций и сбора данных.

      img

      Результаты выполнения инструмента отладки, нет разницы между выполнением инструмента отладки и выполнением реального бота.

      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")). Например, существует много таких ошибок, связанных с бизнесом, таких как установка рычага, когда некоторые биржи не поддерживают значения рычага с десятичными частями, в это время, если значение рычага имеет десятичную часть, это также вызовет ошибку в вызове интерфейса.

    Перечислить вызов интерфейса, который не генерирует сетевой запрос

    • Код фьючерсного контракта Некоторые интерфейсы просто устанавливают некоторые глобальные переменные в системе и не генерируют сетевые запросы, например:

      img

      Однако, если параметр передан неправильно или написан, будет сообщена ошибка.

      img

    Но независимо от типа ошибки, отображаемое сообщение об ошибке является ключевой информацией для поиска проблемы, и проблема обычно может быть видна из сообщения об ошибке."err-msg":"invalid symbol"In the above example, the translation is: err msg: недействительный символ . It is probably known that the trading pair is set incorrectly, because English symbols are usually used to represent the trading code and trading pair. Для общих проблем, есть пост, который будет продолжать собирать для запроса:https://www.fmz.com/bbs-topic/9158

Система обратного тестирования

Система обратного тестирования также является центром количественного инструмента. Система обратного тестирования может удобно тестировать прототипы стратегии, потенциальные ошибки и логические проблемы в предварительной стратегии тестирования. Система обратного тестирования должна рассматриваться рационально. Система обратного тестирования может в определенной степени отражать некоторые проблемы стратегии.

Ниже приведено краткое описание системы обратного тестирования на платформе FMZ с уровня различных языков стратегии, поддерживаемых FMZ. (Некоторые введения системы обратного тестирования были упомянуты в предыдущих статьях)

  • JavaScript

    Бактестирование в браузере использует родные аппаратные ресурсы.

  • Питон

    При обратном тестировании на докере вы можете выбрать, какой докер назначить (либо докер, развернутый самим собой, либо публичный докер на платформе FMZ). Ввиду большой нагрузки публичных хранителей на платформе FMZ рекомендуется использовать локальный докер для обратного тестирования (это также будет быстрым, когда публичный докер проводит обратное тестирование, если задачи превышают нагрузку, некоторые задачи обратного тестирования будут отменены, что приведет к прерыванию обратного тестирования).

  • C++

    В отличие от языков сценариев, стратегии C++ должны компилироваться, а затем выполняться. Стратегия языка C++ будет сначала компилироваться на платформе FMZ (сервер) (если есть проблема с кодом, компиляция может не пройти, и сообщение об ошибке будет появляться непосредственно).

  • MyLanguage

    Основной реализацией является JavaScript, а бэкстестинг также выполняется в браузере.

  • Визуализация

    Основной реализацией является JavaScript, а бэкстестинг также выполняется в браузере.

Система обратного тестирования на платформе FMZ Quant Trading разделена на два режима обратного тестирования (независимо от языка стратегии, это настройка обратного тестирования, и обратное тестирование стратегии во всех языках одинаково).

img

    1. Обратное тестирование на уровне моделирования Простыми словами, обратное тестирование на уровне симуляции относится к данным о ценах каждого временного узла, которые имитируются и генерируются в соответствии с данными K-линии.
    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.comimgКонечно, когда система обратного тестирования реализует это моделирование, ситуация немного сложнее, чем на рисунке. Зная этот принцип, важно отметить недостатки обратного тестирования на уровне симуляции, хотя обратное тестирование на уровне симуляции очень быстро (потому что цены, генерируемые симуляцией, не являются реальными ценами секунды за секундой, выпущенными по одному).моделируемая тенденция движения клещей, стратегия будет работать очень хорошо (но на самом деле цена может не быть этой тенденцией, хотя цена находится в рамках этой K-линии). К-линия, используемая для генерации данных о симулированном тике здесь называется нижней K-линией, а период этой K-линии называетсяпериод нижней линии K, который устанавливается как показано на странице настройки стратегии:

    imgНастройка 1 минуты здесь означает, что данные K-линии с периодом 1 минуты используются в качестве источника данных для генерации моделируемого тика.

    Еще один момент заключается в том, что для высокочастотных стратегий очевидно нецелесообразно использовать обратное тестирование на уровне симуляции.

    1. Реальное тестирование на уровне ботов После того, как мы поговорили о обратном тестировании на уровне моделирования, давайте поговорим о обратном тестировании на уровне реального бота. Проще говоря, обратный тестирование на уровне реального бота - это реальное выпуск данных о ценах каждую секунду во время обратного тестирования. Это позволяет стратегии отслеживать цену в секунду рынка. Этот режим обратного тестирования позволяет вам проводить обратный тест стратегий с высокой частотой торговли и получать определенную степень базовой стоимости. Недостатком является то, что объем данных обратного тестирования на уровне реального бота слишком велик для обратного тестирования в большом временном диапазоне (время обычно составляет менее 1 дня).разделенные данные(данные о транзакциях тик-по-тик, и данные о глубине рынка также имеют секундовые снимки в реальной обратной проверке бота, поэтому количество реальной обратной проверки бота огромно) чтобы увеличить диапазон обратной проверки должным образом, как показано на рисунке:

    img

Где находится источник данных системы бэкстестинга FMZ Quant Trading Platform? Система бэкстестинга использует по умолчанию данные центра обработки данных платформы FMZ. Центр обработки данных платформы FMZ автоматически собирает установленные рыночные данные каждой валюты каждой биржи и предоставляет их системе бэкстестинга на платформе.

    1. Использовать данные из центра данных FMZ по умолчанию Как упоминалось в предыдущих статьях:https://www.fmz.com/bbs-topic/9536Данные обратного тестирования, предоставляемые платформой, поддерживают только ограниченное количество торговых пар (данные обратного тестирования всего рынка и всех валют - это астрономическая цифра, и собрать их все нереально.
    1. Использовать пользовательские источники данных Вы можете использовать параметры на странице бэкстестинга для настройки пользовательского источника данных. Проще говоря, если у вас есть данные из биржи, вы можете предоставить их системе бэкстестинга платформы FMZ для бэкстестинга в соответствии с требованиями формата на платформе FMZ.

    img

    Есть также некоторые замечания о пользовательских источниках данных в документации FMZ API:https://www.fmz.com/api#custom-data-source

Обучение, тестирование, мышление

Вы не можете вести программатическую и количественную торговлю безобучение, испытания, имыслить- Да, конечно. Мыслить о проблемах нельзя напрасно, это неэффективно.Найти информациюТогда...Попробуй., Думай и анализируй, если проблема не решена, пожалуйста, повторите вышеперечисленные действия.

Но когда новичок сталкивается с проблемами, он или она будет чувствовать:

Упс~ это слишком сложно запрограммировать, количественно оценить и написать стратегии. После долгого просмотра, я все еще ошеломлен! Я хочу сдаться, прежде чем начать! - Что?

Начало работы на платформе FMZ на самом деле очень просто. Прежде всего, вы должны уметь искать информацию.

img

Во-вторых, это практические навыки, которые можно легко протестировать с помощью системы бэкстестинга и инструментов отладки. Это не означает, что нужно тестировать полную стратегию. На самом деле, вы даже можете изучить основы программ JavaScript на системе бэкстестинга FMZ Quant, если вы полностью базовы.

Это учебный сайт, где я часто учусь JS:https://www.runoob.com/js/js-loop-for.html, это не ограничивается JS, все виды ИТ знаний могут быть запрошены и изучены здесь. Например, я не знаю, как использовать регулярные выражения JS, что мне делать? Конечно, сначала поищите информацию, а потом попробуйте сделать это ~

Я видел пример:imgЯ хочу проверить его, и я могу использовать систему обратного тестирования платформы FMZ для тестирования и обучения.

Настроить случайный обмен на системе обратного тестированияimg

Проверьте следующий код:

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

img

Посмотрите, какой учебный инструмент! Например, я хочу научиться писать логику цикла языка 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])
    }
}

img

Чувствуете ли вы желание учиться в одно мгновение? На самом деле, на FMZ, вы можете изучить основы JavaScript на системе backtesting, смотря на учебник JavaScript. Грамматика JavaScript почти освоена, и на следующем этапе вам нужно использовать интерфейс обмена для получения тестирования данных.инструмент отладкиПлатформы FMZ для проведения реальных испытаний интерфейсов.

Затем нужно больше думать, делать выводы из одного случая, проверять тесты, проводить сравнительный анализ и т. д. Это позволяет очень быстро начать обучение.


Связанные

Больше