therollingstones
therollingstones личный блог
02 ноября 2018, 04:40

Начало разработки.

Не волнуйтесь, вы все это запрограммируете и сделаете, я обещаю. В результате мы хотим получить программу, рассмотрим её общие принципы с другими программами, которые мы научимся программировать. Программа читает входные данные с клавиатуры, параллельно она автономно читает информацию из нужных баз данных. Вы можете провести параллель со многими программами, которые читают статистику реального времени и проводят сравнения с базами данных. Программы могут выполнять разные цели, работать с разной информацией, но они будут составлены по похожим принципам, давайте рассмотрим их. Может вы захотите написать программу которая будет оценивать ленту котировок, которая будет читать историю из баз, насущный пример. Самое главное, мы будем разбирать готовый рабочий код. Который вы сможете переработать для своих целей. Мы пройдем абсолютно все этапы от A до Я. Калькулятор это целая система механизмов — запуск работы с перехватом фатальных ошибок. А как же быть с цикличностью? Если вы ввели неправильные данные, калькулятор должен исправить ошибку, очистить неправильные символы и снова быть готовым к запросу. Также было бы не плохо записать в файл x = 100, y = 200, а потом программа будет читать переменные из этого файла, например если мы запишем x+x и нажмем Enter программа ответит = 200. На данный момент мы уже согласились, что программа должна перехватывать фатальные ошибки, должна исправлять рабочие ошибки, читать базу данных. Также помимо пред загрузки было бы хорошо добавить переменные прямо в процессе вычислений. Также в программе есть блок который вычисляет математическое выражение непосредственно. 

Cамой большой сложностью для новичка, является создание первого проекта и подключение библиотек, мы вместе запустим первый проект и установим библиотеки, вы уже сегодня начнете выполнять упражнения из этого крутого курса 1drv.ms/b/s!Aik_YYEGJIBwhYN6NJCJt4LDnkoYTg(который кстати уже слушал Кембридж, а теперь Smart_Lab). После начала  вы довольно быстро дойдете до главы 6, в первых главах нет ничего принципиально сложного, вы даже начнете программировать калькулятор из главы 6, но если вы начнете подходить к изучению книги профессионально, вы захотите перебрать этот калькулятор от и до, если делать это самостоятельно и одному, это долго … мы сделаем это вместе.

В этом первом топике мы подготовим все для разработки и запустим первый проект, после этого вы сможете начать самостоятельную проработку книги. Во втором топике, мы разработаем некоторый циклический прототип. А вот потом, мы начнем разрабатывать калькулятор, причем, мы будем изучать готовую отлаженную модель. Потом соберем еще несколько фундаментальных программ. В результате у вас будут все необходимые библиотеки, которые вы будете понимать, в общем вы будете подготовлены так, как это видит создатель языка C++. Ну а потом вы уже сами почитаете книгу и разберетесь. Моя задача обеспечить успешное прохождение этого курса. C++ очень похож на C#, Fortran или Java, вам не обязательно будет зацикливаться именно на этом языке.

Начало разработки.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

1) Если у вас проблемы с Windows, вы можете скачать самый последний официальный пробный Windows бесплатно www.microsoft.com/en-gb/software-download/windows10. Он ничем не отличается от того пиратского Windows который вы скачаете на «проверенном сайте» к тому же вы получаете поддержку от корпорации Microsoft, в любом случае, чтобы не случилось, вы всегда можете поставить новый Windows, у меня всегда есть Windows на флешке, установка Windows и дополнительного ПO занимает около часа. Предлагается множество способов установки.


Начало разработки.


Можно просто обновить компьютер, а можно скачать установщик. Сказать честно, обновил компьютер я всего один раз, когда у меня была пиратка, а потом всегда ставил Windows с флешки. Давайте разберемся как записать Windows на флешку. Скачаем инструмент и запустим на компьютере.Начало разработки.
Инструмент установки просит согласиться с условиями использования. Читаем, соглашаемся. Нас опять спрашивают, мы можем просто обновить компьютер, а можем создать установочный USB или DVD, выбор за вами а я выбираю создание установочного носителя, Next.
Начало разработки.


Выбираем параметры по умолчанию, Next.

Начало разработки.



Программа предлагает записать ISO сразу на флешку или просто скачать ISO на компьютер, чтобы потом провести запись на флешку или диск. В самом начале, у меня не получилось сразу записать ISO на флешку(загрузка останавливалась и все тут), я не знаю как развить этот вариант, попробуйте сначала его, зато я точно знаю как записать ISO на флешку, предварительно скачав его на компьютер, используя другую официальную утилиту от Microsoft. Выбираю ISO file и жму Next.
Начало разработки.


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


Теперь нужно скачать официальную утилиту записи ISO на флешку.

www.microsoft.com/en-us/download/details.aspx?id=56485

Начало разработки.
Выбираю Английский язык и жму Download. Выходит еще один запрос, выбираю Американскую версию и жму Next. Скачиваю программу и запускаю. 
Начало разработки.


Программа просит указать ISO файл, я указываю на Windows.iso который сохранил в загрузках, Next
Начало разработки.

Дальше необходимо выбрать USB носитель, Next
Начало разработки.

Теперь нужно указать адрес флешки, у меня к компьютеру была подключена флешка и программа нашла её автоматически, но проверьте. И нажимайте начало копирования.
Начало разработки.


Программа предложит очистку носителя, обязательно нажмите Erase USB Device, потом подтвердите и запись начнется.
Начало разработки.


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


2) Для разработки понадобится Visual Studio, её также можно скачать бесплатно,  visualstudio.microsoft.com/
Начало разработки.




скачивайте Community 2017(ну или любую другую), и выполняйте установку, там все очень просто. Рискуйте использовать браузер Microsoft Edge, минимальный бонус даже в том, что видео в 1080 даже на самом простом компьютере можно смотреть бесплатно. Также я рекомендую создать учетную запись в Windows и использовать бесплатное облако OneDrive, для хранения общей библиотеки кода. Если инопланетяне украдут ваш ноутбук вы все равно сможете получить доступ к коду с другого компьютера, пока они будут подбирать код. Мне было бы очень обидно потерять например все наработки вместе с компьютером. Сделайте все это сразу и спите спокойно.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Итак, в результате у нас имеется новый Windows, среда разработки VisualStudio, самое время создать новый проект на языке C++ и добавить библиотеки. Запустите Visual Studio, выберите file>>New>>Project
Начало разработки.
Выберите Visual C++, Windows Desktop, Windows Console Application, название проекта и заметьте, я выбрал место сохранения облако OneDrive(но, это не обязательно) 

Начало разработки.


Может такое быть, что Visual С++ не будет в окне выбора, тогда нужно сделать следующее. Повторите инструкции file>>New>>Project, и кликните по ссылке установщика Visual Studio



Начало разработки.


Можете сразу закрыть Visual Studio и ожидать открытие установщика. В результате вы должны найти пункт Desktop development with C++ и поставить галочку, затем в правом нижнем углу нажать клавижу модификации, все. Так как у меня все установлено я не смогу моделировать процесс, когда установка завершится, создайте новый проект на языке C++
Начало разработки.
В результате вы увидите вот такое окно, это чистый проект на языке C++ с минимальным кодом, нам осталось лишь поставить библиотеки.Начало разработки.
Давайте скачаем стандартную библиотеку инструментов, вы убедитесь потом что мы выполняем лишь вводные инструкции книги, только более иллюстрировано. Вот главная страница поддержки книги  www.stroustrup.com/Programming/  вы еще рассмотрите её более внимательно. Найдите раздел Начало разработки.
Ну или вот ссылка на него  www.stroustrup.com/Programming/PPP2code/  и кликните по ссылке  std_lib_facilities.h в результате перед вами откроется обычный текстовый код. Теперь нужно снова открыть наш первый проект и нажать комбинацию клавиш, CTRL+O, в результате откроется корневая папка проекта.Начало разработки.
Создайте новый текстовый файл и назовите его std_lib_facilities.h и измените разрешение файла с .txt на .h  на некоторых версиях, разрешение файла срыто по умолчанию, в этом случае, зайдите в мой компьютер, просмотр и кликните опции Начало разработки.

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



Начало разработки.


В результате из нового текстового файла создайте std_lib_facilities.h да да да, это просто переименованный текстовый файл формат которого изменен с .txt на .h  в результате вы увидите вот это Начало разработки.
А теперь копируйте текстовый код  из std_lib_facilities.h с сайта поддержки, ссылку на который я приводил ранее в наш файл std_lib_facilities.h который мы создали в корневой папке. И сохраните изменения, все библиотека установлена, давайте запустим программу! Уберите абсолютно весь код который был сгенерирован по умолчанию при создании проекта, и копируйте в проект вот этот код   1drv.ms/t/s!Aik_YYEGJIBwhcwNHw-MK2IWB0Xaxw

после этого нажмите CTRL+F5 И ЗАПУСТИТЕ ПРОГРАММУ!!! уРА!!!!

Начало разработки.



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

Прорабатывайте книгу и ждите нового блога, будет жарко, а вот фотография из не менее жаркого прошедшего лета, не забывайте гулять между рабочими перерывами.)
Начало разработки.



80 Комментариев
  • Turbo Pascal
    02 ноября 2018, 07:51
    C++, по моему, не лучший выбор для программирования торговых стратегий. Это больше системный язык для низкоуровневого программирования.

    Хотите писать быстрых и стабильных роботов? Разбирайтесь в qlua, и программируйте прямо в терминале.
    Хотите мощности языка и работы с БД — берите C#.

    p.s.
    Хотите стильного ретро — программируйте на Турбо Паскале :)
      • Turbo Pascal
        02 ноября 2018, 08:02
        therollingstones, смотря для чего все это.
        Юнити — это, кажется, для программирования игр, не?
        Зачем это в торговле?
          • Тарас Громницкий
            02 ноября 2018, 08:19

            therollingstones, для этого сначала нужно стать профессиональным трейдером, чтобы понимать из чего должен состоять True терминал.

            Это примерно 7-10 лет.

            По прошествии этого времени вам вряд ли захочется программировать.

            Вы просто будете брать деньги с рынка и нанимать программистов.

            Ну а если не станете Pro трейдером, то и за терминал браться не стоит.

            Ибо спроса не него не будет.

    • Prophetic
      02 ноября 2018, 15:50
      Turbo Pascal, Вы когда-нибудь пробовали запустить на QLua одновременно больше 20-ти ботов? Я пробовал, и могу дать однозначное заключение, что встроенный в квик интерпритатор Lua — не лучшая среда для реализации всей логики «тяжелых» роботов.
      Однако, справедливости ради, стоит отметить, что первых своих роботов действительно имеет смысл начать писать именно на этом языке.
      • Turbo Pascal
        02 ноября 2018, 16:11
        Prophetic, на qlua лучше всего написать универсальный «обменник» со своей внешней системой, где уже будет логика и заброс команд обратно в квик.
        • Prophetic
          02 ноября 2018, 17:27
          Turbo Pascal, А вот с этим утверждением я согласен на 100%. Чем я благополучно и пользуюсь последние несколько лет.
          • Тарас Громницкий
            02 ноября 2018, 17:37

            Prophetic, какие библиотеки используете для спаривания LUA с внешним миром ?

            • Prophetic
              06 ноября 2018, 09:31
              Тарас Громницкий, QUIKSharp
              • Тарас Громницкий
                06 ноября 2018, 11:44

                Prophetic, ага.

                Статьи на их сайте читал.

                Очень даже норм.

                Как дойдут руки сделаю свою связку по их рецептам.

                • Prophetic
                  06 ноября 2018, 12:01
                  Тарас Громницкий, Честно говоря, не понимаю о каких «статьях на их сайте» идет речь. Это проект с открытым исходным кодом:
                  github.com/finsight/QUIKSharp/issues
                  Основная задача — повторить весь функционал QLua, встроенный в Квик. На сколько я понимаю, где-то на 99% эта задача выполнена. Какого-то отдельного сайта, посвещенного этой библиотеке я не встречал. Внутри проекта есть тестовые демо-приложения, для облегчения процесса знакомства с библиотекой и процессом написания торговых роботов. Если Вы знакомы с программированием и с C# в частности, то никаких дополнительных статей Вам скорее всего не потребуется.
  • Тарас Громницкий
    02 ноября 2018, 08:16

    Первая и самая критичная ошибка — это выбор языка.

    Для обучения азам программирования C++ не подходит.

    А с учетом уровня смартлаба это справедливо вдвойне.

    Второй вопрос к задаче.

    «Hello world» — это норм.

    А вот дальше должно быть что-то простое и при этом полезное в трейдинге.

    Чтобы у ученика не опустились руки и появился первый опыт.

    Например чтение/запись файлов, чтобы юзер смог поработать с .tri файлами Квика.

    В качестве языка настоятельно рекомендую взять что-то более актуальное и имеющее большее количество готовых библиотек.

    Java или C#.

    Вот видео в тему

    • Turbo Pascal
      02 ноября 2018, 08:25
      Тарас Громницкий, 

      Конкретно для обучения азам программирования C++ не подходит.

      Какие все нежные стали.
      Я азам программирования на PL/1 на ЕС-1066 учился, потом на ассемблере для 8086.

      А сейчас — «ой, это слишком неудобный язык для обучения, другой неудобный для этого, третий неудобный для того/сего».

      А потом вон кодеры кбгобот-style вырастают.
      • SEREGA
        02 ноября 2018, 08:29
        Turbo Pascal, Ну и как постигнуть это программирование и какой выхлоп??? Вы грите а то годами спорите а простой чел вас читает и патеет!!!
      • Тарас Громницкий
        02 ноября 2018, 08:32

        Turbo Pascal, начнём с того, что PL/1 и ассемблер вы изучали от того, что других языков тогда не было.

        Либо ваши преподы безнадёжно отстали от жизни.

        Или учились в вузе на какой-то специфичной специальности.

         

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

        Не рассеивать сознание избыточной информацией и не перегружать его.

        Потом пожалуйста.

        Но не сразу.

        Вы ведь начиная качаться не хватаете штангу в 50 кг.

        Тут ровно то же.

         

        А какбыроботы вырастают от жажды наживы.

        К сожалению даже среди профи в любой области подобных людей масса.

        Это следствие дикого капитализма где человек человеку корм.

      • SergeyJu
        02 ноября 2018, 11:49
        Turbo Pascal, я писал на алголе, фортране, VBA, трех разных асемблерах, Си с стиле Карниган_Ричи и на специальном языке для матричного процессора. Писал все, от драйверов и управления периферийными устройствами до сложной цифровой обработки сигналов. Но современное программирование очень далеко ускакало от языков калькуляторного типа. Стиль мышления сменился, а не просто языки.
      • Тарас Громницкий
        02 ноября 2018, 08:35

        therollingstones, у реальных приложений есть область применения.

        Он говорит о достаточно низкоуровневых вещах, которые 99% людей на смартлабе просто не нужны.

        C++ был создан именно для этого и этим обусловлена его сложность, граничащая с гибкостью.

          • Тарас Громницкий
            02 ноября 2018, 08:44

            therollingstones, поверьте мне в Java и C# заё**в достаточно.

            Это становится ясно по ходу дела.

            Всё не так просто.

  • SEREGA
    02 ноября 2018, 08:23
    Я смотрю ты постиг программирование!!! Када ты начинал а это 2 года назад ты обещал мне робота слепить!!!
    Так то я уже два года жду!!!
      • SEREGA
        02 ноября 2018, 08:32
        therollingstones, Всмысле платно чтоле??? Ты ведь грил что стопудова сделаешь!!! 
          • Тарас Громницкий
            02 ноября 2018, 08:46

            therollingstones, алгоритм — это примерно 20% робота.

            Остальное — это инфраструктура, которой он пользуется и UI.

            • SergeyJu
              02 ноября 2018, 11:52
              Тарас Громницкий, алгоритм — это 95% содержания робота и 5% его кода. ИМХО. 
              • Тарас Громницкий
                02 ноября 2018, 11:57

                SergeyJu, с точки зрения создания идеи и итоговой ценности да.

                С точки зрения процесса программирования написал выше.

  • SEREGA
    02 ноября 2018, 08:38
     Зачем изучать программинг ??? Если искуcственный интеллект вавсю шпрехат???
      • SEREGA
        02 ноября 2018, 08:55
        therollingstones, Че троль -то??? Я два вопроса вам задал и ответа не получил!!! Зачем трата времени про что вы грите если квантовый комп это всё решает за секунду!!! это к примеру печатать и продавать книги при развитом интернете 

          • SEREGA
            02 ноября 2018, 09:09
            therollingstones, Подходит то время када про что вы грите будет невастребовано будет достаточно пользоватся модулями потому как оных и сейчас терабайты!!! а сами модули будут создаватся именно квантовым компом!!! Это супермашина!!!
              • SEREGA
                02 ноября 2018, 09:18
                therollingstones, Это кароче землю капать лопатой!!! или экскаватором
                  • SEREGA
                    02 ноября 2018, 09:28
                    therollingstones, Ты пытался вроде пристроится програмером??? не получилася ??? или просто джунеоры уже не нужны??? тема какая у вас
    • Тарас Громницкий
      02 ноября 2018, 09:01

      SEREGA, чтобы не пользоваться массовыми продуктами.

      В трейдинге подобные вещи приносят лишь убыток.

      Смотрите продажу роботов.

      • SEREGA
        02 ноября 2018, 09:14
        Тарас Громницкий, Ну только!!! Согласен!!! Я закодить модули могу у разных програмёров а саму программу соберёт третье лицо он даже не шипко то и обратит внимание!!! (да и полуавтомат!!!)))
  • Cheshire Cat
    02 ноября 2018, 09:28
    О, понеслась! Сейчас тебе расскажут, что C++ отстой, потом, что нужно использовать другие фреймворки, потом — другие алгоритмы =)
    • Тарас Громницкий
      02 ноября 2018, 09:47

      Cheshire Cat, не отстой.

      Просто у него своя сфера применения.

      Нет смысла забивать гвоздь отвёрткой, а саморез вкручивать молотком.

  • Kapeks
    02 ноября 2018, 11:23
    перед тем как изучать си++ сначала изучи это
    бу-га-га-га"!!!
  • Сергей Грошев
    02 ноября 2018, 11:47
    Правильно ли я понял, что Вы хотите написать  оболочку для SmartCom (терминал и фреймворк для роботов)?

    //Imhо, Вы «замучаетесь пыль глотать», как сказал кто-то. 

    " — Тебя сразу убить или желаешь помучиться?" ©

    Если есть желание помучиться самому + помучить присоединившихся, тогда нет вопросов.

    Если нужно делать деньги на бирже, тогда лучше использовать TSLab (платно) или OSA.Engine (бесплатно): http://o-s-a.net/ (но там С#).

    Навскидку, два человека с этого ресурса, которые пытались решить аналогичную задачу:
    Сергей Егоров https://smart-lab.ru/profile/SergeyEgorov/
    Александр77 smart-lab.ru/profile/Alexand77/

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




    • Kapeks
      02 ноября 2018, 12:06
      ti-m, пусть фигачит. это же «интересный проэкт»!!! почти как текстовый редактор и сайт на пэ-ха-пэ!!!


    • Alexand77
      02 ноября 2018, 12:42
      ti-m, я, к слову, решил. До сих пор крутится.
  • Андрей К
    02 ноября 2018, 14:34
    Алена c++ уже читал? =))
      • Андрей К
        12 ноября 2018, 17:44
        therollingstones, Алена c++ — это женщина программист. По имени Алена. Работает в Майкрософт разрабом на c++. Ведет блог Алена c++, ну или вела. Писала про интересные вещи.
        Пользуется авторитетом в инете

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

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