Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня для этого реализован класс, который работает с конкретным символом.
Вот например.
Что-то похожее я уже реализовал. Но почему-то на одном символе проскакивает 3-5 позиций. Выходит, что 3-5 раз определяется что новый бар на одном символе.
Пойду затоплю печку и продолжу колдовать.
Что-то похожее я уже реализовал. Но почему-то на одном символе проскакивает 3-5 позиций. Выходит, что 3-5 раз определяется что новый бар на одном символе.
Пойду затоплю печку и продолжу колдовать.
В классе включите переменную типа datetime. В ней храните время появления нового бара. И уже потом проверяйте если это время не совпадает со временем текущего (нулевого бара) то значит пришел новый бар.
Таким образом для каждого экземпляра класса у вас будет свое время прихода бара.Ну это такой костыль... вообще неприемлемый. Самый простой костыль, делать советник для одного инструмента и поставить его на несколько пар. Но нужен именно мультивалютник.
Так варианты со своими плюсами и минусами:
1. Синтетик из необходимых символов, весь механизм учета и подгрузки истории символов средствами терминала без участия советника.
2. Советники на каждый символ, разделен механизм открытия и учета/сопровождения позиций.
3. Вариации OnTimer, подходящая фраза из недавних обсуждений - "закат солнца вручную".
Не в этом моё недопонимание.
Ну вызываешь IsNewBar() для одного символа, получаешь bool ответ, пишешь его в переменную. Вызываешь IsNewBar() для другого символа... В другую переменную надо писать... Сколько переменных надо завести если неизвестно сколько пар будут работать?
И вторая непонятка: Все действия перенести в OnTimer() а OnTick() оставить пустым? Или только для действий с символом на котором стоит советник?
Для каждого символа и тф свой экземпляр класса - не будет у тебя кучи переменных. А будет один легко измеряемый список. Вот по этому списку проходишь и проверяешь значения каждого экземпляра из списка.
Это пока для меня за пределами понимания. На неделе, когда у тебя будет время, я с удовольствием послушаю ликбез на эту тему.
В классе включите переменную типа datetime. В ней храните время появления нового бара. И уже потом проверяйте если это время не совпадает со временем текущего (нулевого бара) то значит пришел новый бар.
Таким образом для каждого экземпляра класса у вас будет свое время прихода бара.Читать я начал с конца... И опять экземпляры класса.
Почему в вашем примере функции Init и NewBar как отдельные функции, не "привязаны" к классу?
Пока у меня реализовано так:
При открытии новой недели перед открытием позиций и для проверки условий нужно торговое окружение. Получаю его посредством CopyRates для каждого символа из string массива.
Потом перед следующей проверкой нового бара переменной datetime присваивается время из структуры MqlRates и это время сравнивается с текущим нулевого бара символа в функции NewBar().
Вот если ошибка в моём коде, я её со временем найду. Но если такой вариант вообще не подходящий, то проблема. Придётся увеличивать свои познания в ООП.
Пока у меня реализовано так:
При открытии новой недели перед открытием позиций и для проверки условий нужно торговое окружение. Получаю его посредством CopyRates для каждого символа из string массива.
Потом перед следующей проверкой нового бара переменной datetime присваивается время из структуры MqlRates и это время сравнивается с текущим нулевого бара символа в функции NewBar().
Вот если ошибка в моём коде, я её со временем найду. Но если такой вариант вообще не подходящий, то проблема. Придётся увеличивать свои познания в ООП.
Создайте или еще один массив, для даты нулевого бара, или этот символ+дата в стркутуру.
И не нужно будет плодить сущностей из классов.
Создайте или еще один массив, для даты нулевого бара, или этот символ+дата в стркутуру.
И не нужно будет плодить сущностей из классов.
Брррррррррррррррр. Кажется нашёл ошибку в своём коде... Стоило только написать "каждого символа". Ведь моя функция не была предназначена для других символов... Там время нулевого бара берётся по _Symbol а это будет неправильно. Сейчас проверю и исправлю...
Читать я начал с конца... И опять экземпляры класса.
Почему в вашем примере функции Init и NewBar как отдельные функции, не "привязаны" к классу?
Это просто примерный алгоритм. Лень было все полностью писать. А так, это есть методы класса.