← 戻る

Ошибки при сборки исходный код S# на GitHub

Предлагаю всё во одно место сливать.

QuikFixTags.cs не включён в проект Lua, после если скомпилировать дравину Lua, валится Quik

И кпри коннект с Квикм вот такое сообщение выбрасывает:

このトピックは参考になりましたか?

トピックを共有

コメント (21)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Mikhail Sukhov
Mikhail Sukhov

Ребята, еще раз. Если вы не разработчики то не нужно собирать стокшарп из исходников. Вы соберете что то с лишними деталями и оно выдаст ошибки на реальных торгах.

TheRoman
TheRoman 著者

Да, вы правы, видимо иногда скачиваю с кодами которые находятся в работе и на них спотыкаюсь.

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

З.ы.в библиотеки 4.2.72 #Api QuikLua в выставленных ордерах показывает только первый в таблице, в восполненных вообще не один не видит.

Код составлен корректно:


            Trader.NewOrders += orders =>
            {

                foreach (var order in orders)
                {

                    Console.WriteLine("An Order is: {0} a time of order: {1}", order.ToString(), order.LastChangeTime.ToString());

                }

            };

VassilSanych
VassilSanych

TheRoman: Да, вы правы, видимо иногда скачиваю с кодами которые находятся в работе и на них спотыкаюсь. Надеюсь, что Михаил просто имел в виду, что вы как-то криво собираете, а не то, что в общую ветку выкладывают нерабочий код. Иначе - ай-яй-яй. Хотя, конечно, релизная сборка полюбому должна быть стабильней.

RomSunZ
RomSunZ

VassilSanych:

TheRoman: Да, вы правы, видимо иногда скачиваю с кодами которые находятся в работе и на них спотыкаюсь. Надеюсь, что Михаил просто имел в виду, что вы как-то криво собираете, а не то, что в общую ветку выкладывают нерабочий код. Иначе - ай-яй-яй. Хотя, конечно, релизная сборка полюбому должна быть стабильней.

Гитхаб в этом случае действительно удобная штука, которая позволяет вернуться к любому предыдущему фиксу, что позволяет продолжать работать с проектом, даже если крайний фикс выдает какие-либо ошибки.

Mikhail Sukhov
Mikhail Sukhov

Я пытался донести до вас мысль. Главное, что от меня нужно было - вас предупредить и сказать о правильном пути. Как вам хочется делать - это уже ваше мнение.

Вспоминаются слова небезызвестного переводчика Гоблина в ролике про креветки. Что наши соотечественники тухлую вену у креветок не убирают, и поэтому жрут с дерьмом. Запретить не можем - ешьте на зоровье.😀

Могу лишь посоветовать почаще гонять то, что вы сами собираете на демо счетах. И, конечно же, вести версионированность своих роботов. Поэтому что если вы откатите S# на пред коммиты, а при этом робот останется тем же, то это не вернет всю систему в первоначальное состояние.

TheRoman
TheRoman 著者

А вот нашёл окончательные релизы https://github.com/stocksharp/stocksharp/releases, все теперь буду их использовать.

Mikhail Sukhov
Mikhail Sukhov

Negut. Вот что нужно качать. А релизы это не то. Хотя делайте как знаете. Я предупредил.

TheRoman
TheRoman 著者

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

Надеюсь, что Михаил просто имел в виду, что вы как-то криво собираете, а не то, что в общую ветку выкладывают нерабочий код. Иначе - ай-яй-яй. Хотя, конечно, релизная сборка полюбому должна быть стабильней.

Это опять же мы упираемся в стену отсутствия требований к сборке, кто уже набил руку на stocksharp мог бы просто написать требование к сборке (это о том если коряво собираем). Хотя я грешу на то что скачивал исходники которые были в разработке.

Если у нас глюки на последнем проекте, откатить на предыдущий - логично RomSunZ

Если у нас проблема с текущей версией, будем ждать фиксы в следующей.

Если stocksharp исходники не использовать, зачем исходники на GitHub сливать?

По поводу всплытия ошибок, ну они так и так будут всплывать - это факт.

Поэтому что если вы откатите S# на пред коммиты, а при этом робот останется тем же, то это не вернет всю систему в первоначальное состояние.

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


fxold(int i) { return fxnew(i); } fxnew(int i){ return i;}

И не каких проблем старый метод fxold работает в новом fxnew. Ну или отдельно дравину со старыми схемами делать :)

З.ы.а по 4.2.72 #Api QuikLua - вы не ответили: stocksharp с этой связкой работает , а то кроме первого ордера не чего получить не могу и то он неправильно состояние показывает, снятый и исполненный все в статусе "done".

RomSunZ
RomSunZ

Поэтому что если вы откатите S# на пред коммиты, а при этом робот останется тем же, то это не вернет всю систему в первоначальное состояние.

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

Потому что периодически меняется структура библиотеки (например тип был decimal, стал nullable decimal и т.п.

TheRoman: З.ы.а по 4.2.72 #Api QuikLua - вы не ответили: stocksharp с этой связкой работает , а то кроме первого ордера не чего получить не могу и то он неправильно состояние показывает, снятый и исполненный все в статусе "done". Я уже задавал подобный вопрос, и ответ был - Проверяйте баланс заявки. Если баланс 0-исполнена, если отлична от первоначального объема -частично исполнена, если баланс равен объему - отменена. Только так.

Mikhail Sukhov
Mikhail Sukhov

RomSunZ: Я уже задавал подобный вопрос, и ответ был - Проверяйте баланс заявки. Если баланс 0-исполнена, если отлична от первоначального объема -частично исполнена, если баланс равен объему - отменена. Только так.

Нет, не так.

Mikhail Sukhov
Mikhail Sukhov

TheRoman:

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

Для чего исходники бесполезны? Для тупой сборки (вариант с паранойей я сразу отметаю).

Вы делаете все ровно наоборот как нужно. В примере с креветками я привел свою позицию. Людям нужно давать совершать глупые поступки и не отговаривать их. Я вас не буду отговаривать.😀

RomSunZ
RomSunZ

Михаил Сухов:

RomSunZ: Я уже задавал подобный вопрос, и ответ был - Проверяйте баланс заявки. Если баланс 0-исполнена, если отлична от первоначального объема -частично исполнена, если баланс равен объему - отменена. Только так.

Нет, не так.

Михаил, если не так, почему-бы не дать правильный вариант в посте? Более чем уверен, что ответ будет - обращайтесь в платную поддержку...

Mikhail Sukhov
Mikhail Sukhov

RomSunZ: Михаил, если не так, почему-бы не дать правильный вариант в посте? Более чем уверен, что ответ будет - обращайтесь в платную поддержку...

И опять не так.

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

Хотите пользуйтесь тех поддержкой. Хотите код ковыряйте. Для меня главное - чтобы не было дезы на форуме. Это не негатив, но чем меньше дезы, тем проще пользовать стокшарп.

RomSunZ
RomSunZ

Хорошо. Поле State транслирует Pending, Active, Done, Failed, None. Поле Status в Квик Луа не транслируется. Загадка: как определить статус заявки? Кто ответит, тот молодец. Мой метод не верный и в расчет не идет.

P.S. чтобы на форуме не было дезы нужно подсказывать пользователям в какую сторону копать. А учитывая, что на форуме 3 калеки, которые ковыряют как могут, а отец-основатель чихать на их потуги хотел - кроме дезы ничего и не будет. А новые люди, которые приходят на форум и потенциально готовы платить за продукт (ну или за тех поддержку), читая подобную переписку просто сваливают от сюда...Форум больше мертв, чем жив, общения нет и наверное и не будет.

TheRoman
TheRoman 著者

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

Для чего исходники бесполезны? Для тупой сборки (вариант с паранойей я сразу отметаю).

Что конкретно есть "не тупая сборка" на примере? Для того что бы начать разбирать ошибки StockSharp, нужно хотя бы создать несколько работающих проектов имея примеры разработки (или как минимум исходник StockSharp) и работающую платформу, просто если что то в самой платформе не работает, здесь хоть пальцем в небо тычь - потому что для программистов не совсем знакомых с платформой, к примеру ещё не понятно что в итоге должно работать в StockSharp, а что нет и что на выходе стоять, а что бы эти правки пошли потоком платформой должны пользоваться не одна сотня человек.

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

Mikhail Sukhov
Mikhail Sukhov

TheRoman: Для того что бы начать разбирать ошибки StockSharp, нужно хотя бы создать несколько работающих проектов имея примеры разработки (или как минимум исходник StockSharp) и работающую платформу, просто если что то в самой платформе не работает, здесь хоть пальцем в небо тычь - потому что для программистов не совсем знакомых с платформой, к примеру ещё не понятно что в итоге должно работать в StockSharp, а что нет и что на выходе стоять, а что бы эти правки пошли потоком платформой должны пользоваться не одна сотня человек.

Вы ошибаетесь. Хотя бы в том, что вы начинаете делать что-то не с того конца.

TheRoman
TheRoman 著者

Я так понял QuikLua, не работает? У меня лично хоть как верти ордера не все отражает (а что отражает - не совсем корректно), сделки вообще не отражает.

RomSunZ - у вас сделки отражаются?

И самое интересное, StockSharp.QuikLua.DLL - закрытая дравина, исходников на неё не нашёл. Это так?

RomSunZ
RomSunZ

TheRoman: Я так понял QuikLua, не работает? У меня лично хоть как верти ордера не все отражает (а что отражает - не совсем корректно), сделки вообще не отражает.

RomSunZ - у вас сделки отражаются?

И самое интересное, StockSharp.QuikLua.DLL - закрытая дравина, исходников на неё не нашёл. Это так?

Начните с примеров, которые идут с библиотекой. Если там все работает, то меняйте пример под свои задачи. Это самый простой и быстрый способ понять как стокшарп работает. Не пишите для начала робота "с нуля". Найдите пример, который ближе всего для ваших задач, и пилите его. У меня сделки и ордера отражаются. Драйвер QuikLua компилировать не надо. Если вы рабоатете с гитхабом, добавьте соответствующие проекты из гитхаба (коннектор, хмл и т.п.) в свой проект, дайте референсы на них и собирайте свое решение. И еще раз, смотрите примеры, в большинстве случаев найдете ответы на свои вопросы.

TheRoman
TheRoman 著者

Вы ошибаетесь. Хотя бы в том, что вы начинаете делать что-то не с того конца.

Что вы имеете в веду ссылаясь на тот самый "конец", с чего, по вашему мнению, человек перешедший сюда - должен начать? я думаю у всех один и тот же подход.

RomSunZ, Михаил Сухов

  1. я хотел посмотреть на внутренности StockSharp.QuikLua.DLL, исходника не где нет? А то я смотрю его прямо в Квик включать нужно.
  2. Trader.NewTrades += trades => - не работает не где, а вот Trader.MyNewTrades += trades => - выводит, но опять не все, вчерашних моих сделок он не вывел.

пример вызова:


            Trader.NewOrders += orders =>
            {

                Console.WriteLine("NewOrders");

                foreach (var order in orders)
                {

                    Console.WriteLine("Order is: {0} Status: {1} - {1}", order.ToString(), order.State, order.Status);

                }

            };

            Trader.NewMyTrades += trades =>
                {

                    Console.WriteLine("NewMyTrades");

                    foreach (var myTrade in trades) // а нужен ли цикл здесь, всё равно по одной сделки на событие выводит
                    {

                        Console.WriteLine("MyTrades is: {0} Last cost: {1}", myTrade.ToString(), myTrade.Trade);

                    }
                };

//не хочет выводить все сделки :(

            Trader.NewTrades += trades =>
            {

                Console.WriteLine("NewTrades");

                foreach (var myTrade in trades)
                {


                    Console.WriteLine("Trades is: {0} Last cost: {1}", myTrade.ToString(), myTrade.Price);

                }

            };

Ордера вывел на этот раз все, вчера один из ордеров поставленных в Квике в ручную не показывал.

TheRoman
TheRoman 著者

Все сделки деланны на одном сервере Квик, хотя я уже не помню Квик вроде отменил функцию "Свои заявки" - все стали общие.

TheRoman
TheRoman 著者

Нашёл описание NewTrades, вы в мануале подправьте описание, а то NewTrades - NewMyTrades описаны как сделки и мои сделки - и не поймёшь то ли это все сделки в таблице сделки, то ли сделки со статусом "свои", то ли старый вызов Квика "Свои сделки, заявки", или таблица инструментов.

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