Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: evge » 15 май 2018, 07:52

Тема: Re: Тестирование только в определенные даты

Текст сообщения:

Если массивом, то например так:

Код: Выделить всё

/**
DatesTest
**/

function Initialize()
{
   StrategyName = "DatesTest";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, 1, true, "");
   LongLimit = 1;
   ShortLimit = -1;   
}

function OnUpdate()
{
   // объявляем массив из 4 элементов DateTime
   var Dates = new DateTime[4];

   // заполняем каждый элемент по индексу в массиве
   Dates[0] = new DateTime(2018, 5, 7);
   Dates[1] = new DateTime(2018, 5, 9);
   Dates[2] = new DateTime(2018, 5, 11);   
   Dates[3] = new DateTime(2018, 5, 14);   
      
   // дата бара в массиве? Если нет, завершаем работу функции через return.
   if (!Array.Exists(Dates, e => e == BarDate())) return;
           
   // в 10:XX  открываем позицию long, если не открыта позиция
   if (CurrentPosition() == 0 && BarTime().Hours == 10) EnterLong();
   // в 15:XX закрываем позицию long, если открыта позиция
   if (CurrentPosition() != 0 && BarTime().Hours == 15) CloseLong();
}


DatesTest-01.png
DatesTest-01.png (34.43 КБ) 18247 просмотров


9 мая - праздничный день. Добавлен для примера, биржа не работала :)

В самом тестировании стратегии надо задать период или кол-во баров захватывающее все эти даты.