Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Уроки по программированию на языке MQL4 от eevviill
[IMPORTANT]3.1)После функции iCustom где нибудь в конце пишем строчку
Alert(arrow_up," ",arrow_down). Это делается для того чтобы узнать что(какое значение) нам возвращает индикатор.
3.2)Заходим в тестер. Запускаем советник с визуализацией. После окончания тестирования заходим в вкладку журнал тестера и смотрим что там нам Алерт писал.
3.3)Итак. Когда стрелок нет Алерт выдаёт (0 0). Вывод (0-стрелки вверх нету 0-стрелки вниз нету).
Если (1.2345 0). Вывод. Ага! Если появилась стрелка вверх, то индикатор возвпащает цену где появилась. Ну и наоборот.
Конечный итог. 0=нету сигнала. >0 есть сигнал.[/IMPORTANT]
Василий, извини, что не сдержался. Но... Это определяется гораздо проще. Существует окно данных которое открывается нажатием кнопки с изображением похожим на прицел или нажатием клавиш ctr+d Там и отображается показание индикаторов на баре который под курсором мышки.
Василий, извини, что не сдержался. Но... Это определяется гораздо проще. Существует окно данных которое открывается нажатием кнопки с изображением похожим на прицел или нажатием клавиш ctr+d Там и отображается показание индикаторов на баре который под курсором мышки.
Пояснение. 1)Пишем пользовательскую функцию типа int(целые числа), так как пункты дробными быть не могут.
2)Объявляем переменную в которую будем записывать количество пунктов.
3)Перебераем все ордера и выбираем по нужному нам меджику.
4)Если ордер бай то записываем в нашу переменную (цену-цену открытия ордера)/размер 1-го пункта 5)Если ордер сел то записываем в нашу переменную (цену открытия ордера-цену)/размер 1-го пункта
Так, не для урока. Во всех програмах где будете использовать проскальзывание желательно в инит прописывать автоматическое определение величины проскальзывания в зависимости от количества цифр в валютной паре.
Пояснение.
1)Объявляем переменную в которую при открытии ордера будет записан тикет.
2)Будем пробовать открыть ордер(2-ое в цыкле) либо пока ордер не откроется(ticket_op=1), либо пока не истечёт количество попыток открыть ордер(j_op = Open_MaxAttempts);
3)Советник дальше не будет работать, пока не освободится торговый поток.
4)ticket_op
Если ордер откроется, то в эту переменную запишем тикет ордера.
Не для урока.
Код можно вставлять где угодно.
После его написание всё что ниже(в функции int start()) будет выполнятся только раз на открытии свечи. Это нужно если не хотите чтобы советник работал по всем тикам(если в этом нет нужды) или надо сделать Alert чтобы только раз на свече звенел.
1) Это пищем в глобальных переменных.
PHP:
static int prevtime = 0;
2) Это пишем в int init()
PHP:
prevtime = iTime(Symbol(),0,0);
3) Это пишем в функции int start(), там где хотим чтобы после этой записи подальший код выполнялся только раз на открытии свечи.
PHP:
if (iTime(Symbol(), 0, 0) == prevtime) {Sleep(50);return(0);}
prevtime = iTime(Symbol(),0,0);
P.S. Наверно буду прекращать писать уроки. Никому не интересно. ОК. Не, я не обиделся, просто сделал выводы. Люди предпочитают иметь рыбу(готовый код) вместо удочки(знание mql4). Но часто бывает что того кто может дать рыбу, нету рядом и приходится идти в магазин(платное написание програмы).
Уважаемый, eevviill, на самом деле всё нет так!
Например, я уже почти с самого начала наблюдаю за вашей веткой и очень благодарен вам за неё.
А что касается что кто-то предпочитает готовый код, то не факт. Например, я зная некоторые закономерности рынка хочу написать сам, и потому уже пару месяцев по тиху изучаю чьи-то коды.
А думаю что кому-то ветку не нужна, не стоит. Вот, например, ещё одна причина.
В этой ветке разве можно задавать вопросы по языку и коду, в котором что-то не понятно?
Уважаемый, eevviill, на самом деле всё нет так!
Например, я уже почти с самого начала наблюдаю за вашей веткой и очень благодарен вам за неё.
А что касается что кто-то предпочитает готовый код, то не факт. Например, я зная некоторые закономерности рынка хочу написать сам, и потому уже пару месяцев по тиху изучаю чьи-то коды.
А думаю что кому-то ветку не нужна, не стоит. Вот, например, ещё одна причина.
В этой ветке разве можно задавать вопросы по языку и коду, в котором что-то не понятно?
В общем-то у меня есть предложения по созданию уроков: 1. Урок по внедрению мани-менеджмента в сову. Меня интересует вариант как сделать лёгкий мартин с N-ым количеством колен. 2. Как сделать так чтоб ордера в сове открывались не на каждом тике, а на каждом баре. И, в частности, чтобы ордера открывались только если цена прошла определённое количество а определённом направлении, а не лепила ордера один на другой.
В общем-то у меня есть предложения по созданию уроков: 1. Урок по внедрению мани-менеджмента в сову. Меня интересует вариант как сделать лёгкий мартин с N-ым количеством колен. 2. Как сделать так чтоб ордера в сове открывались не на каждом тике, а на каждом баре. И, в частности, чтобы ордера открывались только если цена прошла определённое количество а определённом направлении, а не лепила ордера один на другой.
2)http://forexsystemsru.com/yazyk-programmirovaniya-mql4/67073-mql4-uroki-ot-eevviill-12.html#post487297
Там пример работы на открытии бара.
http://forexsystemsru.com/yazyk-programmirovaniya-mql4/67073-mql4-uroki-ot-eevviill-9.html#post463359
Подсчёт открытых ордеров.
1)http://forexsystemsru.com/yazyk-programmirovaniya-mql4/67073-mql4-uroki-ot-eevviill-8.html#post459801
Расчёт лота от депозита.
http://forexsystemsru.com/yazyk-programmirovaniya-mql4/67073-mql4-uroki-ot-eevviill-8.html#post459801
Всё это вместе(включая мартини) есть в моём шаблоне.
Я так понимаю тут идёт проверка, мол открылся ордер или нет? Или это нечто иное?
Мне не совсем понятна причина использования знаков сравнения <,>,<=, ,=> с 0.
Дяденька eevviill, а можно этого зверя попросить данные в файл писать ? Вопрос на самом деле не болезненный, но интересный в плане практической торговли, есть пара идей и задумок....
Естественно, если идеи себя оправдают, появятся на форуме в доступе общем.
Хотя, идея пока № 1: Выкладывал я индюк, квант левел, сегодня ставил на тик график, ппз появляется быстрее, можно как то одно к другому прикрутить ?
Дяденька eevviill, а можно этого зверя попросить данные в файл писать ? Вопрос на самом деле не болезненный, но интересный в плане практической торговли, есть пара идей и задумок....
Естественно, если идеи себя оправдают, появятся на форуме в доступе общем.
Хотя, идея пока № 1: Выкладывал я индюк, квант левел, сегодня ставил на тик график, ппз появляется быстрее, можно как то одно к другому прикрутить ?
Я так понимаю тут идёт проверка, мол открылся ордер или нет? Или это нечто иное?
Мне не совсем понятна причина использования знаков сравнения <,>,<=, ,=> с 0.
Рекомендую тебе часто пользоватся кнопкой f1. Если её нажать на OrderSend, то в справке(снизу) будет написано что если ордер открылся, то функция возвращает тикет ордера. Ну понятно, он больше 0. А если не удалось открыть ордер, то возвращает -1. Тоесть да, ты прав. Это проверка открыт ли ордер.
Дяденька eevviill, а можно этого зверя попросить данные в файл писать ? Вопрос на самом деле не болезненный, но интересный в плане практической торговли, есть пара идей и задумок....
Естественно, если идеи себя оправдают, появятся на форуме в доступе общем.
Хотя, идея пока № 1: Выкладывал я индюк, квант левел, сегодня ставил на тик график, ппз появляется быстрее, можно как то одно к другому прикрутить ?
Пояснение.
1)Для начала выбираем ордер с которым будем работать.
2)Проверяем ордер на меджик.
3)Здесь указываем условие трейлинга для ордера бай.
3.1)OrderType()==OP_BUY проверяем тип открытого ордера.
3.2)Bid-OrderOpenPrice()>TrailingStop*Point текущая цена-цена открытия ордера>количество пунктов трейлинга.
3.3)OrderStopLoss()<Bid-TrailingStop*Point стоп лос ордера<текущая цена-количество пунктов трейлинга.
4)OrderModify(); функция модификации ордера(СЛ,ТП,цена отложенного ордера).