Избранное трейдера chuikapridi
Статья из блога www.jonathankinlay.com поможет лучше понять работу вашей торговой стратегии и повысить ее производительность в будущем.
Построение прибыльной стратегии только половина успеха, трейдеру еще необходимо понимание так называемой альфы стратегии и риска. Это значит, что нужно определить факторы, обуславливающие прибыльность алгоритма и, в идеале, создать модель так, что их относительный вклад может быть вычислен. Более продвинутый путь — это конструирование мета-модели, которая будет предсказывать прибыльность и давать рекомендации, каким образом должна торговать стратегия в следующий период.
Производительность стратегии
Давайте посмотрим, как это работает на практике. В нашем случае будем использовать следующую внутридневную стратегию на фьючерсах E-mini:
Общая производительность стратегии довольна высока. Среднемесячная прибыль за период с апреля по октябрь 2015 года почти 8 000 долларов на контракт, за вычетом комиссии, со стандартным отклонением всего 5 500 долларов. Годовой коэффициент Шарпа около 5.0. На платформе с хорошим исполнением стратегия может масштабироваться до 10-15 контрактов, с годовой прибылью от 1 до 1.5 миллионов долларов.
Если говорить образно. То, чтобы отправить сообщение на сервер, нам просто нужно сформировать нужную строку со всеми данными и отправить ее на биржу. Ну например:
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));
Пост о том, что нужно знать алготрейдеру — программисту Си Шарп. Какими базовыми знаниями надо обладать для того чтобы писать Роботов в СтокШарп / ВелсЛаб / ТсЛаб Api / SmartCom Api. Это не про кубико-трейдинг. Это про программирование.
Пост полезен в первую очередь трейдерам начинающим свой путь в алго, как дорожная карта. Чтобы не возникало желания изучать SmartCom Api на следующий день после изучения базовых типов данных.
Это вторая часть из серии статей Си Шарп Алго. Начало здесь.
План статьи:
1) Кто такой программист
2) Проба сил
3) Базовые знания языка
4) Продвинутые знания
5) Заключение
Недавно столкнулся с таким феноменом — про язык программирования R слышали многие. Но знают что это такое очень мало людей.
Поскольку являюсь носителем этого языка и заинтересован в его популяризации, попытаюсь немного раскрыть тему в этом посте. Будет интересно!
План простой:
1) Что такое язык R
2) Популярность в России
Что такое язык RR (вики) — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.
По нашему: Язык идеально подходящий для поиска рыночных закономерностей. Бесплатный, быстрый и свободный.
Он позволяет вести статистические исследования всего до чего могут дотянуться руки. За годы его существования появились десятки и сотни расширений для решения практически любых прикладных задач.