background

Tradematic Support Center

Guides, articles, videos and links for Tradematic users and developers.

Как сравнить текущую цену с ценой предыдущего дня в указанное время, например, 20:00?

42987РЕДАКТОР КОДА ВРЕМЯ ПРЕДЫДУЩИЙ ДЕНЬ DATETIME DATETIMETOBAR БАР

Cоздаем переменную prevWorkDay класса DateTime и присваеваем ей дату сегодняшнего дня и искомое время, в данном случае 20:00. Прежде чем ссылаться на предыдущий день, нужно проверить существует ли он в нашей истории или нет, так как могут быть праздники и выходные. Для этого используем DateTimeToBar(prevWorkDay,true), который возвращает номер бара указанной даты, а если такого бара нет, то возвращает отрицательное значение -1. Данную проверку используем в цикле do while, где от переменной prevWorkDay вычитаем 1 день. Не забываем проверять, что перебираем только те бары, которые находятся в рамках нашей истории. Получаем следующий код:

DateTime prevWorkDay=new DateTime(Date[bar].Year,Date[bar].Month, Date[bar].Day,20,0,0);
do
{
	prevWorkDay=prevWorkDay - TimeSpan.FromDays(1);
}
//проверка на существование бара с указанной датой и дополнительно проверям, что не ушли за меющуюся историю.
while((DateTimeToBar(prevWorkDay,true)<0) && (prevWorkDay>Date[0]));

if (Close[bar]>=Close[DateTimeToBar(prevWorkDay,true)])
{
	BuyAtClose(bar);
}

This website uses cookies. By continuing to use this website, you consent to our Privacy Policy. OK