В функции https://forum.mql4.com/ru/38949/page5#434241 ошибка.
Надо так
double PriceOpenNearPos(string sy="", int op=-1, int mn=-1) {
double mi, oop=0, p;
int i, k=OrdersTotal(), pp=0;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
p=MarketInfo(OrderSymbol(), MODE_POINT);
if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
pp=MathAbs(OrderOpenPrice()-mi)/p;
oop=OrderOpenPrice();
При исправлении советников (в связи с обновлениями MQL) обнаружилось, что многие функции Игоря Кима перестали работать. В т.ч. самые востребуемые. Например,
Вывожу на график тестера комментарий и видно, что функции всё время возвращают постоянные значения (-1 и/или 0), несмотря на наличие сделок (текущих, закрытых). И советник, словно не видит в своем коде условия заданные этими функциями.
Кроме того, перестали работать так наз. "исполняемые" функции, например набор функций по закрытию позиций: ClosePosBySelect (Закрывает одну предварительно выбранную позицию) и сопуствующие: ClosePositions - Закрытие позиций по рыночной цене и проч.
При исправлении советников (в связи с обновлениями MQL) обнаружилось, что многие функции Игоря Кима перестали работать. В т.ч. самые востребуемые. Например,
Вывожу на график тестера комментарий и видно, что функции всё время возвращают постоянные значения (-1 и/или 0), несмотря на наличие сделок (текущих, закрытых). И советник, словно не видит в своем коде условия заданные этими функциями.
Кроме того, перестали работать так наз. "исполняемые" функции, например набор функций по закрытию позиций: ClosePosBySelect (Закрывает одну предварительно выбранную позицию) и сопуствующие: ClosePositions - Закрытие позиций по рыночной цене и проч.
NumberOfPositions() у меня нормально работает! Правда, я продолжаю работать с MQL4 без плюсов! Если Вы пишите на обновлённом языке, тогда, наверно, всё нужно подгонять под него или обращаться во Фриланс! Сейчас всё коммерцилизируется со страшной силой! Искренне Вам сочувствую!
Если сможете как-то подогнать NumberOfPositions(), то ExistPositions() и не нужен! Сделаете проверку так:
NumberOfPositions() у меня нормально работает! Правда, я продолжаю работать с MQL4 без плюсов! Если Вы пишите на обновлённом языке, тогда, наверно, всё нужно подгонять под него или обращаться во Фриланс! Сейчас всё коммерцилизируется со страшной силой! !
Нечасто здесь бываю, поэтому не знаю, то значит " MQL4 без плюсов"?
Вы считаете, что те, кто может здесь ответить, не делают этого, чтобы принудить посетителя заплатить за ответ на несложный вопрос на фрилансе?
Интересно, и в какую же сумму оценили бы местные программеры-коммерсанты исправление такой функции И.Кима для работы в посл.версии мт4 с обновленным MQL:
//| Описание : Возвращает количество позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), kp=0;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) kp++;
}}}}}
return(kp);
}
Напомню, что при выводе Comment( NumberOfPositions(NULL, -1, Magic) ); видно, - что постоянно возвращается -1 даже при наличии откр. советником позиций.
Нечасто здесь бываю, поэтому не знаю, то значит " MQL4 без плюсов"?
Вы считаете, что те, кто может здесь ответить, не делают этого, чтобы принудить посетителя заплатить за ответ на несложный вопрос на фрилансе?
Интересно, и в какую же сумму оценили бы местные программеры-коммерсанты исправление такой функции И.Кима для работы в посл.версии мт4 с обновленным MQL:
Напомню, что при выводе Comment( NumberOfPositions(NULL, -1, Magic) ); видно, - что постоянно возвращается -1 даже при наличии откр. советником позиций.
NULL в качестве параметра функции обозначает отсутствие параметров.
Так лучше будет) Comment( NumberOfPositions(Symbol(), -1, Magic) );
Нечасто здесь бываю, поэтому не знаю, то значит " MQL4 без плюсов"?
Вы считаете, что те, кто может здесь ответить, не делают этого, чтобы принудить посетителя заплатить за ответ на несложный вопрос на фрилансе?
Интересно, и в какую же сумму оценили бы программеры-коммерсанты исправление такой функции:
Напомню, что при выводе Comment( NumberOfPositions(NULL, -1, Magic) ); видно, - постоянно возвращается -1 даже при наличии откр. советником позиций.
MQL4++ обновлённый, как тут его называют!
У меня та же функция выдаёт корректное число позиций! Но у Вас ошибка в Comment()! Уверен, что функция работает!
Попробуйте так:
int start()// или что у Вас там, как в обновлённом MQL4int BuyPos = NumberOfPositions(Symbol(),OP_BUY, Magic); //это вызов этой функции, чтобы знать, сколько у Вас баевint SellPos = NumberOfPositions(Symbol(),OP_SELL,Magic);//а это для селловComment("Buy ",BuyPos," Sell ",SellPos);
Так увидете на графике всё точно, переменные BuyPos и SellPos применяйте для проверок в условиях! Смотрите, как у меня:
if(BuyPos == 0 && SellPos == 0)
{
// и так далее ...
Сейчас всё коммерцилизируется со страшной силой! Искренне Вам сочувствую!
Борис, тебе не стыдно такое заявлять? Посчитай-ка сколько страниц исписали в попытках тебе помочь. И это твоя благодарность всем тем кто тебе помогал? Всех не помню, но Артём (artmedia70) по доброте души с твоей проблемой нянчился и в ответ попал туда-же...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
В функции https://forum.mql4.com/ru/38949/page5#434241 ошибка.
Надо так
} } } } } } return(oop);}
Просьба перезалить.
Добрый день всем!
При исправлении советников (в связи с обновлениями MQL) обнаружилось, что многие функции Игоря Кима перестали работать. В т.ч. самые востребуемые. Например,
NumberOfPositions - Возвращает количество позиций.
ExistPositions - Возвращает флаг существования позиций
Еще функция, я вчера упоминала в ветке: Функция NumberOfBarCloseLastPos().
Эта функция возвращает номер бара закрытия последней позиции
Вывожу на график тестера комментарий и видно, что функции всё время возвращают постоянные значения (-1 и/или 0), несмотря на наличие сделок (текущих, закрытых). И советник, словно не видит в своем коде условия заданные этими функциями.
Кроме того, перестали работать так наз. "исполняемые" функции, например набор функций по закрытию позиций: ClosePosBySelect (Закрывает одну предварительно выбранную позицию) и сопуствующие:
ClosePositions - Закрытие позиций по рыночной цене и проч.
Подскажите пож., что в функциях стало глючить и что нужно исправить, хотя бы на примере одной из перечисленных - NumberOfPositions - Возвращает количество позиций ?
Добрый день всем!
При исправлении советников (в связи с обновлениями MQL) обнаружилось, что многие функции Игоря Кима перестали работать. В т.ч. самые востребуемые. Например,
NumberOfPositions - Возвращает количество позиций.
ExistPositions - Возвращает флаг существования позиций
Еще функция, я вчера упоминала в ветке: Функция NumberOfBarCloseLastPos().
Эта функция возвращает номер бара закрытия последней позиции
Вывожу на график тестера комментарий и видно, что функции всё время возвращают постоянные значения (-1 и/или 0), несмотря на наличие сделок (текущих, закрытых). И советник, словно не видит в своем коде условия заданные этими функциями.
Кроме того, перестали работать так наз. "исполняемые" функции, например набор функций по закрытию позиций: ClosePosBySelect (Закрывает одну предварительно выбранную позицию) и сопуствующие:
ClosePositions - Закрытие позиций по рыночной цене и проч.
Подскажите пож., что в функциях стало глючить и что нужно исправить, хотя бы на примере одной из перечисленных - NumberOfPositions - Возвращает количество позиций ?
NumberOfPositions() у меня нормально работает! Правда, я продолжаю работать с MQL4 без плюсов! Если Вы пишите на обновлённом языке, тогда, наверно, всё нужно подгонять под него или обращаться во Фриланс! Сейчас всё коммерцилизируется со страшной силой! Искренне Вам сочувствую!
Если сможете как-то подогнать NumberOfPositions(), то ExistPositions() и не нужен! Сделаете проверку так:
Удачи!
NumberOfPositions() у меня нормально работает! Правда, я продолжаю работать с MQL4 без плюсов! Если Вы пишите на обновлённом языке, тогда, наверно, всё нужно подгонять под него или обращаться во Фриланс! Сейчас всё коммерцилизируется со страшной силой! !
Нечасто здесь бываю, поэтому не знаю, то значит " MQL4 без плюсов"?
Вы считаете, что те, кто может здесь ответить, не делают этого, чтобы принудить посетителя заплатить за ответ на несложный вопрос на фрилансе?
Интересно, и в какую же сумму оценили бы местные программеры-коммерсанты исправление такой функции И.Кима для работы в посл.версии мт4 с обновленным MQL:
Напомню, что при выводе Comment( NumberOfPositions(NULL, -1, Magic) ); видно, - что постоянно возвращается -1 даже при наличии откр. советником позиций.Нечасто здесь бываю, поэтому не знаю, то значит " MQL4 без плюсов"?
Вы считаете, что те, кто может здесь ответить, не делают этого, чтобы принудить посетителя заплатить за ответ на несложный вопрос на фрилансе?
Интересно, и в какую же сумму оценили бы местные программеры-коммерсанты исправление такой функции И.Кима для работы в посл.версии мт4 с обновленным MQL:
Напомню, что при выводе Comment( NumberOfPositions(NULL, -1, Magic) ); видно, - что постоянно возвращается -1 даже при наличии откр. советником позиций.NULL в качестве параметра функции обозначает отсутствие параметров.
Так лучше будет) Comment( NumberOfPositions(Symbol(), -1, Magic) );
Нечасто здесь бываю, поэтому не знаю, то значит " MQL4 без плюсов"?
Вы считаете, что те, кто может здесь ответить, не делают этого, чтобы принудить посетителя заплатить за ответ на несложный вопрос на фрилансе?
Интересно, и в какую же сумму оценили бы программеры-коммерсанты исправление такой функции:
Напомню, что при выводе Comment( NumberOfPositions(NULL, -1, Magic) ); видно, - постоянно возвращается -1 даже при наличии откр. советником позиций.MQL4++ обновлённый, как тут его называют!
У меня та же функция выдаёт корректное число позиций! Но у Вас ошибка в Comment()! Уверен, что функция работает!
Попробуйте так:
Так увидете на графике всё точно, переменные BuyPos и SellPos применяйте для проверок в условиях! Смотрите, как у меня:
Удачи!
Благодарю, borilunad и vadynik, за подсказку!
Действительно, заработала функция! Вот вам скромный подарочек за полезный совет: https://www.youtube.com/watch?v=SFJeHI2LVX4&feature=related !
Сейчас всё коммерцилизируется со страшной силой! Искренне Вам сочувствую!
Вот альтернатива. Функция вызывается только если количество ордеров изменилось. Дополнительно можно вызвать если тип ордера изменился.
Благодарю, borilunad и vadynik, за подсказку!
Действительно, заработала функция! Вот вам скромный подарочек за полезный совет: https://www.youtube.com/watch?v=SFJeHI2LVX4&feature=related !