Все индикаторы работают в одном потоке. Соответственно каждый индикатор отжирает часть ресурсов процессора. Поставьте 100500 индикаторов с одинаковыми параметрами и что произойдёт с терминалом? Если вам для полного счастья в ближайшие 20 минут достаточно 300 грамм картошки, а вам на плечи положили полный мешок. Как вам это?
добрый день. Про вайл читал. Не получатся сложить или вычесть. по мани менеджемнту ни чего сказать не могу. не пробовал. Приложил последнюю редакцию. Но там я уже все запутал сам для себя) Order1(2) профит выбранного ордера Order1(3) лот выбранного ордера
Не смог понять кода.
Попробую объяснить. Надеюсь тикеты нужных ордеров знаете, это очень упрощает задачу. Условия. Есть прибыльный ордер профит больше нуля, есть убыточный ордер, профит меньше нуля и больше прибыльного профита, и есть условие для частичного закрытия убыточного ордера.
В общем, если ордера разнонаправленные можно не думая закрыться через OrderCloseBy. Закроется меньшая убыточная равная меньшей прибыльной части. Нужны лишь 2 тикета.
Можно сложнее, получить OrderProfit() (это деньги) и OrderLots() (это обьем в лотах) обоих ордеров. Посчитать соотношение прибыли к убытку и закрыть прибыльный ордер и эту часть в лотах у убыточного. Перед получением профитов и лотов ордера нужно предварительно выбрать ОрдерСелект.
// ticket1 тикет прибыльного ордера, ticket2 убыточногоbool sel1=OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES);
double profit1=OrderProfit();
double Lts1=OrderLots();
double price1=0; if(OrderType()==0)price1=Bid; else price1=Ask;
bool sel2=OrderSelect(ticket2,SELECT_BY_TICKET,MODE_TRADES);
double profit2=OrderProfit(); // profit1 < profit2 можно условием впереди поставитьdouble Lts2=OrderLots();
double price2=0; if(OrderType()==0)price2=Bid; else price2=Ask;
double ratio=fabs(profit1/profit2); // или если ratio<1, и берем модуль, у нас один профит меньше нуляdouble lotsl=Lts2*ratio;
Alert("Попытка закрыть прибыльный ордер тикет1 ",ticket1,". Ожидание ответа..");
RefreshRates(); // Обновление данныхbool Ans1=OrderClose(ticket1,Lts1,price1,2); // Закрытие прибыльного ордераif(Ans1==true) // Получилось :)Alert("Закрыт ордер тикет1 ",ticket1,". профит1 ",profit1);
elseAlert(" Ошибка при закрытии ордера тикет1",ticket1," Код ошибки ",GetLastError());
Alert("Попытка закрыть часть ордера тикет2 ",ticket2,". Ожидание ответа..");
RefreshRates(); // Обновление данныхbool Ans2=OrderClose(ticket2,lotsl,price2,2); // Закрытие убыточного ордера частичноif(Ans2==true) // Получилось :)Alert("Закрыт частично ордер тикет2 ",ticket2,". профит2 ",profit2);
elseAlert(" Ошибка при закрытии ордера тикет2",ticket2," Код ошибки ",GetLastError());
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Все индикаторы работают в одном потоке. Соответственно каждый индикатор отжирает часть ресурсов процессора. Поставьте 100500 индикаторов с одинаковыми параметрами и что произойдёт с терминалом? Если вам для полного счастья в ближайшие 20 минут достаточно 300 грамм картошки, а вам на плечи положили полный мешок. Как вам это?
Подскажите, где-то встречал в кодобазе рисование в подокне индикатора в таком стиле
Не могу найти
добрый день. Про вайл читал. Не получатся сложить или вычесть.
по мани менеджемнту ни чего сказать не могу. не пробовал.
Приложил последнюю редакцию. Но там я уже все запутал сам для себя)
Order1(2) профит выбранного ордера
Order1(3) лот выбранного ордера
Не смог понять кода.
Попробую объяснить. Надеюсь тикеты нужных ордеров знаете, это очень упрощает задачу. Условия. Есть прибыльный ордер профит больше нуля, есть убыточный ордер, профит меньше нуля и больше прибыльного профита, и есть условие для частичного закрытия убыточного ордера.
В общем, если ордера разнонаправленные можно не думая закрыться через OrderCloseBy. Закроется меньшая убыточная равная меньшей прибыльной части. Нужны лишь 2 тикета.
Можно сложнее, получить OrderProfit() (это деньги) и OrderLots() (это обьем в лотах) обоих ордеров. Посчитать соотношение прибыли к убытку и закрыть прибыльный ордер и эту часть в лотах у убыточного. Перед получением профитов и лотов ордера нужно предварительно выбрать ОрдерСелект.
Подскажите, где-то встречал в кодобазе рисование в подокне индикатора в таком стиле
Не могу найти
Смотри индикаторы от Scriptor
Смотри индикаторы от Scriptor
Спасибо, нашёл, но немного не то, только на один ряд
Спасибо, нашёл, но немного не то, только на один ряд
По-моему, там и на несколько рядов есть.
По-моему, там и на несколько рядов есть.
Там более 1500 кодов, наверное пропустил, к сожалению
Спасибо, нашёл, но немного не то, только на один ряд
Виталий, вы меня удивляете. Все такие индикаторы основаны на построении DRAW_ARROW с соответствующим кодом. На вашем рисунке квадратики, это код 167
А уж уровень ряда задаётся как пожелает кот или кошка Артёма. Может быть и в целых числах, а может и в десятых долях.
Начните и спросите о том, что не получается.
Подскажите, где-то встречал в кодобазе рисование в подокне индикатора в таком стиле
Не могу найти
просто DRAW_ARROW чем не подходит ?
8 буферов если рисовать одним цветом, 16 если двумя.
или DRAW_COLOR_LINE с большой толщиной линии.
смысл что линии всегда на одном уровне (первая 1 вторая 2 etc), только цвет меняется.
Виталий, вы меня удивляете. Все такие индикаторы основаны на построении DRAW_ARROW с соответствующим кодом. На вашем рисунке квадратики, это код 167
А уж уровень ряда задаётся как пожелает кот или кошка Артёма. Может быть и в целых числах, а может и в десятых долях.
Начните и спросите о том, что не получается.
Не понятен принцип отступов от низа, чтобы было поровну в несколько рядов
Вот от этого и не могу начать