Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 139

 
Artyom Trishkin:

Даже на Windows средствами mql4 нельзя вкладки сортировать.

Можно лишь открыть графики в нужной вам последовательности и установить на них нужные шаблоны.‌

Сортировать конечно не получится, а перемещать вручную по одному пожалуйста.

По поводу сортировки средствами mql думаю можно попробовать такой вариант:

1. Закрываем все окна кроме того на котором запущен код, советник или скрипт.

2. Открываем в определённой последовательности новые окна, в том числе и такое-же на котором запущен советник и настраиваем их или применяем шаблон.‌

3. И последнее, удалить окно в котором запущен код.

 
Alexey Viktorov:

Сортировать конечно не получится, а перемещать вручную по одному пожалуйста.

По поводу сортировки средствами mql думаю можно попробовать такой вариант:

1. Закрываем все окна кроме того на котором запущен код, советник или скрипт.

2. Открываем в определённой последовательности новые окна, в том числе и такое-же на котором запущен советник и настраиваем их или применяем шаблон.‌

3. И последнее, удалить окно в котором запущен код.

Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
 
Artyom Trishkin:
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
Ну тогда лучше, наверное, сначала делать шаблоны со всех графиков перед их удалением. А после открытия применить эти шаблоны. Надеюсь что сейчас мало кто пишет такие советники которые не подхватывают свои ордера.
 
Artyom Trishkin:
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник

ChartID

Возвращает идентификатор текущего графика.

long  ChartID();

Возвращаемое значение

Значение типа long.

 
Alekseu Fedotov:

ChartID

Возвращает идентификатор текущего графика.

long  ChartID();

Возвращаемое значение

Значение типа long.

И? Как поможет знание своего идентификатора в сортировке открытых графиков, на которых работают советники? :)
 
Artyom Trishkin:
И? Как поможет знание своего идентификатора в сортировке открытых графиков, на которых работают советники? :)


Я о графике, на котором работает советник

 Artyom Trishkin:

Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
 
Alekseu Fedotov:


Я о графике, на котором работает советник

 Artyom Trishkin:

Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
Вы не видите проблем при удалении существующих графиков и их переоткрытии в нужном порядке в случае, если на каком-то из них работает советник или индикаторы?
Так поразмышляйте как вы это будете делать, и поймёте, что идентификатор и факт его знания вам тут не помогут.
 
Alekseu Fedotov:


Я о графике, на котором работает советник

 Artyom Trishkin:

Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник

Я так понимаю, нужно в папке профиля переименовать чары в определенной последовательности - пересохранение в чар происходит при смене профиля или закрытии терминала - отсюда очевидно, что нужно работать с файлами при закрытом профиле. Но,всё это требует вызов библиотек. Как то так, я думаю.
 

Уважаемые форумчане!

В‌озникла идея добавить в функцию расчета объема позиций условие,если последний ордер закрылся с убытком ,то следующий выставляется с увеличенным коэффициентом.

И чтобы все остальные возвраты из функции тоже работали.Написала вроде,но то один возврат не работает,то другой.

Подскажите,что делаю не так?

 ‌  

                               double GetLot(int type)

                                   {

                                   if(CountOrdersType(type)==0 || LastOrderTypeLots(type)>Max_Lot)

                                  {

                                   if(!Auto_Lot) return(Start_Lot);

                                   return(AccountBalance()*(Lot_Percents/100)*AccountLeverage()/MarketInfo(Symbol(),MODE_LOTSIZE));   }

                        { if(!History) return(Start_Lot);

                            datetime time=0;double lastlot=0;int lastop=0;double prof=0;

                              for(int i=OrdersHistoryTotal()-1;i>=0;i--)

                                  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()<=1)

                       {

                          if(time<OrderCloseTime()){time=OrderCloseTime();lastlot=OrderLots();lastop=OrderType();prof=OrderProfit();}

                        }

                        if(prof < 0 && OrderMagicNumber() == Magic)lot=OrderLots();

                             return(lot * History_Multiplier); }

                             return(LastOrderTypeLots(type)*Lot_Multiplier);

                           }


 
Artyom Trishkin:
Вы не видите проблем при удалении существующих графиков и их переоткрытии в нужном порядке в случае, если на каком-то из них работает советник или индикаторы?
Так поразмышляйте как вы это будете делать, и поймёте, что идентификатор и факт его знания вам тут не помогут.


Размышляю,

п‌о поводу удаления

   long Chart_ID = ChartID();
   int i=0,limit=100;
   while(i<limit)
     {
    if(ChartNext(Chart_ID)<0) break;
      ChartClose(ChartNext(Chart_ID));
      i++;
     }


Причина обращения: