← Atrás

Ошибки компиляции SampleHistoryTesting

Решил начать изучение S# c примера SampleHistoryTesting из библиотеки. Хочу его откомпилировать, запустить на исполнение. Щелкнул 2 раза на файле \stocksharp\Sources\SampleHistoryTesting\SampleHistoryTesting.csproj. Открылся проект в среде разработки Visual C#. Выбрал из меню Debug -> Start debugging. На этапе сборки (build) появились 2 ошибки:

Error 1: No overload for method 'GetMarketPrice' takes '1' arguments File: C:\projects-data\asset_management\trading\stocksharp\Sources\SampleHistoryTesting\SmaStrategy.cs Line: 89 Column: 45 Project: SampleHistoryTesting

Error 2: 'StockSharp.Algo.Logging.FileStrategyLogger' does not contain a constructor that takes '1' arguments File: C:\projects-data\asset_management\trading\stocksharp\Sources\SampleHistoryTesting\MainWindow.xaml.cs Line: 145 Column: 14 Project: SampleHistoryTesting

Наверно библиотеку не подключил? Если "да", то как подключить? Расскажите пожалуйста, как исправить ошибки?

¿Le resultó útil este tema?

Compartir tema

Comentarios (30)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Alexander
Alexander

Какая версия библиотеки? Свежие примеры со stocksharp.codeplex.com компилятся, только что проверил.

Какие warnings \ errors выдаются на этапе компиляции?

Yura
Evgeny_K
Evgeny_K Autor

Alexander: Какая версия библиотеки? Свежие примеры со stocksharp.codeplex.com компилятся, только что проверил.

Какие warnings \ errors выдаются на этапе компиляции?

Версия 3.2.2. Ошибки я написал выше. Это, кажется, ошибки линковщика, а не компилятора. Думаю, мне просто надо подключить диманические библиотеки. Я их нашел даже в дистрибутиве в папке References. Просто я C# сегодня начал изучать. :) Чисто теоретически понимаю, надо открыть какой-то инспектор проекта, в нем какую-то вкладку и в ней прописать путь до этих dll-ек, чтобы линкер их подхватил. Скажите, как мне это сделать?

Alexander
Alexander

Evgeny_K:

Alexander: Какая версия библиотеки? Свежие примеры со stocksharp.codeplex.com компилятся, только что проверил.

Какие warnings \ errors выдаются на этапе компиляции?

Версия 3.2.2. Ошибки я написал выше. Это, кажется, ошибки линковщика, а не компилятора. Думаю, мне просто надо подключить диманические библиотеки. Я их нашел даже в дистрибутиве в папке References. Просто я C# сегодня начал изучать. :) Чисто теоретически понимаю, надо открыть какой-то инспектор проекта, в нем какую-то вкладку и в ней прописать путь до этих dll-ек, чтобы линкер их подхватил. Скажите, как мне это сделать?

Попробуйте перекачать архив. Только что проверил со свежескачанным - всё компилируется из коробки, без изменений всяких.

Evgeny_K
Evgeny_K Autor

Что такое "все компилируется из коробки"? Вы какой файл открываете? Не могли бы вы описать как вы запускаете компиляцию?

Alexander
Alexander

Evgeny_K: Что такое "все компилируется из коробки"? Вы какой файл открываете? Не могли бы вы описать как вы запускаете компиляцию?

запустил StockSharp.sln, нажал правой кнопкой по проекту SampleHistoryTesting -> Rebuild.

hobo
hobo

Evgeny_K Да, проблема с некомпиляцией уже несколько версий тянется. Вначале у getmarketprice количество аргументов, потом логгер усложнился. Так как вы только начали изучать, и вам нужны простые советы, измените вот что:

_logger = new FileStrategyLogger("log.txt");
```на 
```csharp
_logger = new FileStrategyLogger("log.txt", true);
var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction), base.Volume);

на

var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction, 0, MarketPriceTypes.Opposite), base.Volume);
Alexander
Alexander

hobo: Evgeny_K Да, проблема с некомпиляцией уже несколько версий тянется. Вначале у getmarketprice количество аргументов, потом логгер усложнился. Так как вы только начали изучать, и вам нужны простые советы, измените вот что:

_logger = new FileStrategyLogger("log.txt");

> ```csharp
_logger = new FileStrategyLogger("log.txt", true);

var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction), base.Volume);

> на
> ```csharp
var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction, 0, MarketPriceTypes.Opposite), base.Volume);
_logger = new FileStrategyLogger("log.txt");

тоже работает. в C# 4.0 добавили поддержку: MSDN

Evgeny_K
Evgeny_K Autor

У меня, оказывается стоял Visual C# 2008. Он файл StockSharp.sln вообще открывать не хотел. Сейчас поставил Visual C# 2010, и проект SampleHistoryTesting успешно откомпилировался.

Правда, при открытии солюшена были какие-то сообщения об ошибках от других проектов.

Спасибо за советы, Alexandr и hobo!

Евгений
Евгений

Запускаю пример SampleHistoryTesting - получаю ошибку в строке

_curveItems = this.Curve.CreateCurve(_strategy.Name, Colors.DarkGreen);
``` Версия 3.2.8, в 3.2.7 тоже самое, а вот к примеру в 3.2.5 запустился без ошибки.

> System.MissingMethodException не обработано пользовательским кодом
>   Message=Метод не найден: "System.Drawing.Color Ecng.Xaml.XamlHelper.ToWin(System.Windows.Media.Color)".
>   Source=StockSharp.Xaml
>   StackTrace:
>        в StockSharp.Xaml.EquityCurveChart.CreateCurve(String title, Color color)
>        в SampleHistoryTesting.MainWindow.StartBtn_Click(Object sender, RoutedEventArgs e) в D:\S#\StockSharp_3.2.8_Sources\Samples\Testing\SampleHistoryTesting\MainWindow.xaml.cs:строка 138
>        в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
>        в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
>        в System.Windows.Controls.Button.OnClick()
>        в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
>        в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
>        в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
>        в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
>        в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
>        в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
>        в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
>        в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
>        в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
>        в System.Windows.Input.InputManager.ProcessStagingArea()
>        в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
>        в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
>        в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
>        в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
>        в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
>        в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
>        в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
>        в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
>        в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
>   InnerException:
Mikhail Sukhov
Mikhail Sukhov

Евгений: Запускаю пример SampleHistoryTesting - получаю ошибку в строке

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

Евгений
Евгений

С гидрой тоже проблемы, она собирается, но при запуске выдает такую ошибку

RTS 19:24:50.8140227 System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "LumiSoft.Net, Version=2.0.4228.25236, Culture=neutral, PublicKeyToken=null" или один из зависимых от них компонентов. Не удается найти указанный файл. Имя файла: "LumiSoft.Net, Version=2.0.4228.25236, Culture=neutral, PublicKeyToken=null" в StockSharp.Algo.History.Rts.RtsHistorySource.GetTrades(DateTime date) в StockSharp.Hydra.Rts.RtsTradeSource.Load(Security security) в D:\S#\StockSharp_3.2.8_Sources\Hydra\Plugins\Rts\RtsTradeSource.cs:строка 170 в StockSharp.Hydra.Worker.<Download>b__f(IMarketDataSource source) в D:\S#\StockSharp_3.2.8_Sources\Hydra\Hydra\Worker.cs:строка 136

Полечил тем, что вручную добавил в папку эту сборку

Mikhail Sukhov
Mikhail Sukhov

Евгений: С гидрой тоже проблемы, она собирается, но при запуске выдает такую ошибку

Это 3.2.8?

Евгений
Евгений

Это 3.2.8?

Да

Mikhail Sukhov
Mikhail Sukhov

Это 3.2.8?

Да

Разобрался. Оказывается в студии автоматический билд версий есть... Залил на бокс нужную версию. Попробуйте.

Евгений
Евгений

Это 3.2.8?

Да

Разобрался. Оказывается в студии автоматический билд версий есть... Залил на бокс нужную версию. Попробуйте.

Гидра собралась правильно, запустилась без ошибки. Вопрос, я запустил качать данные с предыдущей версией dll, новая на что-то влияет?

А по поводу примера SampleHistoryTesting - это из-за этой же dll проблемы? У меня также возникает ошибка

Евгений
Евгений

Запустил пример. Где-то за 15 минут он почти до конца дошел. По бару совсем чуть-чуть осталось. Ждал долго, бар так и не дошел до конца. И кнопка отчет заблокирована.

Евгений
Евгений

Поменял таймфрейм на 10 минут. Процесс вообще на месте стоит. Поставил 15 минут процесс пошел. Поставил 20 - опять на месте. В чем проблема?

Yura
Yura

Добрый день. запустил пример SimpleHistoryTrading выбрал файл из архива RIU9@RTS загрузка прошла быстро. Нажимаю отчет, открывает Excel , и пишет такое: "Действительный формат открываемого файла sma.xls отличается от указываемого его расширением имени файла.Перед открытием данного файла убедитесь в том , что не поврежден и получен из надежного источника.Открыть этот файл сейчас?" Я нажимаю Да, выводит такое: "в книге "sma.xls" обнаружено содержимое ,которое не удалось прочитать .Попробовать восстановить содержимое книги?Если вы доверяете источнику книги нажмите да" Я нажимаю да , мне выводит первое сообщение, нажимаю да открывается файл но данных никаких нет. Есть названия столбцов, строк Код инструмента: RIU9 Портфель: test account Общее время работы: 00:00:01 Общее время исполнения: 00:00:00 Позиция: 0 P&L: 0 Проскальзывание: 0 Задержка: 00:00:00

Что не так?

Mikhail Sukhov
Mikhail Sukhov

Yura: Добрый день. запустил пример SimpleHistoryTrading выбрал файл из архива RIU9@RTS

Вот это меня смущает. Что вы сделали?

Yura
Yura

прошу прощения, я запускал старую версию примера.Скачал новую 3.2.9 ,от тужа же скачал и RIU9RTS. выбираю папку с тиками за 2008_12_15 , стартую , все по нулям, ни графика ни значений, отчет нажать нельзя.

Mikhail Sukhov
Mikhail Sukhov

Yura: выбираю папку с тиками за 2008_12_15

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

Евгений
Евгений

Mikhail Sukhov:

Yura: выбираю папку с тиками за 2008_12_15

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

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

if (_trader.State == EmulationStates.Stopped)

Когда прогнаны все данные, состояние эмулятора автоматически меняется?

А вот что с таймфреймом я так и не понял. Это у меня только?

Поменял таймфрейм на 10 минут. Процесс вообще на месте стоит. Поставил 15 минут процесс пошел. Поставил 20 - опять на месте.

Mikhail Sukhov
Mikhail Sukhov

Евгений: То что не до конца доходит это я так понял ошибка в интерфейсе, потому что тестирование фактически полностью проходит.

if (_trader.State == EmulationStates.Stopped)

> 
> Когда прогнаны все данные, состояние эмулятора автоматически меняется?

Меняет, но мы уже сами нашли багу, что последний день не проторговывается. Из-за этого на 100% нет завершения.
Mikhail Sukhov
Mikhail Sukhov

А вот что с таймфреймом я так и не понял. Это у меня только?

Поменял таймфрейм на 10 минут. Процесс вообще на месте стоит. Поставил 15 минут процесс пошел. Поставил 20 - опять на месте.

У всех. Багу нашел, буду лечить.

Yura
Yura

что-то вот такое получается http://saveimg.ru/show-image.php?id=36ca21c2fd40f339276196e0874b2247

Yura
Yura

Все точно так же как у Евгения.

Yura
Yura

Запустил пример. Где-то за 15 минут он почти до конца дошел. По бару совсем чуть-чуть осталось. Ждал долго, бар так и не дошел до конца. И кнопка отчет заблокирована.

Yura
Yura

Для украинской биржи

Пишу такое пример не работает 0 данных: Id = "histiry", Code = "UXM0", Name = "UX-6.10", MinStepSize = 5, MinStepPrice = 2, Exchange = Exchange.Test,

Yura
Yura

Все разобрался😎, и пришел к одной и той же проблеме что и у Евгения, до конца не доходит, хотя все грузится и график строится.Отчет заблочен.

Евгений
Евгений

Yura: Все разобрался😎, и пришел к одной и той же проблеме что и у Евгения, до конца не доходит, хотя все грузится и график строится.Отчет заблочен.

Кнопку Старт нажмите еще раз