0ll Опубликовано 8 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2014 OLL Допустим по БАЙтикет через цикл for(i=0; iЧто такое "OrdersTotalMagicbuy" я не знаю.Но сделать можно так: int tikMax=0, tikMin=0; double MaxPrc=0, MinPrc=999999; for (int i = 0; i { if (!OrderSelect(iOrd, SELECT_BY_POS, MODE_TRADES)) continue; if (!(OrderSymbol()== Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)) continue; if (OrderOpenPrice() > MaxPrc) { tikMax = OrderTicket(); MaxPrc = OrderOpenPrice(); continue; } if (OrderOpenPrice() } OrderSelect(tikMax, SELECT_BY_TICKET); OrderClose(tikMax, OrderLots(), Bid, 3, Gray); OrderSelect(tikMin, SELECT_BY_TICKET); OrderClose(tikMin, OrderLots(), Bid, 3, Gray); 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
velikoros Опубликовано 8 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2014 проверяй если оба времени 0 то расчёт всех баров если размеры по 0 то тоже все барыextern int CalculatBars = 200; количество баровextern int SizeMaxBar =1000; максимальный размер от хай до лоуextern int SizeMaxTeloBar=1000;максимальный размер телаextern int StartTime =8; extern int EndTime =23; Спасибо за индикатор, но есть небольшая проблема в его работе. МТ4 сборка 625. при переключении таймфрейма на MN индикатор удаляется с графика. Есть возможность исправить это как то или такая проблема у меня одного? Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 8 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2014 OII Спасибо, буду пробовать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
SpyRF Опубликовано 8 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 мая, 2014 Относительно iCustom: получаем сигнал от индикатора, хочу этот сигнал привязать к цене закрытия бара, на котором этот сигнал был получен.У iClose и iCustom последний параметр вызова одинаковый - shift - это и есть номер бара которому соответствует возвращаемое значение. (У Вас индюки на одном таймфрейме работают?) "Работают" - громко сказано, да пока только два индюка в связке пытаюсь сделать... Ссылка на сообщение Поделиться на другие сайты More sharing options...
pegaskrs Опубликовано 9 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 мая, 2014 проверяй если оба времени 0 то расчёт всех баров если размеры по 0 то тоже все барыextern int CalculatBars = 200; количество баровextern int SizeMaxBar =1000; максимальный размер от хай до лоуextern int SizeMaxTeloBar=1000;максимальный размер телаextern int StartTime =8; extern int EndTime =23; Спасибо за индикатор, но есть небольшая проблема в его работе. МТ4 сборка 625. при переключении таймфрейма на MN индикатор удаляется с графика. Есть возможность исправить это как то или такая проблема у меня одного?юндюк для мелких таймов так как просили с выборкой по времени держите подправленный для дневок и вышеVolatil_Indi-1.mq4 5 Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Обращаюсь к программистам и всем, кто может помочь, мозги уже закипают. extern int order = 5, tp=10;Необходимо рассчитать tp, и написать функцию закрытия ордеров, orderclose(ticket) : if(OrdersTotal>order) tpb=(((первый+предпоследний+последний ордера)/3)*tp*Point);if (Bid>=tpb) orderclosebuy(ticketbuy); if(OrdersTotal>order) tps=(((первый+предпоследний+последний ордера)/3)*tp*Point);if (Ask>=tps) orderclosesell(ticketsell); if(OrdersTotal>order) tpbb=(((первый+последний ордера)/2)*tp*Point);if (Bid>=tpbb) orderclosebuyb(ticketbuy); if(OrdersTotal>order) tpss=(((первый+последний ордера)/2)*tp*Point);if (Ask>=tpss) orderclosesells(ticketsell); Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Обращаюсь к программистам и всем, кто может помочь, мозги уже закипают. У Вас закипают мозги от того, что Вы не четко представляете, чего хотите (имхо - по себе сужу).Вы хотите сделать функцию частичного закрытия ордеров больших сеток для уменьшения просадки?Если да, то должен Вас разочаровать: я делал это... и это была вещь! - работала как часы, настраивалась и оптимизировалась... но сливала там, где обычная сетка не сливала. Итог: выбросил нафиг.Конкретно по теме: - Вам не нужно закрывать одновременно Бай и Селл, т.к. если Бай будет в просадке, то Селл в прибыли.- Вы так и не сказали что такое "первый+последний ордера". Мы же не знаем как Вы сетку строите. Это могут быть первый и последний по времени открытия или по цене открытия.- Надо сложить профит всех (+) ордеров, запомнить, затем перебирать все (-)ордера начиная с "первого" и если профит (-) ордера укладывается в сумму профитов (+) ордеров - закрывать последовательно.- Еще надо определиться в какой момент включается эта фишка. И не включать её более 1 раза - сольёт. Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 - Вам не нужно закрывать одновременно Бай и Селл, т.к. если Бай будет в просадке, то Селл в прибыли.- Вы так и не сказали что такое "первый+последний ордера". Мы же не знаем как Вы сетку строите. Это могут быть первый и последний по времени открытия или по цене открытия.- Надо сложить профит всех (+) ордеров, запомнить, затем перебирать все (-)ордера начиная с "первого" и если профит (-) ордера укладывается в сумму профитов (+) ордеров - закрывать последовательно.- Еще надо определиться в какой момент включается эта фишка. И не включать её более 1 раза - сольёт.OLLЯ хочу к обычной сетке привязать дополнительное закрытие.Допустим сов работает только на БАЙ, цена идет вниз, получили №- кол-во ордеров , цена пошла вверх, индикаторы показали разворот, но до ТР цена не дошла, развернулась , индикаторы опять показали разворот, и в этот момент закрываем прибыльные ордера и убыточный первый ордер. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 .Допустим сов работает только на БАЙ, цена идет вниз, получили №- кол-во ордеров , цена пошла вверх, индикаторы показали разворот, но до ТР цена не дошла, развернулась , ...Да знаю я всё про это. См. пост выше. Итог: льёт. Не сразу, сначала нравится, залог уменьшается, свободных средств больше... - хрень. Почитай зерговские ветки, я полгода потратил на это. Лучше делай динамическую сетку или ещё думай как уменьшить риски, например если сетка большая и вышел этот недооткат - закрывай всю сетку в минус и начинай новую. Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 OII. Все правильно говоришь, на реале я это делаю ручками и стараюсь не открывать на МАХ и МIN, и сравниваю графики на разных временных графиках . Сейчас начал изучать MQL . И все это мне надо для изучения MQL. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 OII. Все правильно говоришь, на реале я это делаю ручками и стараюсь не открывать на МАХ и МIN, и сравниваю графики на разных временных графиках . Сейчас начал изучать MQL . И все это мне надо для изучения MQL.Молодец! Начинай писать скрипт частичного закрытия, а я помогу.Домашнее задание:- Создать скрипт, который при загрузке показывает Окно свойств- extern-ы: Magic, Direct (Buy, Sell, Auto), Delta (дельта профита (в %) после частичного закрытия, т.е. должна-ли остаться некая доля прибыли или в 0, или может до -10% в минус)- В функции start() Выведешь Alert() где расскажешь что за скрипт, координаты - где его бросили на экран графика, под ценой или над (Справка Операции с графиками), текущую пару.Как справишься - продолжим. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Старик Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 С_е_р_г_у_й, 0ll - хорошая затея.Только делайте код по человечески, с комментированием управляющих переменных и комментированием ключевых блоков и действий в скрипте. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 OII - Хорошо, давайте попробуем, только я в этом деле 0.Просмотрел видео уроки по MQL. Еще не начал писать скрипт, а уже куча вопросов. Спойлер extern int Magic = 123;extern int Delta = 0;//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart(){ Alert(""); } Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Еще не начал писать скрипт, а уже куча вопросов. Ну поздравляю, с почином так-сказать.В скрипте не увидел выполнение первого пункта (Справка Препроцессор http://docs.mql4.com/ru/basis/preprosessor/compilation)Второй пункт не увидел переменной направления работы int DirectВ Alert() вставь что-нибудь, например ("наш магик = " + Magic), или классика: ("Hello World!")Потом компилируй и запусти.Видео это хорошо, но http://docs.mql4.com/ru/ - имхо лучше, ну и поиск в Гугле.Если Вам кажется, что темп обучения слишком велик - скажите (я же не знаю Вашего уровня и образования)ПС: Остальные обучающиеся могут присоединяться.ППС: 2 Старик: Вы как думаете нам здесь переписываться или уйти в личку, чтоб тему не раздувать? Изменено 10 мая, 2014 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 OLL-Второй пункт не увидел переменной направления работы int Direct-??за что отвечает переменная int Direct Спойлер extern bool DirectBuy = False;//?extern bool DirectSell = False;//?extern bool DirectAuto = True;//?илиextern int DirectBuy = 10;//?extern int DirectSell = 10;//?extern int DirectAuto = 10;//? Спойлер #property version "1.00"#property description "Частичное закрытие Buy , Sell, Auto ордеров"#property strictextern int Magic = 123;//Уникальный номерextern int Delta = 0;extern bool DirectBuy = False;//?extern bool DirectSell = False;//?extern bool DirectAuto = True;//?//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart(){ Alert(" Магик =" + Magic + "\nСимвол =" + Symbol() + "\nПериод =" + Period()); return; }//+------------------------------------------------------------------+ Компилирую, выдает предупреждение: implicit conversion from 'number' to 'string' implicit conversion from 'number' to 'string' приношу свои извинения за некорректное написание, но как вижу так и пишу.На счет образования, когда я учился,кроме калькуляторов ничего не было, о компьютерах ничего не слышали. Изменено 10 мая, 2014 пользователем С_е_р_г_у_й Ссылка на сообщение Поделиться на другие сайты More sharing options...
geugene Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Вопрос. Есть отложка BuyStop / SellStop. Советник открывает несколько ордеров с шагом и указывает TP. Мне же нужно, чтобы ставил трал вместо ТР.Я так понимаю, что нужно изменить параметр Takeprofit в функции OrderSend ? Только как ее туда прописать? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 OLL-Второй пункт не увидел переменной направления работы int Direct-??за что отвечает переменная int DirectПеременная Direct отвечает за то с какими ордерами мы будем работать Бай или Селл. Параметр этот можно задать руками при запуске скрипта, а можно вычислить автоматически (мы этим позже займемся). Запишем так:extern int Direct = -1; //OP_BUY = 0; OP_SELL = 1; AUTO = -1;а лучше это сделать через enum читай здесь: http://docs.mql4.com/ru/basis/variables/inputvariablesКомпилирую, выдает предупреждение: implicit conversion from 'number' to 'string' implicit conversion from 'number' to 'string' Это предупреждение о неявном преобразовании здесь:Alert(" Магик =" + Magic + "\nСимвол =" + Symbol() + "\nПериод =" + Period());Если исправить например Magic на IntegerToString(Magic), то одно предупреждение уйдет. То же с периодом.Запускали скрипт в терминале?Насчет образования: я имел ввиду не компьютерное, а общее. Упрощённо говоря - умение работать со справочной литературой...Добавлено: 10-05-2014 17:09:43Вопрос. Есть отложка BuyStop / SellStop. Советник открывает несколько ордеров с шагом и указывает TP. Мне же нужно, чтобы ставил трал вместо ТР.Я так понимаю, что нужно изменить параметр Takeprofit в функции OrderSend ? Только как ее туда прописать? Можно тралить ТР или СЛ. Менять эти параметры функцией OrderModify(); Или я не так понял? Изменено 10 мая, 2014 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
geugene Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Цитата Вопрос. Есть отложка BuyStop / SellStop. Советник открывает несколько ордеров с шагом и указывает TP. Мне же нужно, чтобы ставил трал вместо ТР.Я так понимаю, что нужно изменить параметр Takeprofit в функции OrderSend ? Только как ее туда прописать? Можно тралить ТР или СЛ. Менять эти параметры функцией OrderModify(); Или я не так понял? Пример. Для каждого ордера TP=50. Как пройдет цена эти 50пп, закрывается и сразу открывается другой (сетка короче). В целом все хорошо. но, с тралом может взять профита больше. Цена прошла 50пп, сработал трал и все. Дальше пусть подтягивает цену, пока она не повернет и не закроется уже по трал-стопу.Выходит, что в настройках совы указывается не TP=50, а Трал=50. Вот сей трал мне в отложке и нужно прописать. Простой обычный трал без всяких шагов и прочего. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Пример. Для каждого ордера TP=50. Как пройдет цена эти 50пп, закрывается и сразу открывается другой (сетка короче). В целом все хорошо. но, с тралом может взять профита больше. Цена прошла 50пп, сработал трал и все. Дальше пусть подтягивает цену, пока она не повернет и не закроется уже по трал-стопу.Выходит, что в настройках совы указывается не TP=50, а Трал=50. Вот сей трал мне в отложке и нужно прописать. Простой обычный трал без всяких шагов и прочего.Когда Вы пишите по ТР=50 пп я это понимаю как открытый рыночный ордер с ТР. В конце Вы пишите про трал в отложке - это как мне понять? есть ещё и отложка? т.е. Вы отложкой хотите тралить рыночный ордер?Ну и последнее: я не смогу Вам помочь сделать "обычный трал без всяких шагов и прочего" - просто не знаю как... Если не трудно - распишите этот момент подробно. Ссылка на сообщение Поделиться на другие сайты More sharing options...
geugene Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 Пример. Для каждого ордера TP=50. Как пройдет цена эти 50пп, закрывается и сразу открывается другой (сетка короче). В целом все хорошо. но, с тралом может взять профита больше. Цена прошла 50пп, сработал трал и все. Дальше пусть подтягивает цену, пока она не повернет и не закроется уже по трал-стопу.Выходит, что в настройках совы указывается не TP=50, а Трал=50. Вот сей трал мне в отложке и нужно прописать. Простой обычный трал без всяких шагов и прочего.Когда Вы пишите по ТР=50 пп я это понимаю как открытый рыночный ордер с ТР. В конце Вы пишите про трал в отложке - это как мне понять? есть ещё и отложка? т.е. Вы отложкой хотите тралить рыночный ордер?Ну и последнее: я не смогу Вам помочь сделать "обычный трал без всяких шагов и прочего" - просто не знаю как... Если не трудно - распишите этот момент подробно. Трал срабатывает на открытом ордере, конечно. Хорошо ... Пусть будет некий шаг траллинга. Все ордера будут закрываться не по жесткому ТР, а по траллингу. Пройдя 50 пп срабатывает отложка. К ней цепляется трал. Но тралить он начнет как цена пройдет (мин дистанция до начала траллинга) 50пп. А дальше уже шаг трала = 5пп.P.S. Это короче из предоставленного советника "Беспроигрышная торговая система Grand Master" http://tlap.com/forum/torgovye-sistemy/2/uni-grand-master-besproigryshnaya-torgovaya-sistema/4499/?do=findComment&comment=84344. Там есть исходники совы Grand Master_AUD-USD.mq4. Сова хорошая. Вот добавить ей трала бы))) Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 P.S. Это короче из предоставленного советника "Беспроигрышная торговая система Grand Master" http://tlap.com/forum/torgovye-sistemy/2/uni-grand-master-besproigryshnaya-torgovaya-sistema/4499/?do=findComment&comment=84344. Там есть исходники совы Grand Master_AUD-USD.mq4. Сова хорошая. Вот добавить ей трала бы)))Прости, я не модератор, но это тема про обучение mql, т.е. предполагается, что Вы сами делаете, а другие советы дают. А для переделки чего-то внизу надо темку создать. Сову посмотрю, но надо изучать систему, чтоб не испортить... Ссылка на сообщение Поделиться на другие сайты More sharing options...
geugene Опубликовано 10 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 мая, 2014 P.S. Это короче из предоставленного советника "Беспроигрышная торговая система Grand Master" http://tlap.com/forum/torgovye-sistemy/2/uni-grand-master-besproigryshnaya-torgovaya-sistema/4499/?do=findComment&comment=84344. Там есть исходники совы Grand Master_AUD-USD.mq4. Сова хорошая. Вот добавить ей трала бы)))Прости, я не модератор, но это тема про обучение mql, т.е. предполагается, что Вы сами делаете, а другие советы дают. А для переделки чего-то внизу надо темку создать. Сову посмотрю, но надо изучать систему, чтоб не испортить... А там портить нечего))) И код по ходу не оптимизирован. Сова - как простой скрипт - открывает сетку ордеров и не более. И такие скрипты есть на форуме. Но, сова все ж лучше.Я тему mql начал только рассматривать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 11 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 мая, 2014 0ll Цитата Запускали скрипт в терминале? Запустил скрипт в терминале, можно идти дальше. Присваивать к " ordersBUY, ordersSELL, AUTO" числа не надо? Спойлер #property version "1.00"#property description "Частичное закрытие Buy , Sell, Auto ордеров"#property strictextern int Magic = 123;//Уникальный номер;extern int Delta = -10;//мимнимальный процент профита от депозита;//+------------------------------------------------------------------+#property script_show_inputs//--- с какими ордерами работаемenum general_direction { ordersBUY = OP_BUY, ordersSELL= OP_SELL, AUTO = -1, };//--- input parametersinput general_direction Direct = ordersSELL;//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart(){ Alert(" Магик =" + IntegerToString(Magic) + "\nСимвол =" + Symbol() + "\nПериод =" + IntegerToString(Period())); return; }//+------------------------------------------------------------------+ Изменено 11 мая, 2014 пользователем С_е_р_г_у_й Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 11 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 мая, 2014 Запустил скрипт в терминале, можно идти дальше. Присваивать к " ordersBUY, ordersSELL, AUTO" числа не надо?Обязательно! В этом весь смысл enum! ordersBUY = OP_BUY, ordersSELL = OP_SELL, AUTO = -1, (после AUTO нужна запятая?)(заодно гляньте раздел справки http://docs.mql4.com/ru/constants/tradingconstants/orderproperties)Ранее я Вам писал:- В функции start() Выведешь Alert() где расскажешь что за скрипт, координаты - где его бросили на экран графика, под ценой или над (Справка Операции с графиками), текущую пару.Справка здесь:http://docs.mql4.com/ru/chart_operationsИ чтобы закончить первый этап нужно определиться как будет работать режим AUTO: 1. Пользователь может бросить скрипт на график, а мы по координатам найдем ближайший ордер и определим его тип.2. Просто пересчитаем ордера, найдем "последние" профитные(+) и будем работать по их типу.Можно ещё в режиме AUTO у пользователя запрашивать подтверждение этого выбора. Ссылка на сообщение Поделиться на другие сайты More sharing options...
С_е_р_г_у_й Опубликовано 11 мая, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 мая, 2014 ordersBUY = OP_BUY, ordersSELL = OP_SELL, AUTO = -1, (после AUTO нужна запятая?)]Что с запятой, что без запятой компилируется и выводится на экран. OP_BUY==0; OP_SELL==1; здесь можно ставить Константу(OP_BUY или OP_SELL) или цифровое значение(0 или1) для AUTO- значения нет, поэтому мы можем поставить любое==-1 ?? Изменено 11 мая, 2014 пользователем С_е_р_г_у_й Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти