Избранное трейдера Falcone
На прошлой неделе мы опубликовали первую часть обзора модуля Стакан в терминале EXANTE. Сегодня предлагаем вам продолжение этой статьи нашего партнера, Сергея Голубицкого.
Тёмные стороны стакана
Можно сделать наивный вывод, что стакан — это поистине «волшебная палочка» безупречной торговли, и если кто-то ещё не обогатился на нём — то лишь потому, что пока не узнал о его возможностях. Но всё не так просто, как кажется на первый взгляд.
Выше мы рассмотрели прогностическую модель, которая показала одно блестящее совпадение. Но достаточно ли этого, чтобы праздновать победу? Не рискуем ли мы уподобиться здесь псевдоучёному, который одно совпадение готов выдать за доказательство теории?
Если мы проанализируем другие наблюдательные данные, то они вписываются в модель гораздо хуже.
Напомним, как выглядел график, который мы рассматривали в предыдущей статье:
Если говорить образно. То, чтобы отправить сообщение на сервер, нам просто нужно сформировать нужную строку со всеми данными и отправить ее на биржу. Ну например:
8=FIX.4.4;9=78;35=A;49=FG;56=tgFhcfx901U05;34=1;52=20160212-11:42:51.812;98=0;108=3000;141=Y;10=047;

Если быть внимательным, то мы увидим, что кол-во символов в строке у нас 100, а в заголовке сообщения мы передаем, что 78 (9 = 78). По правилам протокола FIX, длину сообщения нужно считать без учета концовки и первых двух полей заголовка. А именно:

Зеленым я отметил именно разделители. Как вы уже видите, это просто в шестнадцатеричном виде код 01. То есть, в нашу строку в виде разделителей, нужно вставлять код 01. Также я отметил для себя последовательность полей в сообщении. Почему то в другом порядке у меня вызывало ошибки (возможно тут я не прав)
Ну и контрольная сумма. Контрольная сумма считается над всем сообщением, за исключением концовки. То есть в расчет берется только заголовок и само сообщение. Для этого, мы переводим каждый символ в его Ascii код и вычисляем их сумму. Полученную сумму делим по модулю 256. Это и будет контрольной суммой сообщения. При этом, значение должно быть трехзначным. Если мы получаем 2 знака, то подставляем 0 слева (например, если контрольная сумма = 68, то должны передать значении 068).
Как видим, первый метод строит нужную строку из полей. Обратите внимание, там присутствует наш разделитель в виде спец символа \u0001. Второй метод вычисляет размер заголовка (чтобы потом высчитывать размер сообщения). Надо обратить внимание, что при передачи времени, миллисекунды должны указываться в трехзначном формате (даже если миллисекунды = 52, то передаем 052). Следующие классы строятся по аналогии.

//Получаем ip сервера
IPAddress ipAddr = IPAddress.Parse(server);
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, port);
//Создаем заголовк
HeaderMessage msHeader = new HeaderMessage
{
BeginString = «FIX.4.4»,
MsgType = «A», //Тип сообщения на установку сессии
SenderCompID = "",
TargetCompID = «FG»,
MsgSeqNum = 1
};
//Создаем сообщение на подключение onLogon
LogonMessage msLogon = new LogonMessage
{
EncryptMethod = 0,
HeartBtInt = 3000,
ResetSeqNumFlag = true
};//Вычисляем длину сообщения
msHeader.BodyLength = msHeader.GetHeaderSize() + msLogon.GetMessageSize();
//Создаем концовку сообщения
TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msLogon.ToString());//Формируем полное готовое сообщение
string fullMessage = msHeader.ToString() + msLogon.ToString() + msTrailer.ToString();
Console.WriteLine(«Сообщение для отправки {0}»,fullMessage);//Создаем сокет для подключения
sSender = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
//Подключаемся
sSender.Connect(ipEndPoint);
Console.WriteLine(«Сокет соединился с {0} », sSender.RemoteEndPoint.ToString());
byte[] msg = Encoding.UTF8.GetBytes(fullMessage);
//Отправляем сообщение
int bytesSent = sSender.Send(msg);
Console.WriteLine(«Отправил {0} байт», bytesSent.ToString());
//Получаем ответ от сервера
byte[] bytes = new byte[1024];
int bytesRec = 0;
bytesRec = sSender.Receive(bytes);
Console.WriteLine(«Ответ от сервера: {0}», Encoding.UTF8.GetString(bytes, 0, bytesRec));






Почему трейдеры пытаются шортить растущий тренд и выкупать падающие ножи?
Откуда это идет — кто-нибудь может внятно и научно объяснить?
Психологи, квалифицированные трейдеры, ау.
Спасибо
https://vk.com/public57421688?w=wall-57421688_604
Крупные банки, такие как Morgan Stanley, Barclays Plc and Societe Generale SA, сократили трейдеров по валютным дескам. в связи с использованием автоматических систем торговли, которыми управляют кванты, что привело к сокращению издержек.
Уволенным, рекомендовали идти в менеджмент и продажи, многие в ступоре, т.к. не понимают что делать дальше, а в связи с потерей зарплат в 250 000. им очень сложно приспособиться к другим зарплатам.