Перейти к содержанию

[Дневничок алготрейдера] Идеальная корзина


Рекомендуемые сообщения

[Дневничок алготрейдера] Идеальная корзина Опубликовано



Да кидай конечно.
Я сейчас очень плотно изучаю все эти дела биржевые, в том числе и Си шарп. Почти готов первый бот полностью на си шарп + тслаб. Попутно часа три в день смотрю всякие записи вебинаров и прочее по теме алготрейдинга на бирже. Ох, парни, я такого наслушался... Гэпы это цветочки. Есть еще черные лебеди - это когда биржа посреди торгов вырубается, а потом гэп при плече 10 на полдепо. Они еще смеются, якобы мы торгуем с плечом 100, хотя я напимер риски держу 3%, это по ихнему плечо 3. Многие торгуют с максимальным десятым плечом. Стопы и тейки не срабатывают не только из-за гэпа, когда цена быстро летит, тоже могут вообще не сработать. проскальзывание 100-200 пунктов - это нормально. Так еще и комиссии конские. Плюс часто не хватает ликвидности и сделки не открываются. Сказать, что я в шоке - это ничего не сказать...


ТЫ ЧТО!!!! ФОРЕКС ЛОХОТРОН!!! ИДИ ТОРГУЙ НА БИРЖУ!!!! :d :d :d :)) :)) :))
ну а серьезно - я долго пытался объяснить человеку(родственнику))), что его торговля на бирже это всё херня полная, после того ка кон мне рассказал про весь ужас что ты выше расписал + те просто феерически конские комиссионные за саму торговлю(я ваще в шоке был неделю навреное, с чего там прибыль-то брать? главное комиссионные отбить - уже типа хорошо). меня так и не поняли, и сказали что форекс лохотрон а бюржа это тру, ЭТО ЖИ БИРЖА!!!! :)) :)) :))
ну ок, чо))

Если не брать во внимание комиссии (они реально жесткие + плата за софт торговый и еще какой то новостной, если по амерски не сечешь сильно, хотя там надо на пульсе руку держать или на России торговать) и прочие нюансы типа отсутствия ликвидности. Обычно к слову сказать такие инструменты отсеиваются по инфе с премаркета(есть сайты где видно какой объем проторгован в каких акциях по фильтрам, т.е. есть смысл туда лезть. Таким образом там ликвидность есть, но если ты работаешь от круглях чисел, то лучше конечно на 5 центов ниже ставить заявку чтоб не протянуло) чтобы не попасть на неликвид.
И так схема как ее понял я.
1. Отбор инструментов по проторговке/ликвидности (отобрали)
2. Смотрят на индекс страны, обязательно чтоб движение инструмента противоречило индексу, значит инструмент тянет кто то в одну сторону и есть смысл запрыгнуть.
3. По феншую ищут адекватно выглядящий график инструмента (более подходящий к граф анализу, может им так спокойнее, кто знает, хотя гэпы не перекрываются, разрывы котировок постоянные на большинстве инструментов даже ликвидных).
4. поиск круглых уровней и работа по тренду на пробой, отскок, ложный пробой. Чаще всего это просто пробой с ретестом 5,10,15 и т.д. уровней.

Некоторые товарищи именно пробои и торгуют когда на инструменте жесткий движняк.

По поводу софта
Спойлер

стоит он баксов 100, новостной + еще пару сотен, так что выходит около 500, если ты прям хочешь чтоб тебе шептали в наушник какие там новости сейчас \M/ . Платформы есть бесплатные удобные, есть платные - не очень.



По поводу рынков
Спойлер

Российский торгуют 10-20 акций, где есть ликвидность, кстати на сайте Мос Биржи есть объем торговли биржи и Форекс, объем торгов валют такой же и даже больше бывает :) . Вот тебе и круто, вот тебе и Биржа. Америка другое дело, но там надо в теме быть и шарить в языке на уровне специалиста, дело конечно практики. пару лет и будешь как свой(тоже самое на форекс)



Порог входа
Спойлер

Торговать одним минимальным лотом(100 акций - 1 лот) при цене за акцию от 2 до 100$...не просто для новичка. Если уж брать акции сначала от 2 до 10-15$ чтоб учиться, получается мы покупаем акций минимум от 200$, если акция стоит 10$, то мы уже купили на 1000. Если мы потеряли 2 доллара с акции то наш убыток 200$. Конечно внутри дня при цене за акцию 50$ матерый трейдер поставить сможет стоп за уровень в размере 5-10 центов, но этому надо научиться еще. В общем если далеко не заходить и брать по минимуму цены и риск на сделку 5% = 200$ при 1 лоте за акцию ценой в 2$, то выходит 4000$ чтоб торговать мусорными акциями, если же брать по 10 -15 баксов, то выходит - 20 000 - 30 000$



Личное мнение на счет Фондового/товарного рынка
Спойлер

Не плохо купить пару инвест пакетов у лидеров рынка в сфере управления капиталом инвесторов (для консервативной части вложений), а торговать более рисково на форекс, все таки уже родное почти дело то. НО! Если жахнет реально, то жахнет по всем рынкам, включая недвижимость и прочее.



Говорят что торговать там намного легче(вообще интересно это, а еще интереснее контракты на сырье, там вообще говорят сезонность рулит), единственное что гонит в форекс(хотя это по сути фьючерс на валюту,график такой же точно, так что мы Форекс/Фьючерс трейдеры в каком то смысле и это не так далеко от нас :) ) людей сначала это порог входа(лот то у нас дробится))) ), но когда привыкаешь, там уже кажется муть мутная. И кстати кто с деньгой и может позволить себе на дневках торговать делают это более охотно чем торговля внутри дня.

Изменено пользователем vvv
  • Лайк 6
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 206
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Всем привет. Решил тоже завести тут дневничок, это модно, а я парень тоже модный :d Сначала думаю сказать пару слов о том, кто я и что вообще тут делаю (вдруг кому интересно будет, да и определить точ

Перейти

Решил подвести итоги этого 2015 года и поставить цели на будущий, так как может и не подвернуться больше подходящей возможности. 1. Рынок Форекс. Для меня в этой сфере год оказался переломным. Я након

Перейти

Я тебе даже больше расскажу. Вообще семидневка две недели, остальные две - шестидневка. Кроме основной работы у меня есть еще две:) Одной я занимаюсь в дороге и дома в основном, второй на основной раб

Перейти
[Дневничок алготрейдера] Идеальная корзина Опубликовано

Подходит к концу отведенная мне на написание ботов неделя. В понедельник я должен выслать тесты и описание принципа работы ботов потенциальному работодателю для оценки. Поработал продуктивно, написано 6 ботов на tslab api. Один уже прооптимизирован, более половины акций, на которые мне дали историю, показывает устойчивый рост как на периоде оптимизации, так и на периоде форварда. Бот использует свечной паттерн пробоя уровня и трендовый фильтр, то есть по сути входит по тренду на пробое предыдущих хаев/лоев. Многое еще можно улучшить, по большому счету этот бот, как и остальные - черновик. Но времени в обрез. Впереди еще оптимизация остальных ботов, что займет как раз весь день. Плюс итоговый тест всей корзины ботов. Не разобрался пока с манименеджментом, так что только фикс лот. Завтра выложу результаты.


Добавлено: 23-10-2016 14:05:15

И в любом случае, независимо от того, возьмут меня или нет, этих ботов я доведу до ума, чтобы лучше освоиться в tslab api. Ну и думаю поторгую ими, хотя бы на демке. Как никак опыт неплохой будет. Ну а дальше если не выгорит с работой, повторю то же самое с платформой wealth lab. Потом уже буду на что то посерьезнее переходить постепенно. Вообще очень нужно хорошее знание языка программирования: си шарп, си ++. В последнее время модно стало на java писать. Короче надо учить:). Изменено пользователем Silentspec
  • Лайк 9
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Примерно такие вот картинки выходят:

Спойлер




Оптил до конца 2014, дальше форвард. Это акция яблока.
С мм разобрался, тралы разные сделал. В общем осваиваюсь потихоньку. Ничего сложного в принципе.
Ставлю на демку со среды.
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

На памме творится полный капец...
Порывался вообще закрыть его, но потом решил, что пусть побарахтается. Три серьезных движа на протяжение всего полутора месяцев сьели почти всю прибыль.
У моей корзины серьезные проблемы.
Во первых, недостаточная адаптированность к таким внезапным резким и большим движениям. Большие стопы и недостаточно хорошо проработано закрытие по индикаторам в убыточной зоне.
Во вторых, плохо подобраны советники друг к другу - часто два сова открываются в одну сторону на одной паре, что увеличивает риски.
В третьих, совы сильно зажаты фильтрами и редко торгуют.
Будем все это дело лечить...
И я решил перейти на мт5. Поэтому всех сов потихоньку переделываю под МТ5 и оптимизирую заново согласно новой политике партии - минимум фильтров, максимум сделок, больше внимания закрытию в зоне убытка, адаптация к резким волатильным движениям по возможности.
Ну и ставлю сов на демку для тестов.
По результатам демо уже буду отбирать нужное в корзину. Собираюсь прикупить EA Analizer, в котором отберу сеты для портфеля исходя из корреляции их друг с другом и успешного прохождения симуляции Монте-Карло. Моя задача - чтобы даже ворст кейс сценарий был вполне приемлем. Вот так вот все сурово. Надоело перезапускаться уже. Пока все свои совы не переделаю и не оттестирую как следует, памм на мт5 не открою.

Изменено пользователем Silentspec
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Дим, а может попробовать 1 памм = 1 сова?
Какие совы будут лить, - закроешь.

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Мы не ищем легких путей! :d
Буду муторно тестить на демке, потом на реале, потом уже новый памм открою, как буду уверен в совах на 100%.

Вообще по опыту эксплуатации метатрейдера скажу такую штуку. В самом начале я тестил ботов по сгенерированным тикам, но быстро понял, что они врут - движения внутри М1 генерируются совершенно рандомно и все сделки - полная чепуха. Ведь индикаторы тогда тоже внутри свечи М1 работают рандомно. Тогда я понял, что если взять только OHLC данные М1 свечи, то я уйду от этой рандомности. Все просто - взял, да разрешил советнику совершать операции только один раз за М1, на ее открытии. И снова промашка, все равно что-то работало не точно, не так, как надо. Не сходилось с реалом. Причина всему этому - спред. Дело в том, что даже при генерации всех тиков МТ4 оставляет спред внутри свечи фиксированным. А это в свою очередь и ведет к неточностям - там, где сова входить не должна была, она войдет и наоборот. Потом я поставил TDS, который позволяет тестить ботов по тиковой истории. Потом была другая проблема - где взять 100% качественные тиковые данные? Ну ок, сшили из разных источников, благо в сети их много. Но это было реально геморно - постоянно обновлять тиковую историю. А эти fxt файлы по 10-15 гигов на одну пару. Особенно, когда в работе у тебя 20 пар:). Но зато это был реально единственный способ протестировать стратегию по всем тикам и с плавающим спредом в МТ4. Хоть и не бесплатный. Я знаю, что сейчас вышел TDS2 (многие проблемы в нем решены - котиры качаются сами из нескольких источников и места занимают теперь немного), но не думаю, что буду его покупать., по крайней мере пока. Я всерьез пересаживаюсь на МТ5.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано


Я всерьез пересаживаюсь на МТ5.



А Вас не смущает, что в МТ5 невозможно увеличить спред, для "эмуляции" проскальзываний ?
Как с этим нюансом собираетесь бороться ?

P.S. У меня опция тестера MT5 "Режим торговли" "С произвольной задержкой" очень мало влияет на результаты. Хотя по логике - спреды в МТ5 вроде реальные прописываются в историю, а вот режим
"С произвольной задержкой" должен проверять ТС на устойчивость к проскальзываниям...
И получается на реале чуть хуже чем в тестере МТ4 с увеличенным спредом под реалии, а в МТ5 резы лучше чем в МТ4.

Изменено пользователем AndreyGold
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано
Спойлер


На памме творится полный капец...
Порывался вообще закрыть его, но потом решил, что пусть побарахтается. Три серьезных движа на протяжение всего полутора месяцев сьели почти всю прибыль.
У моей корзины серьезные проблемы.
Во первых, недостаточная адаптированность к таким внезапным резким и большим движениям. Большие стопы и недостаточно хорошо проработано закрытие по индикаторам в убыточной зоне.
Во вторых, плохо подобраны советники друг к другу - часто два сова открываются в одну сторону на одной паре, что увеличивает риски.
В третьих, совы сильно зажаты фильтрами и редко торгуют.
Будем все это дело лечить...
И я решил перейти на мт5. Поэтому всех сов потихоньку переделываю под МТ5 и оптимизирую заново согласно новой политике партии - минимум фильтров, максимум сделок, больше внимания закрытию в зоне убытка, адаптация к резким волатильным движениям по возможности.
Ну и ставлю сов на демку для тестов.
По результатам демо уже буду отбирать нужное в корзину. Собираюсь прикупить EA Analizer, в котором отберу сеты для портфеля исходя из корреляции их друг с другом и успешного прохождения симуляции Монте-Карло. Моя задача - чтобы даже ворст кейс сценарий был вполне приемлем. Вот так вот все сурово. Надоело перезапускаться уже. Пока все свои совы не переделаю и не оттестирую как следует, памм на мт5 не открою.


Дима, самое интересное, что ты это все знал до запуска ПАММа. Знал, но опять закрыл глаза. Как маленький ребенок закрывает глаза и думает, что теперь его не видят.
Половина сов в твоем портфеле - хлам. Такой, что в одиночку эти совы ставить на реал бессмысленно - судя по бектестам они в лучшем случае будут болтаться на месте. Но в корзине на бектестах, вроде как, смотрятся неплохо.
Причем ты эту же ошибку совершаешь с завидной периодичностью. Можно, например, глянуть портфель сетов для милкивея. Там невооруженным взглядом видно, что две трети из них на реале зарабатывать не будут - низкая статистическая значимость да и результаты так себе. Но ты закрываешь на это глаза и добавляешь их в корзину. Чтобы портфель на бектестах хорошо выглядел...

Добавлено: 26-10-2016 19:05:54

Кстати, да. С моделированием по Монте-Карло - абсолютно правильная идея.
А можно еще и до моделирования использовать элементарный фильтр. Если конкретный сет конкретного советника ты бы никогда не поставил на реал в одиночку, то и в корзине ему делать нечего. Изменено пользователем Doveman
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

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


Добавлено: 27-10-2016 11:34:49

Пока я поправил свои ошибки только в одном из моих ботов. Также я наконец разобрался с классами, методами, наследованием, пространствами имен и прочим. Но чтобы все это закрепить, нужно это все применять на практике. Этот единственный бот, написанный на mql5, не использует практически принципы ооп. Поэтому я это буду максимально исправлять. Доведу его до идеального состояния, а затем уже остальных ботов переведу по шаблону. Интересно, даст ли это прирост в скорости тестирования?
Затем я попробую написать программку на си шарп, которая будет анализировать пока что один единственный стейт от mql4/mql5 и выводить данные, которых в этих стейтах нету.
В планах написать хороший анализатор портфолио. Знаю, есть много готовых продуктов, но это будет очень хороший для меня опыт. Который мне сильно пригодится в будущем. Изменено пользователем Silentspec
  • Лайк 6
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Тёзка, как с повышением скорости тестов при переезде на мт5? ресурсы всего железа используется? по слухам прирост должен быть многократным.
ЗЫ: сам хочу переехать на мт5, но java не оставляет времени на шалости в виде mql5 :)

еще немного не понял, ты намеренно отказываешься от ооп? почему и зачем?

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Да, скорость по сравнению с МТ4 действительно ощутимо выше. На глазок раза в 3. Но все равно отвратительно долго!
Плюс ко всему так и не решены многие недостатки мт4, такие как неточность результатов например. И добавились свои недостатки типа невозможности задания спреда и подгрузки своих баз котиров. То, что они сделали возможность теста по реальным тикам - мертвому припарка, так как ни у одного брокера нормальных тиков нет. В этом режиме предполагается плавающий спред внутри м1 свечи по ценам аск и бид, но не судьба. Режим второй - эмуляции тиков использует реальный спред на открытии свечи, но там тоже какой то косяк. При тесте с 2000 до 2012 спред по евробаксу ставится 50 всегда, с 2012 года всегда 20, и только последний месяц-полгода максимум реальный из тиков брокера. При тесте по OHLC М1 ставится спред послдний известный по терминалу, как раньше в МТ4 было. Так что тесты еще дальше от реальности, чем это в мт4, особенно с использованием TDS. Задумка красивая, но реализация все убила.
Сейчас даже не знаю, что и делать. По всему получается, что пока все же самый реальный путь использовать мт4 +тдс, но бесит гонять сотни форвардов вручную. Короче, если мыслить шире, метаквотовский терем ни тот, ни другой для нормальной работы не предназначен.
Я тут общался с одним челом, у них там самописный терем очень крутой по возможностям. Очень точные тесты, расчет стоимости пункта на каждой свече (в мт он по последней цене один раз считается - например, 1,4 цена в 2016, но в 2000 она же 0,9 могла быть и стоимость пункта совсем другая), спред плавающий на каждом тике считается как аск-бид, возможно выбрать несколько режимов моделирования, как в мт, несколько режимов оптимизации - период оптимизации+форвард или ступенчатый, несколько способов оптимизации генетических и обычных. Монте-карло встроен, тесты с разными параметрами разных совов на разных парах, портфельный оптимизатор (когда из готовых тестов подбирается лучший портфель с учетом корреляции систем и по разным параметрам-профитфактор, рекавери, просадка, профит и тд), возможно с помощью нейросети оценить возможный будущий разброс результатов системы или портфеля, короче куча всего. При этом портируются туда и мт4, и мт5, и дукасовые, и оандовские системы, и даже квиковские, тслабовские, велслабовские и так далее. Насколько я понял, они под каждую платформу написали какой-то там парсер, который переводит вроде как код оттуда на внутренний синтаксис платформы и тс уже работает на их платформе. Летает это все быстрее метака в 78 раз, при этом оптимизация по реальным тикам! Еще есть база 100% котировок с возможностью получения данных с нескольких источников для сверки, редактирование баз котиров. Запускать совов можно из того же терема, причем портфелями, причем неограниченное количество и на разных счетах и типах счетов - пять портфелей для мт4, десять для мт5, несколько для ммвб и парочка на фортс например. Каждый портфель целиком в своем окне, по портфелю и по каждому инструменту и сову своя лайв стата ведется, можно сравнивать с историей прям в одном окне и смотреть, отклоняется ли портфель от того, что нейронка спрогнозировала. Писали три человека около двух лет. И продолжают писать. У них там щас пошли всякие дата майнинги, арбитражи и прочие замуты. Сказочно просто. Вот такая нужна платформа для серьезной работы, а не это метаквотовское фуфло.
Естественно, ни за какие деньги этот софт они не продажут.
И я бы очень хотел повторить их подвиг, но это крайне сложно думаю - была бы команда соображающих и заинтересованных людей, было бы наверное реально выйти на совершенно новый уровень алготрейдинга. А так это все большебаловство...
Пойду практиковаться в си шарпе... Калькулятор лотов напишу:)))
А потом дневничок для ручного трейдера со скриншотами:) какая никакая практика...
Может и реально смогу подобную платформу поднять со временем. А пока... оптю ботов на том, что есть...
Нет конечно, я не отказываюсь от ооп, наоборот, я раньше не был с ним знаком, так как мой первый язык - это мкуэль4. Я ж самоучка. Для меня ооп это новые знания, и я наоборот сейчас пытаюсь переписать ботов используя ооп.


Добавлено: 28-10-2016 08:09:12

Есть вопрос к знающим людям: правильно ли я понимаю, что вот на примере мкуэля функциональное программирование работает быстрее, чем ооп? Один и тот же бот, написанный через функции дал время на тестирование 1 минута 24 секунды, с классами 1 минута и 36 секунд...
Так только в мкуэле или это для любого языка программирования? Если для любого, в чем тогда преимущество ооп помимо удобства?

Добавлено: 28-10-2016 16:33:54

По поводу ооп... Я пока только основы изучаю, модификаторы доступа, инкапсуляцию, автосвойства, перегрузку, наследование, полиморфизм, абстрактные классы (как и что - понял, для чего - не понял), преобразование типов, обобщенные типы и методы, классы исключений, методы расширения, пространства имен, псевдонимы... Дошел до интерфейсов... каша в голове, честно говоря... Со временем, думаю, устаканится, но это жесть :d
Очень много всякого разного, вроде и понятно, как оно работает, и синтаксис понятен, и воспроизвести смогу... Только вот многое не понятно пока для чего нужно. Ну вот то же наследование например - не легче ли просто в базовый класс добавить то дополнительное, что надо, и все? Изменено пользователем Silentspec
  • Лайк 3
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

попробуй 10 бесплатных уроков пройти явараша(это не реклама). там как раз последние уроки идут на классы/
наследование/интерфейсы(я хз есть ли такое понятие в C#, но по сути - это тот же абстрактный класс, только с бестелесными методами)

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

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

на твой вопрос: где это применять на форексе - до сих пор не нашел ответа, функциональным программированием быстрее все пишется, и по поводу удобства - опять же никто не мешает писать грамотный модульный читабельный код, где работает через самописные функции и вобще вся логика построена на вызове друг друга, это же и есть подобие использования классов(правда можно нарваться на StackOverFlaw :d).

Изменено пользователем dermitay
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Спасибо. Вообще бесплатных (да и платных наверное) уроков в нете кучища. си шарп от си ++ лично для меня отличается пока только синтаксисом и нюансами, а так - суть одна, те же классы, наследования, интерфейсы и прочее. Есть куча заумных уроков, читая которые засыпаешь, но они составлены очень подробно и разьясняют все нюансы и многие частные случаи. Одна проблема - часто новичку очень сложно вкурить, о чем речь. Однажды я наткнулся на ресурс, где обьяснялись принципы ооп на пальцах, как для школьника. Вот после прочтения этого я в саму суть и вьехал:). Но эти уроки дали поверхностные знания. То, что нужна именно практика - полностью согласен. Иначе никогда не освоишь, а если и освоишь, то быстро вылетит из головы. Сейчас пока практикуюсь на консольных программах (самое основное), пока осваиваюсь. Потом уже начну изучать windows forms.
А по поводу применения к форексу и вообще торговли на финансовых рынках - язык дает возможности, ограниченные только фантазией. Как в примере выше, я рассказывал, как ребята написали собственную платформу для автоторговли, которая на несколько порядков выше того же метака.
Вообще же моя основная цель - профпереориентация. И дополнительный бонус - новые возможности в алготорговле. На бирже например большинство ботов написано на си шарпе. Хай фреквенси пишут в основном на си ++, а также с недавних пор начали все активно пересаживаться на java. Для тестирования и оптимизации несложных стратегий или стратегий, использующих обработку большого количества данных часто используют R, еще часто применяют питона. Я не раз натыкался также на применение матлаба или экселя для торговли. Кстати, в матлабе куча разных готовых приблуд для финансовых вычислений - всякие нейронки, оптимизаторы и прочее.
Так что по большому счету неважно, с какого языка начинать. По сути они все похожи, и зная один гораздо проще освоить еще несколько.
Мой приятель очень хорошо знает 6 языков программирования, еще на 4-5 может написать что-то не слишком сложное. А в работе использует всего два. И он тоже об этих вещах мне говорил - во-первых, главное практика, а во-вторых зная один язык, выучить другой уже гораздо легче. Ну и в-третьих - хороший программер будет востребован всегда, независимо от ситуации в стране. Ну а строительство... Фиг его знает, идет волнами. Был раньше строительный бум, когда можно было реально много заработать, сейчас пошла просадка. Вакансий мало, конкуренция большая, а зп мизерные.
Мне всегда нравилось писать код. И я часто жалел, что не выбрал профессию программиста в свое время. А сейчас настало такое время, когда я стою перед непростым выбором - либо умерить свои зарплатные аппетиты неизвестно на сколько дет и продолжать работать в строительной сфере, которую я знаю и в которой у меня есть более, чем десятилетний опыт + образование, но нет особого интереса (хотя деньги стабильно зарабатываются, и ладно), либо освоить как следует то, к чему лежит душа и чем всегда хотел заниматься, но, опять же, умерить свои зарплатные ожидания - но на некоторое время, которое зависит только от меня, моей способности к обучению. Второй путь явно выгоднее для меня - тут нет неопределенности с финансовой точки зрения, а самое главное, есть большое желание и интерес к этой сфере. Сейчас я по дороге на работу и домой слушаю учебники по программированию (именно теорию, а не по конкретному языку), а приезжая на работу первым делом открываю visual studio и очередные курсы из сети, с самого приезда и до отьезда домой я занимаюсь практически только изучением, то есть по 10-12 часов в день, плюс три часа в дороге. и мне на протяжении двух уже недель все это дико нравится. Ну, то есть, к вечеру уже голова становится деревянной, и я просто повторяю какие-нибудь азы, часто находя какие то нюансы, которые раньше просто не понял или в том курсе они были пропущены. И пока мозг воспринимает информацию, я делаю это. Когда строки начинают сливаться, и я начинаю перечитывать предложения, потому что перестаю понимать их суть, обычно часов в 10-11 вечера, я выключаю комп и еду домой, пытаясь впихнуть еще немного информации в мозг посредством слуха. Я многого до сих пор не понимаю, мне кажется, я туповат, знания лезут в голову медленно, но я все равно вижу некоторый прогресс.
А вообще есть куча кпутых и полезных вещей для торговли, которые я хотел бы написать. И, надеюсь, напишу:)


Добавлено: 29-10-2016 11:32:57

А, про интерфейсы. Да, на си шарп то же самое, просто как абстрактный класс, без мяса в методах, только перечисление. А потом уже при наследовании интерфейса классом все эти методы заполняются. Да я думаю во всех подобных языках все примерно одинаково, что в яве, что в си ++, что в си шарпе. Просто синтаксис разный, где-то чего-то нет, но есть другое, по мелочам отличия. Я потому и начал с си шарпа, что мне он в первую нужен был. А так без разницы, с чего начинать - си++ или java потом освоить зная уже хорошо шарп бадет делом пары недель-месяца. Изменено пользователем Silentspec
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Не трать время на WinForms. Сейчас под винду гораздо приятнее разрабатывать на WPF.
Сам когда-то начинал еще с седьмого паскаля под дос. За пятнадцать лет работы программистом пощупал почти все.
Сейчас пишу в основном на C# с применением WPF. Если надо что-то по быстрому посчитать/прикинуть, то питон. Если фрилансить, то web-стек.
Очень редко беру с++ либо что-то совсем специфическое для моей области (работаю в асутп).
С++ принципиально отличается от с# в управлении памятью. В с# есть автоматический сборщик мусора. В с++ он появился совсем недавно и то неполноценный. Ну и в с# синтаксис поприятнее, больше синтаксического сахара.

P. S. А насчет интерфейсов, то тут не все так просто, но с телефона долго расписывать.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Спасибо, мнение опытного человека - это бесценно.
Да, про вин формс так и понял, что устаревшая технология, сегодня как раз читал вводную про WPF - сильная весч! И анимация тебе, и даже 3д графика...
Сейчас как раз приступаю к сбощику мусора:) Не знал, что в с++ его нет, думал языки чуть ли не один в один похожи по функционалу. А синтаксис - думал это просто только мне си шарп приятней:)
Вин формс вообще даже смореть не стоит? Или в рамках общего развития стоит потратить немного времени?

Изменено пользователем Silentspec
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Винформс и впф на поверхности очень похожи: формочки, кнопки, события. Различия в гибкости. Если на винформе шаг влево, шаг вправо(например выпадающий список с картинками) грозит днями плотного кодинга, то на впф можно за вечер сделать табличку, где в ячейках будут крутиться кубики, а на их гранях будет крутиться фильмец, табличка, кнопочки и прогрессбар. И все это стандартными средстави.
В глубине эти две технологии очень отличается и если после винформс начинаешь кодить под впф, то получается уродливо, а если наоборот, то это сплошное страдание :))
Не трать время на винформс. Если надо будет: с твоей энергией освоишь за неделю.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Мой первый Hello World!
Калькулятор лотов:

Спойлер



Вводится сумма на депозите, валюта депозита (сделал такие варианты - usd, eur, gbp, aud, rub, jpy, gld), валютная пара, для которой нужно посчитать лот, цена входа в сделку по этой паре, количество знаков после запятой для этой пары, минимальный лот счета, цена базовой валюты (если пара для входа - кросс-курс), цена пары валюты депозита к баксу для правильного расчета лота для разных валют депозита, стоп-лосс в пунктах и риск в процентах. Нажимаем на кнопочку расчет и в поле результат получаем количество лотов под заданный стоп и риск. Если какие-то значения вводятся некорректно, в сером поле снизу программы будет выскакивать сообщение, в чем произошел косяк. А, еще при наведении мышки на поле вылезают всплывающие подсказки.
Вот такая вот первая программа на си шарп >:dЕще думаю буду допиливать прогу:
1. Хочу разбить программу на две вкладки, в одной будет то, что есть уже, а во второй сделаю какие нибудь расчеты для сетки.
2. Сверху добавлю менюшку к какими нибудь кнопочками типа выход и больше не могу ничего придумать. Справка может быть...
3. Возможно поля основные разобью на группы: типа основные настройки, настройки лота, цены, риска ну и так далее. И они будут скрываться и выезжать при нажатии на стрелочку.
4. Добавить еще какие-нибудь методы манименеджмента
5. Сделать нормальное окошко с логом: с датами записи, перемоткой, чтобы последние сообщения были сверху, с возможностью очистки журнала. Окошко чтобы можно было растягивать. Чтобы сообщения из лога можно было копировать и чтобы лог файл создавался текстовый. Ну как-то так.
Все это мне пригодится в будущем, поэтому без разницы, для какой программы делать тот же лог.

Зачем я написал этот калькулятор? Для себя, для практики. Все равно же на чем-то надо тренироваться. Написав этот калькулятор, я начал немного разбираться в xml и в wpf, по крайней мере базовые знания получил. Я сделал отдельно библиотечку для обработки результатов и отдельно экзешник. В библиотечке у меня свой класс с методами для расчетов разных параметров. Насколько оптимально и профессионально получилось написать? Да думаю ни насколько. Скорее всего, код написан отвратительно. Но вроде все работает. И основную роль прога выполнила - я познакомился с си шарп и впф.

Пы.Сы. Если найдете ошибки или есть мысли, как лучше сделать, пишите. Буду искать. Спасибо!
Пы.Пы.Сы. Еще было бы круто, если б прога брала котировки из интернета и не пришлось бы вбивать их вручную.

LotCalculator.rar

Изменено пользователем Silentspec
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано


Мой первый Hello World!
Калькулятор лотов:


Вылетает вот с такой ошибкой:
Спойлер


Приложение: LotCalculator.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за необработанного исключения.
Сведения об исключении: System.NullReferenceException
в LotCalculator.MainWindow.textBox_EnterCurrPrice_TextChanged(System.Object, System.Windows.Controls.TextChangedEventArgs)
в System.Windows.Controls.TextChangedEventArgs.InvokeEventHandler(System.Delegate, System.Object)
в System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean)
в System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs)
в System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs)
в System.Windows.Controls.Primitives.TextBoxBase.OnTextChanged(System.Windows.Controls.TextChangedEventArgs)
в System.Windows.Controls.Primitives.TextBoxBase.OnTextContainerChanged(System.Object, System.Windows.Documents.TextContainerChangedEventArgs)
в System.Windows.Controls.TextBox.OnTextContainerChanged(System.Object, System.Windows.Documents.TextContainerChangedEventArgs)
в System.Windows.Documents.TextContainerChangedEventHandler.Invoke(System.Object, System.Windows.Documents.TextContainerChangedEventArgs)
в System.Windows.Documents.TextContainer.EndChange(Boolean)
в System.Windows.Documents.TextContainer.System.Windows.Documents.ITextContainer.EndChange(Boolean)
в System.Windows.Documents.TextRangeBase.EndChange(System.Windows.Documents.ITextRange, Boolean, Boolean)
в System.Windows.Documents.TextRange.System.Windows.Documents.ITextRange.EndChange(Boolean, Boolean)
в System.Windows.Documents.TextRange+ChangeBlock.System.IDisposable.Dispose()
в System.Windows.Controls.TextBox.OnTextPropertyChanged(System.String, System.String)
в System.Windows.Controls.TextBox.OnTextPropertyChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
в System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
в System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
в System.Windows.Controls.TextBox.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
в System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs)
в System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType)
в System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean)
в System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(System.Object, System.Object)
в MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Xaml.XamlMember, System.Object, System.Object)
в MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object)
в System.Xaml.XamlObjectWriter.Logic_ApplyPropertyValue(MS.Internal.Xaml.Context.ObjectWriterContext, System.Xaml.XamlMember, System.Object, Boolean)
в System.Xaml.XamlObjectWriter.Logic_DoAssignmentToParentProperty(MS.Internal.Xaml.Context.ObjectWriterContext)
в System.Xaml.XamlObjectWriter.WriteEndMember()
в System.Xaml.XamlWriter.WriteNode(System.Xaml.XamlReader)
в System.Windows.Markup.WpfXamlLoader.TransformNodes(System.Xaml.XamlReader, System.Xaml.XamlObjectWriter, Boolean, Boolean, Boolean, System.Xaml.IXamlLineInfo, System.Xaml.IXamlLineInfoConsumer, MS.Internal.Xaml.Context.XamlContextStack`1, System.Windows.Markup.IStyleConnector)
в System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
в System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
в System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
в System.Windows.Application.LoadComponent(System.Object, System.Uri)
в LotCalculator.MainWindow.InitializeComponent()
в LotCalculator.MainWindow..ctor()

Сведения об исключении: System.Reflection.TargetInvocationException
в System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef)
в System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
в System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
в System.Activator.CreateInstance(System.Type, Boolean)
в System.RuntimeType.CreateInstanceImpl(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, System.Object[], System.Threading.StackCrawlMark ByRef)
в System.Activator.CreateInstance(System.Type, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, System.Object[])
в System.Activator.CreateInstance(System.Type, System.Object[])
в System.Xaml.Schema.SafeReflectionInvoker.CreateInstanceCritical(System.Type, System.Object[])
в System.Xaml.Schema.SafeReflectionInvoker.CreateInstance(System.Type, System.Object[])
в System.Xaml.Schema.XamlTypeInvoker.CreateInstance(System.Object[])
в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CreateInstanceWithCtor(System.Xaml.XamlType, System.Object[])
в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CreateInstance(System.Xaml.XamlType, System.Object[])
в System.Xaml.XamlObjectWriter.Logic_CreateAndAssignToParentStart(MS.Internal.Xaml.Context.ObjectWriterContext)
в System.Xaml.XamlObjectWriter.WriteStartMember(System.Xaml.XamlMember)
в System.Xaml.XamlWriter.WriteNode(System.Xaml.XamlReader)
в System.Windows.Markup.WpfXamlLoader.TransformNodes(System.Xaml.XamlReader, System.Xaml.XamlObjectWriter, Boolean, Boolean, Boolean, System.Xaml.IXamlLineInfo, System.Xaml.IXamlLineInfoConsumer, MS.Internal.Xaml.Context.XamlContextStack`1, System.Windows.Markup.IStyleConnector)
в System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
в System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
в System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
в System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext)
в System.Windows.Application.LoadComponent(System.Uri, Boolean)
в System.Windows.Application.DoStartup()
в System.Windows.Application.<.ctor>b__1_0(System.Object)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
в System.Windows.Threading.DispatcherOperation.InvokeImpl()
в System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
в MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
в System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
в System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
в MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
в System.Windows.Threading.DispatcherOperation.Invoke()
в System.Windows.Threading.Dispatcher.ProcessQueue()
в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
в MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
в System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
в MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
в System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
в System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
в System.Windows.Application.RunDispatcher(System.Object)
в System.Windows.Application.RunInternal(System.Windows.Window)
в System.Windows.Application.Run(System.Windows.Window)
в LotCalculator.App.Main()



Просто при запуске:появляется машинка и потом сообщение, что приложение закрывается.

Это происходит, если в системе разделитель дробной части - точка. Когда поменял на запятую - запустилось.

P.S. Почитай про паттерн MVVM. Изменено пользователем aaleksander
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Ага, понял, спасибо.
Да, я там строки преобразовываю в тип дабл и про запятые забыл. Надо сделать, чтобы все запятые в стринге, если есть, преобразовывались в точку.
Почитаю, спасибо.


Добавлено: 03-11-2016 15:16:40

Паттерны проектировая это сила!
Но я понял, что мне многих базовых знаний не хватает для начала. То есть можно конечно научиться программировать грубо говоря не зная, как устроен компьютер и успешно писать что нибудь простое, но для более серьезных вещей базовые знания нужны. Я бы хотел сначала увидеть общую картину, получить представление о компьютерных науках в целом, затем уже на более низком так сказать уровне - о существующих языках программирования и областях их применения, устройстве баз данных, принципе работы и архитектуре компьютера, об алгоритмах, операционных системах и сетях, разработке ПО, а затем уже продолжить изучение .net. Так что возьму паузу в несколько дней и полистаю фолианты. Тем более, раз уж я собираюсь плотно подсесть на программирование, все это мне знать нужно. В институтах программеры наверняка все эти азы проходят.
Вот такую вот книжку нашел, старенькая, но интересная. Все написано доступным языком. Не знаю, насколько полезная окажется, прочитал пока только первый раздел про архитектуру машин. На одном дыхании.

Введение_в_компьютерные_науки_2001.rar

Изменено пользователем Silentspec
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Я решился все таки писать рабочую станцию алготрейдера. Не знаю, на сколько времени растянется это занятие, не знаю, что в итоге получится.
Но представление в общих чертах о самой концепции есть.
Итак, сама основа - просто оболочка без каких-либо полезных функций, кроме одной - она основа всей модульной конструкции. То есть я буду писать различные модули под мою платформу и последовательно по мере готовности расширять функционал рабочей станции.
Сама рабочая станция будет выглядеть так: Наверху основное меню с выпадающими списками инструментов (файл, вид (где можно будет настроить панели инструментов (включить/отключить, сконфигурировать панели), возможно выбрать язык (не знаю пока, есть ли в этом смысл), модули (где можно будет включать/выключать подключенные к станции модули и манипулировать ими), ну и так далее). Ниже будет инструментальная панель - ну практически как в метаке. Далее будет лента вкладок - это могут быть окна с графиками, с различными модулями, окна тестирования или оптимизации. Их можно будет менять местами, закрывать и так далее. Открывать новые вкладки можно с панели инструментов или из панели основного меню. Снизу будет панель логирования, также отключаемая.
Что в итоге по моему мнению должно присутствовать в рабочей станции:
- различные калькуляторы (это те самые плагины, с которых я начну)
- контроль работы терминалов (будет отслеживать работу теремов например на впс и сообщать пользователю их текущее состояние: например, терем завис или оптимизация завершена). Поначалу, пока не будет своего модуля тестирования и оптимизации, это будет полезно.
- база котировок. Этот модуль позволит контролировать базу котировок для различных рынков. Будет две разновидности источников данных - оффлайн и онлайн. Для создания оффлайн источника достаточно просто указать или создать папку для хранения файлов котировок. Оффлайн источников может быть несколько. Например, Forex_ticks или Forex_M1 или Micex_ticks к примеру.
В общем можно будет просматривать графики оффлайн котировок и сравнивать их с онлайн источниками. Также можно будет проводить автоанализ - автопоиск кусков пропуска котировок и сравнение с другими источниками, например с онлайн источниками (если эти куски в них есть, можно просто добавить заплатку их них в оффлайн источник). Также можно редактировать свечи или тики вручную.
- тестер и оптимизатор.
Пока о них особо не размышлял. Но в любом случае как-то придется решать проблему переноса mql4 и 5 файлов стратегий и индикаторов. Причем без редактирования кода, автоматически.
- портфельный менеджер.
Постараюсь перенести весть функционал SQ EA Analizer. Плюс все тесты можно будет добавлять в текущий портфель сразу после тестирования. Можно будет сохранять различные портфели и редактировать их, оптимизировать портфель.
- торговый модуль, который будет позволять работать теми самыми собранными портфелями ботов, причем неограниченным количеством этих портфелей на различных счетах.
- возможность писать код стратегий самостоятельно, возможно какой-нибудь визуальный конструктор, генератор стратегий.
Это все - подключаемые модули.

Модуль будет представлять из себя zip архив всех необходимых библиотек и файлов и xml файл дескриптор с описанием модуля. Установка и удаление модулей будет производиться в специальной вкладке управление модулями.

Модульность позволит мне писать рабочую станцию поэтапно и даст большую гибкость в настройке.

Работа эта кажется мне сейчас практически нереальной:) Но я все равно начну. В любом случае результатом будет опыт.

Изменено пользователем Silentspec
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Моей самой главной ошибкой было чрезмерное увлечение фильтрацией. Вся эта куча фильтров сильно зажимала общее количество сделок и в итоге помогало мне подгонять кривую доходности к идеально плавной красивой форме. Короче - чем больше фильтров, тем больше шанс переподогнать систему. Сейчас использую максимум пару фильтров. Если это гипотетическая тс на возврат к скользящей, я применил бы фильтр перепроданности. Может быть добавил бы некий свечной паттерн, типа пин-бара. И фильтр волатильности, чтобы тс не работала при слишком сильном кипише или на затишье. Все. Еще фильтр времени. Кстати, временные фильтры не приводят к подгонке. Клянусь, это так.
Что еще? Переделываю ботов. Стало все гораздо интересней. Там, где было 100 сделок, стало 1000. Соответственно и доходность другая уже.
Совсем забыл. Тщательней стал относиться к проработке сопровождения сделок в отрицательной зоне прибыльности. Когда есть сигнал на выход в убытке, лучше выйти не дожидаясь лося. Да и приоритет с лосями - чем меньше, тем лучше. Внимательно отношусь к отношению профита к потере.

  • Лайк 10
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано


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


Вот это верно на 100%.
Абсолютно не важно, в плюсе сделка или в минусе (а так же вообще есть ли открытые сделки или нет).
Разве что-то принципиально меняется от того, сделка в плюсе на 1 пункт или в минусе на 1 пункт? Если рынок говорит, что нужно закрыть сделку, ее нужно закрыть.
Да и вообще.
Если ситуация на рынке говорит, что нужно продавать, то нужно продавать. Если при этом есть открытая сделка в лонг, это будет эквивалентно ее закрытию.
Если ситуация на рынке говорит, что нужно покупать, то нужно покупать. Если при этом есть открытая сделка в шорт, это будет эквивалентно ее закрытию.

Добавлено: 16-11-2016 09:47:09

Насчет фильтров такая интересная задачка на теорию вероятности.

Дано:
Есть ТС, которая дает, скажем, 2000 пунктов в год при максимальной просадке 1000 пунктов. Т.е. соотношение среднегодовой прибыли к максимальной просадке 2/1.
В год делает 1000 сделок.
Максимальная просадка на периоде тестирования достигается последовательностью из 10 убыточных сделок (не обязательно подряд).

Требуется:
Найти вероятность того, что совершенно нелогичный фильтр, наложенный на ТС существенно (скажем, хотя бы до 3/1) улучшит соотношение среднегодовой прибыли к максимальной просадке. Количество сделок фильтром может быть снижено в 10 раз.
Возможные варианты фильтра:
Оставить только сделки, у которых значение цены входа содержит на позиции n цифру m.
Оставить только сделки, у которых время входа (в часах:минутах:секундах) содержит на позиции n цифру m
n и m подбираются "оптимизацией" на истории.

Вот интуитивно могу сказать, что вероятность очень высока, т.к. количество "фильтров" огромно, а нам нужно всего-лишь исключить четыре сделки из 10 в момент максимальной просадки. Подходящие значения "фильтров" мы легко подберем. Изменено пользователем Doveman
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Вот и вышла новая статейка. http://tradelikeapro.ru/polnyiy-gayd-po-algotreydingu/

  • Лайк 8
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано


Вот и вышла новая статейка.



Эпично расписал. Прям самому захотелось взяться. Планируется серия?
Ссылка на сообщение
Поделиться на другие сайты

[Дневничок алготрейдера] Идеальная корзина Опубликовано

Да, буду писать ышо.
Сейчас готовлю материал по тому, какой метак нехороший терем.

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...