Избранное трейдера Капитан Сильвер
Если говорить образно. То, чтобы отправить сообщение на сервер, нам просто нужно сформировать нужную строку со всеми данными и отправить ее на биржу. Ну например:
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, длину сообщения нужно считать без учета концовки и первых двух полей заголовка. А именно:
С длиной сообщения разобрались. Теперь про разделитель. Пока в моем скрине это ";". В документациях западных написано что это символ SOH. Чтобы однозначно ответить на этот вопрос, я запустил прилагаемого клиента биржи и сниффером стал перехватывать сообщения между клиентом и биржей. Кстати, программа ведет логи, и их общение выглядит так (зеленое — передача запроса на биржу, красное — ответ от биржи)://Получаем 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));
Наступило хмурое утро 28.01.16. Сбер пёр вверх. Предыдущую неделю он сделал 10%. На этой недели, он сделает 10% и любители трех ворон уже готовы к следующему понедельнику. Конечно это много, но такой рынок. Дельта уже под 5. Борис был прав. Надо рехеджить. Вообще конструкция из 4-х опционов тяжелая штука. Больше комиссии, больше спредов, трудней в понимании. Для рассмотрения дальнейших действий мы разобьем ее на два календарных спреда, один в коллах другой в путах. Ну к путам, пока, вопросов нет.
Мы к ним позже вернемся. У нас, сейчас проблемные колы
Итак, снова здравствуйте, уважаемое сообщество Смартлаба. В предыдущем своем посте — smart-lab.ru/blog/300184.php - я кратко обрисовал то, к чему пришел за годы изучения технического анализа и пообещал в следующем посте обратиться к вам с проблематикой данной теории.
Вкратце о теории – любое движение состоит минимум из двух последовательных импульсов. Модель импульс-откат-импульс. Моя цель — идентифицировать первый импульс отката и зайти на окончании волны 2, пытаясь поймать волну 3. Инструментом фильтрации волн служат мне Точки ДеМарка. Фильтр хороший, но не совершенный. В данном посте я постараюсь отразить все проблемы, с которыми приходится сталкиваться. Возможно, кто-нибудь сможет предложить свои варианты фильтрации.
Сперва – идеальный вариант сделки. Евро, на 5м некий тренд, откат которого я собираюсь ловить.
Часть, выделенная розовым, как раз таки тот промежуток, в течение которого я сперва взял на заметку ситуацию, а затем, в результате выполнения условий вошел в сделку.
По просьбе одного из читателей блога прогнал тесты инструмента SPY в моей программе, использующей модель Маркова для предсказания направления рынка. SPY- это биржевой символ фонда, повторяющего движения индекса S&P500, торгуется на бирже NYSE. Тестирование производилось на периоде от 01 июня 2015 года до 25 ноября 2015 года. Размер тренировочной выборки — 70%, выборки out-of-sample — 30%. Вот что получилось в итоге, для различных интервалов дискретизации:
1. 60- минутные бары:
Пока все озадачены Riшкой и Siшкой, отыгрывая Сирию, Иран, Драги, баррели и тому подобное прочее, погрузились в новостной фон и статистику буровых бурилок, я, тем временем, подтянула из Ирининого блога её сигнальчики и состряпала из них робота.