• Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG, и ни чем они не отличаются друг от друга.
    Обратите внимание, что в настоящее время CQG не высылает логин и пароль на электронные адреса от mail.ru, bk.ru, list.ru, inbox.ru, поэтому необходимо повторить регистрацию с электронного адреса от другого домейна (yahoo, gmail, и тд).
  • NinjaTrader с зарекомендовавшим себя брокерским сервисом предоставляет наилучшие условия для фьючерсной торговли, включая:
    • Низкие комиссии: Экономьте на торгах через низкие и понятные комиссии
    • Низкая маржа: Всего $50 для микро контрактов
    • Низкие минимумы: Откройте счет от $400
    • Бесплатная платформа: Включает весь необходимый функционал для торговли в реале
  • Уважаемые посетители форума!
    При регистрации на форуме отправляется письмо подтверждения на ваш почтовый ящик, если письмо не пришло, просьба проверить папку "спам" вашего почтового ящика, возможно письмо попало туда.
  • Сколько я реально плачу комиссии?
    Подробнее по ссылке

Как правильно использовать System.Threading в Ninja Scripts?

Evggne

New Member
NinjaTrader
#1
Всем привет! Подскажите кто знает как правильно в стратегии запустить кусок кода в ещё одном потоке. Чтобы этот поток останавливался когда стратегию отключаешь и не стартовал каждый раз когда открываешь свойства стратегии.

Делаю так. Создаю необходимый метод, и его стартую в новом потоке в OnBarUpdate().
 

Evggne

New Member
NinjaTrader
#2
Вот такая ошибка выскакивает периодически:

Default Failed to execute DB job 'StrategyUpdateJob': Возникла ошибка при отражении типа "NinjaTrader.Strategy.Bot".: Не удается сериализовать член "NinjaTrader.Strategy.Bot.t1" типа "System.Threading.Thread". Дополнительные сведения см. во внутреннем исключении.: Невозможно сериализовать System.Threading.Thread, т. к. он не имеет беспараметрического конструктора.
 
#3
Стартовать поток надо только один раз, полагаю, вы так и делаете. Останавливать, соответственно, можно в OnTermination(). В общем, для реализации многопоточности применяются те же принципы, что и в "чистом" C#.

Обратите внимание, что если вы планируете использовать инфраструктуру NinjaTrader из ваших потоков, то для корректной работы нужно задействовать механизм синхронизации. Для этих целей можно использовать метод, предлагаемый NinjaTrader: см. документацию по ключевому слову TriggerCustomEvent.
 
Вверх Снизу