Нижняя зона со служебной информацией

Быстрый поиск по статье

Moon Kernel

Модуль Moon Kernel представляет собой клиент-серверную технологию разделения функционала при выполнении биржевых операций: клиентская часть (Moonbot Client) настраивается на локальном компьютере пользователя, а серверная часть (Moonbot Kernel) - на выделенном сервере VPS.
Такая архитектура используется при ручной торговле, помогает добиться более устойчивой связи с биржей и значительно сократить пинги, которые влияют на скорость выставления ордеров, срабатывание стопов и прочих биржевых операций. Для автоторговли такая архитектура не используется для этого лучше размещать обычный Moonbot на выделенном сервере VPS с выключенным модулем Moon Kernel.


Функционал Moon Kernel доступен в PRO-версии Moonbot, если активен модуль MoonBonus - бонусный пакет дополнительных функций, который предоставляется пользователям, если они зарегистрировались на биржах с использованием наших реферальных ссылок на странице MoonBonus.


Термины:


  • Moonbot Kernel (“Ядро”) или Moonbot Server (“Сервер”) - это экземпляр Moonbot, установленный на выделенном сервере VPS и настроенный соответствующим образом как серверная часть с подключением к бирже.
    Придерживайтесь стандартных рекомендаций для VPS: 1 Moonbot на 1 VPS, для этого в Moonbot зайдите в Меню → System settings → окно с настройками System settings и установите галочку Режим VDS (оптимизация).

  • Moonbot Client (“Клиент”) или Moonbot Terminal (“Терминал)” - это экземпляр Moonbot, установленный на локальном компьютере пользователя, настроенный соответствующим образом как клиентская часть с подключением к Ядру.


Чтобы использовать архитектуру Moon Kernel нужно сделать две копии папки с PRO-версией Moonbot:


  • одну копию разместить на выделенном сервере (VPS) и настроить её в режиме Ядра,

  • вторую копию разместить на локальном компьютере и настроить её в режиме Клиента.


Настройка Moon Kernel на стороне выделенного сервера VPS (Moonbot Kernel)


1. На VPS в брандмауэре Windows откройте свободный UDP порт для входящего соединения.


Для этого в поле поиска Windows введите wf.msc и запустите его, чтобы открыть окно Windows Defender Firewall with Advanced Security.



В открывшемся окне в панели слева кликните на пункт Inbound Rules и правой кнопкой мышки откройте меню, в котором кликните на New Rule…, - откроется окно New Inbound Rule Wizard:



В появившемся окне выберите опцию Port и нажмите Next:



Далее выберите опцию UDP и в поле Specific local ports: введите свободный номер UDP порта, который планируете открыть, например, 3000 и нажмите Next:



В следующем окне убедитесь, что выбрана опция Allow the connections и нажмите Next:



Далее убедитесь, что все три галочки установлены и нажмите Next:



Укажите название правила, например, UDP-3000 и нажмите Next:




После этого UDP порт 3000 на VPS будет открыт.


При необходимости следует также открыть порт в личном кабинете провайдера VPS (например, это требует Амазон).


2. Запустите копию Moonbot PRO-версии на VPS в режиме администратора.


Через Меню → System Settings откройте окно System Settings и установите галочку Режим VDS (оптимизация), после чего перезагрузите Moonbot.


Чтобы открыть окно настроек функционала Moon Kernel сначала кликните левой кнопкой мышки на зеленый кружок индикации соединения в нижней левой части главного окна Moonbot.



Откроется окно Info, на нижней строке будет надпись: Moon Kernel OFF Settings, которая сообщает, что сейчас Moonbot находится в обычном режиме и функционал Moon Kernel выключен.


Нажмите на Settings и откройте окно Moon Proto, в котором есть 2 вкладки:


- Вкладка Settings с настройками функционала Moon Kernel



- Вкладка Info с информационными строчками



На вкладке Settings в Moonbot Kernel на VPS:


  1. В поле Port введите номер UDP порта, который Вы открывали ранее (например, 3000);

  2. Выберите опцию IP Version IPv4;

  3. В поле VPS IP введите IP выделенного сервера;
    После удачного соединения через IPv4 потом можно будет выбрать опцию IPv6 и ввести в поле VPS IPv6, если провайдер поддерживает эту версию протокола, так как он ускоряет работу.

  4. Выберите опцию V2;

  5. Установите галочку у опции Kernel (VPS);

  6. Нажмите кнопку Apply, чтобы применить заданные параметры.
    Проверить, что выбранный Вами порт открыт можно нажатием кнопки Test Port.
    Проверка осуществляется путём пинга нашего сервера; если Вы открыли порт, но сделали белый лист IP, с которых разрешён доступ, то проверка не пройдёт - это не проблема, в таком случае Вы можете проверить это позже путём подключения Клиента к Ядру.
    Если всё сделано правильно на стороне Ядра, то появится зелёная надпись Server activated on port 3000 (в примере для порта 3000).

  7. Нажмите на кнопку New Key, чтобы сгенерировать ключ доступа к Ядру для Клиента;

  8. Нажмите на кнопку Copy Key, чтобы скопировать его в буфер обмена. Ключ можно сохранить в блокнот или сразу вставить его в окно Moon Proto в Клиенте на локальном компьютере.
    В итоге настройки в окне Moon Proto на вкладке Settings и Info на стороне Moonbot Kernel будут выглядеть следующим образом:




А в окне Info будет указано: VDS Mode: ON и Moon Kernel Server Settings, что включён режим VDS и подключена серверная часть функционала Moon Kernel.



Настройка Moon Kernel на стороне локального компьютера (Moonbot Client)


Для настройки экземпляра Moonbot в качестве Клиента выполните следующие действия на локальном компьютере:


1) Запустите копию Moonbot PRO-версии в режиме администратора;


2) Через Меню → System Settings откройте окно System Settings и убедитесь, что не установлена галочка Режим VDS (оптимизация). Если галочка была установлена, и Вы её убрали, то перезагрузите Moonbot;


3) Чтобы открыть окно настроек функционала Moon Kernel кликните левой кнопкой мышки на зеленый кружок индикации соединения в нижней левой части главного окна Moonbot.


4) Откроется окно Info, на нижней строке будет надпись: Moon Kernel OFF Settings, которая сообщает, что сейчас Moonbot находится в обычном режиме и функционал Moon Kernel выключен.


5) Нажмите на Settings и откройте окно Moon Proto, в котором есть 2 вкладки:


- Вкладка Settings с настройками функционала Moon Kernel



- Вкладка Info с информационными строчками



6) На вкладке Settings:


  1. Нажмите кнопку Paste Key и вставьте ключ из буфера обмена, который ранее копировали в настройках Settings Moonbot Kernel;

  2. В поле Port введите номер UDP порта, который Вы открывали ранее на выделенном сервере VPS;

  3. Выберите опцию IP Version IPv4;

  4. В поле VPS IP введите IP выделенного сервера;
    После удачного соединения через IPv4 потом можно будет выбрать опцию IPv6 и ввести в поле VPS IPv6, если провайдер поддерживает эту версию протокола, так как он ускоряет работу.

  5. Выберете опцию V2.

  6. Установите галочку у опции Terminal;

  7. На стороне Клиента рекомендуем установить галочку Full Proxy.
    Примечание:
    функционал Moon Kernel на стороне Клиента может работать в двух режимах:

    1. Если установлена галочка “Full Proxy”, то на VPS в Moonbot Server (Kernel) работает вообще всё, что касается биржи, а на стороне Клиента в Moonbot пользователя - только отображение интерфейса (картинка). В этом режиме Moonbot Client (Terminal) вообще никак не взаимодействует с биржей. На API-ключах, которые добавлены в Moonbot Client (Terminal), можно не добавлять белый список IP. 

    2. Если не установлена галочка “Full Proxy”, то на VPS в Moonbot Server (Kernel) происходит обработка ордеров, а в Moonbot Client (Terminal) - всё остальное (графики, плечи, рыночные дельты). 

  8. Нажмите на Apply, чтобы применить заданные параметры.
    Если всё сделано правильно на стороне Клиента, то появится зелёная надпись Client: Connected!


Если эта надпись не отобразилась, то возможны два варианта:


  1. Ошибка в следовании инструкциям. Ещё раз внимательно сделайте настройку по шагам.

  2. Блокировка трафика.
    В этом случае, если у Вас было подключение с опцией через V0, то следует проверить подключение с опциями V1 и V2 по очереди, следующим образом:

    1. Выставить опцию V1 сначала в Settings Ядра на сервере; поменять там UDP порт и затем нажать Apply в Settings Ядра на сервере;

    2. Затем проделать то же самое на стороне  Settings Клиента на локальном компьютере.

    3. Если это не помогло, то нужно выставить опцию V2 сначала в Settings Ядра на сервере; поменять там снова UDP порт и затем нажать Apply в Settings Ядра на сервере. 


Дополнительная проверка:


  1. Убедитесь, что ключи доступа в Moonbot Kernel и Moonbot Client одинаковые.
    В окне Moon Proto на вкладке Settings видна только часть начало ключа, полный ключ тут не отображается - эта часть нужна только для того, чтобы визуально убедиться, что ключи начинаются одинаково;

  2. В окне Moon Proto на вкладке Settings Moonbot Kernel в случае успешного установления соединения между Ядром и Клиентом будет расти цифра R (счётчик принятых пакетов).

  3. Симптомы блокировки трафика: R незначительно растёт при первой попытке подключения, далее не меняется. В этом случае пробуйте подключения с опциями V1 илл V2 со сменой UDP портов при каждой смене опций.


Нюансы:


  1. Не рекомендуется использовать VPN и прокси (режима Full Proxy должно быть достаточно). 

  2. Если все же используете сторонние прокси, то с некоторыми, например Proxycap возможны краткие обрывы связи по причине потери коннекта этим прокси. Moonbot восстанавливает подключение сам в пределах нескольких секунд.

  3. При обновлении в Moonbot Client на выделенной сервере Moonbot Kernel обновляется автоматически, в том числе при обновлении через строку поиска монет на главном окне на тестовые и релизные версии.


В итоге, если всё настроено верно, то настройки в окне Moon Proto на вкладке Settings и Info на стороне Клиента будут выглядеть следующим образом:




А в окне Info будет указано: VDS Mode: OFF и Moon Terminal Settings, что режим VDS выключен и подключена клиентская часть функционала Moon Kernel.



Также в Moonbot Client при работе с функционалом Moon Kernel будет отображаться данные о пинге (см. рисунок ниже):



На рисунке Kernel: 133 / 25 ms” означает:


  • первая цифра 133 – пинг в миллисекундах до Moonbot Kernel (в 1 сторону)

  • вторая цифра 25 – пинг в миллисекундах ордеров с самого VPS (от Moonbot Kernel до биржи). 


Работа со стратегиями при работе модуля Moon Kernel


Не рекомендуется иметь более 100 стратегий в одном Moonbot.


В обоих режимах (с галочкой Full Proxy или без) стратегии работают следующим образом:


  • на VPS в Moonbot Kernel: работают только стратегии с включённой автопокупкой AutoBuy=YES при активации у них появляется жёлтая лампочка, а также стратегии MoonShot или стратегии с включённым параметром RunDetectOnKernel=YES на вкладке Buy conditions настройки стратегий;

  • на локальном компьютере в Moonbot Client: только стратегии без автопокупки AutoBuy=NO - при активации у них появляется жёлтая лампочка, то есть просто детекты.
    Исключение: Ручные Мунхуки (парные стратегии Manual+MoonHook) тоже обрабатываются в Ядре.


Порядок отображения цвета лампочек в стратегиях


В Moonbot Client:


  • стратегии с жёлтыми лампочками AutoBuy=NO работают в Moonbot Client 

  • стратегии с синими лампочками AutoBuy=YES работают в Moonbot Kernel



В Moonbot Kernel будет зеркальное отображение цвета лампочек


  • стратегии с жёлтыми лампочками AutoBuy=YES работают в Moonbot Kernel

  • стратегии с синими лампочками AutoBuy=NO работают в Moonbot Client



Пояснение:
поскольку все операции с ордерами производятся в Moonbot Kernel, то стратегии, которые должны торговать - также работают в Moonbot Kernel. Для некоторых настроек с использованием триггеров нужно, чтобы торгующие Slave стратегии запускались от только от детектов Master стратегий, у которых отключена автопокупка - для этого нужен параметр RunDetectOnKernel на вкладке Buy conditions настройки стратегий, чтобы организовать в Moonbot Kernel связку из детекта от Master стратегии без автопокупки и торгующей Slave стратегии.


Стратегии-детекты для ручной торговли нужны в Moonbot Client, чтобы выдавать сигнал с открытием графика и кнопкой алерта, поэтому стратегии-детекты работают в Moonbot Client без автопокупки (AutoBuy=NO) и без опции RunDetectOnKernel=NO.


“Источник истины” в настройках – это Moonbot Kernel на VPS. Если Вы включаете стратегию с одного Moonbot Client, то она будет включенной и на других Moonbot Client (например, при их запуске из разных мест или при запуске сразу двух Moonbot Client). Если внести правки в стратегию на Moonbot Client, то правки передаются автоматически и на Moonbot Kernel, а оттуда - в другие Moonbot Client, если они будут подключаться позже к Moonbot Kernel.


Если в Moonbot Kernel стратегия активна, даёт детекты на монете и выставляет ордера, а Вам нужно в Moon Client также открывать график этой монеты на главном окне или в чарте, то можно сделать копию этой стратегии, в ней отключить автопокупку AutoBuy=NO, настроить параметры чартов и активировать её в Moon Client.


Если Вы отключили Moonbot Client, а Moonbot Kernel продолжает работать и совершает сделки, то после включения Moonbot Client в его отчёте не будет сделок, которые были в Ядре в период отключения Клиента, т.е после своего включения Moonbot Client не подтягивает автоматически отчёт из Moonbot Kernel.