Come si fa ad algoritmizzare il rilevamento dei cluster di alimentazione MA? - pagina 7

 
Aleksey Nikolayev:
Perché non si può usareMathQuantile()?
Probabilmente. Se avete bisogno di cercare le mediane su ogni barra, dovete vedere cosa è più veloce: mantenere un array ordinato o usare questa funzione.
 
Aleksey Nikolayev:
Perché non si può usareMathQuantile()?

Cos'è la "matrice di probabilità" in questa funzione - come si compila?

 
Vorrei che qualcuno mi dicesse come ordinare l'array con l'index binding. Efficiente!)
 
Mikhail Toptunov:
Vorrei che qualcuno mi dicesse come ordinare un array con il collegamento degli indici. Efficiente!)

Spingere l'indice nell'array. Questo aumenterà solo la dimensionalità dell'array.

 

Michael, molto tempo fa ho scritto una funzione per me stesso per inserire un nuovo valore in un array per tenerlo ordinato.

Cioè, tutte le aggiunte all'array devono essere fatte attraverso questa funzione:

//находим место для значения в отсортированном массиве и записываем его туда
void SetValueInSortArray(double &eArray[], double eValue)
   {
   //находим индекс, куда будем вставлять элемент
   int eFinish=ArrayRange(eArray,0)-1;
   int eIndex;
   if(eFinish==-1)
      {
      eIndex=0;
      }
   else if(NormalizeDouble(eArray[eFinish]-eValue,8)<0)
      {
      eIndex=eFinish+1;
      }
   else
      {
      int eLower=0;
      int eUpper=eFinish;
      eIndex=0;
      while(eLower<=eUpper)
         {
         eIndex=(eLower+eUpper)/2;
         if(NormalizeDouble(eArray[eIndex]-eValue,8)>=0)
            {
            if(eIndex>0 && NormalizeDouble(eArray[eIndex-1]-eValue,8)<0)
               {
               break;
               }
            else
               {
               eUpper=eIndex-1;
               }
            }
         if(NormalizeDouble(eArray[eIndex]-eValue,8)<0)
            {
            eLower=eIndex+1;
            }
         }
      }
   //вставка элемента в начало массива
   if(eIndex==0)
      {
      if(ArrayRange(eArray,0)==0)
         {
         ArrayResize(eArray,1);
         }
      else
         {
         ArrayCopy(eArray,eArray,1,0);
         }
      }
   //вставка элемента в конец массива
   else if(eIndex>=ArrayRange(eArray,0))
      {
      ArrayResize(eArray,eIndex+1);
      }
   //вставка элемента в середину массива
   else
      {
      ArrayCopy(eArray,eArray,eIndex,eIndex-1);
      }
   eArray[eIndex]=eValue;
   }  
La ricerca binaria è usata, dovrebbe essere veloce.
 
Mikhail Toptunov:
Vorrei che qualcuno mi dicesse come ordinare un array con la mappatura degli indici. Efficiente!)

Array bidimensionale, funzione ArraySort().

 
No, trovare spazio per un elemento e ordinare l'intero array è un momento molto diverso.
 
Aleksey Vyazmikin:

Cos'è la "matrice di probabilità" in questa funzione - come si compila?

Quali sono i quantili da contare, per esempio:

{0,5} - mediana

{0.25, 0.5, 0.75} - quartili

{0,01, 0,02, ..., 0,99} - persentili

 
Mikhail Toptunov:
Vorrei che qualcuno mi dicesse come ordinare un array con il binding a un indice. Efficiente!)

ProvaMathQuickSort()

 
Mikhail Toptunov:

Esempio:

Array di 30 valori di prezzo MA, cerca il centro dell'array ordinato.

Otteniamo il valore 15(L0) al centro della matrice, poi otteniamo due matrici da L0 verso il basso e L0 verso l'alto e troviamo il centro di queste matrici e così via fino ad ottenere il numerofokus (sette valori per esempio)

e alla fine sarà un ticky

la risposta è semplice - l'elaborazione matematica è fuorviante

Motivazione: