[TOC]
Краткое изложение часто задаваемых вопросов (постоянно обновляется…)
Как найти ключевые слова в сообщениях?
использоватьCtrl + fКнопка открывает поиск страницы, вводя ключевые слова, например:
На данный момент FMZ International поддерживает только цифровые валюты.
Вейси:

GetTickerиGetDepthПолучилПокупаем по цене.иПродается по цене.Что изменится?GetTickerиGetDepthВозможно, не одновременно. Есть определенные задержки, есть изменения в данных.GetTickerДанные немного быстрее, потому что их меньше.
exchang.GetOrdersЕсли вы получаете неработающие листы, то где вы можете получить уже работающие листы?Запросы также имеют свой API:exchange.GetOrderЭто основано наIDЗапрос всех типов заказов. Ввод заказовIDПоиск заказа. Заказ можно получить, только посмотрев на то, что все биржи не предлагают такого интерфейса, и каждый из них может предлагать разные интерфейсы.
JavaScriptСтрока времени стратегии не работаетНеобходимо учитывать часовые пояса в системе.

Почему я печатаю одинаковые цены на начало и на окончание?
Signature not valid:Invalid submission time or incorrect time format[无效的提交时间,或时间格式错误]Ошибки, связанные с сервером и временем коррекции
Вопрос:windows2000/2003/XPДля более старых операционных систем, ссылки:
Рекомендуется использоватьLinuxСервер, или в тех, которые возникают проблемыwindowsСистема устанавливает программное обеспечение для синхронизации времени, высокочастотная синхронизация времени, предотвращает ошибки проверки времени.
ATR(TR) рассчитанных значений иTA/talibЕсть ли разница в расчетах?Это связано с тем, как рассчитывается языковой показатель Мак, и с тем, что он не соответствует стандартам.TA/talibОсновные алгоритмы несовместимы. Оба верны, только алгоритмы разные.MACDНекоторые используют вдвое больше.DIF-DEAНекоторые из них вдвойне.DIF-DEAИ это правда.
Futures_EsunnyЧто это означает?ПредставительствоСоглашение ИшаньОбъекты биржиexchange.GetName()Функция возвращается.
На данный момент FMZ International поддерживает только цифровые валюты.
#EXPORTTEST...#ENDПосле объявления хорошей переменной. Используется при ссылке в стратегииREFЕсли мы не будем делать выводы, то будем ссылаться на данные, которые не соответствуют нашим представлениям о том, что происходит в данный момент.Все необходимые многоциклические данные, в#EXPORTTEST...#ENDВнутреннее содержание должно быть хорошо обработано, а внешнее - только для прямого использования.
Вы можете просто ввести адрес страницы: https://www.fmz.com/api, или нажать на ссылку, как показано на рисунке:

MACDЭто не то же самое, что то, что было указано на бирже?При сравнении необходимо обратить внимание на то, что линейные периоды K совпадают.MACDСовпадают ли параметры показателя, совпадают ли периоды времени, совпадают ли разновидности, кроме тогоMACDСуществует множество алгоритмов.DIF-DEAЧто-то есть.2*(DIF-DEA),DIFиDEAОни должны быть едиными.
В посещенииexchange.GetRecordsКогда интерфейс получает данные K-линий, количество K-линий, возвращаемых конкретным интерфейсом, определяется биржей. Возможно, количество K-линий, возвращаемых каждой биржей, не совпадает.exchange.GetRecordsКогда будет вызван интерфейс для получения данных об истории торгов биржи, на основе истории торгов будет синтезироваться K-линия). K-линия, полученная администратором, будет постоянно накапливаться вместе и потребует определенной частоты посещенияexchange.GetRecordsИнтерфейс, иначе это может повлиять на непрерывность данных.
exchange.BuyФункция возвращает толькоIDЯ не знаю, как я могу вернуть столько информации.Функции API в FMZ могут генерировать логические выводы, напримерLog、exchange.Buy、exchange.CancelOrderМожно также использовать дополнительные параметры вывода после необходимых параметров. Например:exchange.CancelOrder(orders[i].Id, orders[j])Это отмена.orders[j]При заказе приводится информация о заказе.
Только на дискетах.LogФункция завершается добавлением символа'@'Поделиться статьейLogИнформация о функции напечатано в документации API: https://www.fmz.com/api#Log
На данный момент FMZ International поддерживает только цифровые валюты.
exchange.GetAccountЕсть ли какие-то проблемы с доступом к информации из-за сети или из-за других проблем, или система FMZ уже была создана для решения этих проблем? Или пользователи должны сами решить проблему с провалами запросов? Почему официальные органы не занимаются этим?Недостатки, требующие обработки с терпимостью к ошибкам пользователя. Основная часть FMZ не обрабатывает данные, обратная связь с пользователями - это необработанные данные, конкретный способ терпимости или логика, разработанная политикой. Если эта обработка может повлиять на решение пользователя, решение передается на обработку политики, а именно:Фильтрация ошибочной информацииИлиПопробуй еще раз.И так далее.
Объем сделки по контракту OKEX при заказе на FMZ определяется по количеству контрактов, напримерexchange.Buy(1000,1)Это заказ на 1 контракт по цене 1000.
exchange.Sellиexchange.BuyЭто обычная лимитная цена?В частности, первым параметром входящего параметра является ((первый параметр - цена заказа)). Некоторые биржи поддерживают рыночную цену, входящие параметры цены-1Это означает, что цены на торгах, объемы покупок и продаж имеют несколько разные значения (второй параметр).-1В большинстве бирж на месте, где есть интерфейс для заказа, заказ по рыночной цене составляетСуммаНет, это не так.Количество монет。 Интерфейс заказа на цифровых валютных фьючерсных биржах, заказ, как правило, составляет целое число контрактных листов。
См. следующий интерфейс:
https://www.fmz.com/api#exchange.buyprice-amount
https://www.fmz.com/api#exchange.sellprice-amount
Mail("smtp.qq.com", "[email protected]", "xxx", "[email protected]", "test title", "test body")
В настоящее время большинство облачных серверов в основном блокируют 25 портов, за исключением физических серверов, операторы в основном не блокируют 25 портов. Большинство облачных серверов также могут подать заявку на разблокировку 25 портов.
По умолчанию “наибольшее число циклов переменной” - 600, если параметр показателя установлен слишком большим, например, для вычисления MA ((1000) ≠ 600, то среднее значение 1000 данных не может быть вычислено, так как система сохраняет только 600 данных.
function main() {
_G(11212, "123")
}
_GФункциональные ключевые имена не могут быть цифрового типа.
Судя по этой характеристике: Exception 0xc00000fd
Exception 0xc00000fd 0x1 0x5cdd203f40 0x1ee5955
PC=0x1ee5955
signal arrived during external code execution
def create_large_list():
large_list = []
while True:
large_list.append(" " * 1024) # Append a string of 1024 bytes to the list
print(f"Current list size: {len(large_list)}")
def main():
create_large_list()
Проверьте, есть ли ошибки в области редактирования кода стратегии, проверьте, не забыли ли вы написать name (без написания имени переменной) при написании var name = “a”. Проверьте, не использовались ли ключевые слова языка программирования при установке параметров интерфейса стратегии. Не рекомендуется использовать ключевые слова, распространенные в языке программирования, которые могут вызывать конфликты (даже если в текущем языке программирования нет этого ключевого слова).
BITMEX429 ошибок{"error":{"message":"Rate limit exceeded retry in 1seconds……"}}Видно ошибку 429, то есть доступ к интерфейсу биржи с слишком высокой частотой. Необходимо увеличить интервалы опроса, снизить частоту доступа к интерфейсу.
BittrexОшибка:{"success":false,"message":"NOT_ALLOWED","result":null}Биржа ограничивает доступ, зарегистрируйтесьBittrexНа веб-сайте биржи можно посмотреть, нужно ли выбирать пользовательские соглашения и т.д.
TypeError:value has no property at
Отслеживание отличается от отслеживания в реальном времени, поэтому отслеживание не может обнаружить данную информацию.
unable to open databaseСообщить об ошибке
Если бы это был AppleMac OSВнимательно проверьте, не является ли это проблемой прав.
Не удалось создать файл базы данных на диске, что привело к ошибке.
不支持该功能Обменный объект, добавленный при отслеживании, является цифровым валютным наличным обменным пунктом, в коде вызван API-функция фьючерсов 。
in SetCurrency OSError: exception: access violation reading 0x000000FCF25F0000Например, фьючерсы на цифровые валюты.PythonСтратегия, система обратной связи использует частный хостинг, в коде переключается параллель между транзакциями.
Причина заключается в том, что система обратной связи не поддерживает цифровую валюту.
Ошибка дешифрования
[[Изображение]
Изменение пароля для учетной записи FMZ привело к недействительности настроенного API KEY, что привело к ошибке.
Решение: переконфигурировать API KEY биржи, отключить хостинг, перезапустить хостинг и попытаться запустить диск.
PythonМестные тесты двигателя, сообщение об ошибкеEOFerror。
EOFОшибка заключается в отслеживании окончания ошибки может быть захвачен аномалии может быть выполнено в любой поддержкиPythonМестные вызовы.
# 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) # 获取1minK线
print(len(bars_1min))
_CDelay(2000)
# 调用主函数
try:
main()
except:
print(task.Join(False))

Причиной является превышение параметров цикла вычисления, диапазона данных, что приводит к вычислению значения N/A. Обработка:

Возможно, это проблема с ранними шаблонами языка Mac. Решение: 1. Экспортировать стратегию в XML-файл. 2. Создать новую пустую стратегию языка Mac. 3. Импортировать XML-файл в новую пустую стратегию.
fatal error:unexpected signal during runtime execution...go routine 11[syscall,locked to thread]ПроверкаC++При написании стратегии используется ли пустой указатель, рекомендуется использовать ошибочный способ отслеживания.

exchange.SetMarginLevel(10)Ошибка:Futures_OP 0:403:{"error":{"message":"Access Denied","name":"HTTPError"}}Проверка заявления биржиAPI KEYОткрыты ли соответствующие права.
symbol not setКонтракты не установлены в отслеживаемом коде фьючерсной биржи, см. в документации APIexchange.SetContractTypeфункция.
ERR_INVALID_POSITIONОшибкиСистема отслеживания ошибок, обычно ошибки в составлении стратегии. Попытка уравнения позиции при отсутствии или недостаточном количестве позиций может вызвать эту ошибку, проверка наличия замораживания позиций, вызванного невыполненными ордерами.
ERR_INVALID_ORDERОшибкиСистема отслеживания сообщает об ошибках, обычно пишет ошибки для стратегии, обратите внимание на проверку цены заказа ((фьючерсы цифровой валюты системы отслеживания временно не поддерживают рыночную цену заказа), количество заказа - это 0 или отрицательное или меньшее число ((фьючерсный контракт - это контракт, в котором количество выпусков является целым числом)).
ERR_INSUFFICIENT_ASSETОшибкиСистема отслеживания сообщает об ошибке, как правило, количество доступных активов уже не соответствует количеству активов, необходимых для текущего заказа.
Binding Error:Cannot passnon-string to std::stringСообщение об ошибкеВ стратегическом коде, как правило, ошибочно используется имя какого-либо атрибута, что приводит к .
{"status":6004,"msg":"timestamp is out of range"}ОшибкиВремя сервера должно быть обновлено, если время сервера выходит за пределы диапазона, и не может быть слишком большим.
timeoutОшибкиЭта ошибка является ошибкой просрочки, которая означает, что после посещения интерфейса биржи больше определенного времени не было получено ответных данных об обменном интерфейсе. Обычно это проблемы с доступом к сети в системе, в которой находится хостинг (многие из них вызваны стенами), или проблемы с интерфейсом биржи.
syntax error invalid labelИсточник проблемы:
function main(){
if(1){
continue
}
}
//这样会导致运行时报错
continueСсылки должны использоваться в цикле!
400:{"error":{"message":"Nonce is not increasing.This nonce:1523891993165,last nonce:1523891993165","name":"HTTPError"}}оnonceОшибки в проверке, связанные с ошибочной информациейnonceОбычно это проверка временного ящика не проходит, попытка синхронизировать время с системой, в которой находится хостинг, используемый этим же диском.
Secretkey decrypt failedОшибки
Это была месть.API KEYНе удалось расшифровать. Проверка настройкиAPI KEYПосле изменения пароля для учетной записи FMZ и попытки перенастроить страницу для добавления биржи на платформе FMZAPI KEYВ этом случае вы должны перезагрузить хостинг и запустить тест на месте.
exchange.GetorderЭто ошибка, которую часто сообщают:GetOrder(455284455):Error:invalid order id or order cancelled.Что может быть причиной?Буквально: заказ был отменен или идентификатор заказа недействителен. Причина: некоторые биржи отменили заказ, и биржа больше не поддерживает информацию об этом заказе и удаляет его.exchange.GetOrderПоиск по заказу сообщает об ошибке, или сам поисковый идентификатор является ошибочным.

rate limit, 429 Too Many Requests(太多请求)
Стратегия, в которой доступ к биржевому интерфейсу является слишком частым, снижает частоту доступа к биржевому интерфейсу.
Invalid order price/amountТакие проблемы возникают из-за вызова нижней функцииexchange.Buyилиexchange.SellПоступление цены и количества заказа, вызванные ошибкой.Минусовая сумма、0Методы обнаружения ошибок:exchange.Buyилиexchange.SellВызов до заказаLogФункция выводит входящий параметр цены или параметр количества и задает следующий вопрос:
GetOrders:400:{"code":-1121,"msg":"Invalid symbol."}Что не так?В ответ на это он написал:Недействительные сделкиВы проверили, не была ли ошибкой установка пары сделок.
Для разъяснения кода ошибки, возвращенного API-интерфейсом каждой биржи, необходимо ознакомиться с документацией API-интерфейса биржи.
Печатание кривой прибыли на жестких дисках на языках Pine и Mac В зависимости от параметров шаблона языка Pine/Mac, политика также будет печататься, когда будет полностью ничтожна.
На жестком диске Mac Language печатается количество сигналов, но никаких операций с заказами не производится.
Возможно, что параметры шаблона Mac не соответствуют правильным параметрам, таким как точность, минимальная точность заказа и т. Д. Причина заключается в том, что уровень триггера сигнала считается успешным, а уровень исполнения сделки считается нежелательным из-за некоторых проблем с параметрами, в результате чего фактически нет заказа. Посмотрите другие публикации на языке Mac: https://www.fmz.com/digest-topic/5789 https://www.fmz.com/digest-topic/5768
Проверьте, правильно ли встроен API KEY в URL-адресе webhook. API KEY - это расширенный API KEY для FMZ, установленный в верхнем правом углу настройки учетной записи FMZ. Проверьте, правильно ли заполнен ID диска в URL-адресе webhook.*Это означает, что права собственности, а не прямой доступ к ним, должны быть ограничены.*Функция, которая дает разрешение, называется следующим образом:
Настройка настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки

Проверьте, не является ли сервер зарубежным IP-адресом.
Проверьте, используется ли модель закрытия цены, проверьте параметры, установленные в шаблоне языка стратегии Mac.
BITMEXПочему на K-линейной временной шкале биржи больше времени цикла, чем на Bar в той же позиции на других биржах?Причина в том,BITMEXK-линейная временная таблица биржи представляет собой временную таблицу с окончанием текущего барного цикла (некоторые K-линейные периодыBITMEXИнтерфейс биржи не поддерживается, поэтому временные рамки для этих циклов используются в качестве временных рамок для начала Bar). Например, на правом рисунке:

Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.
Проверьте, используется ли функция “Конфиденциальные источники данных” и являются ли данные, предоставленные сервисом “Конфиденциальные источники данных”, правильными. Причиной ошибки может быть аномальная обратная проверка данных.
/*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)
}
}
BITMEXЕсли мы не будем учитывать, что в этом случае мы не сможем сделать то, что мы делаем, мы не сможем сделать то, что мы делаем, мы не сможем сделать то, что мы делаем.Стоимость финансирования учитывается в кривой прибыли и убытка, генерируемой системой обратной оценки.
Проверьте, не открыт ли прокси, в результате чего файлы страницы не загружаются полностью, проверьте, есть ли в консоли страницы сообщение об ошибке.
Фиксированный уровень отсчета, то есть этот реальный уровень Tick, операционные данные в секунду, реальная запись. А также сделанные снимки, данные потока заказов, эти данные очень большие, только поддерживают 50MB объема данных. То есть фиксированный уровень отсчета, диапазон до нескольких часов, не может быть длительный диапазон отсчета.

В системе отслеживания, установленная на интерфейсе плата, действует только после добавления, ранее добавленный объект биржи не может быть непосредственно изменен с помощью элементов управления на интерфейсе.
При настройке графики))ChartФункция), на рисунке показано количество данных при измерении и настройки измеренияГрафикиПараметры относятся, в контрольной таблице показано максимальное количество строк. Обратите внимание, используется лиchart.resetФункция очищает часть старых данных.
C++Никаких отзывов, никаких сообщений об ошибках и журналов, никаких изменений после нажатия кнопкиC++Стратегия некоторых исключений не бросает ошибок, используя метод исключения поэтапной проверки кода возможных ошибок во время выполнения. Например: вычисление показателей, вызванных недостаточным количеством K-строчек при расчете показателейNANПослеNANЭто приведет к срыву программы.
pythonОтслеживание карты мертво!Не может бытьtryВ нем говорится, что обнаружение аномалийSleepФункция, написанная так, как показано на рисунке, застывает.

Торговых пар на биржах слишком много, поэтому в системе отслеживания было выбрано только несколько репрезентативных торговых пар для тестирования. Можно выбрать отслеживание торговых пар с аналогичным положением, которое можно использовать в реальном времени.Настраиваемые элементы управленияНастройка поддерживаемых биржей сделок.
Система отслеживания пока поддерживает только некоторые основные валюты на более крупных биржах, некоторые из них пока не поддерживаются. Если требуется проверка стратегии, то в системе отслеживания можно использовать другие валюты вместо тестирования. Фактически, цифровые валюты могут быть протестированы с использованием различных валют, кроме факторов поведения.
Убыток от открытия позиции: это все сделки, открытые до открытия текущей позиции, а убыток, полученный при открытии позиции, - это все накопленные убытки. Убыток от хранения: это убыток от хранения в настоящее время, если нет хранения в настоящее время, то это 0 Залог: сумма залога на текущую позицию Ожидаемая прибыль: рассчитывается прибыль, полученная от убытков, полученных от убытков, а также от убытков, полученных от убытков, полученных от убытков, полученных от убытков. Текущий доступный USDT: количество USDT, которое в настоящее время можно использовать для открытия позиции.
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
}
}
}
Выше приведены алгоритмы, описывающие, как они рассчитываются: После того, как система отсчета будет рассчитана во времени, вычисляется кривая волатильности. Начиная с первой точки, сравнивайте следующую с выигрышем, если она выше, и отрицательным, если она ниже, и продолжайте сравнивать с следующей точкой.
Хостинг на платформе FMZ вышел из строя, хостинг на сервере остановился В операционной системе Linux может возникнуть недостаток памяти, из-за которого хостинг может быть остановлен. Причины: 1 . Стратегия чрезмерного использования аппаратных ресурсов . 2 ‒ В Strategy Log выводится очень большое количество контента ‒ 3 - на устройстве, на котором находится хостинг, работает слишком много политических дисков. 4 (в дополнении)
Ошибка при запуске администратора MAC: dyld: cannot load (load command is unknown)
dyld: cannot load (load command is unknown)
Слишком низкая версия операционной системы приводит к:
LinuxГде видео, размещенное администратором системы?Ссылка на B-станцию: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web
robotЧто делать, если программа перезагрузилась и снова запустилась?Не останавливая администратора, удаляйте старые.robotПрограмма файлов, а затем загрузить новые компрессионные пакеты, расшифровать новыеrobotФайлы программы, находящиеся в исходном месте. На данный момент хостинг обновлен, но работающая жесткая диска использует старую версию в памяти, и только при перезагрузке жесткой диски будет использоваться последняя версия.
LinuxРазвертывание серверных администраторовLinuxУстановка администратора: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web
screenЗапустите хост-программуrobotКогда появились-bash:screen:command not found“Власти не могут работать.LinuxСистема не установленаscreenПрограммное обеспечение, как правило, устанавливается.CentOSИнструкция для установки:yum install screen。
Текущий опекун уже поддержалSSHОтключение, переход в фоновую среду.screenЭтот инструмент, в программе администратораrobotВ каталоге приведена команда:./robot -s node.fmz.com/xxxxxxx, затем введите пароль для учетной записи FMZ, чтобы показатьLogin OKЭто означает, что развертывание успешно../robot -s node.fmz.com/xxxxxxxВ xxxxxxxx - это уникальный идентификационный код для каждого FMZ-аккаунта, который можно вводить самостоятельно ((после входа в учетную запись перейдите на страницу хостов, нажмите на Добавить хостов, перейдите на страницу Добавить хостов), здесь не нужно вводитьxxxxxxx。
Каталог, в котором находится процедура curatorslogsВ папкеDB3В файле базы данных, файл базы данных называется твердотельный дискidРасширение называетсяdb3。
LinuxВ системе./robot -lПосмотрите названия бирж, поддерживаемых трейдерами.exchangeЧто такое биржа?НазваниедляexchangeКод объекта биржиОбщие соглашенияОбщий протокол обмена, доступ к которому: https://www.fmz.com/api#%E9%80%9A%E7%94%A8%E5%8D%8F%E8%AE%AE
Добавление более пяти администраторов приведет к появлению контролей, отображаемых в списке.

Общественный хостинг - это инструмент для быстрого обучения новичкам. Не нужно развертывать хостинг, чтобы научиться, но настоящие тесты в реальном времени рекомендуют использовать частный хостинг, так как аппаратные ресурсы и сети общественного хостинга являются общими, и платформа может не регулярно поддерживать эти общественные хостинг.
./robot -s node.fmz.com/1234567Я не могу быть единственным, кто может это сделать.Этот адрес является идентификатором адреса для каждого пользователя./1234567Часть значений является уникальной и используется для идентификации пользователей.Центр управления->Нажмите кнопку Добавить администратора->Добавить страницу администратораЕсли вы хотите, чтобы ваш сайт был доступен для всех, кто хочет его скачать, вы можете посмотреть этот адрес и скопировать и вставить его прямо здесь.
python2.7Почему мы не можем найти переменную среды?
windowsПервая установка системыpythonПосле установки переменной среды необходимо перезагрузить действие.

python-отзывы заканчиваются отзывами на исключениях EOF (поскольку иногда стратегия может быть мертвой петлей). Поэтому указание на исключения EOF является нормальным.
Не ограничивается количество, в зависимости от конфигурации сервера и степени сложности стратегии, в частности, следует учитывать, используют ли эти несколько твердых дисков один и тот же интерфейс биржи ((с учетом частоты вызовов интерфейса, чем больше частоты, тем выше частота), обычно 5-6 твердых дисков не проблема.
https://www.fmz.com/digest-topic/7542