• 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
    • Бесплатная платформа: Включает весь необходимый функционал для торговли в реале
  • Уважаемые посетители форума!
    При регистрации на форуме отправляется письмо подтверждения на ваш почтовый ящик, если письмо не пришло, просьба проверить папку "спам" вашего почтового ящика, возможно письмо попало туда.
  • Сколько я реально плачу комиссии?
    Подробнее по ссылке

NTDirect.dll bid, ask и last

Orinoko

New Member
NinjaTrader
Всем привет. Кто-нибудь может объяснить, как работает механизм передачи данных в ниндзю 8 через соединение external data feed посредством NTDirect.dll?

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

код примерно такой (весь не выкладываю)

namespace NT7ExternalDataFeed

{

class Program

{

// real-time data import

[DllImport("NTDirect.dll")]

public static extern int Bid(string instrument, double price, int size);

[DllImport("NTDirect.dll")]

public static extern int Last(string instrument, double price, int size);

[DllImport("NTDirect.dll")]

public static extern int Ask(string instrument, double price, int size);

public static string instrument = "TEST";


while (true)

{
var pr = 50.0;
var direction = 1;

if (direction == 1)
direction = -1;
else
direction = 1;

Random rnd = new Random();


var r = rnd.Next(1, 10);

var prSummer = rnd.NextDouble() * direction + pr;

var b = Bid(instrument, prSummer, r);

Console.WriteLine($"{b} Bid({instrument}, {prSummer}, {r}");


r = rnd.Next(1, 10);

prSummer = rnd.NextDouble() * direction + pr;

var b1 = Bid(instrument, prSummer, r);

Console.WriteLine($"{b1} Bid({instrument}, {prSummer}, {r}");


r = rnd.Next(1, 10);

prSummer = rnd.NextDouble() * direction + pr;

var b3 = Bid(instrument, prSummer, r);

Console.WriteLine($"{b3} Bid({instrument}, {prSummer}, {r}");


r = rnd.Next(1, 10);

prSummer = rnd.NextDouble() * direction + pr;

var l = Last(instrument, prSummer, r);

Console.WriteLine($"{l} Last({instrument}, {prSummer}, {r}");


r = rnd.Next(1, 10);

prSummer = rnd.NextDouble() * direction + pr;

var a = Ask(instrument, prSummer, r);

Console.WriteLine($"{a} Ask({instrument}, {prSummer}, {r}");


r = rnd.Next(1, 10);

prSummer = rnd.NextDouble() * direction + pr;

a = Ask(instrument, prSummer, r);

Console.WriteLine($"{a} Ask({instrument}, {prSummer}, {r}");


r = rnd.Next(1, 10);

prSummer = rnd.NextDouble() * direction + pr;

l = Last(instrument, prSummer, r);

Console.WriteLine($"{l} Last({instrument}, {prSummer}, {r}");


Thread.Sleep(500);

}

}

}

Nindja прекрасно все это понимает и рисует график с бидами, асками (кластеры)

Но! если я передаю данные из квика примерно вот так (данные идут смешанно - биды, аски, ласт):

Ask(TEST, 51,26, 1)
Last(TEST, 51,26, 1)
Bid(TEST, 51,27, 1)
Last(TEST, 51,26, 1)
Ask(TEST, 51,26, 39)
Last(TEST, 51,27, 39)
Bid (TEST, 51,27, 5)
Last(TEST, 51,26, 5)
Bid (TEST, 51,27, 1)
Last(TEST, 51,27, 1)
Bid(TEST, 51,27, 4)
Bid(TEST, 51,28, 11)
Bid(TEST, 51,28, 2)
Ask(TEST, 51,26, 1)

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

Как работает механизм передачи котировок в Ниндзю? Я что-то не понимаю, но что - непонимаю :)
Пытался и суммировать в last объемы bid и ask, и просто volume передавать из квика и что только не пробовал - все равно Ниндзя ловит только бид
 
Верх Низ