Вроде с last_time все в порятке... Чтоже тогда не так?... Блок стоит в функции int start() и переменнная last_time тамже обявляется (datetime last_time=0;) как и все остальные.
Нет, не в поряТке. Попробуйте еще и так:
...
static int last_time = 0;
...
int start() {
// datetime last_time = 0; <-- не забудьте закомментировать эту строчку
...
}
Надо предусмотреть в советнике три ситуации.
1. last_time ==0 и ордеров в истории нет // Первый запуск
2. last_time ==0 и ордера в истории есть // Повторный запуск на демо или реале
3. last_time !=0 // Рабочий режим
В твоем случае нужно сделать дополнительную обработку второго случая.
например last_time=OrderCloseTime(); Но ордер выбрать который не входит в анализируемую часть истории.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В эксперте стоит блок привел ниже. Работет хорошо в тестере все устраивает. Он смотрит если позиция убыточная то добавляет лот до определенного момента, я для своей системы сделал чтобы после третего увеличения сново сбрасывал на начальный уровень. В тесте все хорошо. Но когда на демо тестю после того как терминал закрываешь откываешь снова то я понимаю переменная last_time сбивается и он все начинает сначала... для этого надо навнрное использовать спец функции int init() и int deinit(). Подскажите что в них надо делпть в данном случае. спасибо.