Artyom Trishkin: Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
Ну тогда лучше, наверное, сначала делать шаблоны со всех графиков перед их удалением. А после открытия применить эти шаблоны. Надеюсь что сейчас мало кто пишет такие советники которые не подхватывают свои ордера.
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
Вы не видите проблем при удалении существующих графиков и их переоткрытии в нужном порядке в случае, если на каком-то из них работает советник или индикаторы?
Так поразмышляйте как вы это будете делать, и поймёте, что идентификатор и факт его знания вам тут не помогут.
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
Я так понимаю, нужно в папке профиля переименовать чары в определенной последовательности - пересохранение в чар происходит при смене профиля или закрытии терминала - отсюда очевидно, что нужно работать с файлами при закрытом профиле. Но,всё это требует вызов библиотек. Как то так, я думаю.
Возникла идея добавить в функцию расчета объема позиций условие,если последний ордер закрылся с убытком ,то следующий выставляется с увеличенным коэффициентом.
И чтобы все остальные возвраты из функции тоже работали.Написала вроде,но то один возврат не работает,то другой.
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++; }
Даже на Windows средствами mql4 нельзя вкладки сортировать.
Можно лишь открыть графики в нужной вам последовательности и установить на них нужные шаблоны.
Сортировать конечно не получится, а перемещать вручную по одному пожалуйста.
По поводу сортировки средствами mql думаю можно попробовать такой вариант:
1. Закрываем все окна кроме того на котором запущен код, советник или скрипт.
2. Открываем в определённой последовательности новые окна, в том числе и такое-же на котором запущен советник и настраиваем их или применяем шаблон.
3. И последнее, удалить окно в котором запущен код.
Сортировать конечно не получится, а перемещать вручную по одному пожалуйста.
По поводу сортировки средствами mql думаю можно попробовать такой вариант:
1. Закрываем все окна кроме того на котором запущен код, советник или скрипт.
2. Открываем в определённой последовательности новые окна, в том числе и такое-же на котором запущен советник и настраиваем их или применяем шаблон.
3. И последнее, удалить окно в котором запущен код.
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советник
ChartID
Возвращает идентификатор текущего графика.
long ChartID();
Возвращаемое значение
Значение типа long.
ChartID
Возвращает идентификатор текущего графика.
long ChartID();
Возвращаемое значение
Значение типа long.
И? Как поможет знание своего идентификатора в сортировке открытых графиков, на которых работают советники? :)
Я о графике, на котором работает советник
Artyom Trishkin:
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советникЯ о графике, на котором работает советник
Artyom Trishkin:
Я уже думал над этим - есть ряд мешающих факторов, например - на каком-то из графиков запущен советникЯ о графике, на котором работает советник
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);
}
Вы не видите проблем при удалении существующих графиков и их переоткрытии в нужном порядке в случае, если на каком-то из них работает советник или индикаторы?
Размышляю,
по поводу удаления
int i=0,limit=100;
while(i<limit)
{
if(ChartNext(Chart_ID)<0) break;
ChartClose(ChartNext(Chart_ID));
i++;
}