У вас не стоит Flash Player
Настройки
#81230 - Wed Feb 15 2017 10:55 AM Время/День/Месяц Тика
Andrey2017 Offline
stranger

Registered: Wed Feb 15 2017
Записи: 2
Дорогие коллеги,

подскажите, пожалуйста, как при помощи api узнать текущее время, неделю, месяц. Я новичок, в документации пока не особо получается разобраться. Заранее благодарен.

Наверх
#81231 - Wed Feb 15 2017 11:33 AM Re: Время/День/Месяц Тика [Re: Andrey2017]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Текущее - это какое?
Code:
  public class Indicator : IBar2DoubleHandler {
    public IList<double> Execute(ISecurity source) {
      var now = DateTime.Now;  // Локальное время
      var time = now.TimeOfDay;
      var dayOfWeek = now.DayOfWeek;
      var month = now.Month;
      ...
    }
  }

// Другой пример
  public class Indicator : IBar2DoubleHandler {
    public IList<double> Execute(ISecurity source) {
      var bars = source.Bars;
      int count = bars.Count;
      var list = new double[count];
      for (int i = 0; i < count; i++) {
        var now = bars[i].Date; // Дата и время текущей свечи
        var time = now.TimeOfDay;
        var dayOfWeek = now.DayOfWeek;
        var month = now.Month;
        ...
      }
      return list;
    }
  }
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#81237 - Wed Feb 15 2017 01:53 PM Re: Время/День/Месяц Тика [Re: jhgjrht]
Andrey2017 Offline
stranger

Registered: Wed Feb 15 2017
Записи: 2
Спасибо. Я собственно пытаюсь получить текущее время(номер дня недели) свечи и сравнить с тем, что задал пользователь. Если они равны - вернуть true. Но почему-то не работает. Буду очень признателен, если подскажите что не так

Code:

    public class DayContract : IOneSourceHandler, IDoubleReturns, IValuesHandler, ISecurityInputs
    {
    	
    	 [HandlerParameter(Name = "день", Default = "1")]
        public int Depth
        {
            get; 
            set;
        }
         
          public double Execute(ISecurity sec, int bar)
        {
            
            var currDate = sec.Bars[bar].Date.Date;
            var Date1 = currDate.DayOfWeek;
            
            if (Date1 == Depth)
             	return true;
             }
   
    	  }
        
    	}



Отредактировано Andrey2017 (Wed Feb 15 2017 01:54 PM)

Наверх
#81242 - Wed Feb 15 2017 04:16 PM Re: Время/День/Месяц Тика [Re: Andrey2017]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
DayOfWeek - это день недели, а не время. Так попробуйте:
if ((int)Date1 == Depth)
return true;
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх


Moderator:  ViL, sar