Блог им. 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
Уважаю. Моя мечта, на которую еще нет времени. Строю домики пока из кубиков, спасибо ребятам из TSLab!
avatar

Антон Иванов

молодец, чо!
avatar

nbvehrfr

И кто-то ещё будет меня пытаться убедить писать робота дабы автоматизировать моё жмакание кнопок пальчиками?

Ага! Щас! 
Вестников,  сливать бабло самому = это такой адреналин
avatar

Чужой

хорошо передано состояние творческого запоя...
увы я не програмер…
avatar

100 ik

так сдаваться или не сдаваться?
avatar

Чужой

Круто!
Феноменально! Иногда мне хочется оказаться, как Биатрикс Кидо, из «Убить Билла», в распоряжении хорошего учителя-мучителя, чтобы не я, а он меня заставлял работать. Сколько не брался за программирование, всегда сдавался. Хотя и были успехи, ни кем никем не оцененные, впрочем. 
Верю, что мозг гибче, чем я ожидаю, но конкретное непонимание уровня звезд программинга и зависть к ним мешают развивать сии навыки. Вы молодец!
avatar

Валет

Reshpekt
avatar

Фыва

А почему:
Первая — это Solo для Android (есть и простой онлайн, как оказалось).

Насколько я понял, Соло — это ряд обучающих курсов по разным языкам
Там вроде нет Андройда как такового
Тимофей Мартынов, он, наверное, приложения из маркета имел в виду.
play.google.com/store/apps/developer?id=SoloLearn
avatar

Mister KoK

Mister KoK, ааа
типа приложение для андройда, которое учит программированию
понял
Тимофей Мартынов, Все верно. Просто первое знакомство с этими курсами произошло через их приложение для гуглофонов. Очень и невероятно удобно + весьма понятно все объясняется.
avatar

facevalue

Написано прикольно, по содержанию близко), тоже несколько попыток предпринимал, тоже так же радуют даже небольшие результаты, смотришь на результаты как на магию)
avatar

Replikant_mih

Счастливчик. Желаю успеха. Мне вечно не хватает времени и терпения.
Спасибо за опыт) Сейчас испытываю примерно то же самое. То что нужно бывает найти трудно, проще и выгодней начать учить язык и писать самостоятельно.
avatar

Friendly Deep Space

OsenЬ, Желание программировать всегда было, независимо от трейдингу. Как некая планка развития. Трейдинг просто ближайшая актуальная сфера применения, в этой сфере я много чего знаю как ТЕ.
avatar

facevalue

Dimma, Ну… Это вроде не совсем компьютер. )
avatar

facevalue

Dimma, Блин, случайно поставил минус. Это был плюс. ) Поставьте кто-то плюс, чтобы красным не висело.
avatar

facevalue

Электромонтёр, Серьезно? ) Во-первых, между«поменять масло» и «написать робота» лежит огромная семантическая пропасть, невосполнимая никакой аллегорией. Но к слову, приехать на сервис Феррари и сказать, что ты поменял масло в коробке — это покруче робота будет. Уж поверьте. ) Во-вторых, у нас скорее всего абсолютно разное понимание самих роботов. В моем понимании это никак не сравнимо с «поменять масло». Это скорее «собрать машину с нуля».
avatar

facevalue

Электромонтёр, На 5-20 контрактах на СМЕ вполне себе тянут другие алгоритмы (есть несколько, сделанных другими программистами под нас). Но суть публикации была совсем в другом — я на своем примере хочу показать, что не нужно забрасывать попытки освоить кодинг.
avatar

facevalue

Электромонтёр, Возможно. Я помню этих кнопочных гигантов в НИИ у мамы, но первое мое знакомство все таки произошло с компом из монитора, БУ и клавиатуры. )
avatar

facevalue

Спасибо за интересный пост.
avatar

avror

avror, Благодарю. Рад создать хорошее настроение. )
avatar

facevalue

 В Пятницу на тестовом счету отпахал сам, я не прикасался. Сделал все именно так, как сделал бы я, сидя перед башней. Описать чувства и ощущения невозможно. Чистейший кристальный эндорфин, замешанный на тестостероне. )

У меня были похожие чувства, после написания моего первого робота.) 
 Не только кайф от того, что достиг цели, но и
  то чувство колоссального качественного подъема, когда ты вырастаешь из ранга  одноклеточного  (тот кто на жопе сидит и тыкает кнопки по стратегии)  в ранг творца.
avatar

SMT

а можно подробнее про коннектор? Вы написали коннектор TSlab к платформе Ninja Trader? А datafeed? Любой через платформу NT? А  на прямую с того же IQfeed в TSlab нельзя получать? А исполнение ордеров? у любого брокера через NT? Может я чего-то не понимаю, получается все платные коннекторы которые предлагает TSlab лажа? Можно самому написать коннектор к Quick или Interactive  brockers и не платить абонентскую плату?
avatar

Constantine D

ConUS, Коннектор. Но в реальности это Strategy на NT, которая пишет тики в текстовый файл в съедобном для ТСЛаба формате. А потом этот файл ставится в Источник, и ставится в Свойствах галочка «Обновлять источники в режиме реального времени». Получается корявый, но реалтайм. Можно согнуться и написать скрипт, который будет из тикового файла делать минутки, тогда реал-тайм не будет корявым вообще.

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

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

Глобально и технически — можно. Но тут дело такое — кто умеет писать код, тот обходит ТСЛаб. Кто умеет сгибать ТСЛаб, но не умеет кодить, тому проще купить коннектор.
avatar

facevalue

ConUS, В общем, скорее всего, напишу об этом отдельный пост в ближайшее время.
avatar

facevalue

Мужык, ты ошибся блогом. Это надо было в Хабрахабр отправлять…
Чёрный Трейдер, Я думаю там такое не опубликуют. Я уже думал, что смотрелось бы там хорошо. Но «ячеточкую». )
avatar

facevalue

Чёрный Трейдер, UPD: зарегался на Хабре, отправил… Посмотрим )
avatar

facevalue

facevalue, теперь мне понятно. Спасибо
avatar

Constantine D


....все тэги
2010-2020
UPDONW