Блог им. facevalue

Кодинг

#region History
Первый подход к коду я совершил в 9-м классе, когда были такие черные YAMAHA в домах Юного техника (кто в курсе о чем я — плюсуем). Это был Бейсик и Турбо Паскаль. Но тогда я понял что «это не мое», и забыл.

Второй подход был в 2010-м году, когда я с коллегой решил запилить первого робота. Он пилил, я придумывал. ) Ессно, всё ничего не получилось. ) Хотя был получен бесценный опыт, пройдены поля граблей и на лбу появилась титановая пластина. Тогда я научился более менее читать код, но попытки что-то закодить приводили к тому, что я не мог толком понять даже как появляется этот долбанный Hello World.

Потом был 2012-й, тогда я всерьёз сошел с ума, и написал целых три программулины. Одна умела парсить тики в нужные ТФ, вторая — это знаменитый All Prices, третья была… Уж и не вспомню. Сказать что этот код тогда написал я — нет. Меня пытался выучить этому ремеслу один очень хороший человек, и я буквально под диктовку писал код. Естественно, без его сопровождения I could barely make it to Hello World. Зато научился делать кнопочки в WPF. ) И… несказанно усовершенствовал свои навыки чтения кода.

В новом проекте я с легкостью статиста с 40-летним стажем руководил разработкой и созданием ряда алгоритмов, ничего не понимая в написании кода, охотно и успешно исправляя его «неровности». Можно сказать, что это был дубль два.
#endregion

#region LUCK
Тут стоит оговориться, что мне посчастливилось увидеть как пишет код настоящий профессионал. Нет, гений. Признанный не мной, а многими тысячами его коллег и крупных заказчиков. Это не просто «типакакстроитькод». Это те самые тонкие ноты, мотивы и прекурсоры, которые рождали хороший код. Считаю, что это послужило для меня первой настоящей мотивацией однажды таки научиться кодить, а не быть TE (техническим инженером). Я ночами сидел и делал документацию для нашего софта, комментировал каждую строчку кода… Но мой лингвистический ум отказывался принимать кодерскую действительность. Собственно, как и с миром финансов в свое время — я месяц въезжал что такое волатильность. Но это уже в другой истории....
#endregion

#region The Thing, The Story
Так, мои попытки написать рабочий код с очередным невероятным ошеломительным успехом провалились. ))) С ХелоуВорлд я конечно разобрался и мог воспроизвести. Но код как навык был отложен во второй ящик снизу.

И вот недавно, приводя тут свой капиталистический участочек в порядок, я перестарался, и проснулась позвоночная грыжа. Та самая, от которой любое движение тела превращается в адскую муку. Пролежав два дня аки мЭртвый, я взял ноут и решил а не покодить ли мне код? Для этого я, чтобы не огорчалась душа надеждами, сишарпить решил на Mono под Ubuntu 16.04 (тут сейчас много у кого из кодеров выпадет попкорн из рук и разольется кока-кола, но Вы главное читайте дальше))...

/*ЛО (Лирическое Oтступление) Стоит отметить, что до сих пор я не увидел ни одной книги по программированию, которая была бы написана для обычных людей. Все эти трактаты написаны для того, чтобы из толпы выдергивать всяких Нео и делать их служителями культа. Все книжки для чайников призваны отбить любое желание мотивированного человека что-то программировать.*/

Гуглируя какой-нибудь курс онлайн, который бы немного отвлекал от боли в спине, я нашел две стоящие вещи. Первая — это Solo для Android (есть и простой онлайн, как оказалось). Настоящий протестантский труд в "темрявi" православия. Второй — ресурс mycsharp.ru, который сделал какое-то невероятное чудо...

Итак… На Mono начал работать первый код, и… Я ЧЕТКО ПОНИМАЛ ЧТО Я ДЕЛАЮ. Строчка за строчкой. Так я провел около недели, по 16 часов с ноутбуком в обнимку, прерываясь на сон и спагетти с мясным соусом.

Позже, буржуйские лекарства сделали свое дело, и уже через неделю я с терпимыми болями сел за свою башню. "Внезапно" оказалось, что код из Mono запускается на кошерных компах только через отречение от веры. ) Поставил VS2017, переписал туда свои начинания, и они… РАБОТАЛИ!

Раз пошла такая пьянка… Я решил, что грешным делом надо написать транслятор тиков из ниндзи в ТСЛаб. Мол, проверим навыки в хардкодинге. Нашел чей-то корявый код, переписал его, И БЛЪВУАЛЯ! Реал тайм СМЕ в ТСЛаб без коннекторов!

Душа в этот момент выла и кричала, мозг от одного вида кода уже дымил, и я с целью отдыха последних двух бедолах на пару дней погрузился в кубики. Накропал две стратежки, которые торгуются руками, и… Вроде как все начало работать. Я даже был думал, что кодить в следующий раз сяду неизвестнокогда. Ан-нет, и тут мне судьба указала верный путь! ТСЛаб вдруг сломался. В один момент обработчик отказался работать из формульного кубика. Напрочь. Бубны, форумы и пост/молитва не помогли, а обложить тестами и логами там все хозяйство невозможно (не предусмотрено религией). Только если с бубнами повезет.

Денек я погоревал, грусть была сильной, и саданул я граппы 0,5. И проснулся с новой мыслью… А не послать ли мне наЪ кубики? (Хотя уважением очередным к создателям сабжа я проникся) Засучив рукава, закодил ОСОЗНАННО отдельную парсилку тиков в нормальный DateTime. Потом, снова пихал историю в ТСЛаб, и когда эта самая история начала глючить, я понял, что на код я потрачу МЕНЬШЕ времени, с учетом чтения всяких RTFM, чем на кубики. Закодил саму стратежку. Потом тщательно закоментил код, чтобы это чудо осталось в истории (я тогда еще не верил своим глазам). СлЕдом решил — «сгорiв сарай, гори й хата» — портирую-ка я ручную логику в «алгоритмпростенький» и напишу-ка я блок управления ордерами… Три дня и три ночи (по факту, не аллегория) я просидел за компом в обнимку с кодом. И...
#endregion

#region FINAL
КОД РАБОТАЕТ. В режиме реального времени. В Пятницу на тестовом счету отпахал сам, я не прикасался. Сделал все именно так, как сделал бы я, сидя перед башней. Описать чувства и ощущения невозможно. Чистейший кристальный эндорфин, замешанный на тестостероне. ) Long lasting effect.

К чему я… Не сдавайтесь. Результат настоящих стремлений — это то, из чего должна складываться настоящая жизнь.
#endregion
★21
40 комментариев
Уважаю. Моя мечта, на которую еще нет времени. Строю домики пока из кубиков, спасибо ребятам из TSLab!
avatar
молодец, чо!
avatar
И кто-то ещё будет меня пытаться убедить писать робота дабы автоматизировать моё жмакание кнопок пальчиками?

Ага! Щас! 
Вестников,  сливать бабло самому = это такой адреналин
avatar
хорошо передано состояние творческого запоя...
увы я не програмер…
avatar
так сдаваться или не сдаваться?
avatar
Круто!
Феноменально! Иногда мне хочется оказаться, как Биатрикс Кидо, из «Убить Билла», в распоряжении хорошего учителя-мучителя, чтобы не я, а он меня заставлял работать. Сколько не брался за программирование, всегда сдавался. Хотя и были успехи, ни кем никем не оцененные, впрочем. 
Верю, что мозг гибче, чем я ожидаю, но конкретное непонимание уровня звезд программинга и зависть к ним мешают развивать сии навыки. Вы молодец!
avatar
Reshpekt
avatar
А почему:
Первая — это Solo для Android (есть и простой онлайн, как оказалось).

Насколько я понял, Соло — это ряд обучающих курсов по разным языкам
Там вроде нет Андройда как такового
Тимофей Мартынов, он, наверное, приложения из маркета имел в виду.
play.google.com/store/apps/developer?id=SoloLearn
avatar
Mister KoK, ааа
типа приложение для андройда, которое учит программированию
понял
Тимофей Мартынов, Все верно. Просто первое знакомство с этими курсами произошло через их приложение для гуглофонов. Очень и невероятно удобно + весьма понятно все объясняется.
avatar
Написано прикольно, по содержанию близко), тоже несколько попыток предпринимал, тоже так же радуют даже небольшие результаты, смотришь на результаты как на магию)
avatar
Счастливчик. Желаю успеха. Мне вечно не хватает времени и терпения.
Спасибо за опыт) Сейчас испытываю примерно то же самое. То что нужно бывает найти трудно, проще и выгодней начать учить язык и писать самостоятельно.
avatar
OsenЬ, Желание программировать всегда было, независимо от трейдингу. Как некая планка развития. Трейдинг просто ближайшая актуальная сфера применения, в этой сфере я много чего знаю как ТЕ.
avatar
Dimma, Ну… Это вроде не совсем компьютер. )
avatar
Dimma, Блин, случайно поставил минус. Это был плюс. ) Поставьте кто-то плюс, чтобы красным не висело.
avatar
Электромонтёр, Серьезно? ) Во-первых, между«поменять масло» и «написать робота» лежит огромная семантическая пропасть, невосполнимая никакой аллегорией. Но к слову, приехать на сервис Феррари и сказать, что ты поменял масло в коробке — это покруче робота будет. Уж поверьте. ) Во-вторых, у нас скорее всего абсолютно разное понимание самих роботов. В моем понимании это никак не сравнимо с «поменять масло». Это скорее «собрать машину с нуля».
avatar
Электромонтёр, На 5-20 контрактах на СМЕ вполне себе тянут другие алгоритмы (есть несколько, сделанных другими программистами под нас). Но суть публикации была совсем в другом — я на своем примере хочу показать, что не нужно забрасывать попытки освоить кодинг.
avatar
Электромонтёр, Возможно. Я помню этих кнопочных гигантов в НИИ у мамы, но первое мое знакомство все таки произошло с компом из монитора, БУ и клавиатуры. )
avatar
Спасибо за интересный пост.
avatar
avror, Благодарю. Рад создать хорошее настроение. )
avatar
 В Пятницу на тестовом счету отпахал сам, я не прикасался. Сделал все именно так, как сделал бы я, сидя перед башней. Описать чувства и ощущения невозможно. Чистейший кристальный эндорфин, замешанный на тестостероне. )

У меня были похожие чувства, после написания моего первого робота.) 
 Не только кайф от того, что достиг цели, но и
  то чувство колоссального качественного подъема, когда ты вырастаешь из ранга  одноклеточного  (тот кто на жопе сидит и тыкает кнопки по стратегии)  в ранг творца.
avatar
а можно подробнее про коннектор? Вы написали коннектор TSlab к платформе Ninja Trader? А datafeed? Любой через платформу NT? А  на прямую с того же IQfeed в TSlab нельзя получать? А исполнение ордеров? у любого брокера через NT? Может я чего-то не понимаю, получается все платные коннекторы которые предлагает TSlab лажа? Можно самому написать коннектор к Quick или Interactive  brockers и не платить абонентскую плату?
avatar
ConUS, Коннектор. Но в реальности это Strategy на NT, которая пишет тики в текстовый файл в съедобном для ТСЛаба формате. А потом этот файл ставится в Источник, и ставится в Свойствах галочка «Обновлять источники в режиме реального времени». Получается корявый, но реалтайм. Можно согнуться и написать скрипт, который будет из тикового файла делать минутки, тогда реал-тайм не будет корявым вообще.

В принципе, такую штуку можно написать под любой Data Feed. Но тут нужно понимать, что это реал-тайм, который не умеет по умолчанию исполнять ордера. Нужно опять таки писать прокладку, которая через кубик будет писать сделки в файл, а потом из этого файла подхватывать и исполнять сделки в OECTrader или где угодно.

По поводу лажи — ну… Нет. Если Вы покупаете коннектор, то можете работать напрямую с ТСЛабом как торговой платформой. В случае с коннектором через файл — нет. Вы можете генерировать, как я уже описал выше, сигналы ордеров в файл. Ордер менеджмент, короче, нужно свой делать. Это не сложно, если стоит задача поставить скрипт из ТСЛаб в бой.

Глобально и технически — можно. Но тут дело такое — кто умеет писать код, тот обходит ТСЛаб. Кто умеет сгибать ТСЛаб, но не умеет кодить, тому проще купить коннектор.
avatar
ConUS, В общем, скорее всего, напишу об этом отдельный пост в ближайшее время.
avatar
Мужык, ты ошибся блогом. Это надо было в Хабрахабр отправлять…
Чёрный Трейдер, Я думаю там такое не опубликуют. Я уже думал, что смотрелось бы там хорошо. Но «ячеточкую». )
avatar
Чёрный Трейдер, UPD: зарегался на Хабре, отправил… Посмотрим )
avatar
facevalue, теперь мне понятно. Спасибо
avatar

теги блога facevalue

....все тэги



UPDONW
Новый дизайн