background

Tradematic Support Center

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

Как прописать в коде закрытие позиции перед выходными и праздничными днями?

56628РЕДАКТОР КОДА ЗАКРЫТИЕ ПЕРЕД ВЫХОДНЫМ ЗАКРЫТИЕ ВЫХОДНОЙ ВЫХОД

Перед основным циклом нужно создать переменную 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, "");
		}
	}

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