В предыдущих статьях мы уже узнали, что так называемая программизация, количественная торговля - это сценарий, в котором сценарий выполняет ряд операций, которые используются для управления счетом, на основе данных, полученных от биржи. Эти действия выполняются через API-интерфейс биржи. Проще говоря, сценарий взаимодействует с биржей.
Конечно, на рынке существуют различные виды ошибок, которые могут возникнуть при программировании, количественной системе торговли или самостоятельно разработанной программе. Эти ошибки не ограничиваются ошибками API-интерфейса биржи.
В частности, в некоторых странах, где существует большая вероятность того, что внедряются новые технологии, ошибочные сообщения также могут быть разделены на несколько основных категорий:
Грамматические ошибки Эти ошибки чаще всего возникают из-за незнания программирования и грамматических ошибок при написании кода на этапе тестирования.
В коде меньше символов, таких как скобки. Такие ошибки обычно появляются на странице редактирования политики, и политика также не работает ((при выполнении она возвращает непосредственную ошибку, как показано ниже)).
Поэтому, когда вы напишите свою политику, посмотрите на привычку редактирования страницы политики платформы, чтобы увидеть, есть ли красный маленький XX, если он есть, то это, безусловно, явная ошибка.
Необычность при запуске, вызванная ошибкой в политике Программа имеет BUG, при запуске которой вызванные неисправности приводят к неисправному остановке программы, и показывает такие сообщения об ошибке.
Подобные ошибки приводят к неисправности программы, которая прекращает работу.
Ошибки, вызванные неправильной конфигурацией и настройкой
В FMZ-платформе транзакции обозначаются как:X_Y
В таком формате, X - это название валюты, Y - название курсовой валюты (курсовая валюта на месте контрактной сделки в валютной паре обычно обозначается долларом США, как описано в предыдущих статьях).BTC_USDT
И если я напишу эту транзакцию не так, это будет выглядеть так:BTC-USDT
。
В сети FMZ появилась ошибка:
На самом деле это не так.
Позже он написал в своем блоге:
Подобные ошибки возникают из-за изменения пароля аккаунта на платформе FMZ, что приводит к тому, что в объектах конфигурируемой биржи обнаруживаются ошибки, связанные с изменением пароля.API KEY
Неудача (пользовательский API KEY конфигурируется в платформе FMZ после шифрования в браузере), политика не может быть запущена, и в результате сообщается о ошибке).
Ошибка вызова интерфейса
В предыдущих статьях мы узнали об интерфейсах на платформе FMZ.Интерфейс, генерирующий сетевые запросы、Интерфейс, который не производит сетевые запросы; сообщения об ошибках интерфейса не приводят к остановке политики, обычно из-за исключения вызова интерфейса, возвращения ошибочных данных, а затем политики не допускают ошибок, используя ошибочные данные, вызванные ошибками программы, которые приводят к остановке программы ((концепция допустимости ошибок упоминается в предыдущих статьях)).
Вот несколько сообщений об ошибках интерфейсов, которые приводят к веб-запросам:
Сетевое времяпрепровождение
Одно из самых распространенных сообщений, с которым сталкиваются новички, - это то, что они используют устройства внутренней сети (своих компьютеров или внутренних серверов).
http 429 ошибка
Одно из классических сообщений об ошибках, вызванных слишком частым вызовом интерфейса биржи, превышает ограничения биржи.
Некоторые из моих одноклассников могут сказать, что я подаю заявку на несколько бирж больше, чем на несколько.API KEY
Мы должны знать, что ограничения интерфейсов обычно основаны на IP-адресе, или просто на том, что если запросы, отправленные по одному IP-адресу, полностью сосредоточены на этом IP-адресе, то сервер обмена отказывает в доступе, если вы превышаете ограничение на этот IP.
Ошибки в работе интерфейсов бирж
Вышеперечисленные временные задержки, 429 - это ошибки на сетевом уровне. Проблемы с интерфейсом обмена также могут возникнуть на бизнес-уровне, например, я хочу получить наличный рынок, но я установил несуществующую пару сделок.
Результаты выполнения инструмента дебютирования, выполнение инструмента дебютирования и выполнение на диске не различаются.
Huobi 错误 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, рекомендуется использовать рецензирование местных хостеров (это также быстрее, когда рецензирование публичных хостеров отменяет некоторые задачи рецензирования, что приводит к прерыванию рецензирования).
C++
В отличие от языка сценариев, C++-политики требуют предварительной компиляции, а затем выполнения. Политики языка C++ сначала компилируются на платформе FMZ (сервер).
Мая язык
Основная реализация - JavaScript, которая также выполняется на браузерной стороне.
Визуализация
Основная реализация - JavaScript, которая также выполняется на браузерной стороне.
Система обратной проверки, разработанная изобретателями для количественных торговых платформ, разделена на две модели обратной проверки (этот не отличается от языка стратегии, этот является настройкой обратной проверки, а стратегии обратной проверки для различных языков одинаковы).
Для получения информации о системе обратной проверки можно ознакомиться с инструкциями платформы:
1, аналоговый уровень повторного измерения Простые аналоговые уровни обратного измерения обычно представляют собой ценовые данные, которые генерируются на отдельных временных узлах на основе K-линейных данных.
K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。
Например, мы можем сделать симуляцию следующей схемы:https://www.fmz.comРазумеется, когда реальная система регенерирования реализует это моделирование, ситуация немного сложнее, чем на рисунке, и здесь не нужно углубляться, чтобы понять механизм регенерирования на уровне аналога. Зная этот принцип, необходимо обратить внимание на недостатки аналогового уровня ретроспекции, хотя аналоговый уровень ретроспекции быстрый (поскольку генерируемые аналогом цены не являются реальными ценами в секунду).Симулируемые тенденции изменения тикаВ этом случае цена может быть не такой, как в реальном случае, хотя цена находится в рамках этого столба K-линии. Здесь K-линия, используемая для создания аналоговых данных о тиках, называется нижней K-линией, а цикл этой K-линии называетсяПериод нижней линии KНа странице "Политические настройки" вы найдете следующие настройки:
Настройка здесь на 1 минуту означает, что используются данные из K-линий с циклом 1 минута в качестве источника данных для генерации аналоговых тиков.
Еще один момент заключается в том, что для высокочастотных стратегий использование аналогового уровня ретроспекции явно не подходит. Однако для трендовых стратегий использование аналогового уровня ретроспекции может в какой-то степени отражать эффективность стратегии.
2, повторное измерение на уровне диска Говоря об аналоговом уровне ретроспекции, давайте поговорим о ретроспекции на уровне реального диска. Проще говоря, ретроспекция на уровне реального диска - это реальная выпускная цена в секунду при ретроспекции. Пусть стратегия ретроспективно оценивает цены на секунду в рынке. Недостатком является то, что объем данных для повторного измерения на уровне реального диска слишком велик, чтобы не иметь возможности для повторного измерения в более широком временном диапазоне (обычно менее 1 дня).Расчетные данные, снижение уровня глубины данных (сделки по данным, расчетная глубина данных также имеет снятие на секунду в ретрансляции на уровне реального диска, поэтому объем ретрансляции на уровне реального диска огромен), чтобы соответственно увеличить диапазон ретрансляции, как показано на графике:
Где же источник данных для системы обратной связи? По умолчанию система обратной связи использует данные центра данных платформы FMZ, который автоматически собирает данные рынка различных валют на различных хорошо настроенных биржах и предоставляет их системе обратной связи на платформе.
1, данные FMZ по умолчанию В предыдущих статьях упоминалось:https://www.fmz.com/bbs-topic/6857#量化交易平台Данные, предоставляемые платформой, поддерживают только ограниченные торговые пары ("все рынки, все валюты - это астрономические цифры, все они собираются нереально, платформа собирает данные о рынке основных бирж, основных валют").
2, Использование персонализированных источников Вы можете использовать опцию на странице рецензирования для настройки собственного источника данных. Если у вас есть собственные данные с одной из бирж, вы можете предоставить рецензируемую систему платформы FMZ для рецензирования в соответствии с требованиями формата FMZ.
В документации FMZ API также есть несколько указаний на пользовательские источники данных:https://www.fmz.com/api#自定义数据源
В FMZ также есть несколько программ:
Если вы хотите узнать больше, вы можете посмотреть на эту статью.
Программирование, количественная торговляУчиться、Тесты、МыслитьЯ не знаю. Если мы думаем о проблемах, мы не можем думать просто, это неэффективно.Поиск информацииА потомПопробуйте.、Мышление и анализЕсли проблема не решена, перейдите к следующему шагу.
Но обычно, когда у них возникают проблемы, они чувствуют:
Ого, как сложно программировать, количественно измерять, писать стратегии. Я смотрю на нее полдня, и я не знаю, что делать! Ты не вошел, чтобы бросить! Я не знаю.
Вход на FMZ-платформу прост, сначала нужно знать, как найти информацию.
Это не значит, что вы должны тестировать полную стратегию. Если вы полностью на нулевой основе, вы можете даже изучать основы JavaScript на FMZ.
Это учебный сайт, на котором я часто изучаю 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, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", 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, изучая JavaScript на рецензируемой системе. Я почти освоил грамматику JavaScript, чтобы перейти к следующему этапу.Инструменты для дебютированияПроводить реальные интерфейсные тесты.
После этого нужно много думать, делать три против одного, проверять, сравнивать и т. д. Это очень быстрое обучение.
лизулиПоздравления