Наращивание позиции

11/15/2010 4:14:36 PM
Gravatar
Total Posts 151

RE:Наращивание позиции

Да, к сожалению, как и любой подобный инструмент, конструктор-из-правил имеет свои ограничения. Тут как раз такой случай. Код, который генерируется по этим правилам не очень гибкий, точки входа и выхода попадают в разные ветки условия, if (IsLastPositionActive).

[CODE]if (IsLastPositionActive)

{

Position p = LastPosition;

if (p.EntrySignal.Contains("Group2|"))

{

DataSeries ma_2 = SMA.Series(Close, 20) * (1.0d + 0.3 / 100.0d);

if (CrossOver(bar, Close, ma_2))

{

CoverAtClose(bar, p, "Group2");

}

}

if (p.EntrySignal.Contains("Group1|"))

{

DataSeries ma_1 = SMA.Series(Close, 20) * (1.0d - 0.3 / 100.0d);

if (CrossUnder(bar, Close, ma_1))

{

SellAtClose(bar, p, "Group1");

}

}

}

else

{

DataSeries ma_3 = SMA.Series(Close, 20) * (1.0d - 0.3 / 100.0d);

if (CrossUnder(bar, Close, ma_3))

{

ShortAtClose(bar, "Group2|");

}

DataSeries ma = SMA.Series(Close, 20) * (1.0d + 0.3 / 100.0d);

if (CrossOver(bar, Close, ma))

{

BuyAtClose(bar, "Group1|");

}

}[/CODE]

Замените в готовом коде else на if (!IsLastPositionActive) и получите логику, которую хотели.