8 причин выбрать MetaTrader VPS вместо обычного облачного хостинга

 

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

8 причин выбрать MetaTrader VPS вместо обычного облачного хостинга

Эти проблемы вовсе не так редки и смехотворны, как может показаться — например, в 2022 году экономика Великобритании потеряла 1,3 млрд фунтов стерлингов из-за перебоев с интернетом у удаленных сотрудников (отчет Uswitch.com). Логично, что профессиональные трейдеры не желают оставлять свои выстраданные стратегии на волю стихии и стремятся максимально контролировать все процессы. Если отбросить полумеры в виде бесперебойных блоков питания, двух интернет-провайдеров и прочие подобные сомнительные решения, остается одно — арендовать надежную машину для своего робота или сигнала. Физический сервер — достаточно затратная затея, поэтому очевидным решением становится виртуальный частный сервер (VPS).

Однако на практике это решение часто не работает должным образом из-за самых разнообразных причин, поэтому многим трейдерам VPS кажется неэффективным из-за негативного опыта в прошлом.

С какими проблемами сталкиваются трейдеры при аренде обычных выделенных серверов:

Низкая производительность. Чтобы ваши стратегии работали, как задумано, очень важно получить достаточно технических ресурсов — процессор, оперативная память, дисковое пространство. Небольшие хостинги часто выделяют пользователям слабые машины, которые могут подвести вас в самый неподходящий момент. Другая распространенная проблема — оверселинг: иногда такие компании и продают своим клиентам больше ресурсов, чем у них есть в реальности. Расчет здесь на то, что не всем нужен максимум ресурсов постоянно — плавающая нагрузка распределяется по кластеру в зависимости от потребления. Однако если все пользователи одновременно начнут использовать максимум ресурсов, система попросту не выдержит.

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

Высокая цена. Качественные решения, которые будут соответствовать всем требованиям, могут стоить достаточно дорого. Многие компании предлагают недорогие базовые тарифы в районе 2–3 USD в месяц, чтобы привлечь ваше внимание, но чтобы арендовать машину достаточной мощности, придется заплатить примерно в 10 раз больше.

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

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

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

Низкий uptime. Каждый хостинг старается убедить пользователей, что он работает вообще без остановок, однако в соглашениях даже у самых надежных всемирных провайдеров обязательно заложен хотя бы минимальный простой, например, на время сервисного обслуживания. Иметь не 100% uptime абсолютно нормально, но важно, чтобы падения не происходили слишком часто, как это бывает с небольшими дешевыми хостингами.

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


Однако у компании MetaQuotes есть решение для тех, кто только задумывается об облачном хостинге или уже разочаровался в этом решении из-за перечисленных проблем. Если вы ищете надежный VPS, который лишен всех недостатков в списке — предлагаем вам рассмотреть MetaTrader VPS, специальный хостинг для трейдеров, которые работают в торговой платформе MetaTrader. Мы уверены, что это хорошее решение потому, что тысячи ваших коллег-трейдеров используют MetaTrader VPS каждый день.

MetaTrader VPS — встроенное в торговую платформу решение для профессионального копи- и алготрейдинга, которое не нужно настраивать и подключать отдельно. Мы самостоятельно разработали VPS специально под собственную торговую платформу, поэтому гарантируем полную совместимость и работоспособность каждого элемента на любом этапе. Роботы и подписки легко мигрируют на виртуальную машину и включаются в один клик без дополнительных манипуляций. Более десяти наших точек присутствия находятся по всему миру, чтобы обеспечить оптимальный доступ — не более 5 мс задержки до 82% всех брокерских серверов в мире. А это значит, что подавляющее большинство трейдеров улучшают свое исполнение, когда используют MetaTrader VPS. Серверы MetaQuotes находятся у самых надежных хостинг-провайдеров, поэтому мы гарантируем uptime 99,99% — вы можете быть уверены, что ваши стратегии будут стабильно работать 24 часа в сутки. Каждая торговая платформа на виртуальной машине получает достаточное количество свободных ресурсов за счет грамотного и продуманного распределения: до 3 ГБ оперативной памяти, до 16 ГБ на жестком диске и несколько CPU, которые выделяются автоматически по требованию. В случае любых затруднений вы получите своевременную и грамотную техническую консультацию от службы поддержки.

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

Стоимость сервиса начинается от 15 USD в месяц, но может быть снижена при долговременной аренде. Более того — недавно мы значительно упростили взаимодействие с услугой для брокеров, и все больше компаний запускают проекты спонсирования VPS для своих клиентов. Уточните у своего брокера, на каких условиях он готов предоставлять вам хостинг для трейдинга бесплатно.

Как видите, MetaTrader VPS гораздо лучше подходит для алгоритмического или социального трейдинга, чем обычные неспециализированные хостинги. Используйте это решение, чтобы торговать в максимально предсказуемых условиях, с оптимальными базовыми техническими показателями и минимальными рисками. MetaTrader VPS — это лучший виртуальный частный сервер, который компания MetaQuotes создала специально под ваши требования.

 
Сколько по времени выполняется  на VPS  ?
Sleep(1)
 
Можно ли использовать глобальные переменные терминала для общения двух советников на VPS ,
 
pivomoe #:
Можно ли использовать глобальные переменные терминала для общения двух советников на VPS ,

Вот нашел пост -

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Терминальные глобальные переменные

Г-н Дэвид Фредерик Робертс , 2020.07.27 13:18

Насколько я понял из https://www.mql5.com/ru/articles/994 значения глобальных переменных НЕ переносятся из терминала...

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

Возможно что-то изменилось, но просто прочитайте статью:
Подготовка торгового счета к миграции на виртуальный хостинг
и следующие посты -

  • пример по #property tester_file - пост

Подготовка торгового счета к миграции на виртуальный хостинг
Подготовка торгового счета к миграции на виртуальный хостинг
  • www.mql5.com
Клиентский терминал MetaTrader идеально подходит для автоматизации торговых стратегий. Для разработчиков торговых роботов в нем есть всё ‒ мощный язык программирования MQL4/MQL5 на основе C++, удобная среда разработки MetaEditor, многопоточный тестер стратегий с поддержкой распределенных вычислений в MQL5 Cloud Network. В этой статье вы узнаете, как перенести свой клиентский терминал со всеми разработками в виртуальную среду.
 
А что по поводу Sleep(1) ? Толку 0 от пинга в 2 мс если Sleep(1) занимает 16 мс.
 
pivomoe #:
А что по поводу Sleep(1) ? Толку 0 от пинга в 2 мс если Sleep(1) занимает 16 мс.

Вы считаете единственным методом контроля задержек использование устаревшего на 30 лет Sleep из WinAPI? И на основании этого архаичного архитектурного недостатка IBM PC+Windows системы строите вопрос?

У него чудовищный лимит на основе тикового генератора, который по факту работает с частотой дискретизации до 16 мс. И даже метод его ускорения до 1 мс через timeBeginPeriod(1) разгон мультимедийного таймера не очень помогает.


Поэтому в вопросах точного замера микро и миллисекунд секунд нужно использовать спиновый/ожидающий Sleep:

//+------------------------------------------------------------------+
//| Spin sleep                                                       |
//+------------------------------------------------------------------+
void SleepSpin(ulong microseconds)
  {
   ulong start=GetMicrosecondCount();
//---
   while((GetMicrosecondCount()-start)<microseconds)
     {
      // тут желательно nop операции поставить, чтобы разгрузить ядро CPU от 100% загрузки
     }
//---
  }
  
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   ulong ticks;
//---
   ticks=GetMicrosecondCount();
   Sleep(1);
   ticks=GetMicrosecondCount()-ticks;
   Print("Microseconds via Sleep: ",ticks);
//---
   ticks=GetMicrosecondCount();
   SleepSpin(1000);
   ticks=GetMicrosecondCount()-ticks;
   Print("Microseconds via SleepSpin: ",ticks);
//---   
  }


2023.07.13 02:13:43.542	SleepTest (EURUSD,M1)	Microseconds via Sleep:     3788    // плавает
2023.07.13 02:13:43.543	SleepTest (EURUSD,M1)	Microseconds via SleepSpin: 1000    // четко 1 мс

Обычный Sleep плавает в широких диапазонах от 1000 до 16000 микросекунд, а ожидающий отмеряет точно.

Обычный и дешевый по CPU ресурсам Sleep используется для грубой задержки в режиме "подождать, отдать ресурсы на сторону, мне терять нечего" и не применим в low latency учете. Рациональность такого подхода понять можно - экономится CPU.

В тех местах, где точность критична, все массово используют спиновый/крутящийся режим. В нем поток выполнения/контекст не высвобождается, кванты времени не отдаются и 1 ядро CPU часто загружается на 100%.


Более щадящий CPU метод ожидания можно сделать через недокументированные NtSetTimerResolution / NtDelayExecution функции. Но он, как и timeBeginPeriod, может оказывать негативное влияние на общую систему.

Решение точного замера ожидания в любом случае доступно. Но мы можем добавить дополнительную функцию SleepPrecise(int microseconds) с повышенными затратами CPU.



Теперь о VPS:

  1. детально техническая реализация нашего сервиса описана тут: https://www.mql5.com/ru/vps/best-forex-vps-technology
  2. у нас голый оптимизированный хост в server core edition (Windows без GUI), который несет на себе множество копий урезанных терминалов - это грубо говоря в 50-100 раз по всем ресурсам экономнее провайдерских VPS

    вообще аренда классического дешевого Windows Server + Desktop GUI VPS - это техническое самоубийство, если речь идет о снижении задержек и достаточности ресурсов. по ссылке выше все разжевано

  3. у терминалов вообще нет никакого GUI, никаких графиков и вообще практически ничего нет кроме минимального движка
  4. задержки в терминалах сведены к теоретическому минимуму, так как ничего не мешает MQL4/MQL5 программам работать
  5. ресурсов на каждый терминал в разы больше, чем на любом сравнимом VPS
  6. мы жестко оптимизируем свою инфраструктуру и сеть на низкие задержки

Лучшее VPS-решение для торговли на Форекс – VPS для MetaTrader 4/5
Лучшее VPS-решение для торговли на Форекс – VPS для MetaTrader 4/5
  • www.mql5.com
С MetaTrader VPS у вашей виртуальной платформы всегда хватит сетевых ресурсов для комфортной и бесперебойной работы с минимальными задержками. Выбирайте лучший VPS для форекса.
 
Я Sleep(1) использую для того, чтобы дать процессору отдохнуть и поработать в других копиях советниках. Их около 80 + 5 сервисов.
Renat Fatkhullin #:
И даже метод его ускорения до 1 мс через timeBeginPeriod(1) разгон мультимедийного таймера не очень помогает.

   Использую этот метод. Не знаю с этим ли связано, но появилась проблема:

Загрузка процессора 60% ( 4 реальных + 4 виртуальных) .В одном сервисе в цикле смотрю около 20 стаканов + множество вызовов OrderGetXXX() функций. В результате через 10 минут работы асинхронные транзакции с 8-10 мс начинают исполняться 50-60 мс. Закрываю терминал и открываю его снова проблема исчезает. А в соседнем терминале она продолжает существовать. Сейчас заменил Sleep(1)( 2 мс пауза) в этом сервисе на Sleep(20) проблема пропала. 

Нельзя ли увеличить максимальное количество открытых графиков со 100 скажем до 300 или сделать функцию, которая открывает новую копию сервиса с заданными параметрами ?

У меня слабая машина на ней 2 терминала на каждом 80+ советников загрузка 60%. Проблем вроде нет. Зачем мне два терминала.

 

Рекомендую проапгрейдить компьютер, если занимаетесь мультипотоковыми нагрузками. Ну и самостоятельно с профайлером оптимизировать код.

Современные процессоры просто сказка по сравнению со старыми, невзирая на близость частот.

Увеличивать количество чартов не планируем.
 
Renat Fatkhullin #:

Рекомендую проапгрейдить компьютер, если занимаетесь мультипотоковыми нагрузками. Ну и самостоятельно с профайлером оптимизировать код.

Современные процессоры просто сказка по сравнению со старыми, невзирая на близость частот.

Увеличивать количество чартов не планируем.

А нельзя ли увеличить к-во советников на чарт, чтобы чарты не плодить. Да, у меня в каждом советнике куча отдельных роботов, но разные семейства всё же в разных советниках.

 
JRandomTrader #:

А нельзя ли увеличить к-во советников на чарт, чтобы чарты не плодить. Да, у меня в каждом советнике куча отдельных роботов, но разные семейства всё же в разных советниках.

К сожалению, нет.
 
Здравствуйте! Арендую сервер на MQL, терминал MT4. Cоветник почему постоянно пропадает с графика, при этом выполняется DeInit, ни ошибок ни багов. Советник просто открывает - закрывает сделки. Управляет всем индикатор, общаются меж собой через глобалки. При этом на половине графиков может быть всё норм, на другой половине вылетает. Может вылететь на одном из всех. Может пару дней проработать и всё норм, бывает по два раза в день. Открыто около 10 графиков. Советники меж собой ни как пересечься не могут, в имени глобалки и ChartID и инструмент. Думал сделать защиту через загрузку шаблона, но при программной загрузке шаблона выставляется запрет на торговлю. При этом аналогичный советник  дома с ноута работал без каких либо проблем около месяца. Может кто сталкивался, подскажите что делать?
Причина обращения: