Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
не процедурка тоже плохо выглядит, 3 строки на вызов каждой функции, минимум
можно конечно так писать, но это Ради создания большой библиотеки
навскидку по памяти:
Всё это правильно ровно до того момента пока не начали писать мультивалютный советник. По настоящему мультивалютный…
Потом под каждый символ надо писать свою функцию, а когда количество символов и какие символы в этом советнике будут работать неизвестно на стадии написания кода, вот тогда и приходит понимание, что лучше иметь такой класс и двумя строками всё решать не задумываясь, чем заниматься ан…ом.
я вам много раз писал про индикатор шпион, там индикатор получает новый тик так-же как любые данные с индикатора
Ради шутки
я вот смотрю, и в этой ветке ни разу не отписались реальные известные тут на форуме, смотрят как на зоопарк)
если того же сабера считать профи, нет он не профи.
Внимательно перечитайте всю тему. Вы считаете, что так чётко разъяснили о виртуальных функциях, что даже я понял, все дилетанты?
навскидку по памяти:
Даже смотреть страшно))
Внимательно перечитайте всю тему. Вы считаете, что так чётко разъяснили о виртуальных функциях, что даже я понял, все дилетанты?
нет, я хотел сказать, что классы это очень узко специализированно, и описать в сфере трейдинга очень сложно будет
я вам много раз писал про индикатор шпион, там индикатор получает новый тик так-же как любые данные с индикатора
Просто ответьте чётко и внятно на один вопрос: Этот шпион должен быть установлен на каждую валютную пару??? Сколько инструментов задействовано, столько индикаторов должно быть поставлено на соответствующий график???
Просто ответьте чётко и внятно на один вопрос: Этот шпион должен быть установлен на каждую валютную пару??? Сколько инструментов задействовано, столько индикаторов должно быть поставлено на соответствующий график???
нет, он с одного места собирает данные, так же как с нужных индикаторов
индикатор шпион передает в события с каждого "события" в данном случае новый тик, в массиве получаем на "кого" пришел этот тик и, торговые условия уже
add
иначе говоря, вы в робота получаете данные индикаторов,
вместо этих данных мы просто получаем новый тик
декларируем такой-же запрос данных
и далее работает ончартивент, получаем в нем задекларированные и получаем, что по этим id были новые "условия, тики"
Как у Вас реализовано запоминание времени внутри класса? Статическая переменная?
Нет. Статическая переменная - одна для всех объектов. А у меня в эксперте может быть несколько одинаковых объектов с разными таймфреймами (или на тиках) - поэтому статическая переменная никак не подходит.
Обычная защищённая переменная.
Вот реальный код, работающий во всех моих экспертах.
Класс CEAPartsFactoryT - это "фабрика частей эксперта", по сути класс-концентратор, в котором реализована вся ТС.
В нём есть функция ProceedTick() - которая разрешает или запрещает обработку пришедшего тика. В ней и происходит определение первого тика бара. Режим обработки зависит от защищённой переменной m_tpmTickProceedMode, если она равна TPM_ONE_PER_BAR, то обрабатывается только один тик в баре.
Это происходит внутри оператора switch(m_tpmTickProceedMode). Если режим обработки тиков TPM_ONE_PER_BAR, тогда вызывается статическая функция класса контейнера таймсерий CTimeSeriesT::GetStartMomentOfBar(); Эта статическая функция определяет время начала бара, исходя из текущего момента и таймфрейма. Поскольку никакие внутренние переменные класса при этом не используются - её разумно сделать статической (чтобы можно было вызывать из любой части программы).
Полученное время начала бара сравнивается с внутренней защищённой переменной CTimeSeriesT::m_dtLastProceedMoment. Если время начала бара больше - не разрешаем обработку бара, то есть возвращаемся из ProceedTick() c результатом false.
Если полученное время больше или равно - то запоминаем в этой переменной полученное время начала бара, и возвращаем true, тем самым инициируя обработку тика.
То есть, эта функция позволяет пропускать максимум один тик на бар.
А если советник установлен на EURUSD а мне надо получить новый бар на GBPUSD тогда как? Писать новый класс?&Y
Насколько я понимаю, бары приходят на все символы одновременно. Тики - да, могут быть разными. Если на EURUSD требуется первый тик в баре именно на GBPUSD - то надо с каждым тиком запоминать цену GBPUSD, и разрешать обработку только если изменилась именно эта цена.
Ну, по крайней мере, я бы сделал так.
вот пример ООП)))))))))))))
в три строки можно было уложить
Артем прости меня
Да лааадно... Всё, что там написано - никак "в три строки" не уместить!
Это достаточно большой класс, с возможностями пошире, чем просто определение момента нового бара.