← 返回

Ошибки компиляции 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

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

本主题对您有帮助吗?

分享主题

评论 (30)

登录创建账户, 登录或注册以发表评论

Alexander
Alexander

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

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

Yura
Evgeny_K
Evgeny_K 作者

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 作者

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

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 作者

У меня, оказывается стоял 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: Все разобрался😎, и пришел к одной и той же проблеме что и у Евгения, до конца не доходит, хотя все грузится и график строится.Отчет заблочен.

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