Избранное трейдера Александр
Если говорить образно. То, чтобы отправить сообщение на сервер, нам просто нужно сформировать нужную строку со всеми данными и отправить ее на биржу. Ну например:
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));
Конечно щас будет дикий ржач от ребят кто занимается серьёзно статистикой, но буду только рад… должны ж они хоть когда-то улыбаться, а то всё серьёзные такие считают всякое, света белого не видят, на смарт-лаб не пишут, а я вот напишу))
Итак, решил «на глаз» прикинуть в какие часы внутри дня как далеко, в среднем, ходит Сишка.
Интересно может для тех кто активно торгует внитри дня ручкам/скальпит. Внутри каждого часа, хоть мало-мальский, но есть какой-то импульс, его резмер в пунктах нас и интересует:
Я решил не брать абсолютные максмумы-минимумы часа, я брал именно нормальные рабочие импульсы, что бы если имеется откат внутри этого импульса то не более 30-40% от уже пройденного..
Upd.(примерно полтора часа после публикации): ОЙ-ёй-ёй, ребята, забыл упомянуть:
исключил из наблюдения ГЕПы первых 5м на открытии сессий!!
Давно было интересно сколько ФИНАМ заплатил за меня НДФЛ по данной налоговой, и наработал ли я достаточно НДФЛ для возмещения по ИИС.
Для этого озадачился вопросом, как создать свой кабинет налогоплательщика, что у них там есть и что вообще твориться.
1. Сначала нашел, что для этого нужно (https://lk2.service.nalog.ru/lk/)
А) Приходишь в любую налоговую (я пришел в свою)
Б) Предоставляешь Паспорт и Свидетельство ИНН (на всякий случай брал собой СНИЛС)
Я не брал никаких талончиков на очередь, спросил в ближайшем пустом окне, что нужно, чтобы получить/создать доступ в личный кабинет налогоплательщика. На что девушка запросила эти документы и оформила в течении 3-х минут.
В) Тебе выдают бумажку с логином и паролем
Всё))
2. Как я нашел именно свою налоговую
А) На официальном сайте (www.nalog.ru) есть ссылка «Адреса и платежные реквизиты вашей налоговой» (https://service.nalog.ru/addrno.do)
<code>PG39 Euro FX And Cme$Index Options : Apr 04, 2011: Apr 04, 2011</code>
Недавно столкнулся с таким феноменом — про язык программирования R слышали многие. Но знают что это такое очень мало людей.
Поскольку являюсь носителем этого языка и заинтересован в его популяризации, попытаюсь немного раскрыть тему в этом посте. Будет интересно!
План простой:
1) Что такое язык R
2) Популярность в России
Что такое язык RR (вики) — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.
По нашему: Язык идеально подходящий для поиска рыночных закономерностей. Бесплатный, быстрый и свободный.
Он позволяет вести статистические исследования всего до чего могут дотянуться руки. За годы его существования появились десятки и сотни расширений для решения практически любых прикладных задач.
Предлагаю перевод интересной статьи с сайта www.inovancetech.com о нетрадиционном применение техник машинного обучения: Machine Learning Techniques to Improve Your Strategy.
Машинное обучение это мощный инструмент не только для создания новых стратегий, но и для повышения эффективности уже существующих.
В этой статье мы осветим вопрос управления размером позиции с использованием алгоритма Random Forest (RF) и включения/выключения торговли на основе модели скрытых состояний Маркова (HMM). Мы предполагаем, что у вас уже есть торговая стратегия.
Как улучшить управление позицией
Управление позицией — это очень важный аспект трейдинга, которому часто не уделяется должное внимание. Многие трейдеры смотрят на управление позиции с точки зрения уменьшения риска убытков, но не инструмента увеличения прибыльности стратегии. Конечно важно избегать большого риска, используя небольшую часть торгового счета ( не более 2%) в каждой сделке, но лучший способ — это применение фиксированного лота или фиксированного процента от вашей максимальной позиции для каждого трейда.