пример мартингейл тутили если это не мартингейл, то
завести на это глобальную переменную в Initialize() для текущего размера лота
при каждой убыточной сделке (как определить что убыток был это другой вопрос, например при использовании стоп-заявок) увеличиваем лот вдвое.
как пример, ручного закрытия убыточной сделки при убытке более 1% и увеличение лота вдвое
Код: Выделить всё
if (CurrentPLper() < -1)
{
ClosePosition();
Lot *= 2;
}
при прибыльной сделке Lot надо сбрасывать в первоначальное значение
как пример, выход из прибыльной позиции при прибыли более 2% и сброс лота
Код: Выделить всё
if (CurrentPLper() > 2)
{
ClosePosition();
Lot = 1;
}
ну и понятно, что вход в позицию при наступлении условия необходимо выполнять размером в Lot
пример (условия для входа только для примера)
Код: Выделить всё
if (Input1.Close > Input1.Open && CurrentPosition() == 0)
{
EnterLong(Lot);
}
if (Input1.Close < Input1.Open && CurrentPosition() == 0)
{
EnterShort(Lot);
}
Максимальную позицию по Long и Short задаем в самой стратегии при тестировании или в роботе.