Вопрос по уроку №2 "Создание обертки коннекторов"

Вопрос по уроку №2 "Создание обертки коннекторов"
Atom
10/1/2013
Gavrus


Подскажите как передать interFace.SafeConnection класс RealTimeEmulationTrader, (EmulationTrader принимает без ошибок)
Code

// создаем EmulationTrader для тестирования на исторических данных
                var EmulationT = new EmulationTrader(new[] { _security }, new[] { _portfolio })
                    {
                        StorageRegistry = storage, // передаем хранилище EmulationTrader
                        MarketTimeChangedInterval = _timeFrame, // указываем интервал прихода события о смене времени
                        UseMarketDepth = true, // указываем использовать стаканы для эмуляции
                        //   UseCandlesTimeFrame = _timeFrame            // загружаем свечи с указаным тайм - фрэймом
                    };
                interFace.SafeConnection = new SafeConnection(EmulationT);


А вот тут выдает ошибку преобразования типов:
Code

  var portfolio = new Portfolio
                    {
                        Name = "test account",
                        BeginValue = 1000000,
                    };

                _trader = new RealTimeEmulationTrader<QuikTrader>(new QuikTrader(QuikTerminal.GetDefaultPath()), new[] {portfolio});
                    
                interFace.SafeConnection = new SafeConnection(_trader);


Подскажите пожалуйста, как правильно преобразовать тип RealTimeEmulationTrader в BaseTrader Спасибо.



Thanks:


support_Edu

Avatar
Date: 10/1/2013
Reply


Все трейдеры наследуются от интерфейса ITrader.

Попробуйте следующее: interFace.SafeConnection = new SafeConnection((ITrader)_trader);
Просто делаем UpCast.
Но лучше всего переписать SafeConnection так, что бы он работал не с BaseTrader, а с ITrader.
Thanks:

support_Edu

Avatar
Date: 10/1/2013
Reply


Все же привестись не получиться.
Нужно переписать сам SafeConnection.
Thanks:

Gavrus

Avatar
Date: 10/1/2013
Reply


support_Edu
Все же привестись не получиться.
Нужно переписать сам SafeConnection.

В ITrader нету настроек переподключения (ReConnectionSettings)
Code

 // public ITrader Trader { get; private set; }
    public BaseTrader Trader { get; private set; }
    
 //Интервал переподключения
   Trader.ReConnectionSettings.ConnectionSettings.Interval = TimeSpan.FromSeconds(10);            
 //Когда переподключаться
   Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;
Thanks:

IvanB

Avatar
Date: 10/4/2013
Reply


Gavrus
support_Edu
Все же привестись не получиться.
Нужно переписать сам SafeConnection.

В ITrader нету настроек переподключения (ReConnectionSettings)
Code

 // public ITrader Trader { get; private set; }
    public BaseTrader Trader { get; private set; }
    
 //Интервал переподключения
   Trader.ReConnectionSettings.ConnectionSettings.Interval = TimeSpan.FromSeconds(10);            
 //Когда переподключаться
   Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;


Посмотрите проекты
$/StockSharp Lessons/StockSharp.Edu/Additional/Test/RealTimeEmulationTraderAndSafeConnection
Там в классе SafeConnection изменен тип поля Trader на ITrader:
Code

        /// <summary>
        /// Коннектор к торговой платформе
        /// </summary>
        public ITrader Trader { get; private set; }

, соответственно изменен тип аргумента конструктора, который принимает трейдер, теперь тип ITrader:
Code
         public SafeConnection(ITrader trader)
         ...

А также изменен метод безопасного подключения:
Code

        /// <summary>
        /// Подключиться безопасно к торговой платформе
        /// </summary>
        public void ConnectSafe()
        {
            var baseTrader = Trader as BaseTrader;

            if (baseTrader != null)
            {
                //Интервал переподключения
                baseTrader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
                //Когда переподключаться
                baseTrader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;
                //Запускать ли заново экспрорт после переподключения
                baseTrader.ReConnectionSettings.IsReStartExport = true;
            }
         ...
Thanks: Bond Gavrus

Urupa

Avatar
Date: 11/15/2013
Reply


Здравствуйте. Помогите начинающему, пожалуйста.
Во 2ом уроке на 3м этаме (создание формы в которую подключаем StockSharp.TraderConnection и StockSharp.WpfConnectionInterface) правильно ли подключаюсь к SmartCOM 3.0 ? А точнее так не работает, что неправильно?

Code
public partial class MainWindow : Window
    {
        public SmartTrader Trader { get; private set; }

        public MainWindow()
        {
            InitializeComponent();

            Trader = new SmartTrader();
            Trader.Login = "*****";
            Trader.Password = "*****";

            string url = "194.247.135.144:8090";
            string[] sortout = url.Split(':');
            IPEndPoint Server = new IPEndPoint(IPAddress.Parse(sortout[0]), int.Parse(sortout[1]));
            Trader.Address = Server;

            Trader.ApplyWrapper(SmartComVersions.V3);

            interFace.SafeConnection = new SafeConnection(Trader);
        }
    }
Thanks:

IvanB

Avatar
Date: 11/15/2013
Reply


Urupa
Здравствуйте. Помогите начинающему, пожалуйста.
Во 2ом уроке на 3м этаме (создание формы в которую подключаем StockSharp.TraderConnection и StockSharp.WpfConnectionInterface) правильно ли подключаюсь к SmartCOM 3.0 ? А точнее так не работает, что неправильно?


Не вижу ошибок в коде.
Не понятно что именно не работает. Если возникает ошибка, то присылайте скрин-шоты, выводимые сообщения, стек-информацию.
Thanks:

Urupa

Avatar
Date: 11/15/2013
Reply


А есть ли работающий пример коннекта со SmartCOM 2 или 3 через ITrader?
Thanks:

IvanB

Avatar
Date: 11/15/2013
Reply


Urupa
А есть ли работающий пример коннекта со SmartCOM 2 или 3 через ITrader?


Посмотрите в примерах к библиотеке.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy