Programmer 33 Author Share Posted August 7, 2008 To Dedushka: Хранятся ордера в истории по времени закрытия. Последние закрытые будут последними. Самый последний: n = OrdersHistoryTotal( ) - 1; Quote Link to post Share on other sites
Roger 18 Share Posted August 7, 2008 Уважаемый, ты хочешь сказать, чтоOrderSelect(0, SELECT_BY_POS, MODE_HISTORY) сразу даст мне последний закрытый ордер? Или наоборот, первый? . Первый. Последний будет иметь номер OrderHistoryTotal()-1. Сортируй их в терминале как хочешь, это внутренняя сортировка только на экране, номера позиций не изменятся. Quote Link to post Share on other sites
Dedushka 1,700 Share Posted August 7, 2008 To Dedushka: Хранятся ордера в истории по времени закрытия. Последние закрытые будут последними. Самый последний: n = OrdersHistoryTotal( ) - 1; Ну, вот и нет проблемы больше, всё остальное я решу быстро сам. Хорошо, когда есть Programmer, Roger и тема "Язык MQL" - сразу становится легче жить. Спасибо, джентльмены! Quote В бой идут одни старики. (с) Link to post Share on other sites
касса 2 Share Posted August 10, 2008 помогите советом пож.советник в ex4.он у мня не открывается чтобы изменить код.как это сделать? Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 10, 2008 To касса: помогите советом пож.советник в ex4.он у мня не открывается чтобы изменить код.как это сделать? Никак. Для этого надо декомпилировать *.ex4 файл, который, по словам разработчиков, очень хорошо защищён. Читайте: http://forum.mql4.com/ru/2754 Quote Link to post Share on other sites
касса 2 Share Posted August 10, 2008 (edited) а вы сможете декомпиллировать?или дайте ссылку где можно скачать декомпилятор пожалуйста. Edited August 10, 2008 by касса Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 10, 2008 To касса: а вы сможете декомпиллировать?или дайте ссылку где можно скачать декомпилятор пожалуйста. Нет, не смогу - никогда этим не занимался. Про декомпиляцию можно прочитать здесь: http://forum.mql4.com/ru/2963/page6#24658 здесь: http://forum.mql4.com/ru/6320/page56#43392 и здесь: http://forum.mql4.com/ru/11340/page6 Если Вам это очень нужно, наберите в Google фразу: "декомпиляция ex4". Quote Link to post Share on other sites
Rann 261 Share Posted August 12, 2008 Раньше декомпилировали, но разработчики каждый раз усложняют алгоритмы шифрации. На сегодняшний день я, например, не знаю, чтобы могли декомпилировать. Скорее всего, зря теряете время. Quote Раннев Дмитрий AMTS Solutions Мой блог Link to post Share on other sites
Aleks404 0 Share Posted August 15, 2008 люди добрые помогитe прописaть условиe в совeтникe -типa, если (sell ордeр закроется по стоплосс и нe будeт открытых ордeров)то .... Quote О...BСEВЫШНИЙ дaй мнe силы - добиться цeли. Link to post Share on other sites
Programmer 33 Author Share Posted August 15, 2008 To Aleks404: Напрямую такое условие прописать нельзя. Надо мониторить состояние ордера в функции start(). Делается это так: int start() { [b]static[/b] int t; //статическая переменная - не теряет своего значения при выходе из функции t = OrderSend(...); //создание Вашего ордера OrderSelect(t, SELECT_BY_TICKET); if(OrderClosePrice() == OrderStopLoss() && OrdersTotal() == 0) { //что надо сделать } //... } Quote Link to post Share on other sites
Aleks404 0 Share Posted August 16, 2008 Я чё то не понял, на против коментария -//создание Вашего ордера в скобках (...), надо чтото прописать, а то компилятор ругается. И где тут определение что Sell order закр., как мне можно будет поменять условие - -если (sell ордeр закроется по стоплосс и нe будeт открытых ордeров)то .., на-если (Buy ордeр закроется по стоплосс и нe будeт открытых ордeров)то .. Quote О...BСEВЫШНИЙ дaй мнe силы - добиться цeли. Link to post Share on other sites
Programmer 33 Author Share Posted August 16, 2008 to Aleks404: Строчкой t = OrderSend(...) я лишь намекаю, что там, где Вы открываете ордер, Вам нужно возвращаемое ф-ей OrderSend(...) значение положить в переменную t. А какой Вы создаёте ордер и как - дело Ваше. Алгоритм одинаков как для Sell, так и для Buy. А вообще, Вам не помешает почитать курс MQL4. Quote Link to post Share on other sites
alex1978 43 Share Posted August 16, 2008 Раньше декомпилировали, но разработчики каждый раз усложняют алгоритмы шифрации. На сегодняшний день я, например, не знаю, чтобы могли декомпилировать. Скорее всего, зря теряете время. Зря Вы так думаете Quote Link to post Share on other sites
касса 2 Share Posted August 17, 2008 Зря Вы так думаете а вы можете помочь? Quote Link to post Share on other sites
alex1978 43 Share Posted August 18, 2008 а вы можете помочь? Лично я этим не занимаюсь ,но мне делали Quote Link to post Share on other sites
~~SOM~~ 1 Share Posted August 19, 2008 Лично я этим не занимаюсь ,но мне делали Это не ответ. Кто, где, когда, почем, зачем . Конкретизируйте :)! Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 19, 2008 ... и сразу получайте BAN Quote Link to post Share on other sites
andrspir 0 Share Posted August 20, 2008 Пишу небольшого советника. Подскажите как программно удалить все отложенные ордера? Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 20, 2008 To andsprir: int i, total = OrdersTotal(); for(i=0; i<total; i++) { OrderSelect(i, SELECT_BY_POS); if(OrderType() > 1) OrderDelete(OrderTicket()); } Quote Link to post Share on other sites
Roger 18 Share Posted August 20, 2008 To Programmer Вы наступаете на те же грабли, что и все начинающие. При удалении отсчет ордеров надо вести с конца, а не с начала. Quote Link to post Share on other sites
Programmer 33 Author Share Posted August 20, 2008 Да верно, забыл одну строчку - надо так: int i, total = OrdersTotal(); for(i=0; i<total; i++) { OrderSelect(i, SELECT_BY_POS); if(OrderType() > 1) {OrderDelete(OrderTicket()); i--; total--;} } Или, действительно, удалять с конца, т.е. так: int i, total = OrdersTotal(); for(i=total-1; i>=0; i--) { OrderSelect(i, SELECT_BY_POS); if(OrderType() > 1) OrderDelete(OrderTicket()); } Quote Link to post Share on other sites
SeaSpirit 0 Share Posted August 22, 2008 Уважаемые программисты, подскажите пожалуйста. Большинство встречающихся советников работая на валюте отказываются работать на CFD и подобных инструментах. Подскажите пожалуйста, что надо добавить в их код, чтоб они начали работать и на CFD? Quote Link to post Share on other sites
Shu 0 Share Posted August 22, 2008 Уважаемые программисты, подскажите пожалуйста. Большинство встречающихся советников работая на валюте отказываются работать на CFD и подобных инструментах. Подскажите пожалуйста, что надо добавить в их код, чтоб они начали работать и на CFD? большинство советников написаны для валют. боле, того, в тестовых целях. если инструмент имеет не совсем стандартные свойства (размер тика и тому подобное), нужно это предусматривать в советнике.. Quote люблю пиво, стреляю, пишу советники Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.