Dividir as posições em aberto em grupos - página 2

 
Nikolay Kositsin:

Tal código é muito individual para existir em forma pronta. Escreveremos uma estrutura com comentários prontos para todas as variantes dos atributos necessários para posições e ordens, e um Consultor Especialista que analisa posições e ordens e muda esses comentários. Tais coisas são escritas independentemente, ou comissionadas por um freelancer.

Claro que concordo com você, mas não estou procurando por "fora da prateleira...", não estou implorando e não estou pedindo. Ofereço-me para compartilhar meu conhecimento, que pode ser usado (e será usado por mim mesmo) para implementar uma idéia interessante, em minha opinião. Também publicarei aqui o código executado, qualquer participação é bem-vinda.

 
Sergey Voytsekhovsky:

Claro que concordo com você, mas não estou procurando por "fora da prateleira...", não estou implorando e não estou pedindo. Ofereço-me para compartilhar meu conhecimento, que pode ser usado (e será usado por mim mesmo) para implementar uma idéia interessante, em minha opinião. Também publicarei aqui o que fiz, qualquer participação é bem-vinda.

Veja em meus artigos. Isso já foi feito lá. Em qual - não me lembro. Mas você pode lê-lo nos discursos. Feito de duas maneiras. A segunda à esquerda como uma versão funcional - armazenamento de IDs de usuário em magik.
 
Artyom Trishkin:
Dê uma olhada em meus artigos. Isso já é feito lá. Em qual - não me lembro. Mas você pode lê-lo nos discursos. Feito de duas maneiras. A segunda à esquerda como uma versão funcional - armazenamento de IDs de usuário em magik.

Muito obrigado, muito obrigado pelo seu código, use-o com freqüência, obrigado pelo seu trabalho árduo, mas você tem tantos trabalhos que eu ainda não encontrei sobre este tópico. Vou tentar pesquisar com a hashtag "identificadores personalizados", obrigado pela dica.

 
Sergey Voytsekhovsky:

Muito obrigado, muito obrigado pelo seu código, use-o com freqüência, obrigado pelo seu trabalho árduo, mas você tem tantos trabalhos que eu ainda não encontrei sobre este tópico. Vou tentar pesquisar com a hashtag "identificadores personalizados", obrigado pela dica.

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

Obrigado, eu entrei no texto :-()

 
Grigori.S.B:

Eu não aconselharia o uso do campo de comentários. É claro que é a maneira mais fácil, mas também a mais não confiável, pois este campo pode ser mudado pelo CD a qualquer momento.

Bem, o sistema de rastreamento é projetado para alterar o comentário a qualquer momento se não corresponder ao estado de posição ou ordem. Portanto, para observação visual, não muda o caso.
 
Sergey Voytsekhovsky:

Eu não entendo sua pergunta

Refiro-me ao seguinte https://www.mql5.com/ru/forum/48768

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

Boa noite.

Fiz uma rápida pesquisa dos links recomendados e cheguei à conclusão de que, por enquanto, não deveria complicar muito as coisas.

Por enquanto, vou tentar me contentar com uma matriz bidimensional. Eu o criei e escrevi dados nele. Decidi verificar se funcionou corretamente, e acabou se tornando errado!

//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+

Para verificar as variáveis criadas temporariamente e colocá-las no Comentário, isso não funciona corretamente!

      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"
         );}
//+--- 

Alguém pode sugerir - onde eu estraguei tudo,,?

Arquivos anexados:
Sower_1_3.mq5  17 kb
 

Se você o executar no testador, parece que todas as posições (abertas) são rentáveis e todas são compras

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

o comentário no canto superior esquerdo

Não sei como torná-lo grande, desculpe.