Микаелян Саро
Микаелян Саро личный блог
12 февраля 2019, 16:47

Изучение с#, нужна помощь!

Приветствую.

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

Так вот, начал изучать С#. в целом мне математика обычно легко дается и ожидаю, что проблем с кодом не будет серьезных возникать. Но столкнулся с тем, что очень сложно изучать язык самостоятельно когда не понимаешь с чего начать и куда двигаться. Материалов в инете полно, как и обучений. НО это ж отдельная вселенная, и не туда повернув — заплутаешь надолго. 
На какой я стадии? в самом начале пути. Учусь на простых примерах кодить. Обычно я в роли преподавателя и скажу честно, я всегда тараторю, и стараюсь максимально сжато мысли излагать — что часто еще сильнее запутывает. Так вот учусь я по видосам где скорость обучения на уровне улитки. 3 часа = 12 строкам кода. И такое размусоливание убивает желание учиться. Итак, ежики кололись, но лезли на кактус, это про меня.

Собственно к чему пост. хотелось бы советов, от опытных программистов (ибо пробовал гуглить и выдает тонны информации, и моя компетенция не позволяет определить значимость советов). Какие я преследую цели? Научившись кодить, хочется все же реализовать все свои математические фантазии в рынке, всякие интегральные, дифференциальные, матричные и тд схемы. (по правде, уже пробовал на матпрограммах это все просмотреть, и чисто теоретически нифига не работает на рынке это все, но хочется уж наверняка убедиться. (речь об именно моих фантазиях, они не работают, а не в целом математика)) Так же хочется научиться, писать доп софт/коннектор. К примеру софт который транслирует новости в тслаб, грубо говоря. Ну и мобильные приложения тоже. Губу конечно раскатал себе на десятилетия вперед.

Так вот, порекомендуйте пожалуйста литературу или ресурсы. Возможно обучатели на личном опыте имеются или некие полезные видео ресурсы, которые вам помогли. 

 

96 Комментариев
  • vfreeman
    12 февраля 2019, 16:53
    брать совершенно конкретную задачу и пытаться ее решить. лучше способ трудно представить. без конкретных задач изучать можно вечно.
  • SergeyEgorov
    12 февраля 2019, 16:55
    Роберт Мартин «Принципы, паттерны и методики гибкой разработки на языке C#»

    Это книга не про синтаксис и условные конструкции, а о том, как из классов собирать работающие программы и управлять кодом.
      • Тарас Громницкий
        12 февраля 2019, 17:23

        Микаелян Саро, такое вам ещё рано.

        Это архитектурные вещи.

        Для начала следует освоить базис.

        Доступно излагает Герберт Шилдт.

        Правда новых книг по C# давно не выпускал.

        Вполне неплох Эндрю Троелсен https://www.labirint.ru/books/550458/

        По паттернам классикой считается https://www.ozon.ru/context/detail/id/2457392/

        И побольше практики.

        На первых этапах меньше глобальных задач, и больше мелких, быстро реализуемых.

          • Replikant_mih
            12 февраля 2019, 18:11
            Микаелян Саро, Например, придумать интересный для себя проект — для меня это какой-нить супер-бэктестер)). И пилить его, практикуясь на этом. 
          • Тарас Громницкий
            12 февраля 2019, 18:49

            Микаелян Саро, не за что.

            Обращайтесь в случае чего.

          • ANTI_Finsov
            12 февраля 2019, 23:59
            Микаелян Саро, при изучении любого языка программирования требуется чёткий порядок действий. Просто прочтение книги этого не даст.  Советую обратить внимание на ресурс https://coursehunters.net/. Здесь выкладываются курсы по программированию с чётким пошаговым алгоритмом изучения материала. Да и самое главное всё бесплатно.
          • SergeyEgorov
            13 февраля 2019, 18:13
            Микаелян Саро, не надо на будущее. Покупайте и читайте сейчас. А вообще программирование — это навык. Надо немного читать, и много программировать. Есть мои бесплатные видео уроки по C# для трейдеров. Они короткие, по 10-15 минут.

            Чего хотите запрограммировать? Спрашивайте прямо здесь, я вам подскажу куда смотреть и что делать. Я это проходил все. Код для торговых роботов писал и для анализа стратегий писал и много всякого другого кода.
        • Replikant_mih
          12 февраля 2019, 18:08
          Тарас Громницкий, Да, тоже Шилдта хотел порекомендовать — отлично с нуля все объясняет. Ну а то, что это книга позволит «ускорять» если нужно процесс (ну типа пропускать что-то, хотя не рекомендую). И конечно кодить каждую новую тему, чтоб осталось в голове. С какого-то момента можно кодить на трейдерские темы — новые проекты, или единый сложный, т.е. кодить новые темы в рамках трейдерской тематики для большего вовлечения, погружения.
      • Александр Муравьев
        12 февраля 2019, 18:54
        Микаелян Саро, советую взять исходники готового робота написанного на С# (например простейшего на МАшках) и его уже изменять под свой алгоритм.
        В этом случае сможете путем несложных изменений алгоритма заложить в него свою торговую систему, не отвлекаясь на такие сложные вещи, как разработка с нуля подключения к терминалу или работа с БД, настройками, работа с объектами.
        Затем постепенно разберетесь со всеми аспектами автоматизации на С#
  • Тихий омут
    12 февраля 2019, 16:58
    да какой то подозрительный пост от человека, зарегистрированного на СЛ в 2013. Не?
  • Чужой
    12 февраля 2019, 17:12
    Не ожидал, пропогандировал кубики и тут на тебе)
      • Чужой
        12 февраля 2019, 17:44
        Микаелян Саро, какие идеи сейчас на рынке рулят, если не секрет?
      • VladMih
        12 февраля 2019, 19:01
        Микаелян Саро, эй, не накаркайте, кубики должны быть вечны! )

        PS: знакомая история и вопрос изложен точно как я его переживал.
        Наверно у всех одно и то же. Надо искать обучающий курс.
        Кстати, у меня есть ХОРОШИЙ (хоть и ворованный) для ТСЛаб. 
        Никому не даю, но если что… хорошему человеку не жалко.
          • ANTI_Finsov
            13 февраля 2019, 00:04
            Микаелян Саро, вы в hft собрались. Если нет обратите внимание на на это 
            https://smart-lab.ru/blog/496838.php. На много проще тслаб вплане внутредневного трейдинга. Проект в стадии развития. Но уже работает.
            • ch5oh
              13 февраля 2019, 00:22

              ANTI_Finsov, Вы предлагаете полагаться на ТВ как на поставщик рыночных данных и совершать по ним сделки? Забавно. А если у Вас на машине инет заглючил? Браузер затупил? Если в бесплатной версии ТВ Вам взяли и прислали радикально неверные рыночные данные? Или, может быть, как раз аккаунт в ТВ должен быть платный???

               

              Или нет. Вы предлагаете другое! Я понял. Человек рисует алгоритм в виде блок схемы в ТСЛаб, оптимизирует и отлаживает его, используя исторические данные. Платит при этом 0 рублей. Затем идет в ТВ, берет платный аккаунт, долго возится, чтобы переписать уже оттестированного робота на скриптовом диалекте ТВ. Добивается идентичного исполнения. Ура! "Ура!" — говорят разработчики ТВ — "И вправду интересное эквити получается. Спасибо, дорогой клиент. Пиши еще!"

               

              ПС Все совпадения имен и названий случайны. История представляет собой фантастический рассказ про жизнь трейдеров на Марсе.

              • ANTI_Finsov
                13 февраля 2019, 09:59
                ch5oh, я наоборот зато, чтобы лудоманить без затрат. 
                • ch5oh
                  13 февраля 2019, 10:25

                  ANTI_Finsov, лудоманить вообще не надо.

                  Торговля — это бизнес. У него есть вложения, есть операционные затраты, есть результат, соответствующий этим затратам.

                   

                  Или более прямая аналогия с инструментами. Можно закручивать саморезы в стенку голыми руками. Это будет бесплатно. Но долго и утомительно. Почему-то если под руками есть шуруповерт все происходит значительно бодрее и руки потом не отваливаются.

                   

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

                   

  • 2153sved
    12 февраля 2019, 17:27
    я думал Вы всё познали…
  • Cristopher Robin
    12 февраля 2019, 17:41
    Подход верный, ищите напарника и самое главное, решайте прикладные задачи. Нет смысла тратить время на учебные примеры. Вкернее, смысл есть, но не в вашем случае.
  • SergP
    12 февраля 2019, 17:47
    А раньше кодировать приходилось на чем-нибудь?
      • kiki
        12 февраля 2019, 18:10
        Микаелян Саро, изучайте лучше сразу нейронные сети от Гугла: https://www.tensorflow.org/
        Серьезно. Мне кажется, там можно получить гораздо более интересный результат
      • SergP
        12 февраля 2019, 19:18
        Микаелян Саро, «Шилдт C# 4.0. Полное руководство» 11-го года издания (более позднего, кажется, не было) должна стать вашей настольной книгой. Есть в электронном виде.
  • shprots
    12 февраля 2019, 18:30
    Сложно Вам будет. И долго.
    Если работали с TSLAB — у них был курс по API (по сишарп).
    А если с нуля — будете писать коннектор, графичекую оболочку, изучать ООП, придумывать классы, всё это криво писать, а потом переписывать, тестить и тд.
    Можете попробовать StockSharp. У них многое уже написано.
    Ну и Шилдт для начала почитайте.
    Могу порекомендовать курс C# за час на youtube :) для затравки
    www.youtube.com/watch?v=IF7YRBokJAw
      • shprots
        12 февраля 2019, 18:41
        Микаелян Саро, поподробнее опишите цели и задачи. Пока мне кажется, что для ваших целей больше подойдёт питон.
        ЗЫ: перечитал. Если хотите связку с тслаб, HFT — то сишарп. Если матмодели, новости, нейронные сети то питон.
          • sortarray sortarray
            12 февраля 2019, 19:42
            Микаелян Саро, тогда лучше начните с питона, он как учебный язык лучше, чем решетка, и проще для новичка.
            Его, как раз сейчас и практикуют чаще всего в обучении.
            Хотя, вообще учить надо не язык, а программирование.
            И Вы заблуждаетесь, что математический бекграунд сможет Вам сильно помочь в программмировании. Часто наоборот бывает, математики совершенно не способны к программированию, и начинают прятаться в «математические» языки типа Хаскеля. Они хотят, чтобы у них все было «отображением»:)
            В итоге они в своем дерьме так и ковыряются, факториалы там разными способами вычисляют, а ничего дельного родить не могут:)
            • ch5oh
              12 февраля 2019, 19:56
              sortarray sortarray, =) питон — сакс. То, что для него сделали много библиотек сути не меняет. Для R библиотек еще больше. Let's Holy War begin!
              • sortarray sortarray
                12 февраля 2019, 19:59
                ch5oh, мне он тоже не очень нравится, но обучение лучше с него, во всяком случае, чем с C#
                • sortarray sortarray
                  12 февраля 2019, 20:04
                  sortarray sortarray, Вообще, кстати,  C# заточен под коллективную крупную разработку. То что его в частном трейдинге используют широко, для написания мелкого софта — это какое то недоразумение. Для подобных задач традиционно всегда использовались скриптовые языки
                  • ch5oh
                    12 февраля 2019, 22:32

                    sortarray sortarray, скриптовые языки не обладают производительностью от слова совсем. Например, простенькая симуляция траекторий на R работает примерно на 3-4 порядка медленней эквивалентной реализации на шарпе.


                    Что касается учиться. В старые времена хорошо было учиться на паскале или на чистом си. В современных условиях шарп также хорош для этой цели. Только не надо лезть в новомодные конструкции типа асинков и линка. Достаточно ограничиться относительно чистым синтаксисом. C# версии 3.5 имхо имеет оптимальное соотношение по (удобству использования и богатству возможностей) делить на (количество синтаксических граблей об которые можно легко убиться).

                     

                    Ну и опять же процедурное программирование воспринимается (должно восприниматься) легче ООП.

                    • sortarray sortarray
                      12 февраля 2019, 22:37
                      ch5oh, производительность там не особо то и нужна.
                      К тому же, это утверждение сейчас уже не особо то и актально. Си конечно скриптове языки пока не сделали, но уже на подходе.
                      Языки типа решетки и жабы показывают скорость только на синтетике, в реальности же как правило, тормознейшее говно. Там где нужна скорость, действительно нужно брать низкоуровневые. Но для трейдерских роботов это все глупость, там издержки сети любую скорость сожрут. на таких вещах асинхронщина нужна а не скорость.
                      Вообще, все жалобы на тормоза в сетевых приложениях, в 99% обуславливаются блокирующим кодом и соответствующим простоем, на производительность там напрасно грешат

                      А R пример вообще ниачем, кстати, насколько я помню это макронадстройка над Scheme, это не язык, строго говоря, не язык с собственной полноценной реализацией
                      • ch5oh
                        12 февраля 2019, 23:49

                        sortarray sortarray, в крайне специализированных синтетических случаях типа майнинга где компиллятор СИ может использовать специализированные процессорные инструкции — в этих и только в этих задачах СИ обыгрывает сишарп. Почему майкрософт занимается ерундой, а не пилит оптимизированный JIT с поддержкой новых процессорных инструкций — для меня загадка большая досада.

                         

                        А при разработке математических алгоритмов общего вида (читай, торговые индикаторы) компиллятор на СИ получает преимущество перед JIT в среднем не более чем на 10%. Ассемблер обыграет шарп тоже только по причине доступа к современным инструкциям ЦПУ.

                         

                        Сетевые задержки, естественно, выносим за скобки. Это отдельная песня.

                         

                        С уважением.

                        • Андрей К
                          13 февраля 2019, 00:10
                          ch5oh, 
                          А при разработке математических алгоритмов общего вида (читай, торговые индикаторы) компиллятор на СИ получает преимущество перед JIT в среднем не более чем на 10%. Ассемблер обыграет шарп тоже только по причине доступа к современным инструкциям ЦПУ.
                          добавлю чуть чуть. Если совсем опуститься низко, то острый момент есть — это умение программиста работать с памятью. В принципе компиляторы многое подчищают за программистом. Но можно незнаючи написать на ассм на спец инструкциях, но жутко проиграть во времени при работе с памятью. 
                        • sortarray sortarray
                          13 февраля 2019, 08:50
                          ch5oh, 
                           в этих и только в этих задачах 

                          Уже даже само наличие GC и JIT этому противоречит. Это все имеет свои издержки.
                          • ch5oh
                            13 февраля 2019, 09:55

                            sortarray sortarray, JIT работает один раз как правило для одного фрагмента кода. GC на вычислительных алгоритмах тоже особенно не мешает. Суммарное воздействие этих двух факторов (на вычислительных алгоритмах общего вида) порядка 10% или меньше.

                            • sortarray sortarray
                              13 февраля 2019, 09:57
                              ch5oh, это зависит от кода, нет там фиксированных цифр. Кто знает тонкости компиляции и исполнения, у того всегда издержки будут на порядки меньше
                              • ch5oh
                                13 февраля 2019, 10:18

                                sortarray sortarray, можно и на асме писать и добиваться, чтобы вся прога помещалась в кеш проца L1.

                                 

                                Но в реальности надо соотносить затраты на разработку с ожидаемым  выхлопом и со своим уровнем скила.

                                 

                                Саро сейчас эти тонкости просто не надо.

                                • Андрей К
                                  13 февраля 2019, 11:25
                                  ch5oh, 
                                  можно и на асме писать и добиваться, чтобы вся прога помещалась в кеш проца L1.
                                  я на плюсах абсолютно всегда в боевой момент сижу в L1. =))) Это мне стоило достаточно много времени разработок и изучений =)
                                  • ch5oh
                                    13 февраля 2019, 11:46

                                    Андрей К, «какой интересный человек» © ДМБ.

                                  • Константин
                                    13 февраля 2019, 14:13
                                    Андрей К, если плюсы == С++ то коллега )))
                            • sortarray sortarray
                              13 февраля 2019, 10:02
                              ch5oh, 
                              JIT работает один раз

                              А если бы JIT работал один раз, он не был бы JIT-ом, то бишь Just-In-Time
                              Один раз работают обычные компиляторы
                              • ch5oh
                                13 февраля 2019, 10:32

                                sortarray sortarray, блин. Разговор потерял конструктив. Вы вообще в шарпе разбираетесь?

                                 

                                Когда JIT обнаруживает вызов функции, он компиллирует байт-код этой функции в нативные инструкции. И запоминает. При втором обращении к той же функции повторная компилляция не делается. Используется уже готовый нативный код.

                                 

                                Поэтому при выполнениии тестов сначала делают несколько «прогревающих» вызовов и только потом меряют скорость.

                                 

                                Засим откланиваюсь.

                                • sortarray sortarray
                                  13 февраля 2019, 10:34
                                  ch5oh, Но это не значит, что все сводится к одноразовой компиляции. Вы смысл термина JIT уясните
          • shprots
            12 февраля 2019, 22:56
            Микаелян Саро, smart-lab.ru/mobile/topic/515344/
            Про питон, может загоритесь :)
        • Андрей К
          12 февраля 2019, 23:57
          shprots, на нашем рынке для хфт сишарп в текущей ситуации уже не подойдет
          • shprots
            13 февраля 2019, 09:13
            Андрей К, Почему? Сейчас какие-то другие решения?
            • Андрей К
              13 февраля 2019, 11:21
              shprots, да, рыночек у нас омертвел за последний год резко, сейчас на hft еще можно попробовать потягаться на плюсах и то тяжело. А сишарписты уже уходят пачками.
              • ch5oh
                13 февраля 2019, 11:43
                Андрей К, ярких трендов нет — зарабатывают в основном опционщики. Но не потому, что самые быстрые. =)

                А ХФТ — он же не только от скорости исполнения проги зависит. Тут и колокация нужна и продвинутые протоколы получения данных без задержек и т.д. и т.п.
                • Андрей К
                  13 февраля 2019, 12:09
                  ch5oh, 
                  А ХФТ — он же не только от скорости исполнения проги зависит. Тут и колокация нужна и продвинутые протоколы получения данных без задержек и т.д. и т.п.

                  Сейчас много от скорости зависит. Песочница резко сузилась. Стаканы обмелели. Раньше, например, на одной и той же страте первым четверым хватало ликвидности в стакане, а теперь только первому и тд.

                  Вот уралпро зря именно сейчас публикуется подробно. Он показывает где еще деньги лежат и свои скорости. Если бы было не лень, я бы например пришел и забрал. Но пока оно того не стоит. А ведь найдутся те, кого уже совсем прижало, придут и заберут. Колокация то резко сокращается.

  • ch5oh
    12 февраля 2019, 19:38

    Неожиданно...


    Попробую вспомнить по какой книге сам учил c#. Она состояла из примеров программ, описывающих различные конструкции языка. Клал перед собой книгу и набирал приведенный в ней пример кода. Добивался, чтобы работало. Затем вносил те изменения, которые мне приходили в голову. Если после моих изменений работало так, как задумал — ставил галочку "понял тему хотя бы поверхностно". Безрадостная для тебя новость: на проработку той книги у меня ушло примерно 6 месяцев.

     

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

     

    Ну, или можем потрындеть в личку и что-то вместе замутить… ;-)

  • Евгений Макеев
    12 февраля 2019, 20:22
    Автор, Вы знаете английский? У меня есть отличная книга специально под Ваш запрос
      • Евгений Макеев
        13 февраля 2019, 10:01
        Микаелян Саро, там не сложный текст. Книга уникальная, но не очень известная. Написана практиками непосредственно для обучения (первоначально это были курсы болгарской конторы степик) Лучшая из того что мне попадалось по программированию. Это не Шилтд с его тоннами воды и нудными примерами, по сути полное пособие по самообразованию. Там есть все, чтобы выучить правильные азы программирования и шарп. Строго структурирована, главное есть упражнения на закрепление материала. Через шарп идут и сами основы программирования. Скиньте мне вашу почту в личку я Вам ее отправлю. Та же книга есть на болгарском, не знаю может вам так понятней будет.
        • ch5oh
          13 февраля 2019, 10:28
          Макеев Евгений, можете ISBN сюда кинуть? Или она не распространялась в книжных магазинах? =) просто интересно. Нечасто такой восторженный отзыв о книге можно услышать.
          • Евгений Макеев
            13 февраля 2019, 11:19
            ch5oh, да конечно, вот книжка
            Svethen Nakov, 2013
            Fundamentals of computer programming with c#
            ISBN 798-954-400-773-7
            Бесплатная кстати лицензия
            • ch5oh
              13 февраля 2019, 11:41
              Макеев Евгений, ну, наверное, опытный программист или выпускник профильного факультета ВУЗа действительно может счесть эту книгу «легким развлекательным чтением». =)
              • Евгений Макеев
                13 февраля 2019, 13:28
                ch5oh, дак в том то и дело, что это не развлекательное и не легкое чтение, а четко продуманная программа. Там трудиться нужно, зато и результат будет. Удобно, что все что нужно для начала есть в одном месте. А так в огромном количестве разноплановой литературы, можно погрязнуть и так ничего и не добиться. Тут все по полочкам разложено — бери и делай. Ну и самые основы на мой взгляд, очень грамотно обьясняются.
  • wrmngr
    12 февраля 2019, 20:37
    Зачем насиловать себя шарпом? Если задача делать рисерч рынка, а не написание софта, то берете питон плюс пандас и нампи, далее питоновские библиотеки по вкусу и моде. Машин Ленинг, нейросети и прочее
  • Логарифм Интегралыч
    12 февраля 2019, 21:21
    на сайте фриланса я заказал за 500р

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

    на доселе незнакомом мне языке
    и думаю далее смогу программировать сам

    причём чистовик программы только у меня
    доделывал сам без помощника
  • Дмитрий Власов
    12 февраля 2019, 22:36
    Саро, я вот тут: https://smart-lab.ru/blog/522032.php разместил видео по программированию стратегий (сравнение кубиков и API). Там буквально всё разжевано. И т.к. ты кубики наверно, лучше всех знаешь — воспринять информацию по C# будет очень легко.
    • ch5oh
      12 февраля 2019, 23:39

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

       

      С уважением.

      • Дмитрий Власов
        13 февраля 2019, 00:14
        ch5oh, Согласен, что это рабочий подход. Но зачем тогда кубики вообще нужны? Если предварительно прикинуть (как говориться на раз-два-три) — то кубики незаменимая вещь. А вот для рабочей стратегии — всё таки лучше стратегия написанная. Там и управление капиталом прикручивается и т.п. Но с Вами согласен в том, что  пусть каждый делает так, как ему удобнее.
        • ch5oh
          13 февраля 2019, 00:29

          Дмитрий Власов, например, чтобы не морочить себе голову с переписыванием стратегии с кубиков на АПИ. Зачем? Если страта годная — ее надо брать и торговать. При этом при «переписывании» возникнут дополнительные риски. Там ошибся, тут в индексах запутался, здесь вместо больше поставил «больше или равно». Потом бац! в скрипте сделки одни, переписанные на АПИ — другие.

           

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

           

          А потом возникнет проблема рефакторинга. Пришла Вам в голову еще одна мысль. Вы ее в скрипте за 5 секунд накидали, связи между кубиками перекинули, тут же оттестировали и сравнили. Удачное изменение? тогда Вам надо лезть в исходники и тоже самое изменение делать в исходниках страты. А там цепочки вызовов вовсе не так весело отслеживать, как когда они в блок-схеме нарисованы.

          • Дмитрий Власов
            13 февраля 2019, 01:08
            ch5oh, Честно говоря, я на кубиках вообще никогда не делаю. Мне намного проще сразу кодировать. Там всё очень быстро происходит и ошибки практически исключены. То, что удобнее и понятнее в коде — можно сделать такой эксперимент. Если мне дать сложную стратегию, сделанную с помощью кубиков — я больше чем на день зависну, чтобы понять — в чём смысл стратегии. Если же мне дадут код на C# — я всё пойму буквально за 10 минут. При этом практически сразу же смогу протестировать, что-то подкрутить и т.п.
            • Дмитрий Власов
              13 февраля 2019, 01:10
              Дмитрий Власов, При этом я нисколько не программист. Знаю только ту часть C#, которая нужна для работы со стратегиями.

            • ch5oh
              13 февраля 2019, 07:49

              Дмитрий Власов, возможно, это Ваша личная особенность какая-то. Хорошо, что никто не будет заниматься такой проверкой.

               

              Но смысла переписывать готовый алгоритм в виде блок-схемы на АПИ я так и не увидел. Либо в силу исторических причин Вы пишете сразу всю страту на шарпе, либо делаете блок-схему и с ней живете.

               

              ПС И я, конечно, в курсе, что ТСЛаб и так генерит код стратегии на сишарп и его легко выдернуть при желании, если уже есть готовая блок-схема.

              • Дмитрий Власов
                13 февраля 2019, 11:24
                ch5oh, ну да, код программа генерит, но человеку такой код трудно читать. Уж очень этот сгенерированный код специфически-машинный. А торговые алгоритмы я используя «на запчасти». Т.е. разделяю их на торговые техники, создаю коллекцию этих  техник. И потом новые системы из них создаю. Поэтому, наверно, для моих целей удобнее всё-таки код. Кранить коллекцию из кубиков — проблематично и легче запутаться. Но ещё раз скажу,  что кому как удобно, тот таки и делает. Спорить тут смысла нет.
                • ch5oh
                  13 февраля 2019, 11:45

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

                   

                  Ладно, будем считать что мы обменялись мнениями и услышали друг друга. =)

  • ch5oh
    12 февраля 2019, 23:36

    Саро, специально для тебя откопал.

    Джесс Либерти "Программирование на C#"

    Скачать можно отсюда. Кстати, там же полно других книг по шарпу. Читай аннотацию, качай, смотри. Если «не заходит» — бери следующую.

  • Андрей
    13 февраля 2019, 01:12
    Микаелян Саро, я бы вам порекомендовал комплексный подход, читать выше предложенные книги, смотреть видео курсы, например от ITVDN(есть разделения материала по уровням, материал очень качественный), читать метанит, ну и конечно же ковырять программы для алготорговли, например OsEngine или тот же TSLab. 
  • BRAZZERS
    13 февраля 2019, 09:44
    Эндрю Стиллман Изучаем C#  книга+ параллельно ковыряться в коде изучая теорию
  • BRAZZERS
    13 февраля 2019, 09:45
     на ютубе вбей с# для маленьких и тупых
  • Vitaliy83
    13 февраля 2019, 11:32
    Я учился вот здесь https://stocksharp.ru/, у них есть (а может был, не знаю, давно туда не заходил) базовый курс по самому языку и прикладной по роботам, плюс все необходимые связки, в свое время довольно успешно (успешно в плане работы алгоритмов, работали как часы) занимался парной торговлей роботами, которые написал сам на C#, мое мнение, что лучше сначала понять основу языка, а потом уже к роботам переходить. Обучение стоило денег, но я был готов платить за обучение. А дальше ставишь задачу и решаешь, в инетнете полно ресурсов по запросу решения конкретных задач.
  • ves2010
    13 февраля 2019, 12:45
    если проект маленький, то проще взять с#  и все написать на обычном си через глобальные переменные… а сам си это 28 операторов
    • SergeyEgorov
      13 февраля 2019, 18:20
      ves2010, да любой язык по большому счету это переменные, методы, условные операторы и циклы и это можно понять за три урока, если знать какие уроки надо смотреть. А дальше начинаются пляски с компоновкой и архитектурой большой программы из этих методов и вот это как раз настоящие проблемы, которые и приходится решать программистам. А синтаксис очень многих языков похож.
  • Андрей Возяков
    13 февраля 2019, 14:48
    Надо действовать от простого к сложному.
    1. Установить VisualStudio
    2. Скачать какой нибудь пример скрипта отсюда http://forum.tslab.ru/ubb/ubbthreads.php?ubb=postlist&Board=25&page=1
    3. Подключить к тслабу, поковырять и понять код.
    Если надо писать что то сложнее, например подключаться к сторонним программам, парсить новостные данные, то надо уже поглубже покопать в C#.
    Рекомендую: https://metanit.com/sharp/tutorial/
  • SergeyEgorov
    13 февраля 2019, 18:25
    Реклама
    Консультирую по прикладным вопросам программирования на C#. Внятно, но дорого.

    На простые вопросы отвечу бесплатно.
    • robomakerr
      13 февраля 2019, 21:00
      SergeyEgorov, посоветуйте книжку по среде (Visual Studio или как там её). Язык и так понятен, а вот в среде разработки сам чорт мозги вывихнет. А то большинство книжек что я видел, почему-то начинаются с приложения командной строки, это 19-й век.
  • Фима
    13 февраля 2019, 22:27
    C# Эндрю Троелсен
  • Stasik
    14 февраля 2019, 10:48
    В языке есть направления, его полностью можно всю жизнь изучать. А так первый комент лучший.
  • shprots
    14 февраля 2019, 11:19
    Вот ещё, кстати, гляньте. Для начала ничего не будет понятно — но это разрабатываемая платформа ML.net для машинного обучения на C#. Как раз всякие новости, мат модели и прочее. Но я пока сам не разбирался :)
    blogs.msdn.microsoft.com/dotnet/2019/02/07/announcing-ml-net-0-10-machine-learning-for-net/?utm_source=vs_developer_news&utm_medium=referral
  • robot_bsk
    18 февраля 2019, 22:05
    Запрогайте кросс двух машек, на c# на wld. Начнете разбираться. Когда стоит задача, то все намного проще.
  • Маша
    18 сентября 2019, 12:52
    Можно я тогда попробую подкинуть идею для робота? ) И разбавить Ваши скучные будни))) Выход из Каналов Кельтнера 3-ий диапазон. В нижней части канала входим в лонг, в верхней в шорт. Тейк профитом поиграть — 50-60% от канала, либо тейк профит при достижении быстрой или медленной скользящей.  Стоп 2% от цены входа попробовать. Что думаете??? В идеале тейк профит подтягивать. Сначала до быстрой скользящей, потом до медленной скользящей, потом 100% канала. 
  • Маша
    18 сентября 2019, 16:52
    Очень хочу если честно в личку здесь, на смарт лабе?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн