[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 310
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Такой вопрос. Как сейчас оптимизировать? Скелет советника сейчас такой:
Перенёс open-close в переменные и убрал второй ставший ненужным блок FileSeek, добавил выбор стиля свеч (все бычьи, все медвежьи, любые), добавил тени если следующий аск или бид больше или меньше предыдущих хая и лоу, добавил трассировку с принтованием, включающуюся флагом в шапке, всё капитально раскомментировал со ссылками на номера строк, постарался к форуму сделать код читабельным. Принтование тоже с указанием №строки.
Теперь смотрите:
Вверху тиковый таймфрейм, внизу секундный. Тени (хвосты) - это когда в одну секунду было поймано два тика и бид или аск отличается от предыдущего. Тиковый работает как часы. Секундный запаздывает, значит на обработку тика тратится времени больше, чем минимальный временный интервал между тиками. Поэтому и спрашиваю, как оптимизировать код. Код прикрепляю, - повторюсь, что всё капитально раскомментил. Если надо проверить как работает - вешаете как советника на минутки, потом в автономных ищете и открываете 'sec'+имя инструмента.
Как осуществить такую функцию в советнике? При срабатывании TP или SL на любом из ордеров Bay должны закрыватся все ордера Bay.
Если есть опыт программирования то подсказка:
1. после открытия ордера бай считаете количество ордеров бай
2. Сохраняете их количество в глобальной переменной
3. На следующем тике проверяете условия, что количество ордеров бай меньше предыдущего, то закрывате все ордера бай.
Функции по учету количества ордеров по типу открытой позиции и по закрытию позиций выбранного типа(бай или селл) в кодобазе есть.
Много полезного в функциях от Ким
О преобразовании типов переменных.
Записал значение коэффициента double K в описание линии в виде текста (K=0,573).
В ходе исполнения кода значение коэффициента K неоднократно менялось.
Теперь хочу умножить переменную double Z на записанное значение K=0,573 после извлечения описания линии string ObjectDescription(string name).
Возможно ли в MQL преобазование переменной типа string в переменную типа double?, что бы опять получить 0,573. Если возможно дайте, пожалуйста, ссылку.
С уважением. Shurkin.
Возможно ли в MQL преобазование переменной типа string в переменную типа double?, что бы опять получить 0,573. Если возможно дайте, пожалуйста, ссылку.
.
08:06:32 Сек.ТФ AUDUSD,M1: 15
Часть лога со взведённым миллисекундным таймером в обоих кодах (тикового и секундного таймфреймов). Всё, что в голову пока приходит, - убрать циклы вообще, т.е. один или больше тиков в секунду без разницы сколько прошло секунд с последнего тика - это всегда одна свеча. Если был второй и т.д. тик в секунду, - свеча с тенями. Но тогда будет секундный ТФ с "дырами" и по High[15] предположим я уже не возьму значение аска 15 секунд назад...
Задался я вопросом написать функцию. Суть такая, что необходимо что, при откате N-свечей в в определённую строну, просчитывать количество свечей. НО. Для это есть несколько условий, а точнее будет со временем их перечень.
Скажем так, тренд, например, направлен вниз,... пошёл откат вверх. Я хочу чтоб если прошло 5 свечей вверх, и каждая свеча была бычья, и, например, размер каждой свечи был больше заданного i_sizeOfCurrBar, и ещё какие-н. условия, то выводим количество баров непрерывно бычьих, и возвращаем какой-то результат из функции.
Как это лучше написать? На данный момент я начал писать, и понимаю что тут нужно прогонять через цикл по бара, и как-то ограничить просмотр в глубину истории не по фиксированному количеству баров, а по барам, с теми параметрами, которые нас интересуют на условиям.
Вот что у меня, есть:
На данный момент идёт просто перебор от предпоследнего бара, то бара с индексом 6, т.е. 5 баров в подряд. Но мне нужно, чтоб эксперт просчитывал только бары, которые вляются бычьими, а не все в подряд. Как это будет адекватнее реализовать?
По размеру я вроде как отфильтровал верно.
Ну а когда всё будет уже прописано, снизу уже счётчик будет просчитывать количество непрерывных баров с nht,etvsvb параметрами и если таких баров достаточно, то возвращается какое-н. значение функции.
Как всегда оригинально: считать бары "сзаду"...
1. Через глобальную переменную.
2. Через файл.
3. Через iCustom().
4. Через глобальные графические переменные.
5. Маппинг. Можно передать данные из одного терминала в другой терминал. Или в одном терминале передать данные из одного окна в другое окно без ограничений глобальных переменных МТ4.
Что из этого работает быстрее всего?
Что из этого работает быстрее всего?
В принте у неё значение 1 и 2... Что тут вообще за хрень?
Просто невнимательность. А вообще здешняя bool 4-байтовая, что вовсе не обязывает её принимать значения только 0 и 1. С++ boolearn - та да, 1-байтовая. Я лично использую bool в двоичной арифметике в switch(), если надо делать множественный выбор, уповая на то, что она всегда 0 либо 1))) Вот так:
Такой вопрос. Как сейчас оптимизировать? Скелет советника сейчас такой:
Перенёс open-close в переменные и убрал второй ставший ненужным блок FileSeek, добавил выбор стиля свеч (все бычьи, все медвежьи, любые), добавил тени если следующий аск или бид больше или меньше предыдущих хая и лоу, добавил трассировку с принтованием, включающуюся флагом в шапке, всё капитально раскомментировал со ссылками на номера строк, постарался к форуму сделать код читабельным. Принтование тоже с указанием №строки.
Теперь смотрите:
Вверху тиковый таймфрейм, внизу секундный. Тени (хвосты) - это когда в одну секунду было поймано два тика и бид или аск отличается от предыдущего. Тиковый работает как часы. Секундный запаздывает, значит на обработку тика тратится времени больше, чем минимальный временный интервал между тиками. Поэтому и спрашиваю, как оптимизировать код. Код прикрепляю, - повторюсь, что всё капитально раскомментил. Если надо проверить как работает - вешаете как советника на минутки, потом в автономных ищете и открываете 'sec'+имя инструмента.
Если будет интересно, можете глянуть несколько моментов чисто по оптимизации Вашего кода (файл). Правда, если серъёзно говорить об оптимизации, нужно замерять время исполнения кода. ;)