Избранное трейдера Slepoy

по

Битва за скорость: QLUA vs MQL5 - почему MQL5 быстрее от 50 до 600 раз?

Для сравнения языков MQL5 и QLUA мы написали несколько тестов, которые замеряют скорость выполнения базовых операций.

В тестах использовался компьютер с Windows 7 Professional 64 bit, MetaTrader 5 build 1340 и QUIK версии 7.2.0.45.

Результаты представлены в таблице, где все значения представлены в миллисекундах (чем меньше время, тем лучше):

Название            MQL5        QLUA     Преимущество MQL5

TestFloat          3 969     273 391     69 раз
TestArrays           375     230 768    615 раз
TestFibo           1 125      61 110     55 раз
TestPiCalculated   2 328     183 812     79 раз
TestQuickSort      2 031     211 279    104 раза
TestAckermann        828      64 541     78 раз

Сравнение производительности MQL5 и QLUA, чем меньше, тем лучше



( Читать дальше )

Недостатки фондового околорынка в России (часть вторая)

Итак, мы продолжаем попытку сделать субъективный срез частного фондового околорынка.

Начало (первая часть) здесь:

smart-lab.ru/blog/324509.php

Рассмотрим отдельные группы частных фондовых околорыночников России. Их у меня получилось девять.

Первая часть:

  1. Начальная школа
  2. Украинская описательная школа
  3. Московская проамериканская школа
  4. Брокерская альма-матер
  5. Лагерь для лудоманов

Вторая часть:

6. Махинаторы

7. Самоучки

8. Юродивые

9. Филантропы

 

6. МАХИНАТОРЫ (представители: «татарин», «секрет» и др.)

Недостатки фондового околорынка в России (часть вторая)

Малочисленная группа, как правило, люди используют некий технический прием, который позволяет повышать доходность на крошечном (50 000 рублей) счете, который выставляется на публику. Например, герой ЛЧИ 2014 «татарин» совершает сделки на мелком счете с плечами, чтобы на предторговой сессии на следующий день в неликвидной акции с ним могли совершить встречную сделку на другом, более крупном счете. В итоге на большом счете получается  не очень большой убыток, на мелком – очень большая прибыль. Когда такие махинаторы начинают рассказывать про свою систему – можете зевать и вязать – вам никто правды не скажет (смотри фото). Будет подарено много мелких подробностей, которые срабатывают раз в сто лет. При близком рассмотрении сделок выяснится, что своим же преподаваемым правилам гуру не следует: не выполняются условия по стоп-лоссам, мастер банально усредняется и совершает прочие грешки. Об этом я уже писал:



( Читать дальше )

Да-да, это миф про 90% сливаторов...

В общем, эта информация — ещё один развод рынка, иллюзия и психологический самообман. А ведь как известно — всё на рынке надо считать и ничему нельзя верить на слово. ©

Поддержу Вестникова хоть он и сталинец. Действительно, утверждение о том, что 90% на бирже сливают — это миф, брокерня нам определённо врёт, на самом деле сливают где-то 95%, а то и все 99%. ;-)

Ниже компиляция из этих наших ынтырнетов.

2003 год, в FAJ выходит статья под названием «Рентабельность дэй-трейдеров». Два иканамиста с помощью нескольких независимых методик определяют, что, цитирую: «едва ли 20% от всех дневных трейдеров имеют самый минимальный профит...», остальные 80% соответственно в той или иной степени… льют. Это в США.

2004 год, выходит исследование интернациональной команды ботанов на базе данных Тайваньской биржи (TSE). Те суют под микроскоп данные биржи за 5 лет и выясняют, что на полугодовом промежутке теряют деньги более 80% дэй-трейдеров. Не сливаются в хлам, а и сливаются, и просто в некий минус работают, всё вместе… не зарабатывают, в общем.

( Читать дальше )

Про неадекватных выскочек и осторожных Бывалых...

Эффе́кт Да́ннинга — Крю́гера — метакогнитивное искажение, которое заключается в том, что люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом не способны осознавать свои ошибки в силу низкого уровня своей квалификации. Это приводит к возникновению у них завышенных представлений о собственных способностях, в то время как действительно высококвалифицированные люди, наоборот, склонны занижать свои способности и страдать недостаточной уверенностью в своих силах, считая других более компетентными. Таким образом, менее компетентные люди в целом имеют более высокое мнение о собственных способностях, чем это свойственно людям компетентным, которые к тому же склонны предполагать, что окружающие оценивают их способности так же низко, как и они сами.

Про неадекватных выскочек и осторожных Бывалых...

Гипотеза о существовании подобного феномена была выдвинута в 1999 году Джастином Крюгером и Дэвидом Даннингом, которые при этом ссылались на высказывания Чарльза Дарвина («Невежество чаще рождает уверенность, нежели знание») и Бертрана Рассела («Одно из неприятных свойств нашего времени состоит в том, что те, кто испытывает уверенность, глупы, а те, кто обладает хоть каким-то воображением и пониманием, исполнены сомнений и нерешительности»).



( Читать дальше )

Брокеры и клиенты: статистика НАУФОР

В 2015 на ИИС размещено 7 млрд руб.
Количество новых клиентов для открытия ИИС составило 55 тыс чел
Средний размер счета ИИС: 260 тыс рублей.
Средний размер счета доверительного управления — 160 тыс. руб.
Общий объем средств, переданных брокерам и управляющим = 420 млрд рублей.
Общий объем средств граждан на рынке = более 500 млрд рублей

сред. р-р брокерского счета = 150 тыс рублей.
сред. р-р счета доверит управления = 450 тыс рублей

где размещены деньги клиентов?
32% — акции российских эмитентов
19% — кэш
18% — еврооблигации
2,3% — российские корп. облигации
0,6% — ПИФы

Источник инфы: http://fomag.ru/ru/news/stocks.aspx?news=9958

Стратегия "скальп стопов"

    • 26 февраля 2016, 15:54
    • |
    • noTrust
  • Еще

Этот эффект я назвал «скальп стопов». Он носит очень краткосрочный характер и непременно работает уже много лет. Хотя здесь дело далеко не в одних стопах. Просто в один конкретный момент происходит очень большой перекос ордеров на покупку/продажу, и цена зачастую краткосрочно улетает и дальше по направлению перекоса. Затем возвращается обратно.

Суть такая: берем уровни максимума и минимума за предыдущий час (час значит не 60 последних минут, а временной интервал с 10:00 по 11:00 и т.д.), далее ставим стоп-лимит на покупку по цене максимума и стоп-лимит на продажу по минимуму. Ордер может сработать только 1 раз в текущем часу. Кроем сразу же на открытии следующего минутного бара. Больше никаких условий.

Пример сделки:
Стратегия "скальп стопов"

Кривая доходности и параметры с 2009 по 2016 годы (сделок на гэпе первой минуты нет, вечерняя сессия также не включена). Фактор восстановления впечатляет.



( Читать дальше )

Открытие брокер кидают на деньги, будьте осторожны!

Хочу предупредить всех торгующих трейдеров будьте осторожны с Открытием Брокер. Кидают на деньги без предупреждений. Схема следующая:  1) подаешь поручение на вывод денежных средств. Оно исполняется брокером в этот же день и без всяких предупреждений в твой адрес о непомерно высоком тарифе за вывод денежных средств; 2) затем, как обычно, смотришь брокерский отчет за неделю и, оказывается, что брокер за вывод денежных средств удержал комиссию в сумме 500 000 рублей!
      Звоню, узнать, может ошибка? Брокер говорит, что нет, все правильно. Он удержал комиссию за вывод денежных средств в соответствии с тарифами, которые размещены у него на сайте на 176 странице. Вот такие дела.   Оказывается, что подписав заявление-анкету о присоединении я автоматически соглашаюсь со всеми документами, которые размещены у него на сайте. А это около 500 страниц печатного текста. Господа, кто-нибудь читает их полностью? И кто-нибудь попадал в подобную ситуацию? Пожалуйста, отпишитесь или позвоните,  т. 89179227496. Что делать?

Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#

Вступление

     Никогда не увлекался скоростным трейдингом. Всегда хватало терминала. Изучать этот протокол меня побудил набор вакансий. Надо отметить, что я неспешно перебираю хорошие вакансии на рынке. Частному трейдеру очень сложно развиваться в одиночку — психологически, эмоционально, физически. Создавать и развиваться постоянно хочется, поэтому принял решение вливаться в коллектив. За несколько месяцев, мне удалось провести несколько собеседований. На втором этапе я проваливался именно из за не знаний протокола.  Предметную область я примерно представлял. Ну что там сложного? Соединился с биржей по сокетам и начинай обмен сообщениями. Надо отметить, что в этой области есть уже готовые разработки в виде quickfix или готового API от StockSharp (правда платные). Но я принял решение разбираться с нуля, чтобы вникнуть в детали.

Технические аспекты протокола


     Итак. Любой протокол, какой бы он сложный не был, работает примерно одинаково. Мы создаем у себя соединение с сервером, устанавливаем некий туннель между нами и сервером, посредством которого будем обмениваться сообщениями. Протокол — это как раз и есть набор правил, по которым строятся сообщения нужного формата. Если говорить технически, то мы должны создать сокет соединение с сервером на указанный порт.
Сообщение в FIX, как и в любом другом протоколе, состоит из нескольких блоков:
  • <Заголовок сообщения>
  • <Сообщение>
  • <Концовка сообщения>
     Наша задача, правильно заполнить эти блоки и отправить на сервер. Заголовок сообщения в свою очередь состоит из следующих данных:
  • <Начало сообщения, версия протокола>
  • <Длина (размер) сообщения>
  • <Тип сообщения>
  • <Идентификатор отправителя>
  • <Идентификатор получателя>
  • <Номер сообщения>
  • <Время отправки>
     Обращу ваше внимание, что я перечисляю обязательные поля. Есть еще и дополнительные. Концовка сообщения должна выглядеть так:
  • <Контрольная сумма сообщения>
     Сами данные заполняются достаточно легко. В виде: <тип поля> = <значение>. Например, <длина сообщения> = 78, то есть мы серверу говорим, что размер передаваемого нами сообщения составляет 78 байт. Стоит обратить внимание, что в протоколе FIX, типы полей кодируются в виде числовых значений. Например,  <длина сообщения> в протоколе передается как цифра 9. Исходя из выше сказанного, наш заголовок сообщения, выглядел бы следующим образом:
  • 8=FIX.4.4 _____ начало сообщения, протокол версии 4.4
  • 9=78 _____ размер сообщения 78 байт
  • 35=A _____ тип сообщения А, что означает попытка на соединение с сервером
  • 49=<ваш идентификатор выдается биржей>
  • 56=FG _____ идентификатор получателя, раздел Forts на бирже
  • 34=1 _____ первое сообщение
  • 52=20160212-11:42:51.812 _____ время отправки сообщения

Организационные вопросы

  1. Наша биржа дает тестовый контур для отработки своих алгоритмов по данному протоколу. Надо всего лишь написать запрос на доступ. Надо признать, тех служба работает отменно. Очень все быстро было организовано. Подробности http://moex.com/s442
  2. Обязательно понадобится описание протокола для нашей биржи ftp://ftp.moex.com/pub/FIX/Spectra/test/docs/spectra_fixgate_ru.pdf
  3. Чтобы вникнуть в тонкости передачи, мне очень помогла эта программа от биржи (позже я покажу как помогла) ftp://ftp.moex.com/pub/FIX/Spectra/Utils/fix_client.zip
  4. Описание самого протокола от создателей (на английском). Мне помог сильно wiki. http://fixwiki.org/fixwiki/FIXwiki
  5. Чтобы найти свои ошибки, мне приходилось перехватывать сообщения рабочего клиента биржи и сверять со своими. Для этого мне понадобился tcp/ip сниффер — программа перехвата сетевого трафика.
  6. Разработку я веду на c#.

К бою. Немного теоретической практики

     На момент изучения протокола, я уверен, многие столкнуться со следующими вопросами:
  • как именно считать длину сообщения
  • как разделять между собой данные
  • как считать контрольную сумму

     Если говорить образно. То, чтобы отправить сообщение на сервер, нам просто нужно сформировать нужную строку со всеми данными и отправить ее на биржу. Ну например:

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;

Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#

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

Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#     С длиной сообщения разобрались. Теперь про разделитель. Пока в моем скрине это ";". В документациях западных написано что это символ SOH. Чтобы однозначно ответить на этот вопрос, я запустил прилагаемого клиента биржи и сниффером стал перехватывать сообщения между клиентом и биржей. Кстати, программа ведет логи, и их общение выглядит так (зеленое — передача запроса на биржу, красное — ответ от биржи):
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#
     Зачеркнул свой идентификатор, прошу понять правильно. Ну а перехват сообщения выглядит так:
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#     Зеленым я отметил именно разделители. Как вы уже видите, это просто в шестнадцатеричном виде код 01. То есть, в нашу строку в виде разделителей, нужно вставлять код 01. Также я отметил для себя последовательность полей в сообщении. Почему то в другом порядке у меня вызывало ошибки (возможно тут я не прав)
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#     Ну и контрольная сумма. Контрольная сумма считается над всем сообщением, за исключением концовки. То есть в расчет берется только заголовок и само сообщение. Для этого, мы переводим каждый символ в его Ascii код и вычисляем их сумму. Полученную сумму делим по модулю 256. Это и будет контрольной суммой сообщения. При этом, значение должно быть трехзначным. Если мы получаем 2 знака, то подставляем 0 слева (например, если контрольная сумма = 68, то должны передать значении 068).

К бою. Начало программирования

     В законченном виде, разработка будет составлять готовый класс, для работы с протоколом. Теперь начинаю строить его по кирпичикам. Для начала, я создал несколько классов:
  • класс для работы с заголовками
  • класс для работы с сообщением подключения к серверу (onLogon)
  • класс для работы с концовкой
    Каждый класс включает в себя поля, которые передаются и некоторые методы для их обработки.
    Класс для работы с заголовками. Пока просто выглядит так: 
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#

Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#     Как видим, первый метод строит нужную строку из полей. Обратите внимание, там присутствует наш разделитель в виде спец символа \u0001. Второй метод вычисляет размер заголовка (чтобы потом высчитывать размер сообщения). Надо обратить внимание, что при передачи времени, миллисекунды должны указываться в трехзначном формате (даже если миллисекунды = 52, то передаем 052). Следующие классы строятся по аналогии.
Класс создания сообщения на подключение (инициализация сессии)
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#
Класс создания концовки сообщения
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#

Попробую привести код консольной программы для теста в виде цитаты. Картинки вставляются плохого качества. Подробно комментирую.

//Получаем 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));


Все таки приложу и в виде картинок. Так наглядней. Кликабельно.
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#
В результате мы запросили у сервера подключение с нашим логином. И получили от него ответ.
Изучаю FIX протокол с нуля. Разбор протокола, первый код на c#
По мере развития, буду продолжать с теоретической частью. Если модераторы перенесут в раздел «Алго», я не против.

Продолжение Изучаю FIX протокол с нуля. Рисуем и программируем дальше.

Маск против "Прогресса"

Как всем известно, запуски Space Shuttle стоили просто безумно дорого, около 500 млн. долларов за полет. Что и послужило одной из причин закрытия программы и развитию проектов частных перевозок.

И тут как раз кстати возник гений Илон Маск, пообещавший, что он сделает прорыв в космонавтике и его многоразовые ракеты будут обходиться в сущие копейки, даже дешевле русских. Но правда ему нужно дать немножко денег на подъем.

И вот в 2008 году НАСА заключает со SpaceX контракт по доставке грузов на МКС стоимостью 1.6 млрд долларов.
Условия — 12 полетов с доставкой в сумме минимум 20 тонн груза на МКС.

20 тонн за 1.6 млрд долларовЭто 80 млн долларов за тонну!

В то время как Шаттл за один полет забрасывал на МКС до 15 тонн при стоимости запуска 500 млн и это считалось очень дорого, даже несмотря на то, что там летели еще и астронавты заодно. 



( Читать дальше )

ЛЧИ-2015. В понедельник разворот, биржей клянусь...

Фиксируем чо почём. Стабильной поступью Максим пришёл сегодня к ключевым круглым уровням. Минус 30% от стартовой или минус 40% и почти 1 mio лося от верхней точки на ЛЧИ. Предположу, что это был последний удар фатума ему в печень, с понедельника дикий рост эквити. Подключайте автоследование. Аминь.

ЛЧИ-2015. В понедельник разворот, биржей клянусь...

....все тэги
UPDONW
Новый дизайн