Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1128
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день, наблюдаю странное поведение системной функции OrderCalcProfit, такое ощущение что параметр volume игнорируется при расчете т.е размер прибыли всегда вычисляет для объема 1.0
Проверяю в тестере, для разных валютных пар, на разных демо-аккаунтах.
1. Расчет выполняет корректно, для 1.0, см. calc_profi101.png
2. Второй и любой последующий вызов функции возвращает результат профита исходя из объема в 1.0, значение volume игнорируется, см. принтскрин (calc_profit02.png) - передано volume 0.5, а результат все равно как для 1.0
Подскажите, в чем может быть проблема. Спасибо
Добрый день, наблюдаю странное поведение системной функции OrderCalcProfit, такое ощущение что параметр volume игнорируется при расчете т.е размер прибыли всегда вычисляет для объема 1.0
Проверяю в тестере, для разных валютных пар, на разных демо-аккаунтах.
1. Расчет выполняет корректно, для 1.0, см. calc_profi101.png
2. Второй и любой последующий вызов функции возвращает результат профита исходя из объема в 1.0, значение volume игнорируется, см. принтскрин (calc_profit02.png) - передано volume 0.5, а результат все равно как для 1.0
Подскажите, в чем может быть проблема. Спасибо
Думаю ответ в справке:
"... profit
[out] Переменная, в которую будет записано вычисленное значение прибыли в случае успешного выполнения функции. Значение оценки прибыли зависит от многих факторов и может меняться при изменении рыночного окружения. ... "
Добавлено: хотя это только предположение.
Добрый день, наблюдаю странное поведение системной функции OrderCalcProfit, такое ощущение что параметр volume игнорируется при расчете т.е размер прибыли всегда вычисляет для объема 1.0
Проверяю в тестере, для разных валютных пар, на разных демо-аккаунтах.
1. Расчет выполняет корректно, для 1.0, см. calc_profi101.png
2. Второй и любой последующий вызов функции возвращает результат профита исходя из объема в 1.0, значение volume игнорируется, см. принтскрин (calc_profit02.png) - передано volume 0.5, а результат все равно как для 1.0
Подскажите, в чем может быть проблема. Спасибо
Вот проверочный эксперт - всё отрабатывает правильно:
и результат:
Подскажите. Можно ли, и как программно узнать язык у используемого терминала?
Я определяю это или Русский язык терминала или если другой - то вывод информации на Английском.
Добавлено: думал что я сохранил все языки из перечисления TERMINAL_LANGUAGE - но не могу найти. Наверное потерял ...
Всем добрый день, может кто помочь добавить сюда что бы при SL был не просто переворот а еще добавлял лот или несколько. И как срабатывает TP возвращался обратно на один лот.
1. Категорически не советую пользовать функции, которые выбирают позицию ПО СИМВОЛУ. Используйте функции выбирающие позицию по индексу в списке.
2. Чтобы знать как была закрыта позиция, необходимо в OnTradeTransaction смотреть перечисление ENUM_DEAL_REASON
Пример с ENUM_DEAL_REASON:
Stop Loss Take Profit
CodeBase | 2017.07.13 07:42 | Vladimir Karputov | Советники | MetaTrader 5
Возможно ли как то в стороннюю программу ввести данные для входа в счет и управлять им, ну открываться/закрывать позиции?
Или это только через робота, который установлен на счете?
Перевожу индикаторы из MQL4 в MQL5, вопрос по буферам и "plots". В индикаторе задаётся 2 буфера и 1 plot:
#property indicator_buffers 2
#property indicator_plots 1
SetIndexBuffer(0,Array1,INDICATOR_CALCULATIONS);
SetIndexBuffer(1,Array2,INDICATOR_DATA);
Если первый буфер используется для вычислений и пр., а рисоваться должен второй буфер, то:
во-первых, нужно ли задавать для первого буфера DRAW_NONE, если в функции SetIndexBuffer() ему уже задано INDICATOR_CALCULATIONS ?
PlotIndexSetInteger(?,PLOT_DRAW_TYPE,DRAW_NONE);
во-вторых, какой индекс задавать в функции PlotIndexSetInteger() вместо знака вопроса (?), если рисоваться должен только второй буфер?
PlotIndexSetInteger(?,PLOT_DRAW_TYPE,DRAW_HISTOGRAM);
в третьих, если я использую два стиля типа DRAW_HISTOGRAM, то могу каждому задать цвет и получу гисторгамму как в индикаторе Volumes, где чередуются зелёные и красные столбики, а если буду использовать DRAW_HISTOGRAM 2, то смогу ли я задать так же два цвета одному столбику или для этого стиля задаётся только один цвет?
Перевожу индикаторы из MQL4 в MQL5, вопрос по буферам и "plots". В индикаторе задаётся 2 буфера и 1 plot:
#property indicator_buffers 2
#property indicator_plots 1
SetIndexBuffer(0,Array1,INDICATOR_CALCULATIONS);
SetIndexBuffer(1,Array2,INDICATOR_DATA);
Если первый буфер используется для вычислений и пр., а рисоваться должен второй буфер, то:
во-первых, нужно ли задавать для первого буфера DRAW_NONE, если в функции SetIndexBuffer() ему уже задано INDICATOR_CALCULATIONS ?
PlotIndexSetInteger(?,PLOT_DRAW_TYPE,DRAW_NONE);
во-вторых, какой индекс задавать в функции PlotIndexSetInteger() вместо знака вопроса (?), если рисоваться должен только второй буфер?
PlotIndexSetInteger(?,PLOT_DRAW_TYPE,DRAW_HISTOGRAM);
в третьих, если я использую два стиля типа DRAW_HISTOGRAM, то могу каждому задать цвет и получу гисторгамму как в индикаторе Volumes, где чередуются зелёные и красные столбики, а если буду использовать DRAW_HISTOGRAM 2, то смогу ли я задать так же два цвета одному столбику или для этого стиля задаётся только один цвет?
А зачем так над собой издеваться? В чём проблема назначить сначала отображаемые буферы, а потом вспомогательные?
Для DRAW_HISTOGRAМ2 задаётся 3 буфера и обязательная последовательность, сначала 2 буфера значений и следом за ними буфер цвета. Но между DRAW_HISTOGRAМ и DRAW_HISTOGRAМ2 существует такая разница, что DRAW_HISTOGRAМ рисуется от нуля до значения в буфере, а DRAW_HISTOGRAМ2 рисуется от значения одного буфера до значения другого буфера.