mzk_3om6u Опубликовано 29 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 29 октября, 2013 учебник по MQL4 и знание матанализа помогут. Ссылка на сообщение Поделиться на другие сайты More sharing options...
igorёk Опубликовано 31 октября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 октября, 2013 А помочь можешь? так быстрее было бы.Я вложил файлы, diverg.mq4 это будет сова. Туда подключил через iCustom индикатор DiverStoch. Но я уверен что перенес не все, если будет у кого время, гляньте пожалуйста, очень надо.!Кто поможет сделать, можно договориться о вознаграждении! DiverStoch.mq4diverg.mq4diverg.ex4 Изменено 31 октября, 2013 пользователем igorёk Ссылка на сообщение Поделиться на другие сайты More sharing options...
v Опубликовано 1 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 1 ноября, 2013 Уважаемый Xbms и все кто в теме! Подскажите пожалуйста, иногда надо сигнал индикатора в подокне, вывести в главное окно, чтобы удобней сигналы отследить. Я понимаю, что можно отдельный инди написать для главного окна, но бывает проще кусок кода вставить и глянуть по-быстрому.Я нашёл такой код, чтобы добавить в конец главного цикла:if (CCIBuffer > 0) { string Obj_Name = "CCI" + Time; if (ObjectFind(Obj_Name) == -1) ObjectCreate (Obj_Name, OBJ_TEXT, 0,0,0); // Создаём объект ObjectSet (Obj_Name, OBJPROP_TIME1, Time); // Координата Х ObjectSet (Obj_Name, OBJPROP_PRICE1, Low); // Координата Y ObjectSetText(Obj_Name,"+",8,"Arial Black",Green); // Текстовое описание WindowRedraw(); // Обновление }else if (CCIBuffer { Obj_Name = "CCI" + Time; if (ObjectFind(Obj_Name) == -1) ObjectCreate (Obj_Name, OBJ_TEXT, 0,0,0); // Создаём объект ObjectSet (Obj_Name, OBJPROP_TIME1, Time); // Координата Х ObjectSet (Obj_Name, OBJPROP_PRICE1, High); // Координата Y ObjectSetText(Obj_Name,"+",8,"Arial Black",Red); // Текстовое описание WindowRedraw(); // Обновление } Но когда я меняю "Координату Y" на High, объект появляется не над High свечи, а ниже. Как его приподнять до "над High"? Добавляю иллюстрацию для визуальной обсервации и исключения ментальной обструкции :) eurusdm15c.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
iljagor Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Здравствуйте, xbms! Большая просьба, подсказать где мне найти информацию по работе с нулевым баром. Это мне нужно для написания эксперта. Я понимаю, что он незакончен и потому требует иного к себе отношения. Любая информация пригодится, любые ссылки на информацию. В частности, как он формируется в момент открытия.Еще раз формулирую вопрос:1. в момент открытия нулевого бара с приходом его первого тика чему равно Open(0) Close(0) High(0) и Low(0)?2. то же самое с приходом 2 3....тиков, т.е как меняются со временем характеристики нулевого бара с приходом тиков 3. теперь о тике - у каждого тика(группового в т.ч.) чему равно Open(0) Close(0) High(0) и Low(0)? 4. где это написано в документации(учебниках) по мкл4? ссылки желательно.5. насколько отличаются Open(0) Close(0) High(0) и Low(0) у разных ДЦ и брокеров?6. а для следующих баров 1,2,3.... ?Заранее благодарю. Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 4 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Привет iljagor!ух... жесть какая... :)специально для Вас во вложении набросал целый советник!Посмотрите его на досуге... bars.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
iljagor Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Я понял, что можно написать целую статью о поведении Open(0) Close(0) High(0) и Low(0) с практическими выводами о написании экспертов. Я бы с удовольствием прочитал такую статью.Дело в том, что разбираясь в коде известных и прибыльных советников и индикаторов, я часто вижу использование Open(0) Close(0) и подозреваю, что их прибыльность связана вовсе не с этим, так как Open(0) Close(0) High(0) и Low(0) и Open(1) Close(1) на мой взгляд весьма искуственные образования в отличии от High(1) и Low(1) и и вкладывать в них какой-то смысл, а тем более строить алгоритм советника с их использованием просто неправильно. Добавлено: 04-11-2013 13:07:19За Ваш ответ спасибо. Он мне действительно помог - хотя и не в полной мере. Я это сразу написал, но часть моего текста куда-то пропала - нет опыта форумных переписок Изменено 4 ноября, 2013 пользователем iljagor Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 4 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Я понял, что можно написать целую статью о поведении Open(0) Close(0) High(0) и Low(0) с практическими выводами о написании экспертов. Я бы с удовольствием прочитал такую статью.Дело в том, что разбираясь в коде известных и прибыльных советников и индикаторов, я часто вижу использование Open(0) Close(0) и подозреваю, что их прибыльность связана вовсе не с этим, так как Open(0) Close(0) High(0) и Low(0) и Open(1) Close(1) на мой взгляд весьма искуственные образования в отличии от High(1) и Low(1) и и вкладывать в них какой-то смысл, а тем более строить алгоритм советника с их использованием просто неправильно. По правде говоря, я не очень пойму что Вы хотите...Эти функции всего-лишь показывают цены открытия, закрытия и т.д. свечи за какой-то промежуток времени (зависит от ТФ). Ссылка на сообщение Поделиться на другие сайты More sharing options...
iljagor Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Я хочу написать код советника, который будет прибыль приносить. Для этого мне никак недостаточно выучить все операторы языка, при этом не разобравшись, с чем именно они оперируют. Даже читая код чужого советника, мне нужно понимать не только что он делает, но и почему, и что получится в результате его действий. Поэтому, встречая в коде советника Open(0) Close(0) High(0) и Low(0) я думаю, что я чего то не знаю, либо автор не очень грамотно использует эти конструкции.Еще раз вопрос - правильно ли использовать в советнике Open(0) Close(0) High(0) и Low(0) или гораздо правильнее писать Ask, Bid, спред? Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 4 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Я хочу написать код советника, который будет прибыль приносить. Для этого мне никак недостаточно выучить все операторы языка, при этом не разобравшись, с чем именно они оперируют. Даже читая код чужого советника, мне нужно понимать не только что он делает, но и почему, и что получится в результате его действий. Поэтому, встречая в коде советника Open(0) Close(0) High(0) и Low(0) я думаю, что я чего то не знаю, либо автор не очень грамотно использует эти конструкции.Еще раз вопрос - правильно ли использовать в советнике Open(0) Close(0) High(0) и Low(0) или гораздо правильнее писать Ask, Bid, спред? даже не знаю как тебе ответить, дружище...быть может всё-таки лучше прочитать справку об этих функциях?Вкратце, Open[0] - это цена открытия текущей свечи, соответственно Close[0] - цена закрытия текущей свечи, High и Low - это экстремумы свечиНадеюсь, что ты знаешь что такое Ask, Bid и спред...P.S.: Задача в разработке советника, который будет приносить прибыль достаточно серьёзная, и считаю, что тебе следует уделить немного больше времени изучению базовых функций, нежели ты уделил ранее... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
iljagor Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Получился бессмысленный цикл while(k=k)попросил почитать теорию-сказали: чаво читать, смотри глазамипосмотрел, не все понял - так ты ж теории то не читал.Я понимаю -High(1) -объективная хотя и случайная величина, будет почти одинаковой у всех ДЦ в данный момент и на данной паре.Open(1) Close(1) абсолютно произвольные величины, которые и близко совпадать не будут у разных ДЦ в данный момент и на данной паре.Сказку о том, как средневековые японцы торговали мешочками с рисом и как у них очень осмысленно и продуманно получался Open и Close дневного диапазона а также Ask и Bid мне очень красиво и за мои деньги навешали на уши на курсах по форексу. А также о том, что большинство индикаторов и много советников использует именно эти параметры. Но умолчали о том, что сегодняшняя электронная биржа(я уж не говорю о ДЦ) существенно отличается от средневековой группки японцев. Своими триллионами долларов в ежедневном обороте, сотнями тысяч участников, круглосуточной работой и отсутствием явного начала и конца дня. Какое открытие и закрытие может быть у 5мин, 15мин. 30мин. часового диапазона? Какие алгоритмы можно на этом построить? Я надеюсь, что программист меня поймет. А узконаправленный кодировщик вести такие курсы не будет... Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 4 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 iljagor, скажу честно, Вы меня немного заинтриговали...вижу, Вы довольно неглупый человек, но "попавший не в те руки" :)То, что Вы прошли курсы, возможно неплохо, если Вам там не запудрили мозги окончательно...Теперь я рекомендую забыть всё то, о чём Вам рассказывали и начинать смотреть на вещи реально.1. Функции всего-лишь отражают цены2. Индикаторы следуют за ценой и отображают действительность, прошедшую...3. Что-то, например, свою торговую систему на этом можно построить, если уловить какую-то закономерность...4. Навыки программирования Вам помогут эту самую систему построить.А теперь возьмите себя в руки и если ещё осталось желание, то не торопясь начинайте искать эти самые закономерности и проверять их на демо счёте.Вопросы, касаемо программирования можно задавать здесь, я, как и другие форумчане с удовольствием Вам помогут. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Здравствуйте. Подскажите пожалуйста, как сделать, что бы значение stoploss бралось из standart diviation * 2 ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
WhiteWolf Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Доброй ночи!При выполнении 4-го урока возникла проблема: ругается МетаЭдитор при компиляции файла!Никак не могу найти ошибку... Помогите, пожалуйста!З.Ы. Просьба тапками не кидать, я в этом деле новичок. Leson_4.mq4Leson4+log.rar Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 4 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 4 ноября, 2013 Я хочу написать код советника, который будет прибыль приносить. Для этого мне никак недостаточно выучить все операторы языка, при этом не разобравшись, с чем именно они оперируют. Даже читая код чужого советника, мне нужно понимать не только что он делает, но и почему, и что получится в результате его действий. Поэтому, встречая в коде советника Open(0) Close(0) High(0) и Low(0) я думаю, что я чего то не знаю, либо автор не очень грамотно использует эти конструкции.Еще раз вопрос - правильно ли использовать в советнике Open(0) Close(0) High(0) и Low(0) или гораздо правильнее писать Ask, Bid, спред? Здарова iljagor разреши пару слов!!! Может тебе станет яснее! Я смотрю ты написал что у тебя опыта в торговли нет, да и судя по твоим словам это можно заметить! Ты мне напомнил меня пару лет назад! Ну а короче вот что я могу тебе сказать:1. Прибыльная торговля не зависит от кода, а зависит от твоего опыта на рынке! 2. Тебе надо забыть про код на годик хотя бы и набраться опыта в торговли и индикаторах, дабы код прибыли не приносит, а прибыль приносят условия которые ты описываешь в коде, и прибыльность этих условий зависит от твоего опыта!3. Ты можешь спокойно торговать на демо в ручную! Когда увидишь что у тебя сформировались конкретные тоговые условия и принесли некую прибыль месячную, когда ты поймёшь что показывают индикаторы, тогда ты можешь подумать об автоматизатии, то есть те же самые условия которые ты думаешь прибыльные , ты опишешь в коде и теперь за тебя будет торговать твой робот! Сможешь делать тесты модификации чтоб добиться оптимальных результатов!4. С кодом проблем не будет после просмотра всех уроков мистера xbms в этом уверяю!!!5. Удачи ;) Ссылка на сообщение Поделиться на другие сайты More sharing options...
turu Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Я понимаю -High(1) -объективная хотя и случайная величина, будет почти одинаковой у всех ДЦ в данный момент и на данной паре.Open(1) Close(1) абсолютно произвольные величины, которые и близко совпадать не будут у разных ДЦ в данный момент и на данной паре. Мне кажется Вы не правильно понимаете понятия Open() Close() High() Low(). Терминал принимает тики, но не сохраняет тиковую историю. На базе тиков строятся свечи(бары), минимальные это М1. То есть в истории терминала каждую минуту сохраняется 4 цены этй минуты, из минутных цен строятся цены М5 и так далее. Ну а затем индикаторы должны брать из истории именно эти цены, т.к. других цен в истории просто нет. Самые точные цены получаюся на М1 и самые точные тесты. Удачи. Изменено 5 ноября, 2013 пользователем turu Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Доброй ночи!При выполнении 4-го урока возникла проблема: ругается МетаЭдитор при компиляции файла!Никак не могу найти ошибку... Помогите, пожалуйста!З.Ы. Просьба тапками не кидать, я в этом деле новичок. Вот держи прикрепливаю исправленный в низу!!! Пару скобок лишних , точки с запятой не хватало вот теперь работает!!! OrderSelect если хочеш проверь на false я прсто написал!!!Начиная с void ModifyOrders (int otype) ОШИБКА if (OrderSelect (i, SELECT_BY_POS, MODE_TRADES) напиши просто OrderSelect (i, SELECT_BY_POS, MODE_TRADES); или if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; или if (OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES) ==true) а после OrderModify надо ;OrderModify (OrderTicket (), OrderOpenPrice (), 0, TP, 0, CLR_NONE) Добавлено: 05-11-2013 02:48:47 Я понимаю -High(1) -объективная хотя и случайная величина, будет почти одинаковой у всех ДЦ в данный момент и на данной паре.Open(1) Close(1) абсолютно произвольные величины, которые и близко совпадать не будут у разных ДЦ в данный момент и на данной паре. Мне кажется Вы не правильно понимаете понятия Open() Close() High() Low(). Терминал принимает тики, но не сохраняет тиковую историю. На базе тиков строятся свечи(бары), минимальные это М1. То есть в истории терминала каждую минуту сохраняется 4 цены этй минуты, из минутных цен строятся цены М5 и так далее. Ну а затем индикаторы должны брать из истории именно эти цены, т.к. других цен в истории просто нет. Самые точные цены получаюся на М1 и самые точные тесты. Удачи. Вы наверное имеете в виду:Open[1] так-как Open(1) не существует!Да это простой массив который содержит цены открытия всех баров в текущем чарте и всего лишь! И соответственно Close[]; High[]; и т.д. Допустим если тебе надо цена открытия прошедшего 10го бара то:Comment(Open[10]); Если кто-то пишет Close[1]; имеет ввиду цену закрытия первой свечи так как текущая Close[0]; Добавлено: 05-11-2013 04:21:11Здравствуйте, xbms! Большая просьба, подсказать где мне найти информацию по работе с нулевым баром. Это мне нужно для написания эксперта. Я понимаю, что он незакончен и потому требует иного к себе отношения. Любая информация пригодится, любые ссылки на информацию. В частности, как он формируется в момент открытия.Еще раз формулирую вопрос:1. в момент открытия нулевого бара с приходом его первого тика чему равно Open(0) Close(0) High(0) и Low(0)?2. то же самое с приходом 2 3....тиков, т.е как меняются со временем характеристики нулевого бара с приходом тиков 3. теперь о тике - у каждого тика(группового в т.ч.) чему равно Open(0) Close(0) High(0) и Low(0)? 4. где это написано в документации(учебниках) по мкл4? ссылки желательно.5. насколько отличаются Open(0) Close(0) High(0) и Low(0) у разных ДЦ и брокеров?6. а для следующих баров 1,2,3.... ?Заранее благодарю. Open[0]; - цена по которой открылся текущий ещё не закрытый бар она не меняется! Close[0]; - етой цены ещё нет так как бар текущий, то есть это сама цена которая пляшет туда сюда!High[0] и Low[0] - текущие то есть могут переписаться в любой момент! С каждым тиком они могут и не меняться, High[0] перепишется только если цена прыгнет выше его последнего значения а пока она ниже значение не поменяется!if(Open[0]Обычно больше ориентируются на уже закрытые свечи значения которых уже не изменятся Close[1]Leson_4.mq4 Изменено 5 ноября, 2013 пользователем elruso Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 5 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Для желающих продолжать изучение MQL написан мега прибыльный индикаторный советник:http://tlap.com/forum/laboratoriya-profitfx/24/open-source-sovetnik-na-indikatorah-heiken-ashi-williams-percent-range/5454 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Очень-очень прошу, подскажите пожалуйста, как сделать, что бы значение stoploss бралось из standart deviation * 2 ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 5 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Очень-очень прошу, подскажите пожалуйста, как сделать, что бы значение stoploss бралось из standart deviation * 2 ? а что сие значит?Standart deviation - всего-лишь осцилятор, как Вы хотите получить StopLoss? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Очень-очень прошу, подскажите пожалуйста, как сделать, что бы значение stoploss бралось из standart deviation * 2 ? а что сие значит?Standart deviation - всего-лишь осцилятор, как Вы хотите получить StopLoss? В том то и дело, весь инет облазил, нигде не нашел, как это делается. :( standart deviation показывает значение в пунктах, которое в разных книгах, часто рекомендуют умножать на 2 или на 3, для получение величины стоп лоса.нашел, на другом форуме небольшое, краткое описание, но нифига не смог из этого понять: Спойлер Планирую написать функцию аля - getstoploss(int param1,int param2), которая в зависимости от входящего параметра будет выдавать размер стоп лосс по запрограммированым в нее методам. Т.е будет достаточно просто вставить эту функцию в OrderSend и быстро оптимизировать стоп лосс любой торговой стратегии/советника. Планируемые методы реализации для стоп лосса:1. Процент от общего размера депозита. StopLoss = Сумма счета*Процент/100;2. Отклонение от текущей цены в %.StopLoss = Price - (Price ∗ (( 100 — percent(%))/100));3. Срабатывание стопа по касанию средней ценой. Указываем размер стоплосса в пунктах, но срабатывает он только тогда когда MA(period) касается цены. 4. По ATR.StopLoss = ATR(value);5. По Standard DeviationStopLoss = StdDev (value); Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 5 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Очень-очень прошу, подскажите пожалуйста, как сделать, что бы значение stoploss бралось из standart deviation * 2 ? а что сие значит?Standart deviation - всего-лишь осцилятор, как Вы хотите получить StopLoss? В том то и дело, весь инет облазил, нигде не нашел, как это делается. :( standart deviation показывает значение в пунктах, которое в разных книгах, часто рекомендуют умножать на 2 или на 3, для получение величины стоп лоса.нашел, на другом форуме небольшое, краткое описание, но нифига не смог из этого понять: Спойлер Планирую написать функцию аля - getstoploss(int param1,int param2), которая в зависимости от входящего параметра будет выдавать размер стоп лосс по запрограммированым в нее методам. Т.е будет достаточно просто вставить эту функцию в OrderSend и быстро оптимизировать стоп лосс любой торговой стратегии/советника. Планируемые методы реализации для стоп лосса:1. Процент от общего размера депозита. StopLoss = Сумма счета*Процент/100;2. Отклонение от текущей цены в %.StopLoss = Price - (Price ∗ (( 100 — percent(%))/100));3. Срабатывание стопа по касанию средней ценой. Указываем размер стоплосса в пунктах, но срабатывает он только тогда когда MA(period) касается цены. 4. По ATR.StopLoss = ATR(value);5. По Standard DeviationStopLoss = StdDev (value); Ну тогда, вероятно, как-то так нужно делать:double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);StopLoss = Price - (Price ∗ ((100 — val)/100));разумеется, +/- зависит от направления ордера 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Очень-очень прошу, подскажите пожалуйста, как сделать, что бы значение stoploss бралось из standart deviation * 2 ? а что сие значит?Standart deviation - всего-лишь осцилятор, как Вы хотите получить StopLoss? В том то и дело, весь инет облазил, нигде не нашел, как это делается. :( standart deviation показывает значение в пунктах, которое в разных книгах, часто рекомендуют умножать на 2 или на 3, для получение величины стоп лоса.нашел, на другом форуме небольшое, краткое описание, но нифига не смог из этого понять: Спойлер Планирую написать функцию аля - getstoploss(int param1,int param2), которая в зависимости от входящего параметра будет выдавать размер стоп лосс по запрограммированым в нее методам. Т.е будет достаточно просто вставить эту функцию в OrderSend и быстро оптимизировать стоп лосс любой торговой стратегии/советника. Планируемые методы реализации для стоп лосса:1. Процент от общего размера депозита. StopLoss = Сумма счета*Процент/100;2. Отклонение от текущей цены в %.StopLoss = Price - (Price ∗ (( 100 — percent(%))/100));3. Срабатывание стопа по касанию средней ценой. Указываем размер стоплосса в пунктах, но срабатывает он только тогда когда MA(period) касается цены. 4. По ATR.StopLoss = ATR(value);5. По Standard DeviationStopLoss = StdDev (value); Ну тогда, вероятно, как-то так нужно делать:double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);StopLoss = Price - (Price ∗ ((100 — val)/100));разумеется, +/- зависит от направления ордера Спасибо большое! Буду пробовать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
WhiteWolf Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Спасибо, elruso, очень помог! Видимо я слишком засиделся вчера... Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 5 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Я много раз читал о том, что код должен быть по-возможности лаконичным. В роботе, мне потребовалось сделать так, что бы он начал торговать крупным лотом, только после того, как прошло 8 неудачных сделок подряд. Моих знаний, хватило только на то, что бы создать вот такого монстра: Спойлер if(OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-2,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-3,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-4,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-5,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-6,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-7,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-8,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() { sell(); } } } } } } } } } } } } } } } } Как можно сделать более лаконично? Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 5 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2013 Я много раз читал о том, что код должен быть по-возможности лаконичным. В роботе, мне потребовалось сделать так, что бы он начал торговать крупным лотом, только после того, как прошло 8 неудачных сделок подряд. Моих знаний, хватило только на то, что бы создать вот такого монстра: Спойлер if(OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-2,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-3,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-4,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-5,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-6,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-7,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() {if(OrderSelect(HistoryTotal()-8,SELECT_BY_POS,MODE_HISTORY)) { if (OrderProfit() { sell(); } } } } } } } } } } } } } } } } Как можно сделать более лаконично? рекомендую посмотреть урок №2http://tradelikeapro.ru/izuchaem-mql-urok-n-2-tsiklyi-funktsii-i-ordera-v-sovetnike/после просмотра моментально сможете уложиться в 5 строк кода вместо этого монстра... :) 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти