Programmer 33 Author Share Posted November 3, 2008 To Samyel: Всё хитрим ? Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 3, 2008 To Yudjin78: часть 4 + часть 5 + часть 6 ? Индикатор на месте? Совет: Повтыкайте в код строчки Alert("1"); Alert("2"); ... по ходу его предполагаемого исполнения. Самый верный способ найти ошибку. Quote Link to post Share on other sites
Samyel 0 Share Posted November 3, 2008 To Samyel: Всё хитрим ? Хотя бы ссылку или инфу как научиться это делать. Не дайте умереть в нищете. Quote Link to post Share on other sites
Yudjin78 9 Share Posted November 4, 2008 To Yudjin78: часть 4 + часть 5 + часть 6 ? Индикатор на месте? Совет: Повтыкайте в код строчки Alert("1"); Alert("2"); ... по ходу его предполагаемого исполнения. Самый верный способ найти ошибку. Индикатор на месте. С алертами попробую. Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 4, 2008 Хотя бы ссылку или инфу как научиться это делать.Не дайте умереть в нищете. http://forum.mql4.com/ru/11705 Quote Link to post Share on other sites
Execu 0 Share Posted November 4, 2008 Уважаемый Программер! Я изучаю книгу Ковалёва, помаленьку продвигаюсь. В части "Простые программы" в главе "Использование технических индикаторов есть такой пример - "historybars.mq4". У меня почему-то получается не так, как в скриншоте автора (рис. 106): напр. "...выросла на 6 pt". У меня Алерт() выводит "48.1429". Подозреваю строчку Delta = (MA_c - MA_p)/Point; У автора, правда, нет знака деления, но думаю, это опечатка. Пробовал удалять "/Point", но выводится тоже не как в рисунке, а вот так: "0.0048". Что делать в этой ситуации? Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 4, 2008 /Point - правильно. Поставьте Delta = NormalizeDouble( (MA_c - MA_p)/Point, 1 ); Тогда будет выводить с точностью до первого знака после запятой. Quote Link to post Share on other sites
Execu 0 Share Posted November 5, 2008 Спасибо, действительно, работает! На евро показывает изменение МА как должно, но попробовал на нефти Light Sweet. МА движется на 1.056 пунктов с 67.068 до 68.124. Пробовал ставить цифру 3 в последнем параметре NormalizeDouble(), но конечный вид неудобоваримый - "1055.952". А с 0 в последнем параметре - "1056". Хотелось бы, чтобы показывало так, как МА и изменилась: "1.056", укажите, пожалуйста, как это сделать? Quote Link to post Share on other sites
Изя Кацман 218 Share Posted November 6, 2008 Уважаемые знатоки! Подскажите пожалуйста, я так понимаю, при вызове функции MarketInfo("EURUSD", MODE_STOPLEVEL) происходит обращение к серверу? Спасибо. Quote Link to post Share on other sites
Sergey Kovalyov 173 Share Posted November 6, 2008 Нет. Терминал УЖЕ знает эту информацию. http://forum.mql4.com/ru/16687 Quote Link to post Share on other sites
Изя Кацман 218 Share Posted November 6, 2008 Нет. Терминал УЖЕ знает эту информацию. http://forum.mql4.com/ru/16687 Благодарю за ответ и ссылку. Все понятно. Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 8, 2008 На заметку: Тип рисования DRAW_HISTOGRAM, примененный к индикатору главного окна, имеет свои особенности. Гистограмма рисуется между соответствующими значениями двух индексных массивов: чётного (в нашем случае - SpanA_Buffer) и нечетного (SpanB_Buffer). При этом используется цвет того индексного массива, значение которого больше. Quote Link to post Share on other sites
Клубничка 0 Share Posted November 8, 2008 Подскажите какой командой менять размер и цвет шрифта. К примеру с удовольствием сделала бы шрифт больше у советника чебурашки, т.к если сидеть с ноута, так вообще ничего не видно.... Речь идёт о...: CommentArray[1] = "System is working. Active lot: " + DoubleToStr(LotsArray[T-1],2); Как сделать эту надпись больше, другим цветом, ну и в добавок переместить =) Надеюсь меня все поняли? спасибо Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 8, 2008 To Клубничка: http://forum.mql4.com/ru/7766 Quote Link to post Share on other sites
RATMIR 0 Share Posted November 8, 2008 Подскажите какой командой менять размер и цвет шрифта. К примеру с удовольствием сделала бы шрифт больше у советника чебурашки, т.к если сидеть с ноута, так вообще ничего не видно....Речь идёт о...: CommentArray[1] = "System is working. Active lot: " + DoubleToStr(LotsArray[T-1],2); Как сделать эту надпись больше, другим цветом, ну и в добавок переместить =) Надеюсь меня все поняли? спасибо "Чебурнатор" - сырой еще пока советник-лучше только на демо счете его использовать Quote Link to post Share on other sites
Клубничка 0 Share Posted November 9, 2008 (edited) To Клубничка: http://forum.mql4.com/ru/7766 Спасибо. Нашла ответ на свой вопрос тут http://book.mql4.com/ru/functions/objects Edited November 9, 2008 by Клубничка Quote Link to post Share on other sites
Execu 0 Share Posted November 9, 2008 Неужели невозможно добиться правильного отображения пунктов нефти? Несколько дней бился над этой проблемой, ничего не выходит Функция NormalizeDouble(), наколько я понимаю, не работает на нефти. При изменинии последнего параметра на 0 выводит 4-х значную цифрь, а с последним параметром "4" выводит с 3-мя цифрами после 4-х значного отображения пунктов нефти. Я начинающий в языке mql4, помогите, пожалуйста! Quote Link to post Share on other sites
Клубничка 0 Share Posted November 9, 2008 Какую функцию использовать для определения количества откртых ордеров в терминале? К примеру хочу поставить Carcharodon на 10 пар, но с учёбом что если уже открыты 2 ордера 3й не открывал. Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 9, 2008 To Клубничка: OrdersTotal(); -считает все выставленные: и открытые, и отложенные. -если нужны только открытые, то надо перебрать все выставленные и посчитать открытые. Quote Link to post Share on other sites
Programmer 33 Author Share Posted November 9, 2008 To Execu: Ф-я double NormalizeDouble(double v, int n); работает везде. В Вашем случае нужно просто посмотреть на котировку инструмента и указывать n = количество символов после запятой. Quote Link to post Share on other sites
-=@rty_ytr@=- 0 Share Posted November 10, 2008 Programmer. не могли ли вы помоч мне еще раз? попробую изложить свою мысль. Советник открывает позу(назавем ее номер 1) при определенных условиях индикаторов и закрывает ее обычным close, нужно ее закрыть противоположной позицией (назовем ее номер 2) при этом 2-ю позицию зыкрыть просто определенным условием. открыть 2-ю позицию, как я понимаю можно просто closeby, а как ее тогда закрыть определнным условием именно через данные индикаторов? т.е. мне нужно сделать так пока не открылась 1-я не открывается и 2-ая. И 1-я позиция может быть как sell так и buy. поможете или скажите где можно почитать может сам разберусь. надеюсь мысль изъяснил понятно. Спасибо. Quote Человек в жизни имеет все, что хочет, а если не имеет, значит, недостаточно хочет. (Кирсан Илюмжинов) All ingenious is simple Link to post Share on other sites
Programmer 33 Author Share Posted November 10, 2008 Не очень понял, в чём проблема. Забудьте про OrderCloseBy() - делайте всё руками. Вам нужны переменные-флаги, чтобы хранить состояние системы. Quote Link to post Share on other sites
Dmtr 0 Share Posted November 11, 2008 Ребята, никто не сталкивался с проблемой синхронизации открытия ордеров? т.е. если на разных компьютерах запустить один и тот же скрипт на открытие позиции в таком виде: if(!OrderExists(magic))//<- эта функция ищет открытый ордер { OrderSend(...); } то с большей вероятностью система откроет 2 ордера, а хотелось бы один. В настоящее время я добавляю Sleep в один из скриптов... Может кто-нибудь придумал более элегантное решение? Quote Link to post Share on other sites
~~SOM~~ 1 Share Posted November 11, 2008 Ребята, никто не сталкивался с проблемой синхронизации открытия ордеров? т.е. если на разных компьютерах запустить один и тот же скрипт на открытие позиции в таком виде: if(!OrderExists(magic))//<- эта функция ищет открытый ордер { OrderSend(...); } то с большей вероятностью система откроет 2 ордера, а хотелось бы один. В настоящее время я добавляю Sleep в один из скриптов... Может кто-нибудь придумал более элегантное решение? Можно проверить из советника, не запущен ли он уже. Для этого при запуске выставить далекий отложенный ордер и проверять потом, выставлен ли он. Детали додумайте сами. Quote Link to post Share on other sites
Dmtr 0 Share Posted November 11, 2008 Можно проверить из советника, не запущен ли он уже. Для этого при запуске выставить далекий отложенный ордер и проверять потом, выставлен ли он. Детали додумайте сами. Неплохая идея! Спасибо! 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.