Блог им. AGorchakov

К вчерашней дискуссии об ОСЕ

    • 25 октября 2022, 14:29
    • |
    • А. Г.
      Проверенный аккаунт
  • Еще
Собственно ОСОй я не пользовался (и ниже станет ясно почему), а вот попытки использовать WealthLab и S# (до «кубиков», исключительно как библиотеку) были. Хотел написать, почему я отказался и в конце концов перенес системы с написанного мной на VB+Excel на собственный код в C# (+библиотека alglib), но лучше всего об этом «расскажет» картинка

К вчерашней дискуссии об ОСЕ


★3
131 комментарий
перенес системы с написанного мной на VB+Excel на собственный код в C#

Так Вы сами программируете или есть программисты в команде?
avatar
Андрей Возяков, сам, но исключительно так, как программировал в первой половине 90-х на С++ под MSDOS. Для закачки данных из квика  воспользовался некоторыми свободно распространяемыми кодами в интернете 

smart-lab.ru/blog/331436.php

+ изучил связку C# <-> MySQL при помощи примеров с  MSDN.

Классы и всякое объектно-ориентированное программирование, графика — это все «мимо».


avatar
А. Г., видимо поэтому и не используете готовые решения. Чем старше тех образованием, тем больше был упор в самостоятельности и меньше в социализации. Такое образование было в СССР. Есть свои за и против в таком подходе. Но в современном мире такой подход потерпел крах.

А вчерашний текст был не про программиста, на мой взгляд, а про то, что человеку подсунули сырую программу, и взали с него деньги. По хорошему, за такие вещи должно быть какое-то расследование и анализ со стороны администрации сайта. Но… мы же все в России )
avatar
Sergey, ниже я подробно объяснил, что некоторые «готовые решения» ( те же  WealthLab и S#, упомянутые в топике) для меня таковыми не являются, потому что требуют дополнительных знаний, на которые надо потратить много времени, с чем все вроде согласились. Поэтому я не исключил, что и с ОСОй тот же случай, а не баги.
avatar
А. Г., с Осой именно баги. Я сам смотрел её, там действительно всё плохо сделано внутри. Создатель написал быстро и плохо, и сейчас тонет в массе ошибок. А как известно в трейдинге приоритет в качестве из-за специфики области. Видимо, автор когда писал этого не понимал. Может ещё есть шанс переделать и исправить. Хотя, в эпоху когда роботы уже предлагаются брокерами СконфигурируйМеня делать сейчас что-то подобное вызывает определенные сомнения. Никогда не окупятся вложения. Таргетируется для самоделкиных вроде вас, но самоделкинам нравится и привычнее сделать своё. Хуже, но своё.

А сравнивать с WealthLab и S# без резонно. Это же компании с массой пользовательской базой за годы то на рынке. Разве можно сделать конкуренцию лишь выложив свои наработки в интернет. Ну нет же. Метаку на FX никто не пытается делать конкуренцию. Трейдеры не захотят переносить свои скрипты.
avatar
А. Г., Так ведь и C++ и C# — это и есть «классы и всякое объектно-ориентированное программирование».
avatar
Errar, FORTRAN-программы можно писать на любом языке программирования.
avatar
Кирилл Гудков, Ну, котлеты можно жарить в кастрюле… Можно, но для этого должна быть причина.
avatar
Errar,  хотите верьте, хотите нет, но в коде на C# моего торгового робота среди 6000+ кодов нет кода «сlass». Есть библиотеки, есть подпрограммы, но «class» нет, как и кодов «get» и «put».
avatar
А. Г., Если собственный код занимает сотню-другую строк, сто чужих библиотек и повторно используется по минимуму — это нормально. 
avatar
Errar, нет, своих строк примерно 60% из 6000+, но 90% из них 4 арифметических действия, операторы if и for и описание переменных и массивов. Чужих библиотек 8 и оттуда функций 20-25 используется, из которых подавляющее большинство из одной библиотеки alglib. А остальные функции — это Abs+sqrt и  обмен с текстовыми файлами и MySQL.
avatar
А. Г., 
хотите верьте, хотите нет, но в коде на C# моего торгового робота среди 6000+ кодов нет кода «сlass».

Хотите верьте, хотите нет, но это не означает, что вы не используете уже готовые классы. Вы наверняка используете методы статического класса Math.

В той же alglib большое количество статических классов. Всё отличие в том, что не нужно создавать объекты статических классов.

Вас напугал пример из S#. Но там всего-то нужно было создать объект класса оператором new, а дальше обращаться к методам этого объекта точно также как в привычной вами alglib или Math.
avatar
Иван Портной,  в контексте использования функций из  «библиотек», как они назывались в 90-е, я не очень понимаю в рамках их использования пользователем отличий между библиотекой и классом. Разве, что префикс названия библиотеки перед названием функции в коде появился.

Я вообще многого из новых названий не понимаю. В 70-80-е те же нейросети назвали бы «самообучающиеся алгоритмы», а сегодня это «искусственный интеллект». Вот и сейчас «объекты, классы», а в 80-е «библиотеки, функции» и я, как пользователь, не вижу никакой принципиальной разницы.

А к документации S# из ссылки только одна претензия: если создаёте новую  библиотеку (уж позвольте это так называть), то опишите коды всех функций из нее, как это сделано в MSDN для того же «класса» (пусть будет «класс») Math или создателями alglib.
avatar
А. Г., В 70-е классы назывались бы структура, в которой есть массив адресов подпрограмм, по которым делается CALL[ADR].  
Представляете сколько человек работает над MSDN и какой у них бюджет. А тут ребята энтузиасты. Нормальная у него документация. Всем кто понимает ООП все понятно.
avatar
ATS74, в 70-е не кодил, а во второй половине 80-х на С++ были просто библиотеки с расширением .h. С ними вообще было просто разбираться — они были текстовыми.

А что касается MSDN, то конечно понимаю, сколько там людей, но ведь и alglib сделали энтузиасты, которых хватило на вполне понятный хэлп для пользователей безо всяких знаний об ООП. И «работает как часы». 

У меня претензия собственно и не хэлпу, а к позиционированию S# в 2012-2013, как ПО для алготрейдеров. Позиционировался бы он, как API для программистов — нет вопросов.

Я давно там не был на сайте, но сейчас посмотрел — там «другая картина». На главной совершенно правильно написано

S#.API — библиотека для профессиональной разработки торговых роботов на языке C#. Для тех, кто программирует в Visual Studio, и является профессиональным программистом в области алготрейдинга.

А переходим по ссылке и снова то, к чему я и придрался:

S#.API — бесплатная библиотека для начинающих и профессионалов в области алготрейдинга.

Я уже ни раз тут писал, что для меня алготрейдер — это тот, кто создает правила ЕСЛИ. А мы уже вроде тут разобрались, что для этого ООП знать не нужно, а для пользования S#.API, наоборот, необходимо. Получается логическое несоответствие в заявленном.

avatar
А. Г., S#.API — библиотека для профессиональной разработки торговых роботов на языке C#. Для тех, кто программирует в Visual Studio, и является профессиональным программистом в области алготрейдинга.
avatar
ATS74, ну собственно я это и написал в своем топике. Просто, когда S# начинался, там было только API и позиционировалось оно, как ПО для алготрейдеров (на самой странице API по прежнему так и написано).

И собственно мой корневой топик в части ОСЫ и был о том, что, возможно, с ней и повторяется эта «первородная» неточность в позиционировании S#. И отсюда возникает недовольство обучающихся алготрейдеров, не знающих тот же ООП.

Ведь если б я пришел на курсы по S# и они начались с того, что написано в приведенной мной ссылке, то тоже возмутился в стиле: «фигня какая-то, а не ПО для алготрейдеров!». И наверняка попытки написать что-нибудь с использованием S# без изучения ООП напоролись бы на ошибки в VS без ошибок в написании кодов и их логики, что собственно для меня и является «багами».

P. S. Я, кстати, прекрасно знаю, что профессиональный программист и не алготрейдер может успешно работать с S#. У нас в Форуме был программист и на период отпуска я передал ему свою программу. Так он просто удалил то, что я написал с использованием Транс2квик и переписал эту часть на S#. У него все работало. 

А потом вернулось ко мне и тоже работало до того момента, пока мне не понадобилось расширить число торгуемых инструментов. И простое увеличение размера пары  массивов в коде  привело к тому, что VS Express, отказался создавать десктопное приложение, «ругаясь» на эту часть с S#. Вернул свою с Транс2квик и все сформировалось на «ура». А помочь программист мне уже не мог — он к тому времени уволился.

Но он был чистый программист, у нас писал «приводы» для плазы, таблицы для квика на qpile, в качестве хобби игрушки в эплпэй, а вот торговыми алгоритмами не занимался.
avatar
А. Г., Согласен. Ребятам надо наступить на горло своей алчности и продавать курсы только тем, кто в состоянии их осилить.
avatar
ATS74, вот я и не осилил. Дошло до полного «треша»: со старой переменной размерности пары массивов десктопное приложение формируется, меняешь переменную и VS Express выдает ошибку в строках с использованием S# про «неизвестные операторы». Хотя никакого отношения эта переменная к этим строкам не имела, она отвечала за размеры массивов, где хранились тикеры торгуемых инструментов и циклы по тикерам.
avatar
А. Г., doc.stocksharp.com/api/StockSharp.Algo.Connector.html это разве не то?

MSDN как документация — прекратил свое сущестование. Теперь раздел Learn. Качество описания методов снизилось на порядки — learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.renderhandle.render?view=aspnetcore-6.0 Описание методов — ни о чем. Но появился другой тип описания документации learn.microsoft.com/en-us/aspnet/core/blazor/components/templated-components?view=aspnetcore-6.0 более обширный. У S# на мой личный опыт этот же подход.

То что вы советуете — это как раз как про образование СССР. Оно когда-то было, но в эпоху глобализма потерпело крах. Надо было по другому строить.
avatar
А. Г., 
не очень понимаю отличий между библиотекой и классом.

Мы в обычной жизни имеет дела с законченными объектами (например, автомобилем), а не запчастями. Класс это чертеж какого-то объекта, который может что-то делать (по вашему, имеет функции), и имеет какие-то свойства (по вашему, переменные). Если нужно воспользоваться объектом, его следует создать из чертежа (класса) оператором new.

Если класс статический (например, Math), то создавать его не нужно. Например, для вычисления корня просто обращаемся к методу статического класса Math.Sqrt(x). Если бы класс Math был не статический, пришлось бы сначала создать объект класса: Math m = new Math(); А только потом обращаться к его методу: m.Sqrt(x).

Классы очень удобно использовать. Например, можно создать класс Order, который будет знать о себе некоторые свойства (инструмент, цену, направление, объем). И уметь что-то делать (например, отправлять себя на биржу, превращаться в сделку и т.д.). 

Библиотеки (например, alglib) содержат несколько или даже много классов. Если классы статические, то вы их путаете с функциями, потому что они не требуют создания объектов.

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

Я читал где-то, что там с использованием памяти компа что-то отличается для статического класса и не статического, но это уж точно не для простого пользователя.
avatar
А. Г., 
я все равно не понял
Это нормально. Если было бы по другому, я бы удивился ))

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

Opder ord = new Order(p1,p2,p3); // Создаем заявку с параметрами p1,p2,p3
if (условие) ord.Send(); // Отправляем заявку методом Send() класса Opder

не понял принципиальных отличий класса и библиотеки.
Библиотека статических классов это гараж. Статические классы это автомобили. Нужен автомобиль, берете едите. Новый еще такой же автомобиль создать нельзя. Например, если бы класс Order был бы статический, то создать вторую заявку с другими параметрами нельзя. Статические классы удобны, например, для размещения мат.функций.

Библиотека обычных классов это склад чертежей домов. Нужен дом с определенными параметрам, берете подходящий чертеж, устанавливаете характеристики, создаете дом, пользуетесь. Нужен еще дом, пожалуйста, нет проблем. Например, удобно создавать множество заявок с разными параметрами, имея класс Order.
avatar
Иван Портной, в дополнение для А.Г.: а еще в ООП автомобиль может сказать гаражу: «Я Камаз и я заехал», а гараж решить что дальше делать, сколько есть еще мест и не пора ли кого-нибудь выгонять. Ну или в контексте ордеров: ордер может сказать программе: «Я исполнился на 30% и я айсберг», а программа решить: «Ага, на этом инструменте исполнилось столько то объема, надо бы освободить средства и снять другие ордера». Разумеется всё это можно делать и процедурно-библиотечно, но тогда логика в результирующих простынях кода рано или поздно перестанет быть ясной.
avatar
Иван Портной, 
Например, удобно создавать множество заявок с разными параметрами, имея класс Order.

Да в текстовом файле сделать новую строку с другими параметрами вообще без проблем. Я постоянно ставлю стоп-лимит заявки с одной ценой и разными объемами на 5-6 счетов. Снимается вообще одной командой: «снятие заявок по условию» (задаю в поле «комментарий» это условие при установке и всего делов). И все работает. Зачем мне команда Order, у которой:

а) какие-то ограничения (с Ваших же слов);
б) в хэлпе нет ни описания параметров p1,p2,p3, ни примеров кода, зато куча слов про какой-то класс и методы get и put (я понимаю зачем они нужны при стыковке в проектах, пишущихся разными разработчиками, но это лишнее в ПО для алготрейдера).

Почему не сделать аналог синтаксиса команды заявки в текстовом файле или на тех же qpile или lua  c простым примером кода, который заносится в программу копипастом и работает?

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

Я уже писал, что для хорошего программиста там все понятно и просто, но для человека, у которого задача создать правила ЕСЛИ и прикрутить к ним закачку данных и отправку-снятие-исполнение заявок все это «наведение тени на плетень».

Кстати, вспомнил еще один курьез с S# в 2012-м. Не знаю, как сейчас, но когда я настроил квик в соответствии с прилагаемой к S# инструкцией, то он один у меня «сожрал» 8Гб оперативки и сделал трафик 10Гб в день. А с моими настройками 5 квиков не занимали и 4 ГБ с трафиком меньше 2Гб.
avatar
А. Г.,
сделать новую строку с другими параметрами вообще без проблем.
Вопрос ведь не про это. Вы жалуетесь, что не понимаете ООП. А ООП это очень удобно. Вы оперируете не функциями, переменными, массивами, а целыми объектами. Как в жизни. Вы же не на колесе ездите. А пользуетесь  объектом — автомобилем. И на биржу вы отправляете не текстовый файл, а объект — заявку. И биржа вам возвращает объект — сделку. 

Зачем мне команда Order, у которой:

а) какие-то ограничения (с Ваших же слов);
б) в хэлпе нет ни описания параметров p1,p2,p3,

Order это не команда, это класс. Вы можете сами его написать и сами определить нужные вам параметры. p1,p2,p3 это просто мой абстрактный пример. А можно воспользоваться каким-нибудь TSLab'ом. Там программисты написали кучу классов на все случае жизни. И хелп есть.

Почему не сделать аналог синтаксиса команды заявки в текстовом файле или на тех же qpile или lua  c простым примером кода, который заносится в программу копипастом и работает?

qpile умер. А вот на lua довольно много простых примеров. Причем как вы любите, в процедурном стиле. lua плохо приспособлен для ООП.

Я уже писал, что для хорошего программиста там все понятно и просто...
Вы даже не представляете какими абстракциями оперируют хорошие программисты ). А все эти торговые платформы для обычных пользователей с небольшим программистским бэкграундом.
avatar
Иван Портной, 

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

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

Небольшой программистский бэкграунд и у того, кто писал коды, например, на VB+Excel.
avatar
А. Г., вы начинали когда ООП еще было в зачатке. Поэтому стали процедурником. Научная мысль развивалась дальше, и придумали более простой и эффективный метод — ООП. Современные программисты начинают с ООП и смотрят на процедурников как на гиков, сверхчеловеков. Написать 6000+ строк «макаронным» стилем это ж ад адский. Уже после первой тысячи строк возникает непреодолимое желание разбить всё на классы, создать объекты и облегчить себе труд. Мысль моя проста как граненный стакан: ООП просто в освоении, пригодно для непрограммистов и существенно облегчает программирование.
avatar
Иван Портной,  
ООП просто в освоении, пригодно для непрограммистов и существенно облегчает программирование.

Не пытайтесь меня убедить, что ООП существенно упрощает создание проектов, особенно в случае нескольких разработчиков в рамках одного проекта. Я с этим не спорю.

Я же говорю о другом: для алготрейдера, не являющегося профессиональным программистом, любой класс, созданный другим(-и) программистом (-ами) без полного полного описания функций с примерами кодов — это бесполезный «сферический конь в вакууме».
avatar
А. Г., 
Я же говорю о другом: для алготрейдера, не являющегося профессиональным программистом, любой класс, созданный другим(-и) программистом (-ами) без полного полного описания функций с примерами кодов — это бесполезный «сферический конь в вакууме».

Для S# не программировал. Открыл ваш пример. Первый раз вижу код. Всё ясно, вопросов особо нет. Создается заявка (объект). Прямо во время создания заявки в фигурных скобках устанавливаются её свойства. Какие свойства понятно из их названия (Type, Volume, Price, Direction и т.д.). Последняя строка в коде — созданная заявка отправляется на биржу. Там еще и описание на русском есть. Всё как вы хотели ).
avatar
Иван Портной, Вы будете удивлены, но когда я размещал ссылку, там был совсем другой текст. Что-то типа этого
files.tslab.ru/docs/2.0/ru/api/class_t_s_lab_1_1_script_1_1_base_cache_context.html

Молодцы ребята, критику восприняли и сделали как надо.
avatar
А. Г., По TSLab вы не там смотрите. Это не документация. Документация вот. Уровень детализации такой, что вы будете чувствовать себя суперпрограммистом ).
avatar
А. Г., class Program
Ключевое слово class в c++ от struct ничем не отличается кроме области видимости.
В C# отличается, но не ориентированностью подхода.

Объектно-ориентированный подход это не про ключевые слова, а про структуру программы, использование полиморфизма, инкапусляции и наследования.
avatar
Какой коннектор/API к торговой системе используете?
avatar
К.О'Тяра, для скачивания таблиц из квика свободно лежащий в интернете DDE-сервер от Морошкина (см. ссылку выше), для установки-снятия заявок (стоп-лимит заявок) в квике и транзаке исключительно текстовые файлы. В прошлой версии использовал транс2квикдлл, но при переходе квика с 32-х битной версии на 64-х битную лень было заморачиваться переписыванием кода выставления-снятия заявок. К тому же в текстовых файлах есть полезная для меня «фича»: «снятие всех заявок по условию». Удобно, когда работаешь с несколькими счетами.

А собственно учет позиций и расчет цен заявок (стоп-лимит заявок) делает мой код. 

Базу прошлых цен минуток по двум фьючерсам и 7 акциям  делаю в MySQL и держу на случай тестов. Если понадобится что-то новое, то прошлые данные скачаю с Финама.
avatar
для Java не знает кто-нибудь торгового API?
avatar
давай к нам в тслаб...

хоть в кубиках хоть в крестиках хоть на си...

идея в том что функционал качественный… все эти конекторы с резервированием серверов и расписанием торгов...

хоть акции хоть фьючерсы хоть опционы хоть хфт
avatar
ves2010, в вэлслаб 6.4 тоже вроде C#, но векторное представление данных и соответствующие операции, как база скриптов, делают мой код «неподъемным». Это и стало причиной моего отказа от вэлса.
avatar
А. Г., у тслаба есть доступ к каждому бару без векторов

идея в том, что можно отдать тслабу подключение, расписание, реконект, преподключение к резервному серверу, хранение данных, контроль исполнения приказов и набор позы… а самому сваять код под с# какого нибудь отдельного особо важного индикатора… и вставить этот индикатор в бот
avatar
ves2010, 
у тслаба есть доступ к каждому бару без векторов

Бары в TSLab — это векторные массивы или обычные? Если векторные, то и операции могут быть только векторные, а преобразование векторного массива в обычный — те еще «тормоза» на C#. И код этого преобразования в вэлсе строчек 5 с 5-ю встроенными функциями.
avatar
А. Г., там есть доступ к конекретному бару типа close[i-NN]
вообще всегда есть возможность скопировать данные из вектора в любой удобный массив и делать с ним все что угодно по таймеру или внешнему событию
avatar
ves2010, а разные таймфреймы там доступным по подобным адресам? 
avatar
А. Г., там у них вменяемая техподдержка, форум, и канал в телеге… ответят втечении суток на конкретный вопрос...

мне поэтому и нравится тслаб… что можно вопрос задать…

таймфрейм можно делать искусственно… любой… из кратных… т.е из 1 мин можно сделать таймфрейм 1-2-3-...145мин… там есть блок сжать... 

мне периодически хочется намисать что нибудь величественное на си… но имхо бот должен быть простым и в кубиках
avatar
ves2010, вот за что я неполюбил велслаб, так это (а) медленно (б) неудобно (в) есть скрытые ошибки.
Мне поще написать индикатор, чем разбираться, что там неизвестный кодер напутал. 
avatar
SergeyJu, я тож пытался в ами… но неудобно вкрай
avatar

А. Г., несколько лет назад я тоже сидел на связке текстовых файлов и VBA.

Потом понял, что как минимум при тестировании трачу слишком много времени на изобретение велосипеда + теряю в скорости расчетов, и поэтому решил изучить нормальную алго-прогу. Тогда из-за сырости ТСлаб 2.х я выбрал Multicharts с привлекательным мне (в том числе как упертому паскалевцу) Easy Language. И много лет жили мы с ней душа в душу, если бы не глюгнутый квик-коннектор.


При этом я как it-шник несколько раз в жизни пытался изучить си шарп тем же методом что и английский в советской школе — «не фигово было бы» + бестолковая зубрежка слов. Даже придумывал себе небольшие практические задачки. Но все заканчивалось написанием 1-2 консолек, и все равно «в душу не западало». В смысле — как только появлялась какая-нибудь реальная потребность (не обязательно в трейдинге) — типа распарсить файл и т.п. — я мигом ее закрывал на связке Excel+VBA, которыми владею много лет — и меня это более чем устраивало.
И котировки до недавнего времени качал на этой связке тоже без проблем.

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

При этом я продолжал работать it-директором в крупной компании, и времена на работе пошли тяжелые — и по свободному времени, и по перспективам выживания. Понимая, что я носорог-мамонт :) — попытался освоить Питон — не пошел (хотя качалку на него таки переписал). Но это отдельная песня. 


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


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

НО мое ИМХО на текущий момент:



1. ТС Лаб реально крут и удобен. Самый лучший курс по кубикам - курс Павла Целищева (вернее модуль в курсе маркет стат, который ради этого можно и вытерпеть, либо даже адаптировать под себя. Ну либо искать на скла… нах и смотреть только ТС Лаб). Модуль по ТС Лабу ОЧЕНЬ короткий — изучил его буквально за день. Павел объясняет очень кратко и толково, поэтому совершенно никаких проблем.


2. Связка С# API TSLab реальна крута и удобна — если есть желание дополнительно чуток вложиться в новые знания. И здесь моя картина мира (в плане отношения к си шарпу) поменялась после древнего и валяющегося на всех ресурсах курса Родиона Скуратовского. Блин, он все те же сущности ООП C# объяснил буквально на пальцах. И главное — я их (в очередной раз :) понял не в режиме «зубрежки», а как практическую реальную потребность — на барах, индикаторах, ордерах.  Безусловно, есть некоторые заковырки и тупики — и иногда мне хочется поколотить ответственного за документацию TSLab (думаю его просто нет — это сейчас очень модно — типа сам код и есть документация — жми F12  и проваливайся в вызываемый код). Но я слишком олд-скульный чувак чтобы в это верить. Поэтому иногда матерюсь. Ну или еще проще — написать в чат техподдержки, где с вероятностью 80% помогут (20% — возможно уже моя наглость в ожиданиях). Ребята там реально классные и очень профессиональные!!! 

Так или иначе, возможности * скорость * гибкость — этой связки, как говорится, the best. Даже для меня — откровенного новичка в си. Однозначно рекомендую! Excel и VBA вспоминаю как дошкольную любовь — с теплом в груди, но с четким пониманием что при объективном сравнении у них просто нет шансов.


А.Г., буду прям на грани хамства — мне уже полтинник, т.е. мозги откровенно не те, что прежде. Но к моей неописуемой радости в реальности порог входа в «кубиковый» ТС Лаб оказался в разы ниже, чем я думал. Настолько, что я по инерции замахнулся и на c# (после своих  то многочисленных бестолковых попыток выучить его как классический язык программирования без привязки к реальной потребности, т.е. до курса Родиона). И снова — был приятно удивлен, что в реальности все гораздо проще, чем я боялся.

Эх, жаль Родион куда то пропал :(. Впрочем, есть Дмитрий Власов, который хоть сейчас и не публичный, но тоже успел выдать целую гору материала уже для ТС лаб 2.х Так что — may be, may be… А.Г., если надо — готов Вам помочь чем смогу.

avatar
Носорог, 
примерно в это же время делал выбор между ТС-Лаб и МТ5. В итоге живу в МТ5, хотя пришлось во многочисленных косяках разбираться самостоятельно. 
Легкость входа != правильный выбор :)

Дмитрий Овчинников, но и Тяжкость входа != правильный выбор :)

Все зависит от того является ли данный критерий важным для выбирающего. Для меня — да.

avatar
Носорог, 
да я тоже не стахановец ни разу. просто получилось сделать правильный выбор :)
Дмитрий Овчинников, да у меня свои тараканы — иногда явно переинвестирую силы и ресурсы. По современным меркам я программист не очень. Поэтому то, что Вы изучили за год, я бы мусолил лет 5. Соответственно риск неокупаемости в 25 раз больше :)
avatar
Носорог, да в том то и дело, что на кубиках мои алгоритмы в TSLab не строятся. Уж это я точно знаю. А загонять туда свой код на C# после неудачного опыта с WL мне уже " не по зубам". Тоже возраст. Мне ведь вычислительную консольку на пару тысяч операторов для тестов, что на C#, что на VB написать — это с отладкой максимум пара дней.

Вопрос то не в том, как закодить десятка два-три формул, а какие собственно взять. А тут «от печки» идти надо: модельку для цен построить, погонять на повторяемость, проверить на непротиворечивость и вывести формулы, как достаточные статистики. А вот с идеями таких моделек как то с возрастом все медленнее получается. За последние лет 10 я только пару проверил — «пустышками» оказались. А до этого одну в год всегда «прогонял». Правда в 70% все равно «пустышки», а парочка «в заначке», потому что не лучше работающих. А в этом году в прибыли вообще одна и, что удивительно, самая первая найденная, ещё в 1998-м году.
avatar
А. Г., безусловно, не настаиваю. Но все же допускаю, что здесь есть эффект курицы и яйца, ну или аппетита, который приходит во время еды. У меня получилось так. Когда сидел на своем уникальном инструментарии у меня был один темп проверки идей. Когда пересел на внешний софт, выяснилось, что в интернете куча чужих разработок. Рассматривая чужой опыт, мои извилины стали работать совсем в другом темпе/режиме (ведь практически коллективный разум). И скорость проверки идей и их генерации (то самое яйцо, включая стыренные — полностью или частично) выросли в разы. Собственно, могу конечно показаться грубым, но сегодняшний профразработчик в первую очередь гуглит. Ибо 90% задач кто-то где-то уже решал.

А с учётом того, что главный Грааль в трейдинге — иметь команду некоррелированных ТС, то высок шанс намыть требуемое количество золота уже не за счет уникальных слитков-идей, а банально за счет кратного увеличения скорости просева грунта идей, пусть и средненьких. А Кальмар команды из 20 середнячков порой может быть выше, чем у команды из 5 звездных идей. Особенно в наше уникальное и неповторимое время.

Да и еще — велс я не осилил от слова совсем. До сих пор тошнит. В ТСлабе же мне не хватает только портфельного тестирования. Но по слухам (возможно уже устаревшим) он уже в бета-тесте.
avatar
Носорог, 
иметь команду некоррелированных ТС
 Мой опыт показывает, что на одном и том же инструменте, с примерно одним и тем же средним временем в позиции это нереально. Ёмкость да, увеличивается, но корреляция прибыльных ТС положительная и достаточно большая. А значит нужно варьировать или инструменты, или среднее время позиции. Но с варьированием второго сложно, если закладывать проскальзывание+комиссия 0,2% от теоретической цены операции.

А с инструментами вообще никаких проблем: берём все, где ликвидность позволяет укладываться в заданное проскальзывние и тестим то, что есть. Потом портфелируем.
avatar
А. Г., в целом согласен — так оно и есть.

Но моя основная мысль была проста — никогда не говори никогда.

Пример из нетрейдерской жизни.
Раньше я ездил на механике и автомат считал, что для девочек. Короче точно не мой вариант — я же пацан :).

Но потом случился  незапланированный полет с зимней трассы — какая-то фура решила на полном ходу поиграть мной в кёрлинг. Хотя я мирно стоял на месте — правда поперек ее борозды (после 6 попыток вылететь с полотна в ходе ритмического заноса).

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

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

Причина/следствие: хрен кто меня сейчас стащит с автомата. Оказалось это офигеть как удобно!!!

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

Самое большое препятствие которое у меня было — мой собственный таракан в голове. Звали его УбежденностьВТомЧтоНаЭтоНужноПотратитьСотниЧеловекоЧасов. 

Более того — фактически я их почти и потратил, но только потому что:
а) не знал правильного ответа (читай — правильных курсов);
б) я через чур люблю учиться — это ж легче чем работать :).

Видать придется запилить отдельный небольшой пост — может кому-то поможет сэкономить свое время.
avatar
Помню времена, когда программеры были именно такими, как показано на картинке. Сейчас в основном это бездари, пишущие посредственный код «на коленке», «по учебнику», с кучей багов. При этом напрочь ох$%евшие на диких зарплатах, чётко понимающие, что если не этот работадатель, то другой наймёт.

Очень жду, когда наши черные, азиаты, обучатся программингу и будут щемить белых выродков в этих, считающимися «высокотехнологичными» сегментах. В общем, примерно как в US узкоглазые и индусы щемят реднеков.

Сегменту рынка программных разработок остро нужна встряска и здоровая свежая кровь. Поблажки и нытьё от госорганов лишь усугубляют ситуацию.

Жду.
Борян Филиппов, мощно заявили )
avatar

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

 Сейчас в основном это бездари, пишущие посредственный код «на коленке», «по учебнику», с кучей багов


А в старые добрые времена, люди сразу рождались с учебником по С++ в зубах и их учить не надо было, а на пятиэтажный дом они даже без разбега запрыгивали ?
Чтобы такое смелое заявление делать,  нужно это видеть где-то изнутри. Поделитесь пожалуйста, в какой IT-компании вы работаете и на какой должности?

avatar
Дмитрий, 

1. Подход и инструменты ушли далеко вперед с тех пор. НЕ ушли — КАДРЫ! Кадры — ОТСТАЮТ! Взбадривать надо этих выродков. Лишь в единицах контор есть нормальные KPI, контроль качества, мотивационные планы.

2. В «старые-добрые» это были энтузиасты. Эксперты. Пионеры. Горели глаза. Хотели — делать. Сейчас — совсем другое. Инфантильность и ох%ение (я о средней температуре по больнице). Почему так? Да потому, что разрабов стало требоваться на порядок больше, а такого кол-во светлых голов в реальности — нет. Поэтому в профессии просто КУЧА непрофпригодных.

3. Не поделюсь.

4. По вашему комментарию вижу, что вы побаиваетесь «острых углов». Видимо — старость. Посмотрите на ситуацию трезво, если вы в игре с прошлого века.
Борян Филиппов, дело не в багах. Вот пример хэлпа, из  которого я не понял ничего

doc.stocksharp.ru/topics/CreateNewOrder.html

Хотя мне нужен был просто код выставления заявки для вставки в программу на C#, куда бы я мог подставить свою цену и номера счетов.

И это при том, что опыт программирования на С++ под MSDOS и даже на ассемблере у меня лет 10 в 80-х-90-х.
avatar
А. Г., может криворукий какой писал, Х3. А может вы чего не догоняете. Прелесть сегодняшнего мира в том, что по большинству вопросов можно найти НЕСКОЛЬКО решений. :) Может имеет смысл погуглить больше помощи. :)
Борян Филиппов, 

Может имеет смысл погуглить больше помощи. :)

Может быть. Но область у нас уж больно специфичная. Поиск по словам «выставление стоп-лимит заявки Quik на C#» в гугле ничего путного не выдает.

А пример хэлпа, в котором поиск нужного кода занимает у меня от силы 10 минут вот 

www.alglib.net/translator/man/manual.csharp.html

и все работает «с полоборота».
avatar
А. Г., да, по трейдинговой и квиковской тематике очень мало инфы. Согласен.
А. Г., неудивительно что вы ничего не поняли в примере. Если вообще не разобравшись как работает фреймворк требовать от него ясности для собственных фантазий, то никакой опыт программирование не поможет, к сожалению даже ассебмблер ) Судя по приведенному вами примеру вы даже хелп не до конца дочитали, не говоря уже о минимальных попытках разобраться.
avatar
Sprite, 
не говоря уже о минимальных попытках разобраться.

А сколько времени надо потратить, чтобы разобраться в таком? Я же привел пример хэлпа, где разбираешься за минуты какой код вставить, хотя и написан он по английски.
avatar
А. Г., не знаю, наверное это индивидуально ) Предположу что от одной минуты до бесконечности. По мне так пример однозначно описывает именно то, что должен — как выставлять заявку в фреймворке. По всей видимости вам нужно было не в коде разбираться, а что такое фреймворки вообще. Для меня ваш посыл звучит так: «Смотрите, вот 3 строчки кода из которых я ничего не понял, а так как под мои представления о задаче это не подходит, то библиотека не работает и надо искать другую».
avatar
Sprite, я вот чего в этой ситуации не понимаю. Я простой алготрейдер и моя задача это создание правил



Почему для того, чтобы получать А, Б,… и реализовывать стрелку я должен разбираться, как работает какой-то фреймворк? Для кого написана такая программа: для пользователя или программиста, знающего, что такое фреймворк? Я, например, про виндовский фреймворк знаю только то, что он нужен для отладки кода в VS и создания выполняемого приложения и поэтому должен быть установлен на компе.

Если программа написана для человека, который должен разбираться как работает тот же фреймворк, то как раз про это и моя картинка в топике.
avatar
А. Г., Мне в этом отношении нравится 1С. Сплошной LowCode
Все в картинках









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



Константин Чащегоров, Зачет! А я все думал, решит ли кто-нибудь создать конфу на 1С, под торговлю или нет...
У меня конечно все на C#, и переводить торговлю на 1С не планирую, но вот журнал сделок не так давно на 1С перевел.
avatar
Prophetic, Спасибо. Ка программист у меня знания то есть. А вот как трейдер я не очень опытный. Если посмотрите документацию и скажете чего не хватает был бы признателен. В профиле есть ссылка на продукт. Прошу не считать рекламой, а обменом мнений.
Prophetic, история знает разных алго разрабов на 1С) Еще у Герчика в команде в Финаме парень сидел на 1С делал
avatar
Андрей К, К сожаление ничего не знаю про Финам и не знаком ни с тем ни с другим.У меня брокер Сбербанк+QUIK+1C+Python
Как трейдер я самоучка.
Андрей К, у нас в Форуме был сотрудник, написавший на 1С бэк-офис и отвечавший за его совмещение с бухгалтерией, которая сидела на  1СБухгалтерия. В принципе у меня контакты остались.

Больше, пожалуй, и не знаю специалистов в 1С.
avatar
А. Г., Я в тему вписался потому, что у меня когда то был логин на форуме 1С ников где в качестве логотипа картинка из поста
forum.mista.ru/users.php?id=34349
Само собой пароль к тому нику я давно забыл и пользуюсь другим.
Но картинка вспомнилась и стал читать пост. Хоть он и по другой теме.
А. Г., Для кого написана такая программа: для пользователя или программиста, знающего, что такое фреймворк?
Разумеется фрейворки пишутся для программистов, для которых они облегчают выполнение задач. Если вы не программист, то вам это а) не надо и б) не понятно. Если вы не программист, зачем тогда было писать что вы и на сях и на ассемблере. Если вы программист, то три строчки кода как выставлять заявку у вас не должны вызывать никаких проблем. Если вы думаете что вы программист, но хотите чтобы фреймворк был «пользователе-ориентирован», то подождите еще лет сто и всё будет.
avatar
Sprite, 
Если вы не программист, зачем тогда было писать что вы и на сях и на ассемблере
программист не объект ориентированных языков, где то тут я прочитал в комменте. Хелп получается чисты ооп, так что сходу не сложилось
avatar
Андрей К, exactly!
avatar
Андрей К, на том же C# можно писать алгоритмы безо всяких «приблуд» типа ООП. Я вообще не понимаю, зачем ООП для тестирования и реализации торгового алгоритма



Куда на этой картинке его (ооп) «прикрутить»? И, главное, зачем.



avatar
А. Г., 
И, главное, зачем.
могу ответить только из личного опыта, так то любое собеседование на тему шаблонов программирования я бы точно завалил )

из личного опыта, когда код робота переваливает тыщ за 15-20 строк кода, все таки ориентировать по проекту на основе классов будет полегче и наверняка уменьшит сам объем кода.
Хотя я вот сейчас очень много разрабатываю под ядро линукса (порядка 20т строк кода), там чистый Си, если руку набить, то навигацию и понимание кода тоже можно вытащить на хороший уровень, но классы бы не помешали )
avatar
Андрей К,  если не писать каждый раз совсем уж уникальное на тысячи операторов, то легко же можно скомпоновать подпрограммы в библиотеку с функциями. А потом просто ее подцеплять в код в самом начале. Я так ещё в конце 80-х делал, когда библиотеки были текстовыми файлами с расширением .h. Сейчас в dll легко скомпоновать. 

Я вообще не понимаю зачем нужны эти классы для вычислительных алгоритмов. Нет, может во всяких графических юзабилити без них никак, но в вычислении или обмене данными я совершенно не понимаю необходимости этих «накруток».
avatar
А. Г., «Я вообще не понимаю зачем нужны эти классы… „  знакомо, тоже начинал на ассемблере и даже первые проги под винду на Си под WinAPI. 
Но все современные ЯП объектно ориентированы, просто примите это как данность и изучите ООП, для человека с Вашим бэкграундом это не проблема.
Согласен, что для кодирования торговых алгоритмов ООП нужен как белке третий глаз.
avatar
ATS74, 
Согласен, что для кодирования торговых алгоритмов ООП нужен как белке третий глаз
 Тут консенсус :). Но я то ещё и том, что зачем «огород городить» с ООП, если всего то и нужно дополнить этот код загрузкой текущих данных и выставлением-снятием- исполнением заявок. Ведь для тестов  и это не нужно, так как историю можно откуда угодно загрузить.
avatar
А. Г., Огород с ООП нужен затем, что ООП делает код более понятным, компактным и снижает вероятность ошибок. Все тоже самое можно запрограммировать на ассемблере, но большинству людей в 2022 году удобнее оперировать объектами. И Вам, когда разберетесь и привыкнете будет удобней. ООП, это как коробка — автомат, тут уже написали. 
А разрабы всех этих систем ориентируются на большинство пользователей и хотят сделать им удобно. Вот например MQL5 уже поддерживает ООП! А MQL это классика жанра.
avatar
ATS74, с «коробкой» — хороший пример. В пробках конечно «автомат» лучше, а во всех  остальных случаях мне механика намного удобнее, машина лучше «слушается» моих команд, быстрее стартует, разгоняется, тормозит, маневры, типа обгона по встречке, гораздо проще выполнять. Хотя и там, и там, я — пользователь. Ни то, ни другое не починю.
avatar
А. Г., На счет «механика намного удобнее,» это что то запредельное...
Механика была экономичнее, но это в прошлом. Для обгона есть кнопочка «Sport», нажимаешь и она рвет с места.  А еще видел машинку Pajero Sport с автоматом, тоже удивился, как это. Оказалось вполне себе джип. Там есть кнопочка блокировки дифференциала и даже 3 колеса можно крутить.
avatar
ATS74, 
Для обгона есть кнопочка «Sport», нажимаешь и она рвет с места.

Ну это Вы о каких-то «крутых» машинах говорите, у меня в семье три машины на двоих с женой, но все бюджетные. Форд и Рено — с автоматами, Шевроле — с механикой. Их и сравниваю.
avatar
Sprite, да и не для программиста, а алготрейдера, три строчки кода не должны вызывать вопросы. Просто их надо привести и объяснить, куда вставить копипастом и что подставить в качестве переменных. 

Тем более, что правила ЕСЛИ (см. картинку выше) все равно где-то кодить надо и алготрейдеру.

Но я как раз и дал ссылку туда, где ничего этого нет.
avatar
А. Г., вы продолжаете меня убеждать что ничего не поняли? Не надо, я это понял.
avatar
Sprite, я продолжаю убеждать, что готовый продукт для алготрейдеров не должен требовать  знаний  продвинутого программиста. Он должен быть ориентирован на человека, которых умеет на бумажке выписывать правила ЕСЛИ и  пользоваться в лучшем случае микрософт офис и программой интернет-трейдинга.
avatar
А. Г., а по моему вы продолжаете жить в иллюзии что современный уровень развития цивилизации позволяет заниматься алготрейдингом без знания программирования. Всё что есть на рынке в виде «кубиков» для страждущих алготрейдеров (в том числе и то, что вы смотрели в виде OSEngine, S#Designer, TSLab) работает или в рекламе или до первой хотелки, которая приходит примерно через 5 минут использования.
avatar
Sprite, я же сказал, что до «кубиков» S# не дошел (их тогда в 2012-м и не было еще). Но мой опыт работы в WealthLab показал, что, например, мои ЕСЛИ в его «кубиках» реализуются с ошибками, хотя в VB+Еxcel «работали как часы».  А код из  VB+Еxcel в обычный C# переписать — это вообще «раз плюнуть» (все формулы из Excel есть в alglib), если использовать обычные двумерные массивы, а не векторные, как в WealthLab.

И нужно то было решить всего две новых задачи: закачку минуток из квика (в Еxcel — это просто делалось по штатным «приблудам» квика) и постановку-снятие заявок: на паре счетов это можно было делать и копипастом в формы квика,  а трастменеждеры, связанные с моим VB+Excel, мне писали помощники, которых не стало.
avatar
А. Г., Продукты для алготрейдеров имеют разную целевую аудиторию. Фреймворки — это для продвинутых пользователей со знанием основ программирования под винду.
avatar
ATS74,  что в данном случае понимать под  «основы программирования под винду»? Я прекрасно писал вычислительные алгоритмы на VB+Excel и спокойно могу перенести любой такой код в С#+alglib. Но для написания кода с использованием S# этого явно оказалось недостаточно.
avatar
А. Г., Представление о том как устроено Win приложение в данном случае на C#. Т.е. Вы программист, пару десктопных программ на C# написали, но делать полноценную ТС с блэкджеком долго и опыта не хватает. Берете фреймворк и тратите время на выявление его багов.
avatar
ATS74, что такое «ТС» в Вашем контексте? Я тут уже дважды постил картинки общего вида торгового алгоритма. Зачем для его полноценных тестирования и реализации знать «как устроено Win приложение на С#»? Для того, чтобы отловить ошибки в коде, достаточно просто установить контрольные срезы и продублировать их расчеты для одного-двух случаев в Excel. Или под «багами» имелись ввиду не ошибки в коде?

А десктопных вычислительных программ я написал с десяток и каждая на 5000 и более операторов. И после выявления ошибок все считали точно.

У меня все тесты торговых алгоритмов были на VB+Excel и все цифры были верные, полностью совпавшие с тем, что потом было перенесено на С#. А то, что я писал на С++ под МSDOS, потом и на Эльбрусе полностью повторилось (коды для Эльбруса писал не я).

PS. Я, кстати, до сих пор визуально сравниваю цифры уровней, рассчитанные в Excel с тем, что считает и ставит мое десктопное приложение. Всё совпадает уже лет 10.
avatar
А. Г., ТС — торговая система, не в плане стратегия — алгоритм, а программа, позволяющая эти алгоритмы автоматизировать, т.е. фреймворк.
Под багами имелось в виду именно баги фреймворка, которых по определению овермного.
В теории фреймворки предоставляют расширенные возможности для тестирования и реализации чего нибудь эдакого. На практике можно и арбитраж в квике на lua запилить, а вот нейросеть наверное трудновато будет, а на s# попроще, т.к. есть какие нибудь библиотеки на c#, которые можно использовать в s#, а вот в wealthlab они не влезут. 
Посмотрел по Вашей ссылке мануал. На первый взгляд все не сложнее чем Trans2Quik API.Странно, что у Вас это вызывает вопросы, если с VB и c# работали работали. Может быть стоит проникнуться основами ООП…
avatar
ATS74, для Trans2Quik под 32-х битную версию в текстовых файлах примеров даны прямые коды с командами и раскрытием переменных. Подцепляем библиотеку вначале, делаем копипаст кода из текстового файла, убираем комментарии о переменных и подставляем свои переменные. Все работает. В 64-х битной правда, сразу ошибки пошли, несмотря на замену библиотеки, но я с этим уже разбираться не стал, с текстовыми файлами и надёжней, и универсальней. В том же Транзак поменял синтаксис в WriteLine () и все заработало. На замену (точнее на ещё одно разветвление в операторе if) потратил от силы 30 минут, дольше (около часа) хэлп к транзаку читал. Данные всех сделок, правда, из квика по прежнему беру, минутки из них сам формирую, по причинам, описанным в комментариях к уже приведенной выше ссылки на DDE-сервер.
Где то же самое по указанной ссылке на документацию S#? А ссылку на alglig я и привел, как пример нормального хэлпа.
avatar
А. Г., В Trans2Quik  надо было типы переменных на 64 битные поменять. Кстати, как Вы получаете обратную связь работая через текстовые файлы ?
Документация по S# понятна программистам на C#. А этот продукт именно для них.
avatar
А. Г., OpenQuant  не понравился?
avatar
Матфизик, ничего не могу сказать, не добрался до него в подробностях.  Но в Форуме наши управляющие его использовали и говорили, что там, как и в WL, все на векторных массивах с C#. Если это так, то опять же были бы сложности с конвертацией векторных массивов в обычные (эту часть кода для WL мне написали специалисты в WL). Но, в принципе, можно было бы попробовать, ведь WL был отвергнут, потому что эта конвертация перегружала комп. Возможно в OP этого бы не было. Но для этого надо было разбираться с встроенным языком, а у меня уже спокойно работало отлаженное десктопное приложение. А для тестов новых систем, любое ПО излишне. Ведь заморачиваться с закачкой текущих данных и заявками для тестов не нужно. Тут скорее дело в идее.
avatar
Матфизик, я писал на опенкванте. 
Мне проще на VBA+Exсel. Потому что могу делать что хочу, легко и непринужденно. А в опенкванте ты все равно чувствуешь себя как в клетке. Конечно, по сравнению в велслабом — круто. И явных ошибок я не нашел. Но неудобно было лично мне. Да и денег стоит, странно платить за неудобство.
avatar
Борян Филиппов, ну как бы счас  программисты пишут алгоритмы и структуры данных на бумаге… а быдлокодеры пишут быдлокод... 

avatar
ves2010, такая трактовка тоже не очень крутая. Тренер должен быть — играющим. А вот эти понты — мол я крутой, пусть код пишут студенты — никогда ни к чему хорошему не приводит.

Всегда было так: мизер элиты, создающей системы и множество обычных наймитов, решающих текучку.
Борян Филиппов, зависть плохое чувство )
avatar
Анатолий И., никогда не завидовал программерам. Ни в чём. Хорошего программиста — всегда положительно оценю.

Ключевое: то, что я написал — это трезвая оценка сегмента рынка труда.
Личные чувства и амбиции здесь ни при чём.
Борян Филиппов, среднестатистический ГБ съест до 30 индусов за год. Потому что те никогда не поймут правил креативной российской бухгалтерии.
avatar
Кто хранит базы по минуткам вопрос. Есть ли смысл хранить цены с интервалом меньше минуты? (сам храню поминутно, но читаю для одних с интервалом 15 сек (входящие в индекс) для других минута (русские акции) для остальных 6 минут(остальные акции облигации))
Константин Чащегоров, мне лично не нужны меньше минуты, поэтому я их и не храню. Я и минуты храню только для самых ликвидных инструментов, которые торгую или торговал.
avatar
А. Г., Я минутки храню 3 дня (хотя могу настроить любой период но не знаю надо ли больше), а дневки неограниченно
Константин Чащегоров, да для текущей торговли мне нужны только минутки сегодняшнего дня и дневки за всю историю. Но я храню для тестов новых алгоритмов, так как у меня все алгоритмы работают по уровням, которые могут появиться внутри дня и  внутри дня и отстопиться. Вот чтобы учесть такое в тестах, мне и нужны минутки.
avatar
Константин Чащегоров, минутки собираем примерно с 2006-7-8-9 года, с момента появления ликвидности у ликвидных  фьючей и акций. 
avatar
SergeyJu, у меня иногда появляется такая мысль что нет смысла долго хранить. Что фактически логи это не история срабатывания технических сигналов а история набегов роботов на текущий день. А набеги не повторяются. Пока торговали в яме и все учились на одной бирже все работало. А сейчас бои без правил.
Константин Чащегоров, если я тестирую Тс, я загоняю все доступные данные. Если нет данных хотя бы с 2009 года, грущу. А вообще, хочу чтобы были самые разные фазы рынка, поэтому и 2008 год, и 2012,  и 2020 надо  при тестировании обязательно использовать. 
Я же не ХФТ, н и дневок или часовок мне мало. 
avatar
Константин Чащегоров, если стратегии опустите ниже минутки, то хранить надо ) со всем вытекающим типа возросшего объема данных
avatar
Тот случай, когда комментарии интереснее, чем сам пост)
avatar
vladimir55, Qpile был. Но я в нем только «ручные» таблицы писал. До конца не разобрался как на нем вычислительные программы писать. И в части автоподстановки чисел в формы заявок там ничего вроде не было.

Да и вообще исторически VB+Excel у меня был до всяких квиков, а C# был выбран потому что сказали, что под WealthLab «так надо». Это только  потом выяснилось, что мой код с векторными массивами несовместим. Мне конечно помогли это сделать через «конвертацию» векторного массива в обычный и обратно, но эта процедура «тормозила»  WealthLab секунд на 15-20, «грузила» процессор (I7)  на 100% и съедала 8Гб оперативки.
avatar
vladimir55, про купайл хочется сказать лаконично. простота хуже воровства. 
avatar
vladimir55, в моих системах значительную роль играют квантили распределений Стьюдента и Фишера с разными степенями свободы. В Excel это «запаянные» функции ещё с 90-х годов прошлого века, в C# они же есть в библиотеке alglib (собственно когда я ее нашел, изучил и проверил полную идентичность с Excel, я и согласился уйти с VB+Excel на C#). Без них цены уровней никак не вычислить. А без этих цен и заявки не выставить. Я не уверен, что эти функции есть в Qpile, а без них только обмениваться данными: VB+Excel (или C#)<->Quik+Qpile. Не думаю, что это проще, чем у меня с текстовыми файлами.
avatar
vladimir55,  у алго есть две абсолютно разные задачи (а) создание алгоритмов (б) их использование в реальном масштабе времени. 
Я могу себе легко представить простенький исполнитель на купайле. Но писать что-то для бэктеста, волкфорварда, монте карло — увольте.
avatar
 Картинки весьма красноречивы...  :)
avatar
Автор темы обладает авторитетом на форуме программистов 1С mista.ru. (Меня там отправили сюда и указали на авторитета с кем посоветоваться про нейросети в алготрединге ) В связи с этим просьба к автору темы посмотреть мой продукт (документацию) и подсказать чего не хватает моей поделке для звания «готовый продукт».
Константин Чащегоров, 
Автор темы обладает авторитетом на форуме программистов 1С mista.ru.

Это точно не про меня. Я и форума такого не знаю и туда никогда ничего не писал. Ники, наверное, просто совпали. У моего ника в рунете просто длинная история, еще с форума Тора-центра с осени 1997-го, потому и не меняю.
avatar
А. Г., Да точно пр Вас. 1С ники не только на 1С программируют. И бывают на разных форумах. Когда я там завел речь про свой продукт народ конечно с критикой был (но были и те кто положительно восприняли). И пришли несколько людей которые нашли меня на этом форуме и сказали что раз А.Г. ему ответил в обсуждении про нейросети, значит возможно и мой продукт чего то стоит. Авторитетность налицо.
smart-lab.ru/blog/736926.php

Вот та тема где Вы мне ответили
vladimir55, я не умею торговать фьючи ручками. И немного знаю тех, кто умеет. Алго, как Кольт на диком западе, всеобщий уравнитель на словах. А на деле требует просто других умений, чем офигенная интуиция, в нашем обществе намного более доступных. 
avatar
Насчёт фреймворков, что насчёт QuantConnect?
avatar

теги блога А. Г.

....все тэги



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