Уважаемые форумчане,
Добрый день.

Обращаюсь к вам со следующим вопросом: в моем скрипте сигнал для входа/выхода из позиций рассчитывается по формуле, в которой цена закрытия прошлого бара сравнивается с ценой закрытия последнего бара.

Соответственно, сигнал появляется только после того, как произойдет фактическое закрытие последнего бара,т.е. на следующем баре. Вход же в позицию осуществляется еще на бар позднее.

Вопрос: как сделать так, чтобы вход исполнялся сразу после закрытия бара, по которому рассчитывается условие, а не пришлось ждать еще целый бар?

Для примера привожу способ обращения к барам:

Формула:
IList<double> F1;
try
{
int count = Close.Count;
double[] list = new double[count];
for (int i = 1; (i < count); i++)
{
list[i] = Close[i-1] - Close[i];
}
F1 = list;

Логическая формула:
IList<bool> SpreadPos;
try
{
int count = F1.Count;
bool[] list = new bool[count];
for (int i = 0; (i < count); i++)
{
list[i] = F1[i] > [значение];
}
SpreadPos = list;
}

Для входа в позицию использую следующий цикл:

int barsCount = source.Bars.Count;
for (int i = 0; (i < barsCount); i++)

Условие: сигнал на баре[i];

Вход: купить по рынку на баре [i+1].

Пробовал ради эксперимента ставить вход на баре [i], но такое заглядывание в будущее TSLab делает только в лаборатории:)

Заранее спасибо!!


Отредактировано Stolbist (Tue Mar 29 2016 11:29 AM)