Sync
Atom
05.09.2013
Buratino


Почему возникает ошибка при компиляции (до этого красным ничего не подчёркивается), когда я добавляю к правилу .Sync(_locker) инициализированный как
Код
private readonly SyncObject _locker = new SyncObject();


А в итоге:
Error 1 The type 'Wintellect.PowerCollections.CollectionBase`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'PowerCollections, Version=1.0.2224.30206, Culture=neutral, PublicKeyToken=8d05ee679e87a45f'.

Теги:


Спасибо:


< 1 2 3 
IvanB

Фотография
Дата: 16.09.2013
Ответить


Buratino
Но ведь В посте 10 дана ссылка на проект на базе которого и проверялось. Библиотек перед этим никаких не заменял.


Посмотрите проект $/StockSharp Lessons/StockSharp.Edu/Additional/Lesson_last_version_ss/01/StockSharpStart
в частности следующий код:
Код

            //подписываемся на событие подключения, как только подлючимся, сразу запустим экспорт
            _trader.NewOrders += orders => this.GuiAsync(() =>
                {
                    //указываем количество зарегистрированных заявок
                    tbOrdersCount.Text = _trader.Orders.Count().ToString();
                    
                    Debug.WriteLine("Getting orders: {0}", orders.Count());
                    foreach (var order in orders)
                    {
                        Debug.WriteLine("Order State: {0}; {1}", order.State, order.ToString());
                    }
                });

            _trader.OrdersChanged += orders =>
                {
                    Debug.WriteLine("Changed orders: {0}", orders.Count());
                    foreach (var order in orders)
                    {
                        Debug.WriteLine("+Order State: {0}; {1}", order.State, order.ToString());
                    }
                };


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

Buratino

Фотография
Дата: 16.09.2013
Ответить


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

Код

using System;
using System.Linq;
using System.Threading;
using System.Windows;
using StockSharp.Algo.Strategies;
using StockSharp.BusinessEntities;
using StockSharp.Quik;
using StockSharp.TraderConnection;

namespace SampleRobot
{
    public partial class MainWindow
    {
        public QuikTrader Trader { get; private set; }

        public MainWindow()
        {
            InitializeComponent();

            var quikPath = QuikTerminal.GetDefaultPath()

            InterFace.SafeConnection = new SafeConnection(Trader = new QuikTrader(quikPath));
        }

        private void Button_Click_1(object sender, System.Windows.RoutedEventArgs e)
        {
            InterFace.SafeConnection.Trader.RegisterMarketDepth(InterFace.SelectedSecurity);
            var strategy = new MyStrategy
            {
                Portfolio = InterFace.SelectedPortfolio,
                Security = InterFace.SelectedSecurity,
                Trader = InterFace.SafeConnection.Trader
            };
            strategy.Start();
        }

        private class MyStrategy : Strategy
        {
            protected override void OnStarted()
            {

                MyMethod();
                base.OnStarted();
            }

            private void MyMethod()
            {
                while (true)
                {
                    var order = this.BuyAtLimit(2000, 1);
                    RegisterOrder(order);
                    MessageBox.Show(order.State + " \n Pending is "
                        + (order.State == OrderStates.Pending)
                         + " \n Всего Pending is " + Orders.Count(o => o.State == OrderStates.Pending));

                    Thread.Sleep(5000);
                    MessageBox.Show(order.State + " \n Pending is "
                        + (order.State == OrderStates.Pending)
                         + " \n Всего Pending is " + Orders.Count(o => o.State == OrderStates.Pending));
                    CancelActiveOrders();
                }
            }
        }
    }
}

Спасибо:
< 1 2 3 

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

loading
clippy