При достижении определенного в параметре стратегии дохода за день, останавливать торговлю до следующего дня.
Решение:
1. Добавить параметр для задания дохода
2. Завести счетчик в глоб. переменой и сохранять в нём на начало дня
RealizedPL() – возвращает текущий реализованный доход по закрытым сделкам робота (стратегии).
или
RealizedPLAfterCommission() – возвращает текущий реализованный доход по закрытым сделкам робота после вычета всех комиссий (стратегии).
3. Сравнивать в течение дня эту глоб. переменную с текущим значением перечисленных выше функций и при превышении значения из параметра завершать торговлю.
Код:
function Initialize() добавляем
Код: Выделить всё
function Initialize()
{
AddParameter("DayPL", 100, "ограничение дневного дохода", 0);
AddGlobalVariable("StartDayPL", Types.Double, 0);
В function OnUpdate()
Код: Выделить всё
function OnUpdate()
{
if (BarDate(0) != BarDate(1))
{
//Здесь (при необходимости) инициализируем начало торговли в новом дне
//...
StartDayPL = RealizedPL();
//Если требуется учет комиссий то заменяем RealizedPL() на RealizedPLAfterCommission()
}
if (RealizedPL() - StartDayPL >= DayPL)
{
//Здесь (при необходимости) действия для завершения торгов текущего дня
//...
return;
}