Не волнуйтесь, вы все это запрограммируете и сделаете, я обещаю. В результате мы хотим получить программу, рассмотрим её общие принципы с другими программами, которые мы научимся программировать. Программа читает входные данные с клавиатуры, параллельно она автономно читает информацию из нужных баз данных. Вы можете провести параллель со многими программами, которые читают статистику реального времени и проводят сравнения с базами данных. Программы могут выполнять разные цели, работать с разной информацией, но они будут составлены по похожим принципам, давайте рассмотрим их. Может вы захотите написать программу которая будет оценивать ленту котировок, которая будет читать историю из баз, насущный пример. Самое главное, мы будем разбирать готовый рабочий код. Который вы сможете переработать для своих целей. Мы пройдем абсолютно все этапы от 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 И ЗАПУСТИТЕ ПРОГРАММУ!!! уРА!!!!
Теперь у вас есть время поработать с книгой, чтобы не переписывать код вручную, найдите вот эту ссылку на сайте поддержки книги, именно в разделе поддержки книги, ссылку на который я приводил и …. начинайте работу)
Прорабатывайте книгу и ждите нового блога, будет жарко, а вот фотография из не менее жаркого прошедшего лета, не забывайте гулять между рабочими перерывами.)
Хотите писать быстрых и стабильных роботов? Разбирайтесь в qlua, и программируйте прямо в терминале.
Хотите мощности языка и работы с БД — берите C#.
p.s.
Хотите стильного ретро — программируйте на Турбо Паскале :)
Просто тут очень богатая книга на практику. Ну как не уметь писать грамматику?
Юнити — это, кажется, для программирования игр, не?
Зачем это в торговле?
therollingstones, для этого сначала нужно стать профессиональным трейдером, чтобы понимать из чего должен состоять True терминал.
Это примерно 7-10 лет.
По прошествии этого времени вам вряд ли захочется программировать.
Вы просто будете брать деньги с рынка и нанимать программистов.
Ну а если не станете Pro трейдером, то и за терминал браться не стоит.
Ибо спроса не него не будет.
Однако, справедливости ради, стоит отметить, что первых своих роботов действительно имеет смысл начать писать именно на этом языке.
Prophetic, какие библиотеки используете для спаривания LUA с внешним миром ?
Prophetic, ага.
Статьи на их сайте читал.
Очень даже норм.
Как дойдут руки сделаю свою связку по их рецептам.
github.com/finsight/QUIKSharp/issues
Основная задача — повторить весь функционал QLua, встроенный в Квик. На сколько я понимаю, где-то на 99% эта задача выполнена. Какого-то отдельного сайта, посвещенного этой библиотеке я не встречал. Внутри проекта есть тестовые демо-приложения, для облегчения процесса знакомства с библиотекой и процессом написания торговых роботов. Если Вы знакомы с программированием и с C# в частности, то никаких дополнительных статей Вам скорее всего не потребуется.
Первая и самая критичная ошибка — это выбор языка.
Для обучения азам программирования C++ не подходит.
А с учетом уровня смартлаба это справедливо вдвойне.
Второй вопрос к задаче.
«Hello world» — это норм.
А вот дальше должно быть что-то простое и при этом полезное в трейдинге.
Чтобы у ученика не опустились руки и появился первый опыт.
Например чтение/запись файлов, чтобы юзер смог поработать с .tri файлами Квика.
В качестве языка настоятельно рекомендую взять что-то более актуальное и имеющее большее количество готовых библиотек.
Java или C#.
Вот видео в тему
Какие все нежные стали.
Я азам программирования на PL/1 на ЕС-1066 учился, потом на ассемблере для 8086.
А сейчас — «ой, это слишком неудобный язык для обучения, другой неудобный для этого, третий неудобный для того/сего».
А потом вон кодеры кбгобот-style вырастают.
Turbo Pascal, начнём с того, что PL/1 и ассемблер вы изучали от того, что других языков тогда не было.
Либо ваши преподы безнадёжно отстали от жизни.
Или учились в вузе на какой-то специфичной специальности.
Первый принцип качественного обучения — это не создавать лишних проблем.
Не рассеивать сознание избыточной информацией и не перегружать его.
Потом пожалуйста.
Но не сразу.
Вы ведь начиная качаться не хватаете штангу в 50 кг.
Тут ровно то же.
А какбыроботы вырастают от жажды наживы.
К сожалению даже среди профи в любой области подобных людей масса.
Это следствие дикого капитализма где человек человеку корм.
therollingstones, у реальных приложений есть область применения.
Он говорит о достаточно низкоуровневых вещах, которые 99% людей на смартлабе просто не нужны.
C++ был создан именно для этого и этим обусловлена его сложность, граничащая с гибкостью.
therollingstones, поверьте мне в Java и C# заё**в достаточно.
Это становится ясно по ходу дела.
Всё не так просто.
Так то я уже два года жду!!!
therollingstones, алгоритм — это примерно 20% робота.
Остальное — это инфраструктура, которой он пользуется и UI.
SergeyJu, с точки зрения создания идеи и итоговой ценности да.
С точки зрения процесса программирования написал выше.
SEREGA, чтобы не пользоваться массовыми продуктами.
В трейдинге подобные вещи приносят лишь убыток.
Смотрите продажу роботов.
Cheshire Cat, не отстой.
Просто у него своя сфера применения.
Нет смысла забивать гвоздь отвёрткой, а саморез вкручивать молотком.
vladimir55, значит проекты у вас не сильно большие.
В средних и крупных проектах остро встаёт вопрос архитектуры.
Подбор стека технологий под текущий и перспективный функционал.
Декомпозиция элементов системы, создание интерфейсов взаимодействия и расширения.
Тестирование и документация.
В общем помимо языка есть масса смежных вещей.
бу-га-га-га"!!!
vladimir55, в области трейдинга есть проекты разных размеров.
Поэтому имеется место стеку технологий, архитектуре и даже документации.
//Imhо, Вы «замучаетесь пыль глотать», как сказал кто-то.
" — Тебя сразу убить или желаешь помучиться?" ©
Если есть желание помучиться самому + помучить присоединившихся, тогда нет вопросов.
Если нужно делать деньги на бирже, тогда лучше использовать TSLab (платно) или OSA.Engine (бесплатно): http://o-s-a.net/ (но там С#).
Навскидку, два человека с этого ресурса, которые пытались решить аналогичную задачу:
Сергей Егоров https://smart-lab.ru/profile/SergeyEgorov/
Александр77 smart-lab.ru/profile/Alexand77/
Почитайте их блоги. Это тяжкий путь. Приглашать вступить на него других — ну, не знаю. Не всем нравится садомазо.
vladimir55, позвольте придраться.
«Но я точно знаю, что робот по этому ТЗ зарабатывал бы.
И копать надо где-то в области машинного обучения.»
Вы точно знаете или копать надо где-то в области машинного обучения ?
vladimir55, хм… интересно.
А зачем там машинное обучение ?
Необходимо компьютерное зрение ?
Т.е. визуальное распознание неких формаций ?
Пользуется авторитетом в инете
?
vladimir55, вы смотрите в стакан.
Биды, аски, спреды и скорости их изменения можно собирать программно в реальном времени.
Вопрос в динамических формациях.
Есть ли их определение или общая структура ?
vladimir55, по идее нужно какое-то время пособирать эти данные.
Зафиксировать в какое время рынок стоял, а в какое летал во все стороны.
И выделить закономерности в собранных данных для обоих крайних случаев.
Вообще для понятия «летает во все стороны» есть волатильность.
SECRET, стабильность софта зависит от разработчика, а не от языка.
Про скорость согласен.
SECRET, количество прослоек конечно влияет, но не так критично, как вам видится.
Иначе до сих пор писали бы в двоичном коде.