Добрый вечер!
Тоже вопрос по С#, поэтому не стал создавать новую тему, скажите, пожалуйста, если я хочу открыть позицию в конкретное время, как именно надо написать строчку, если брать таймфрейм 1 мин.
В качестве примера предлагаю рассмотреть вход на открытии последней свечи дневной сессии в 18:44.
Я использовал вариант ниже, но этого не произошло.
source.Bars[i].Date.Hour == 18 && source.Bars[i].Date.Minute == 44
и я заметил, что время текущее отличается от времени свечи на 1 мин, кусок лога
18:44:00.89[5]INFO :Скрипт выполнен успешно за 39мс. (13928 баров, время 29.06.2015 18:43:00)
Спасибо.
чего именно не произошло? сделка не открылась ровно в 18:44 или вообще не открылась?
Не было заявки на открытии последней свечи в 18:44, заявка начала ставится по закрытию сессии и 15 мин пока шел клиринг, каждую минуту пыталась поставить. При этом я также в коде прописал время
source.Bars[i].Date.Hour == 18 && source.Bars[i].Date.Minute == 45, чтобы посмотреть как это работает, если сигнал сформировался на закрытии свечи и надо выставить заявку по открытию новой, которая будет аж в 19:00.
Также не ясно, если я возьму больший таймфрейм, как ограничить открытие позы временными рамками к примеру можно открыть только с 19:00 до 20:00 на 15 мин. таймфрейме.
Еще вопрос, как ограничить расчеты только будними днями?
for (int i = ctx.TradeFromBar + 1; i < barsCount; i++)
{
if (Convert.ToInt32(source.Bars[i].Date.DayOfWeek) <= 5) { }
}