Проблема с рабочим временем. (Календарь не рабочих дат)

Проблема с рабочим временем. (Календарь не рабочих дат)
Atom
02.05.2013
UsilaDobry


Сегодня не хочет коннектиться мой проект... Похоже где-то проблема с рабочим временем. Нашел на общем форуме код календаря, спасибо добрым людям,

public static class ExchangeBoardHelper
    {
        public static void ApplyHolidays2013(this ExchangeBoard board)
        {
            if (board == null)
                throw new ArgumentNullException("board");
            var holidays = new List<DateTime>();
            const int year = 2013;

            //https://rts.micex.ru/s690
            for (var i = 1; i <= 7; i++)
                holidays.Add(new DateTime(year, 1, i));

            holidays.Add(new DateTime(year, 3, 8));
            holidays.Add(new DateTime(year, 5, 1));
            holidays.Add(new DateTime(year, 5, 9));
            holidays.Add(new DateTime(year, 6, 12));
            holidays.Add(new DateTime(year, 11, 4));

            board.WorkingTime.SpecialHolidays = holidays.ToArray();
        }

        public static void ApplyHolidays2012(this ExchangeBoard board)
        {
            if (board == null)
                throw new ArgumentNullException("board");

            const int year = 2012;

            //https://rts.micex.ru/a254
            var holidays = new[,] { { 1, 2 }, { 2, 23 }, { 3, 8 }, { 3, 9 }, { 4, 30 }, { 5, 1 }, { 5, 9 }, { 6, 11 }, { 6, 12 }, { 11, 5 }, { 12, 31 } };
            var holidayDates = new List<DateTime>();
            for (var i = 0; i < holidays.GetLength(0); i++)
                holidayDates.Add(new DateTime(year, holidays[i, 0], holidays[i, 1]));
            board.WorkingTime.SpecialHolidays = holidayDates.ToArray();

            var workingDays = new[,] { { 3, 11 }, { 4, 28 }, { 5, 5 }, { 5, 12 }, { 6, 9 } };
            var workingDates = new List<DateTime>();
            for (var i = 0; i < workingDays.GetLength(0); i++)
                workingDates.Add(new DateTime(year, workingDays[i, 0], workingDays[i, 1]));
            board.WorkingTime.SpecialWorkingDays = workingDates.ToArray();
        }
    }

вот не пойму как его пристроить к своему проекту. Этот код надо сохранить как класс библиотеки? Потом в проекте StockSharp.TraderConnection надо добавить ссылку на эту библиотеку? А потом в этом проекте вместо строки

Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;

Пишу

Trader.ReConnectionSettings.WorkingTime = ExchangeBoardHelper.ApplyHolidays2013(ExchangeBoard.Forts.WorkingTime);

Выдается ошибка Ошибка 1 Наиболее подходящий перегруженный метод для "StockSharp.Calendar2013.ExchangeBoardHelper.ApplyHolidays2013(StockSharp.BusinessEntities.ExchangeBoard)" имеет несколько недопустимых аргументов

Ошибка 2 Аргумент "1": преобразование типа из "StockSharp.BusinessEntities.WorkingTime" в "StockSharp.BusinessEntities.ExchangeBoard" невозможно


Теги:


Спасибо:


MenDel

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


UsilaDobry: Сегодня не хочет коннектиться мой проект... Похоже где-то проблема с рабочим временем. Нашел на общем форуме код календаря, спасибо добрым людям,

public static class ExchangeBoardHelper
    {
        public static void ApplyHolidays2013(this ExchangeBoard board)
        {
            if (board == null)
                throw new ArgumentNullException("board");
            var holidays = new List<DateTime>();
            const int year = 2013;

            //https://rts.micex.ru/s690
            for (var i = 1; i <= 7; i++)
                holidays.Add(new DateTime(year, 1, i));

            holidays.Add(new DateTime(year, 3, 8));
            holidays.Add(new DateTime(year, 5, 1));
            holidays.Add(new DateTime(year, 5, 9));
            holidays.Add(new DateTime(year, 6, 12));
            holidays.Add(new DateTime(year, 11, 4));

            board.WorkingTime.SpecialHolidays = holidays.ToArray();
        }

        public static void ApplyHolidays2012(this ExchangeBoard board)
        {
            if (board == null)
                throw new ArgumentNullException("board");

            const int year = 2012;

            //https://rts.micex.ru/a254
            var holidays = new[,] { { 1, 2 }, { 2, 23 }, { 3, 8 }, { 3, 9 }, { 4, 30 }, { 5, 1 }, { 5, 9 }, { 6, 11 }, { 6, 12 }, { 11, 5 }, { 12, 31 } };
            var holidayDates = new List<DateTime>();
            for (var i = 0; i < holidays.GetLength(0); i++)
                holidayDates.Add(new DateTime(year, holidays[i, 0], holidays[i, 1]));
            board.WorkingTime.SpecialHolidays = holidayDates.ToArray();

            var workingDays = new[,] { { 3, 11 }, { 4, 28 }, { 5, 5 }, { 5, 12 }, { 6, 9 } };
            var workingDates = new List<DateTime>();
            for (var i = 0; i < workingDays.GetLength(0); i++)
                workingDates.Add(new DateTime(year, workingDays[i, 0], workingDays[i, 1]));
            board.WorkingTime.SpecialWorkingDays = workingDates.ToArray();
        }
    }

вот не пойму как его пристроить к своему проекту.

В начале прописать ExchangeBoard.Forts.ApplyHolidays2013();

Спасибо: UsilaDobry

UsilaDobry

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


MenDel: В начале прописать ExchangeBoard.Forts.ApplyHolidays2013();

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

Прописал по Вашей рекомендации

Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.ApplyHolidays2013();

Выдается ошибка: Ошибка 1 Неявное преобразование типа "void" в "StockSharp.BusinessEntities.WorkingTime" невозможно В таком варианте вроде бы ошибок нет... ExchangeBoard.Forts.ApplyHolidays2013(); Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;

Спасибо:

MenDel

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


Я не знаю что там за коннектор. Я просто написал так и робот понял что сегодня не праздник. Из этого сделал вывод, что все сработало.


public MainWindow()
        {
            InitializeComponent();
            ExchangeBoard.Forts.ApplyHolidays2013();
        }
Спасибо:

UsilaDobry

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


MenDel: Я не знаю что там за коннектор. Я просто написал так и робот понял что сегодня не праздник. Из этого сделал вывод, что все сработало.

public MainWindow() { InitializeComponent(); ExchangeBoard.Forts.ApplyHolidays2013(); }


И у меня подключился, благодарю...
Спасибо:


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

loading
clippy