Избранные комментарии трейдера java

по

Не знаю на каком таймфрейме робот, но будем считать, что на часовиках. 


1. Скрипт не открывается на первом утреннем часе, но может быть в позиции в это время. Побаиваюсь, что могу пролететь со стопом.

Пролетишь и обязательно!!!.. Поставь в условия робота, что если это первая свечка дня, то закрываемся не по стопу, а по цене закрытия свечи, так ближе к реальности будет.


2. Пока не понял, как часто нужно обновлять оптимизируемые параметры и на какой истории это делать.

Вот, вроде простой вопрос, а мне говорит о том, что такого робота рано включать в торги. Вопрос, говорит о том, что стратегия не проходила тест на подгонку параметров. В разных торговый программах это по разному называется, но суть такого теста в следующем: Берем 2 периода, первый — это период, на котором будем рассчитывать параметры (например 3 года), второй период — это период, в котором будем торговать по рассчитанным параметрам (например 3 месяца). И прогоняем с начала времен + большой период. для РТС будет выклядеть так:
InSample: 2005.01 -2008.12  OutSample 2008.01.01 — 2008.03.31
InSample: 2005.03 -2008.03  OutSample 2008.03.01 — 2008.06.30
И.т.д
Причем нас будет интересовать, только те цифры, что появятся в OutSample. Меняя эти периоды — сам поймешь, через какое время надо пересчитывать параметры. 


3. Как понять, что скрипт перестал работать (после какой просадки нужно его останавливать).

На тестах есть параметр — максимальная просадка. Как только в реале макс просадка стала больше тестовой — останавливай.

Ну и 27% это много. Просто подумай, что как раз вот эти 27% есть сама реальная цифра во всей тестовой стратегии. Т.к. раньше или позже, но любой робот словит эту максимальную просадку, и это единственное, что ты знаешь на 100%.

4. На какие параметры нужно обращать внимание при тестировании будущих скриптов, кроме макс просадки и доходности?

Это кому как нравится, для меня любимый параметр CAR/MD, т.е. среднегодовая доходность деленная на макс просадку
avatar
  • 14 февраля 2016, 15:44
  • Еще

Тимофей, как программист-программисту, отвечу:
"•не знаю как работать с параллельными вычислительными потоками" Предположим есть цикл
int[] result = new int[10];
for(int i = 0; i < 10; i++) {
  // Тут какая то мощная вычислительная задача, где i допустим день за который надо посчитать данные
  result[i] = i * i * i;
}
Если запускать именно так, то сначала посчитается за 1 день, потом за второй и т.д., программа по сути займет одно ядро процессора. Современные бытовые процессоры типа Core i7 обычно 4 ядра (8 потоков), т.е. выполняя этот цикл процессор будет загружен на 1/8 (12.5%). Остальные 87.5% мощности процессора — отдыхают. Как перделаем: добавим:
using System.Threading.Tasks; и перепишем цикл вот так:
Parallel.For(0, 10, i => {  
  // Тут какая то мощная вычислительная задача, где i допустим день за который надо посчитать данные
  result[i] = i * i * i;
});
теперь загрузка процессора возрастет многократно! Нюанс: создавать большие объекты внутри Parallel.For крайне не рекомендуется (загрузка процессора упадет).

"•не знаю как работать с графическим интерфейсом вообще" Если это картинка, то надо копать в PictureBox (она показывает Bitmap). А рисовать надо на Bitmap, вот типа так:

Bitmap bmp = new Bitmap(100, 100, PixelFormat.Format24bppRgb); using (Graphics g = bmp.GetGraphics()) {   g.Clear(Color.White);   g.Draw… и рисуешь   g.Flush(); } this.pictureBox.Image = bmp; вот и все.

"•не совсем понимаю как работать с большими объемами данных и как их лучше хранить " Большие массивы лучше хранить в 64-битном приложении (x64), т.к. 32-битные (x86) быстро дадут OutOfMemoryException. Лучше всего работать с массивами фиксированного размера int[] bigdata = new int[100*1000*1000]; лучше работать с целочисленными данными (тип byte, short, int, long), они всегда быстрее считались чем вещественные (float, double). Строки хранить крайне не рекомендуется (долго работает). Ну и правильно выбирать размер элемента, byte=1байт, short=2байта,int=4байта,long=8 байт Т.е. 100млн элементов типа int займет в памяти 400МБ, а лимит в .Net составляет 2ГБ на объект (т.е. 500млн элементов типа int, или 250млн типа long). Но тут еще одно ограничение — массив индексируется переменной типа int, а значит всего в массиве может быть только 2^32-1 элементов. Хотя можно создать 10массивов каждый по 2ГБ, и тогда приложение съест 20ГБ памяти :) Проверено. Если хочется очень большой массив, то гуглить в gcAllowVeryLargeObjects  (надо в app.config добавить), тогда можно создать массив который займет 16ГБ памяти, вот так: long[] l1 = new long[2000 * 1000 * 1000]; Есть нюанс: в C# работает с массивами не так быстро, особенно плохо работает с массивами byte[] (тормозит!), такие массивы лучше обрабатывать в DLL (пишутся на C++) и вызывать из C#. Вот написание и вызов внешних DLL наверное выпало из вашего плана ;)

"•интерфейс WPF" не нужен, если вы не коммерческий разработчик, а для себя. Windows Forms вас удовлетворит на 100% в ближайшие 5 лет.

LINQ, PLINQ — тоже не особо нужны, хватит и простых конструкций

avatar
  • 13 февраля 2016, 01:29
  • Еще
Тимофей,  рекомендую тебе взять API хоть Велса, хоть ТСлаба и начать уже писать робота используя это АПИ. Я на своей шкуре убедился что вопрос синтаксиса и команд это вообще дело 3-е, ставь Решарпер он за тебя все сам сделает)), важнее всего как заставить все это заработать, а для этого нужна практика. Опишу по шагам свой путь 1) Логика робота готова, вопрос — откуда котировки брать в реальном времени. 2) Как ставить заявки 3) Как получить обратную связь о том, что заявки сработали. 4) Как сделать так чтобы не контролировать действия робота в реальном времени и не использовать на это ресурсы собственного компьютера 5) Как сделать так чтобы роботы сами делили депозит между собой

avatar
  • 12 февраля 2016, 20:26
  • Еще
прикол в том что под плазой нельзя торговать акции
а под спектрой нельзя торговать фьючи
avatar
  • 11 февраля 2016, 18:57
  • Еще
1) Стоимость рассчитывается исходя из кучи ненужных показателей и из 2 нужных: цена баз. актива относительно страйка и время оставшееся до экспирации.
2) Страйк надо выбирать исходя из размера желаемой доходности, но учитывая вероятность наступления желаемого. например сейчас ЦБА — 70 000, вы считаете, что рынок дойдет до 73 000. Есть 2 варианта купить 70 страйк либо 72500 страйк. Тут зависит от того за какое время состоится ваше ожидаемое движение, если быстро то эффективнее 72500 будет, а если медленно то 70000. 
3) маржа рассчитывается исходя из 2-х стоимостей, временной и внутренней. если со внутренней все понятно она либо есть либо её нет, то временная зависит много от чего но в основном от времени оставшегося до кспирации
4) когда опцион доходит до значения страйка у него появляется внутренняя стоимость которая равна движению базового актива, но тогда у опциона начинает быстрее сгорать временная стоимость.
 Вот в кратце все изложил. Если интересует подробнее обращайтесь в ЛС.
avatar
  • 11 февраля 2016, 13:00
  • Еще
Александр Правилов, плохо разобрались.
1. в чем я Вас запутал? И дайте ссылку на «Я супер философ». Хотя бы просто на «Я философ».
2. что я должен конкретизировать, кому и почему?
3. обучением не занимаюсь. Программа мало того, что бесплатна, так еще и с открытыми исходниками.
4. за моими учениками наблюдать невозможно, т.к. их нет.
Но есть люди изучающие ТА. Много людей. Изучают. Не получается сразу?! Покажите у кого, когда и что бывает сходу, без усилий и потраченного времени?
Вот Вы «программист 1С». Прямо сразу со школьной скамьи и программист? И сразу пишите рабочий код, в котором ни одного бага? Тогда зачем Вам еще что-то?!
Надеюсь, Вы меня поняли;)
avatar
  • 10 февраля 2016, 04:59
  • Еще
Можно деньги положить на ИИС. Потом взять маржинальные ОФЗ и под эти офз брать периодически дивидендные акции =))
avatar
  • 06 февраля 2016, 01:59
  • Еще
Veter, кстати, если позиция короткая (по доллару или по споту), то брокер вполне себе может вообще ничего не брать с клиента — он уже будет получать доход, тупо роллируя позицию клиента на РЕПО с ЦК или на свопах. Но только тсссссс, это такая маленькая тайна.))
avatar
  • 01 февраля 2016, 14:53
  • Еще

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

Хули они там пугали комисом и процами за пользование, которых в итоге то и нет. Позы ты вернул в исходное состояние в тот же день. Переноса заемных не было а маржа в 28 мио посчитана с учетом текщих комисов. 

Они тебя вытряхнули из позиции словестными интервенциями. Жесть!

 

avatar
  • 01 февраля 2016, 14:44
  • Еще
firebot, В арбитраж не следует лезть не разобравшись досканально в спецификациях и особенностях контрактов, которые собрался орбитражить. Перед открытием арбитражной позы надо всегда просчитываться все косты на позу, и только после этого принимать решение о целесообразности её открытия.
avatar
  • 01 февраля 2016, 14:39
  • Еще
тема гуд… можно не иметь параметров оптимизаии совсем легко...
например… берешь и тестишь... 
1 цена больше открытия дня — покупаешь… цена меньше открытия дня продаешь... 
2 граль спалил горчаков года три тому назад… считаешь среднюю цену дня (текущий хай дня- текущий лой дня)/2 при пересечении цены с этой линией покупаешь-продаешь...
3 даже обычную 1ну скользящую среднюю можно торговать 5тью способами… т.е даже самый простой индикатор надо уметь готовить
avatar
  • 26 января 2016, 19:21
  • Еще
Сергей Андреевич, не знаю, читал как то статью юриста о выкупе долга. Как понял есть 2 точки зрения, что выкуп долга возможен, вторая, что невозможен в принципе. Поэтому, тут многое может зависеть от адвоката, кто будет всем этим заниматься, от банков, ну и судей.Кроме того есть очень интересный момент, что сумму долга нельзя ( кроме банкротства) зафиксировать, а это значит, что после того как исполнительное производство закрыто, вам вполне может прийти новая досудебная претензия… на сумму долга начислены проценты за пользование чужими  денежными средствами. Будут ли банки это делать… вопрос к ним, но  им никто не запрещает.
avatar
  • 24 января 2016, 03:21
  • Еще
Ошибся потому что налог в 13 процентов спишут с накопленного купона целиком, а не только с той части которая накопилась перед погашением. ( То есть со всего НКД возьмут 13 процентов, поэтому никто не покупает облиги перед выплатой купона).
avatar
  • 23 января 2016, 01:36
  • Еще

к описанным плюсам опционов добавил бы возможность роллирования позиции, переходя с одного страйка на другой. Удобно «фиксировать» прибыль этим) Или же наоборот, если цена сильно ушла не в вашу сторону и купленные опционы сильно подешевели, можно практически безболезненно переходить на более выгодные страйки, сохраняя намеченную стратегию.

Но и про минусы опционов забыть не стоит. Если вы держите опцион до экспирации, то даже при движении в нужном вам направлении, вы все равно минимум теряется ту временную его стоимость, которая была на момент его покупки. Если это воспринимать как дополнительную комиссию, то она выходит неслабой. Фактически, реальная выгода от опционов выходит только при сильных движениях на рынке. Если же все идет медленно и вяло, а вы являетесь покупателем опционов, то вы вероятнее всего как минимум не зарабатываете, даже на движении в нужном вам направлении.

Еще из минусов опционов отметил бы существенные траты на комиссионные сборы биржей и брокером) Это надо учитывать любителям торговли дешевыми опционами, т.к. их берут помногу. Если взять для примера опционы на индекс РТС,  то комиссия за регистрацию сделки — 4р, и если сделка будет скальперской, то еще 2р. Купили вы так например 10 опционов с премией 100, вроде дешевых, но по каким-то причинам решили в скором времени продать, вы уже за эти 10 опционов платите в случае скальперской сделки 60р, плюс, если комиссия брокера = комиссии биржи, то еще платите 60р брокеру. Итого купив и продав 10 опционов на индекс РТС в течение одной торговой сессии вы уже теряете 120р в виде комиссий. Один фьючерс в этом плане обошелся бы существенно дешевле: 2+1=3р + 3р(брокер)=6р. 

Еще крайне существенный минус для меня у опционов — ликвидность! Если от фьючерса можно в любой момент с легкостью избавиться или наоборот легко его приобрести, то с опционами сделать это выгодно бывает затруднительно. Слишком часто спреды очень высокие и быстро открыть/закрыть позиции возможно лишь совершая невыгодную покупку или продажу. А бывает и вообще дикие ситуации, когда опционы сидят хорошо в деньгах, но их невозможно продать и зафиксировать прибыль по причине полного отсутствия ликвидности. Такая байда например в нефти. Пока вы будете пытаться закрыть позицию, рынок уже может отскочить и вы так и останетесь с опционами на руках, которых не смогли вовремя закрыть по выгодной цене по причине того самого отсутствия ликвидности.

В общем, нужно учитывать много различных моментов, во всем есть свои плюсы и свои минусы.

avatar
  • 19 января 2016, 23:38
  • Еще
Ru-Ticker.com, я бы здесь отталкивался прежде всего от рынка труда, посмотрите на тот стэк, что сейчас востребован больше всего — JS, потом джава(прежде всего мобайл дев.), пхп, питон — много там дискретной математики нужно? А для системного программирования предложений как раз заметно меньше.
avatar
  • 14 января 2016, 13:24
  • Еще
AlexeyT, профик — тот кто знает все о чем-то и что-то обо всем… если ты ставишь цель перфекционизм, это одно, а если «способность создать полный цикл» — это другое. Жиды и уводят управления на себя потому как создают людей «полуобразовашек» которые имеют очень локальные знания более того прививают убеждение «а другие мне и не нужны! вот мой станок, здесь написано Вася Пупкин — это моя территория, это — мой мир!» ))) Тупо — фрактально дробят мир, пуская к каждой локальной области фрактала «нерв управления». Они видят ВЕСЬ ФРАКТАЛ как «ковер с кучей орнаментов, оно же — принципиальную схему бытия»… Вася же Пупкин знает ТОЛЬКО О СВОЕМ СТАНКЕ  и комнатушке в которой он стоит — это тупо «клетка» — полная аналогия с живым организмом. Человек крутится в локальной клетке (как пространства так и сознания не желая выходить или напуганный или как Мартынов — сдерживаемый СЛОЖНОСТЬЮ ВНЕШНЕЙ СРЕДЫ и нового места, новой клетки)…
avatar
  • 14 января 2016, 12:38
  • Еще
Есть минГО и фактГО. МинГО снижается (об этом объявим), а вот реальное снижается при соблюдении условий: 10 клирингов подряд расчетная цена каждого клиринга должна быть в диапазоне 0,5L (т.е. и в 14:00 и в 18:45 проверяем, и если вола снизилась, закрытие происходит не более чем 0,5 от лимита то снижаем). Снижение идет на 25% до достижения минГО.

avatar
  • 11 января 2016, 15:23
  • Еще

теории заговора это психологический феномен, связанный с потребностью мозга к поиску причинно-следственных связей — с одной стороны, и невозможностью построить непротиворечивую картину мира в силу низкого уровня знаний конкретного индивидуума — с другой.

лечится повышением уровня знаний

avatar
  • 11 января 2016, 09:30
  • Еще
....все тэги
UPDONW
Новый дизайн