[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 333
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Возникла необходимость в следующем анализе - программа должна анализировать заданные ей параметры и выдавать результата в отдельном окне в виде таблицы с набором дат. Т.е. прога должна анализировать историю и выдавать необходимые даты.
Возможно ли такое на MQL4 или лучше сделать экспорт истории и анализировать данные при помощи программы написанной на другом языке?
Заранее спасибо!
Правильно, но как показала практика - не всегда..
Если пятый знак после запятой = 5 (1.хххх5), то значение все равно искажается:
вопрос пока остается актуальным...
P.S. Вообще мне нужно MagicNumber присвоить значение цены... а тип MagicNumber - int, вот и пытаюсь преобразовать путем
Может кто еще посоветует?
Спасибо.
Вы же выводите с разным округлением - поэтому не видите полное число - и думаете что что-то искажается. По умолчанию при выводе действительных чисел округление выводимого числа идёт до 4-го знака. При 5-ти знаке надо округлять выводимое явно:
Посмотрите на своей же картинке - вывод bid без DoubleToStr() и с DoubleToStr().
Артём и Борис, Благодарю Вас за то, что Вы "разжевали" мне мой вопрос. У меня бывают периоды, когда я могу заглючить на довольно-простых вещах, как было в этот раз..
Щяс появился новый вопрос.
Я тут накидал функцию, добавил к функции расчёта количества открытых ордеров t, поиск ордеров заданного типа с заданных профитов и сравнение их профита с некоторых заданным значением(на данный момент 0). Дальше, если открытых ордеров нет, то через параметры функции FindOrders() возвращаются 2 флага со значение True, что значит можно послать ордер, а если ордера есть, проверяется профит, чтоб значение профита было больше заданного значения, если профит меньше заданного значения, то через параметры функции FindOrders() возвращаются 2 флага со значение False, чтоб когда в каком-н. направлении есть убыточные ордера, то не было доливок в убыточную сторону.
Ну после, я вызываю функцию FindOrders() в сигнальной функции:
Ордера переставили вообще открываться. Логика вроде верная. Может видно, на вскидку, где я ошибся?
Я понимаю, что можно всё проще сделать отдельной функцией и смогу. Но хочется понять, почему в таком варианте не работает.
Виктор, я не могу понять до конца твой алгоритм, но могу посоветовать! Такое тоже у меня случается, когда в логике ошибка. Программа стопорится, если окажется двузначность или взаимоисключаемость в твоих условиях. Может быть, тебе понятно, что хочешь, а не можешь корректно построить логику кода. Ищи эти глюки, последовательно расписав на бумаге со стрелочками для наглядности весь тобой задуманный порядок выполнения условий! Удачи!
Так там всё просто в логике. Нужно, чтоб если нет ордеров открытых, то ордера открывались по сигналу.
А если ордера открытые есть, то чтоб ордера по канкретному сигналу открывались, если профит ордеров в заданном направлении (бай или селл) больше некоторого значение, т.е. не в минусе хотя бы. (я там 0 поставил для теста).
Один логический косяк я нашёл. Вот что вышло:
Сейчас на продажу ордера открываются на всидку верно, а лонги вообще не открываются. Хотя флаг имеет значение обоих переменные 1 т.е. true.
У меня такая непонятка с мт4 образовалось..
С запуском проги мт4 брокера( а именно 3, которыми пользовался последнюю неделю) на моем компе появляется окно винды " Запуск от имени пользователя"( все равно, что использована "запуск от имени". При любом выборе действий мт4 нормально открывается.
Как вернуть запуск мт4.ехе без этого окна? Может кто знает или понял в чем дело..
Добрый день, столкнулся с необходимостью быстро отменить все отложенные ордера. OrderClose отложки игнорирует. Какой оператор удобнее использовать, и есть ли эта возможность?
Добрый день, столкнулся с необходимостью быстро отменить все отложенные ордера. OrderClose отложки игнорирует. Какой оператор удобнее использовать, и есть ли эта возможность?
Закрыть можно только рыночные ордера, а чтоб удалить отложки нужен оператор OrderDelete.
hoz
Спасибо!
Так там всё просто в логике. Нужно, чтоб если нет ордеров открытых, то ордера открывались по сигналу.
А если ордера открытые есть, то чтоб ордера по канкретному сигналу открывались, если профит ордеров в заданном направлении (бай или селл) больше некоторого значение, т.е. не в минусе хотя бы. (я там 0 поставил для теста).
Один логический косяк я нашёл. Вот что вышло:
Сейчас на продажу ордера открываются на всидку верно, а лонги вообще не открываются. Хотя флаг имеет значение обоих переменные 1 т.е. true.
Виктор, сделай проверку! Закомментировав лонг-бай, посмотри в журнале, как работает шорт-селл! И наоборот, тогда увидишь, в чём разница, и найдёшь, почему не работает!
Борис, если закоментировать одно из условий в функции int GetGeneralSignal(), открытие чёткое.
Я отследил. Флаг не изменяет своё значение, когда профитность текущих открытых ордеров в минусе. Вот переписанная функция, которая должно перевести значение флагов short и long в false т.е. запрет на открытие позиции если есть минусовые ордера:
Вызывающая функция вот: