← Back

Ошибка Verifier по 4 строке инструментов

Добрейшего всем! Прошу прощения за дилетантские вопросы, помогите разобраться, пожалуйста.

Михаил, а почему Verifier ругается при проверке таблиц: "в таблице "инструменты" по ондексу 4 должна быть строка "Статус". Там и ведь и стоит строка "Статус", это ее краткое наименование. Полное наименование в Квике "Статус торговли инстументом".

Из-за этого свечи могут не строиться в SampleCandles?

И ошибка выдается "Не задана ссылка на объект" при попытке получить отчет в SampleSMA.

Comments (29)

Login or Create account, Log in or register to leave a comment

Mikhail Sukhov
Mikhail Sukhov

Такие ошибки стоит пропускать мимо, потому что Verifier не знает все тонкости названий.

Нет не влиляет. Приведите полный текст ошибки. И версию S#.

Eugeny
Eugeny Author

Ага, спасибо, с этим понял!

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

Mikhail Sukhov
Mikhail Sukhov

Вы скриншот или текст? В группу в раздел Файлы, если картинка... Но лучше будет текст.

Eugeny
Eugeny Author

Михаил, я новичок в компах, всего 20 лет с ними, и пока для меня сложновато такой текст набрать, А скопипэйстить его не получилось. Так что залил картинку -. Link_Object.jpg называется.

Mikhail Sukhov
Mikhail Sukhov

Ок, понятно что эта ошибка никакого отношения к свечкам не имеет... Эта ошибка говорит о том, что стратегия еще не создана. Я думаю будет правильнее начать с примеров по C#. Язык просто, популярный, перспективный (в трейдинге уж точно). Потому как ошибки в примере находить - это некий входящий барьер для пользования S#.

Eugeny
Eugeny Author

Ну, да, наверное так и есть. Стараюсь, не все пока получается, но двигаюсь потихоньку. Только вот, я же запускаю екзешник из вами созданной стратегии. Папка SampleSMA из EXE каталога. Другие примеры ведь запускаются, и работают, не все правда....

Mikhail Sukhov
Mikhail Sukhov

Какие примеры не работают?

Eugeny
Eugeny Author

SampleSMA - ошибка: про которую написал. SampleCandles - ошибок не выдает никаких, свечей тоже не рисует, график чист.

Mikhail Sukhov
Mikhail Sukhov

А экспорт запустили?

Eugeny
Eugeny Author

Экспорт внешних транзакций? Если это, то да, включен, конечно. Sample ведь работает нормально, да и SampleConsole без вопросов. Я чего-то где-то не так делаю, но так слабо понимаю где это нет так, что не понимаю, что именно там не так...

Mikhail Sukhov
Mikhail Sukhov

Нет, экспорт данные. Тот что идет по ДДЕ. Там кнопка такая должна быть на форме.

Eugeny
Eugeny Author

Ага, экспорт по DDE запускается, как с помощью кнопки, так и в ручном режиме. Ошибок не выдает. Кнопки "Отменить заявки" и "Старт" не активны, никаких свечек на графике тоже не рисуется.

Иванов Андрей
Иванов Андрей

Просто нажимаете Ctrl+C в активном окне. Выделять ничего не надо, просто жмите Ctrl+C и вставляйте куда вам надо.

Eugeny
Eugeny Author

Точно, не знал: спасибо! вот уж, правда век живи, век учись.

Eugeny
Eugeny Author

Прощу прощения, чтоб не создавать новую тему, скажите: что сюда писать: _micex = portfolios.First(p => p.Name.Contains("NL"));

portfolios.First - номер первого портфеля? первого аккаунта? NL - что такое? номер счета?

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

artemox
artemox

Ответ в этой ветке:

http://groups.google.ru/group/stocksharp/browse_frm/thread/f51e0f6320...

Это фильтр по счету, Вы его должны изменить под себя First - это значит первый экземпляр из коллекции, удовлетворяющей указанному фильтру

Eugeny
Eugeny Author

О, спасибо. Только вот ссылка на ветку не открывается.

artemox
artemox

Поищите в группе по тексту "NL"

Eugeny
Eugeny Author

Вот в том-то и дело, что поиск - это первое, что я сделал. Символы NL - вроде как есть на демо-квике, насколько я из описания понял. Циферки от реального счета фортс у меня не подошли, а micex у меня нет. Уже все комбинации вроде перепробовал, не одной не угадал.

Mikhail Sukhov
Mikhail Sukhov

В примере ищется первый попавшийся портфель для мамбы. Если у Вас нет этого счета, используйте просто другой. Зачем что-то подбирать?

Eugeny
Eugeny Author

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

Вот, смотрите: в моем примере у меня счета на ммвб нет, но есть фортс. Соответственно строку _micex = portfolios.First(p => p.Name.Contains("NL")); я поменял на _forts = portfolios.First(p => p.Name.Contains("SPBFUT2344a")); где SPBFUT2344a - мой аккаунт на бирже. При прверке выдается ошибка "Последовательность не содержит соответствующий элемент" с указанием на эту строчку.

Вот что в этом не правильно? или где не правильно?

Mikhail Sukhov
Mikhail Sukhov

string.Contains - ищет строку в строке. Такой поиск нужен для того, когда точно неизвестно название. У Вас счет точный - используйте простое равенство:

_forts = portfolios.First(p => p.Name == "SPBFUT2344a");

Это первое. Второе, а что приходит в коллекцию portfolios? Посмотрите под отладчиком? Может там просто с буквой ошибка?

Eugeny
Eugeny Author

Михаил, видимо второе. после подстановки строки с конкретным номером счета проблема не решилась. Отладчик пишет вот это:

System.Reflection.MethodAttributes.FamANDAssem | System.Reflection.MethodAttributes.Family | System.Reflection.MethodAttributes.Static | System.Reflection.MethodAttributes.HideBySig

в System.Linq.Enumerable.First[TSource](IEnumerable1 source, Func2 predicate) в SampleSMA.MainWindow.<Connect_Click>b__2(IEnumerable1 portfolios) в C:\Documents and Settings\Admin\Рабочий стол\S#\Sources \SampleSMA\MainWindow.xaml.cs:строка 114 в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в Ecng.Trading.BusinessEntities.BaseTrader.EventsContainer2.Raise(T item)

Mikhail Sukhov
Mikhail Sukhov

Я имед ввиду несколько другое. Просто поставить точку прерывания и посмотреть, что находится в самой переменной. Какие там портфели.

Eugeny
Eugeny Author

Красота, вы - гений! простите, не в силах сдержать эмоции. Уже две недели не могу разобраться с .NET , сижу и гляжу на все это как баран на новые ворота.

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

Mikhail Sukhov
Mikhail Sukhov

Наводите мышкой на переменную. Всплывает посказка. Или выделяете переменную и нажимаете Ctrl+Alt+Q

Eugeny
Eugeny Author

Странно, а почему выдает что "ClientCode = "XXX"" Это нормально, или где-то его нужно прописать?

Mikhail Sukhov
Mikhail Sukhov

http://stocksharp.com/doc/help/html/P_Ecng_Trading_Quik_QuikTrader_ClientCode.htm

Нужен или нет зависит от рынка и брокера.

Eugeny
Eugeny Author

ага, спасибо!

ладно, сейчас нужно переварить все вышесказанное. попробую запустить.