Профили

 
Раньше не особенно пользовался этой возможностью. Теперь пользусь постоянно. И появились замечания. Открыто несколько окон с разными инструментами. Чтобы не переключать ТФ во всех окнах (несколько утомительно), создал несколько профилей с именами соответствующими разным ТФ: М1, М5,...,Н1.
1. При переключении между профилями, если один из профилей не использовался какое-то время, в нём сначала отбражается состояние истории котировок на момент последнего "использования". А потом эта история докачивается до текущего состояния. Почему так? Счёт тот же самый, инструменты те же самые, всё то же самое.
2. Если в текущем профиле (например Н1) я в одном из окон выберу другой ТФ, а потом переключусь в другой профиль, в профиле Н1 это окно с другим ТФ так и останется. Т.е. получается, что профиль автосохраняется. Не логично. Если я настраиваю профиль, я делаю ряд сознательных действий, а потом сознательно лезу в меню, чтобы сохранить эти настройки. Почему в профиле автоматически сохраняются мои случайные действия? Кроме этого я вывожу необходимую мне инфу с помощью лейблов, которые создаются индикатором. Информация в этих лейблах постоянно обновляется. Сами лейблы удаляются/создаются в зависимости от ситуаций. И вот эти лейблы тоже сохраняются в профилях. Только они уже бесполезные. И при переключении между профилями эти бесполезные лейблы приходится каждый раз ручками удалять.
 
Не по теме, но что с оператором OrderSelect?
Имею 4 открытых позиции. В торговом терминале они расположены в таком порядке:

USDCAD
USDJPY
USDJPY
USDCHF

Конструкция (сортировка SELECT_BY_POS)
  string sss="";
  for(int cnt=0; cnt<OrdersTotal(); cnt++)
  {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    sss=sss+OrderSymbol()+"\n";
  }
  Comment(sss);


выводит список позиций по алфавиту (чего, собссно, совершенно не надо)

USDCAD
USDCHF
USDJPY
USDJPY

А конструкция (сортировка SELECT_BY_TICKET)

  string sss="";
  for(int cnt=0; cnt<OrdersTotal(); cnt++)
  {
    OrderSelect(cnt,SELECT_BY_TICKET,MODE_TRADES);
    sss=sss+OrderSymbol()+"\n";
  }
  Comment(sss);


вообще ничего не выводит. Оператор OrderSymbol() возвращает 0 (ноль)

 
А почему тикеты(в онлайне) должны идти от 0 до OrdersTotal()-1 ?
 
А почему тикеты(в онлайне) должны идти от 0 до OrdersTotal()-1 ?

Rosh, Вы меня удивляете. Это не тикеты идут от 0 до OrdersTotal()-1, а индекс "массива ордеров", в котором эти тикеты лежат (вместе со всей остальной информацией). И который отображается в торговом терминале.

Эти алгоритмы работали нормально с момента выпуска первого билда МТ4. И, разумеется, не изменялись. Но вот в одном из последних билдов поменялось отображение инфы. Т.е. этот "массив" стал отсортированным по имени инструмента, хотя в торговом терминале очерёдность соответствует последовательности открытия поз, или очерёдности номеров тикетов по возрастанию. Раньше именно таким же образом и моя инфа на экране отображалась. Сейчас просто неудобно. На экране список открытых позиций идёт одним образом, в торговом терминале другим.
 
Rosh, Вы меня удивляете. Это не тикеты идут от 0 до OrdersTotal()-1, а индекс "массива ордеров", в котором эти тикеты лежат (вместе со всей остальной информацией).

В этом случае вместо
OrderSelect(cnt,SELECT_BY_TICKET,MODE_TRADES);


надо использовать:

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
 
Rosh, Вы меня удивляете. Это не тикеты идут от 0 до OrdersTotal()-1, а индекс "массива ордеров", в котором эти тикеты лежат (вместе со всей остальной информацией).

В этом случае вместо
OrderSelect(cnt,SELECT_BY_TICKET,MODE_TRADES);


надо использовать:

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);



Renat, а проблемы описанные в первых двух постах осветите, пожалуйста.
 
Профиль - это всего лишь директорий, в котором хранятся chr-файлы.
Текущий профиль - текущий директорий. Все изменения в составе графиков и на каждом графике фиксируются тут же