Dividere le posizioni aperte in gruppi - pagina 2

 
Nikolay Kositsin:

Tale codice è troppo individuale per esistere in forma già pronta. Scriveremo una struttura con commenti pronti per tutte le varianti di attributi necessari per le posizioni e gli ordini, e un Expert Advisor che analizza le posizioni e gli ordini e cambia questi commenti. Queste cose sono scritte indipendentemente, o commissionate da un freelance.

Naturalmente sono d'accordo con te, ma non sto cercando "off-the-shelf...", non sto supplicando e non sto ordinando. Mi offro di condividere le mie conoscenze, che possono essere applicate (e saranno applicate io stesso) per implementare un'idea interessante, a mio parere. Posterò il codice eseguito anche qui, ogni partecipazione è benvenuta.

 
Sergey Voytsekhovsky:

Naturalmente sono d'accordo con te, ma non sto cercando "off-the-shelf...", non sto supplicando e non sto ordinando. Mi offro di condividere le mie conoscenze, che possono essere applicate (e saranno applicate io stesso) per implementare un'idea interessante, a mio parere. Posterò quello che ho fatto anche qui, ogni partecipazione è benvenuta.

Guarda nei miei articoli. È già fatto lì. In quale - non ricordo. Ma lo si può leggere nei discorsi. Realizzato in due modi. Il secondo è rimasto come versione funzionante - la memorizzazione degli ID utente in magik.
 
Artyom Trishkin:
Date un'occhiata ai miei articoli. È già fatto lì. In quale - non ricordo. Ma lo si può leggere nei discorsi. Realizzato in due modi. Il secondo è rimasto come versione funzionante - la memorizzazione degli ID utente in magik.

Grazie, molto guardando il tuo codice, lo uso spesso, grazie per il tuo duro lavoro, ma hai così tanti lavori che non ho ancora trovato su questo argomento. Proverò a cercare con l'hashtag "custom identifiers", grazie per il suggerimento.

 
Sergey Voytsekhovsky:

Grazie, molto guardando il tuo codice, lo uso spesso, grazie per il tuo duro lavoro, ma hai così tanti lavori che non ho ancora trovato su questo argomento. Proverò a cercare con l'hashtag "custom identifiers", grazie per il suggerimento.

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

Grazie, sono entrato nel testo :-()

 
Grigori.S.B:

Non consiglierei di usare il campo dei commenti. È naturalmente il modo più semplice, ma anche il più inaffidabile, poiché questo campo può essere cambiato dal DC in qualsiasi momento.

Bene, il sistema di tracciamento è progettato per cambiare il commento in qualsiasi momento se non corrisponde allo stato della posizione o dell'ordine. Quindi per l'osservazione visiva non cambia il caso.
 
Sergey Voytsekhovsky:

Non capisco la sua domanda

Intendo questo https://www.mql5.com/ru/forum/48768

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

Buona sera.

Ho fatto una rapida ricerca dei link raccomandati e sono giunto alla conclusione che per il momento non dovrei rendere tutto troppo complicato.

Cercherò di accontentarmi di un array bidimensionale per ora. L'ho creato e ci ho scritto dei dati. Ho deciso di controllare se funzionava correttamente, e si è rivelato sbagliato!

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

Controllare le variabili create temporaneamente e metterle nel Commento, non funziona correttamente!

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

Qualcuno può suggerire - dove ho sbagliato,,?

File:
Sower_1_3.mq5  17 kb
 

Se si esegue nel tester, sembra che tutte le posizioni (aperte) siano redditizie e tutti gli acquisti

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

il commento in alto a sinistra

Non so come renderlo grande, mi dispiace.
Motivazione: