Разделение открытых позиций на группы - страница 2

 
Nikolay Kositsin:

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

Конечно соглашусь с вами, но ведь я не ищу "в готовом виде...", не попрошайничаю и не делаю заказ. Я предлагаю поделиться знаниями, которые можно применить (сам и буду применять) для воплощения интересной, на мой взгляд, идеи. Исполненное буду выкладывать здесь-же, любое участие приветствуется.

 
Sergey Voytsekhovsky:

Конечно соглашусь с вами, но ведь я не ищу "в готовом виде...", не попрошайничаю и не делаю заказ. Я предлагаю поделиться знаниями, которые можно применить (сам и буду применять) для воплощения интересной, на мой взгляд, идеи. Исполненное буду выкладывать здесь-же, любое участие приветствуется.

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

Спасибо, очень много рассматриваю Вашего кода, часто им пользуюсь, спасибо за ваш труд, но у Вас так много работ, что пока по этой теме не нашел. Щас попробую поискать с хэштегом  "пользовательские идентификаторы", спасибо за наводку.

 
Sergey Voytsekhovsky:

Спасибо, очень много рассматриваю Вашего кода, часто им пользуюсь, спасибо за ваш труд, но у Вас так много работ, что пока по этой теме не нашел. Щас попробую поискать с хэштегом  "пользовательские идентификаторы", спасибо за наводку.

https://www.mql5.com/ru/articles/7394
 

СпААААсибо, с головой ушел в текст :-()

 
Grigori.S.B:
   

А использование поля комментария не советовал бы. Это конечно самый простой способ, но в то же время самый ненадежный, т.к. это поле может быть изменено ДЦ в любой момент.

Ну, следящая система для того и предназначена, чтобы менять комент в любой момент, если он не соответствует состоянию позиции или ордера. Так что для визуального наблюдения это дела не меняет.
 
Sergey Voytsekhovsky:

Не понял сути Вашего вопроса

Я про это https://www.mql5.com/ru/forum/48768

комментарий к ордеру
комментарий к ордеру
  • 2003.03.17
  • www.mql5.com
Общее обсуждение: комментарий к ордеру
 

Добрый вечер.

Перелопатил бегло по рекомендованным ссылкам и пришел к выводу что пока сильно усложнять не стоит.

Попробую пока обойтись двухмерным массивом. Создал его, записал в него данные. Решил проверить правильно ли он работает, оказалось  - не правильно!!!

//+------------------------------------------------------------------+
int Array_Creating_Caste_Positions()
{
   int n = 0;
   int size = PositionsTotal();
   for(int i=0; i<size; i++)
   {
      if(m_position.SelectByIndex(i))
      {
         int profit = (m_position.Profit()+m_position.Commission()+m_position.Swap())>0?1:-1;
         int type   = m_position.Type()==POSITION_TYPE_BUY?0:1;
         ArrayResize(arr_position,size,2);
         
         arr_position[i][0] = m_position.Identifier();
         arr_position[i][1] = m_position.Magic();
         arr_position[i][2] = profit;
         arr_position[i][3] = type;
         arr_position[i][4] = -1; //N_Caste (-1 = нет данных)
         n++;
      }
   }
return(n);
}
//+------------------------------------------------------------------+

Для проверки временно создал переменные и вывел их в Comment, считает НЕверно !!!

      int N = Array_Creating_Caste_Positions();
      
      int profit_Plus  = 0;
      int profit_Minus = 0;
      int N_Buy        = 0;
      int N_Sell       = 0;
      int size = PositionsTotal();
      
      for(int i=0; i<size; i++)
      {
         if(arr_position[i][2] > 0) profit_Plus++;
            else profit_Minus++ ;
         if(arr_position[i][3] < 1) N_Buy++;
            else N_Sell++ ;
      }
//+--- 
      if(InpCommentLog){
         Comment("Выводим данные \n"
         "всего записей в массиве ",N,"\n"
         "-----------------------: ",0,"\n"
         "profit_Plus:  ",profit_Plus,"\n"
         "profit_Minus: ",profit_Minus,"\n"
         "-----------------------: ",0,"\n"
         "N_Buy: ",N_Buy,"\n"
         "N_Sell: ",N_Sell,"\n"
         );}
//+--- 

Может ли ктонибудь подсказать - гдя я накосячил ,,,???

Файлы:
Sower_1_3.mq5  17 kb
 

Если запустить на тестере, то получается что все позиции (открытые) профитные и все они покупки

profit_Plus == N_Buy == N  чего в принципе не должно быть.
 

комент в левом верхнем углу

не знаю как вставить что-бы было крупно видно, пардон.
Причина обращения: