NickWelder Опубликовано 26 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 апреля, 2014 Здравствуйте. Помогите найти ошибку. В журнале при тестировании находит ошибку 130 - неправильные стопы. Test3Indicator.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Aleandroff Опубликовано 26 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 апреля, 2014 Курс MQL на английском языке - может поможет :)] CodersGuruFullCourse.zip Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 Здравствуйте. Помогите найти ошибку. В журнале при тестировании находит ошибку 130 - неправильные стопы. Вы после установки стоповых ордеров не выбираете ордер OrderSelect(), а пытаетесь модифицировать СЛ и ТР.Я не знаю какой у вас билд терминала - видимо 600+, я сделал для 509.Кстати, сова тормозит - ужас... Может Вам вместо ТМА использовать КС? - он чуть похуже, но быстрее раз в 10!Test3Indicator.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 Кто нить знает есть ли в MQL4 что то типа указателей как в си - @WindowProc ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
fv2500 Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 Кто нить знает есть ли в MQL4 что то типа указателей как в си - @WindowProc ? #import "user32.dll"#import "kernel32.dll"и т.п. и справка Изменено 27 апреля, 2014 пользователем fv2500 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 та нет я имею ввиду как сослаться на свою функцию точнее нужен указатель оконной функции, функция то есть а как указатель на неё получить? Ссылка на сообщение Поделиться на другие сайты More sharing options...
fv2500 Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 ну где она прописана, оттуда и вытаскивай 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nixxer Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 Извращения в виде работы с указателями надо уносить в библиотеку. Не совсем понятно о какой оконной функции идет речь. Окно чего, терминала, чарта, ? Или какое-то свое? Или речь о CallWindowProc, DefWindowProc, EnumWindows, EnumChildWindows?В любом случае надо правильно подбирать инструмент, никто к примеру не обрабатывает текст на поиск url самопальными библиотеками на си шарпе, когда есть перл. Так и тут, оконный функционал надо кодить на си, делфи, хоть на ассемблере. И эти функции вызывать из мкл.Лучше опишите чего желаете добиться, может и не потребуется некий указатель. Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 В структуре WNDCLASSEX есть параметр lpfnWndProc - Указатель на оконную процедуру(функцию) CallWindowProc. В MQL4 есть функция а как на нее указатель получить?? Ссылка на сообщение Поделиться на другие сайты More sharing options...
nixxer Опубликовано 27 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 апреля, 2014 То есть вы желаете вызвать CallWindowProc передав в качестве параметра оконной функции wndproc адрес какой-то функции из кода mql? @-)Если да, то поздравляю, вы люто ошиблись в архитектуре своего приложения. Получить адрес функции mql нельзя. Так было еще до 600+ билдов. Теперь в 600+ билдах есть возможность получить адрес любой функции во время работы в отладчике но официальных методов получить данные адреса не существует. Еще раз задам вопрос - какой функционал вы желаете получить? Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 28 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 апреля, 2014 Можно ли вызвать функцию RegisterClassEx из MQL4 (без использования dll), чтоб затем вызвать createwindowex? Изменено 28 апреля, 2014 пользователем emelenium@gmail.com Ссылка на сообщение Поделиться на другие сайты More sharing options...
fv2500 Опубликовано 28 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 апреля, 2014 Можно ли вызвать функцию RegisterClassEx из MQL4 (без использования dll), чтоб затем вызвать createwindowex? нет такого (или я не знаю)мы и дальше будем гадать, что тебе нужно?ты хочешь создавать левое окно из mql и из этого окна запускать функцию из mql? извращенец! 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
NickWelder Опубликовано 28 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 апреля, 2014 Вы после установки стоповых ордеров не выбираете ордер OrderSelect(), а пытаетесь модифицировать СЛ и ТР.Я не знаю какой у вас билд терминала - видимо 600+, я сделал для 509.Кстати, сова тормозит - ужас... Может Вам вместо ТМА использовать КС? - он чуть похуже, но быстрее раз в 10! Большое спасибо за то, что ткнули носом в ошибку. Глаз замылился, поэтому не увидел её. Вы правы, билд 609.На моей машине всё вроде нормально работало. Может, оттого что железо мощное. Или мне надо осваивать профилировщик. А что такое КС? Подскажите, как отловить редко проявляющуюся ошибку 130? Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 28 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 апреля, 2014 Кнопки sell и buy в отдельном окне, как можно сделать?Ну или хотя бы на графике. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 28 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 апреля, 2014 А что такое КС? Подскажите, как отловить редко проявляющуюся ошибку 130?КС - индюк, похожий на ТМА, только без рекурсии (перерисовки). Внизу прикрепил.Когда ошибка 130 редко возникает, то нужно ставить Print(параметры цены и стопов) в блоке обработки возможных ошибок после установки/модификации ордеров.KC.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
fv2500 Опубликовано 29 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 апреля, 2014 Кнопки sell и buy в отдельном окне, как можно сделать?Ну или хотя бы на графике. ObjectCreate(chart_ID,name,OBJ_BUTTON,wind,0,0);В справку давно заглядывал? 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
denkudo Опубликовано 29 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 апреля, 2014 Люди добрые помогите с решением ДЗ по уроку №6, а именно с 3 пунктом: "при написании первого скрипта в данном видео-уроке была заведомо допущена ошибка, которая может привести к его некорректной работе. Найдите её и предложите своё решение."Уже сутки сижу голову ломаю, не могу понять где ошибка. Спасибо.Если что, вот код скрипта где допущена ошибка:#property strict#property show_inputsextern int Profit = 5;extern int Slippage = 5;double point;int digits, ask, bid, open;//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+int start(){ digits = MarketInfo (OrderSymbol (), MODE_DIGITS); if (digits == 3 || digits ==5) { Profit *= 10; Slippage *= 10; } for (int i=OrdersTotal () -1; i>=0; i--) { if (!OrderSelect (i,SELECT_BY_POS, MODE_TRADES)) break; if (OrderType() == OP_BUY) { point = MarketInfo (OrderSymbol (), MODE_POINT); bid = MathRound (MarketInfo (OrderSymbol (), MODE_BID)/point); open = MathRound (OrderOpenPrice ()/point); if (bid - open if (OrderClose (OrderTicket (), OrderLots (), bid*point, Slippage)){} } if (OrderType() == OP_SELL) { point = MarketInfo (OrderSymbol (), MODE_POINT); ask = MathRound (MarketInfo (OrderSymbol (), MODE_ASK)/point); open = MathRound (OrderOpenPrice ()/point); if (open - ask if (OrderClose (OrderTicket (), OrderLots (), ask*point, Slippage)){} } } return (0); } //+------------------------------------------------------------------+ Изменено 29 апреля, 2014 пользователем denkudo Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 29 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 апреля, 2014 Это кнопки на графике получатся. (В принципе можно так)Но в идеале хотелось бы отдельную панельку от терминала! Ссылка на сообщение Поделиться на другие сайты More sharing options...
fv2500 Опубликовано 29 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 апреля, 2014 Это кнопки на графике получатся. (В принципе можно так)Но в идеале хотелось бы отдельную панельку от терминала! В MT4 в индикаторах есть папка Example, в ней пример панели с кнопками, чекбоксами и прочей начинкой. Можешь оттуда черпать вдохновение. Лично я строю свой муравейник, можешь глянуть тут: http://tlap.com/forum/hardwaresoftware-dlya-treydera/27/vspomogatelnyy-sovetnik-tradesystem-2-tester/6576Добавлено: 29-04-2014 13:31:36И еще раз, люди! Чаще жмите F1. Там много всего интересного! Изменено 29 апреля, 2014 пользователем fv2500 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
emelenium@gmail.com Опубликовано 30 апреля, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 30 апреля, 2014 Если создать кнопку на графике, то как она управление передает, т.е. есть ли какой нибудь обработчик событий кнопки или сдесь самому надо опрашивать и смотреть состояние кнопки отжата она или нет? Ссылка на сообщение Поделиться на другие сайты More sharing options...
matew Опубликовано 1 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 мая, 2014 Люди, помогите пож новичку с ММ!Хочу рассчитывать в сове размер лота, как это делается в предложенном Павлом калькуляторе http ://tradelikeapro.ru/mani-menedzhment-forex/Как узнать минимальный размер лота на данном счете (0,1 или 0,01)?Как узнать цену пункта на данной валютной паре в том виде, в котором она дана в этом калькуляторе (то есть, EURUSD = 1,00, EURGBP = 1,59 и т. д.)Пытаюсь гуглить "цену пункта", а выдает совсем не то, что мне надо :( Ссылка на сообщение Поделиться на другие сайты More sharing options...
NickWelder Опубликовано 1 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 мая, 2014 Всех с 1 Мая! Снова прошу Вашей помощи в поиске ошибки. При трейлинг-стопе по parabolic SAR проявляется ошибка 1 в OrderModify. Трейлинг-стоп по фракталам работает нормально.Код прилагаю. Заранее спасибо. HardTrailing.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 1 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 мая, 2014 При трейлинг-стопе по parabolic SAR проявляется ошибка 1 в OrderModify. Возможно САР возвращает значения с большей точностью - надо нормализовать...вместо: if(OrderStopLoss() != SL)OrderModify(OrderTicket(), OrderOpenPrice(), SL, OrderTakeProfit(), 0);пробуй так: SL = NormalizeDouble(SL, Digits);if(MathAbs(OrderStopLoss()-SL) > Point) //Я-бы даже сделал Point*5 (на 5-знаке) - что-б не раздражать брокера... OrderModify(OrderTicket(), OrderOpenPrice(), SL, OrderTakeProfit(), 0); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
fv2500 Опубликовано 1 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 мая, 2014 Если создать кнопку на графике, то как она управление передает, т.е. есть ли какой нибудь обработчик событий кнопки или сдесь самому надо опрашивать и смотреть состояние кнопки отжата она или нет? Есть функция терминала OnEvent. Только она реагирует на событияна графике. Всё остальное твои заботы. Состояние кнопки нажата/отжата можно проверить Добавлено: 01-05-2014 12:38:23Люди, помогите пож новичку с ММ!Хочу рассчитывать в сове размер лота, как это делается в предложенном Павлом калькуляторе http ://tradelikeapro.ru/mani-menedzhment-forex/Как узнать минимальный размер лота на данном счете (0,1 или 0,01)?Как узнать цену пункта на данной валютной паре в том виде, в котором она дана в этом калькуляторе (то есть, EURUSD = 1,00, EURGBP = 1,59 и т. д.)Пытаюсь гуглить "цену пункта", а выдает совсем не то, что мне надо :( MarketInfo 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
NickWelder Опубликовано 1 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 мая, 2014 Возможно САР возвращает значения с большей точностью - надо нормализовать... Увы, теперь появились ошибки 130 в OrderModify. Буду пытаться выловить. Всё равно спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти