Tradematic Support Center
Guides, articles, videos and links for Tradematic users and developers.
Как прописать в коде закрытие позиции перед выходными и праздничными днями?
56656РЕДАКТОР КОДА ЗАКРЫТИЕ ПЕРЕД ВЫХОДНЫМ ЗАКРЫТИЕ ВЫХОДНОЙ ВЫХОДПеред основным циклом нужно создать переменную bHoliday:
bool bHoliday = false;В основном цикле добавляем следующий код:
//рассчет критического времени выхода для последующего сравнения со временем бара. DateTime dtCrit = new DateTime(Date[bar].Year, Date[bar].Month, Date[bar].Day, 18, 0, 0); //если время бара превышает рассчитанное критическое время, то присваиваем переменной bHoliday значение true if(Symbol.MarketInfo.Holidays.Contains(Date[bar].AddDays(1).Date) && Date[bar] > dtCrit) { bHoliday = true; }И добавляем проверку переменной bHoliday при выходе из позиции и получаем следующий код:
//переменная выходной или нет у след. дня bool bHoliday = false; // Основной цикл for (int bar = 9; bar < Symbol.Count; bar++) { //рассчет критического времени выхода для последующего сравнения со временем бара. DateTime dtCrit = new DateTime(Date[bar].Year, Date[bar].Month, Date[bar].Day, 18, 0, 0); //если время бара превышает рассчитанное критическое время, то присваиваем переменной bHoliday значение true if(Symbol.MarketInfo.Holidays.Contains(Date[bar].AddDays(1).Date) && Date[bar] > dtCrit) { bHoliday = true; } if (MarketPosition == 1) { // Выход из длинной позиции //добавили условия на выход перед выходными if (bHoliday || (Close[bar] < SMA.Value(bar, Close, parameter1.ValueInt))) { SellAtClose(bar, LastPosition, ""); } }