Стратегия - пример, т.е. это не рабочая стратегия. Для демонстрации открывается позиция в лонг при условии, что бар падающий и позиция текущая не открыта.
Здесь M - параметр стратегии, определяющий количество минут до закрытия позиции (по умолчанию 1)
Если разница времени открытия позиции и времени текущего бара отрицательная (перенос на след день), позиция так же закрывается.
Код: Выделить всё
/**ClosePositionMinute
Developed by evge;**/
function Initialize()
{
StrategyName = "ClosePositionMinute";
AddParameter("M", 1, "", 1);
AddInput("Input1", Inputs.Candle, -15, true, "SBER=МБ ЦК");
LongLimit = 1;
ShortLimit = -1;
AddGlobalVariable("OpenPosition", Types.Int, 0);
}
function OnUpdate()
{
if (CurrentPosition() != 0 && OpenPosition == 0 )
OpenPosition = CurrentIndex - 1;
if (CurrentPosition() == 0 && OpenPosition != 0)
OpenPosition = 0;
/// ПРАВИЛО 1
if ( (Input1.Open > Input1.Close) && (CurrentPosition() == 0) )
{
EnterLong();
}
/// ПРАВИЛО 2
TimeSpan iM = BarTime() - BarTime(CurrentIndex - OpenPosition);
if ( (CurrentPosition() != 0) && iM.TotalMinutes >= M || iM.TotalMinutes < 0)
{
ClosePosition();
}
}