Riconoscere le immagini (tema retorico) - pagina 9

 

Infatti, come ha sottolineato Debugger, oltre ai pattern stessi, è interessante la probabilità di completamento del pattern (o la probabilità di uscita dal pattern).

La classificazione dei modelli è abbastanza ampia, quindi prima dovremmo decidere quali modelli vogliamo considerare qui (modelli di onde, modelli di candele, forme, ...).

 

Mi sembra che sia meglio analizzare i modelli che la maggior parte dei partecipanti al mercato vede e interpreta allo stesso modo.

Cioè con EWA imho ci sono alcune difficoltà, perché ci sono un sacco di interpretazioni per determinare l'inizio e la fine delle onde di diversi livelli.

Personalmente, preferisco modelli e figure di candele "in spirito" (rotture di triangoli, ecc.), che praticamente tutti possono vedere. Ma penso che la stessa rottura di un triangolo possa essere determinata in termini di EWA e modelli di candele (per esempio, NR4).

 
DDFedor:

Ho un suggerimento. forse qualcuno sarebbe disposto a postare un modello per la dissezione (descrizione)? uno semplice, ma sufficiente a mostrare con un esempio come trovare (definire) il modello stesso, come trovare conferme del modello, come implementare il segnale (i). è possibile che considerare un tale esempio in una "trasmissione in diretta" possa muovere qualcuno ad andare avanti.


Perché la parola chiave nel titolo dell'argomento è "retorica

Immagini->Modelli->Solo ZigZag

E riconoscendo un grafico lineare piecewise (codifica vettoriale + fuzzy sopra/più lungo), un array di quattro ... candelieri più corti e la loro posizione reciproca (numero limitato di combinazioni, soprattutto con lo stesso fuzzy) e "immagine di movimento browniano" (come un quadrato nero - qui era una figura geometrica ) sono tre cose completamente diverse.

E il fatto che le "immagini ZigZag" sono più ... Anche l'informazione non è un fatto.

E tutti perché - lavoro collettivo a distanza AKA Swan (nero), aragosta e luccio (non su "ss" )

;)

 

Il riconoscimento del modello con uno zigzag non tiene conto del contesto. A causa di questo ci sarà del rumore (1) - alcuni modelli saranno falsi.

Inoltre, alcuni modelli non saranno trovati perché lo zigzag può segnare una sezione di correzione. I raggi a zig zag nell'area di correzione potrebbero non essere presi in considerazione dall'algoritmo di ricerca del modello. Questo è anche il rumore (2).

È necessario filtrare il punto di ingresso dopo aver trovato il modello per filtrare il rumore (1). Il filtro può essere, per esempio, vari indicatori...

Per eliminare il rumore (2) è necessario elaborare l'algoritmo di ricerca del modello. In questo caso può verificarsi anche una variante del rumore (1). Chiamiamo questa variante rumore (3).

Il rumore (1) può essere smussato cercando di creare un'analisi dell'onda, che al momento è molto soggettiva.

 
C'è qualche statistica o lavoro che dimostri che i pesci sono in secca qui? L'autore di questo topic lavora comprensibilmente su commissione, ma lui scava solo perché ha una pala .......
 
DDFedor:

Ho un suggerimento. forse qualcuno sarebbe disposto a postare un modello per la dissezione (descrizione)? uno semplice, ma sufficiente a mostrare con un esempio come trovare (definire) il modello stesso, come trovare conferme del modello, come implementare il segnale (i). è possibile che la considerazione di un tale esempio in una "trasmissione in diretta" possa muovere qualcuno ad andare avanti.


un algoritmo semplice, direi addirittura primitivo, per trovare un doppio top (bottom) non cacciatemi per il codice, sto solo imparando, sto mettendo fuori il codice solo per condividere l'algoritmo, è interessante sapere come qualcuno trova questi top.

extern double ExtDepth  = 12; // шаг зигзага
extern double Lot       = 1;  // лот
extern double Accuracy  = 95; // точность совпадения в %
extern int    SL_TP     = 2;  // соотношение SL к TP

double ZZ;

int start()
{
   double SL, TP, zz, zz0, zz1, zz2, zz3;
   bool BUY, SELL;
  
   for (int i=0; i<1000; i++) // ищем 4 точки зигзага
     {
      zz=iCustom(NULL, 0, "ZigZag", ExtDepth, 5, 3, 0, i);
      if (zz!=0 && zz!=EMPTY_VALUE) 
        {
         if (zz0==0)           {zz0=zz; continue;} 
         if (zz1==0 && zz0!=0) {zz1=zz; continue;}
         if (zz2==0 && zz1!=0) {zz2=zz; continue;} 
         if (zz3==0 && zz2!=0) {zz3=zz; break;}    
        }
     }
  
  if (zz0!=0 && ZZ!=zz2) // если образовался новый луч ЗЗ 
    {
     if (zz2>zz1 && zz2>zz3) // если ЗЗ образовал /\-фигуру то проверяем точность совпадения в %
         {
         if ((zz2-zz1)/(zz2-zz3)*100>Accuracy && (zz2-zz1)/(zz2-zz3)*100<200-Accuracy) 
           // например если Accuracy = 98 то разность ног ЗЗ должна попадать в диапозон от 98% до 102%
           BUY = true; // если двойное дно найдено покупаем
         } 
    
     // Тоже самое для двойной вершины
     if (zz2<zz1 && zz2<zz3 && (zz2-zz1)/(zz2-zz3)*100>Accuracy && (zz2-zz1)/(zz2-zz3)*100<200-Accuracy) SELL = true;
     // Как видим все условие образования двойной вершины умещается в одну строчку :))
    }
   if ( BUY ) // покупаем
    {
     SL = zz1-Point;           // стоп ставим на дно
     TP = Ask+(Ask-SL)*SL_TP;  // т.п. в SL_TP раз больше чем с.л.
     SL = NormalizeDouble(SL, Digits);
     TP = NormalizeDouble(TP, Digits);
     OrderSend( Symbol(), OP_BUY, Lot, Ask, 20, SL, TP );
     ZZ=zz2; // запомним значения ЗЗ чтобы больше сделок на этой ноге не открывать
    }
  if ( SELL ) // продаем
    {
     SL = zz1+(Ask-Bid)+Point; // стоп ставим на вершину
     TP = Bid-(SL-Bid)*SL_TP;  // т.п. в SL_TP раз больше чем с.л.
     SL = NormalizeDouble(SL, Digits);
     TP = NormalizeDouble(TP, Digits);
     OrderSend(Symbol(), OP_SELL, Lot, Bid, 20, SL, TP );
     ZZ=zz2; // запомним значения ЗЗ чтобы больше сделок на этой ноге не открывать
    }
   return(0);
}
File:
 
RomanS:


Direi addirittura un algoritmo primitivo per trovare un doppio top (bottom), non incolpatemi per il codice, sto solo imparando, sto solo condividendo l'algoritmo, è interessante sapere come qualcuno trova questi top.


E poi. :)

Cioè inserisci il tuo frammento nello script. Lì si inserisce anche un "insegnante" che guarda nel futuro e, scorrendo la storia, crea un file contenente "Pattern - Teacher Signal". Dopo di che, in Excel, vedere con quale frequenza dopo il modello quali segnali sono apparsi.

E se enumerate il vostro modello, per esempio, DV (e lo formate come funzione), poi "alcuni indiani" (3I), ecc., dal file potete estrarre dati come "c'erano più frequenti DV prima dei segnali di acquisto" o viceversa, "c'erano più frequenti segnali di vendita dopo DV".

È stato vedere questi "più spesso" che mi ha fatto ... ... raffreddato fino a ... "riconoscimento".

ZS. "La mia versione di un insegnante".

extern int     PredictLeadB    = 5;     //Число баров "предсказания"
extern int     LevelTrend     = 60;     //Выше этого - "сильное движение"
extern int     LevelFlat      = 30;     //Выше этого - "так себе бвижение", а ниже - на заборе
extern double  LevelFC        = 2.0;    //Грубо говря скорость/просадка (из кода ясно)
    
. . .

  {//Содержимое "Trade"
   int BarHigh  = iHighest(NULL, 0, MODE_HIGH, pPredictLead, Shift - pPredictLead);
   int BarLow   = iLowest(NULL, 0, MODE_LOW, pPredictLead, Shift - pPredictLead);
   double fHigh = iHigh(NULL, 0, BarHigh);
   double fLow  = iLow(NULL, 0, BarLow);
   double dLow  = (fLow - cClose) / Point;
   double dHigh = (fHigh - cClose) / Point;
   double fLevelFC;

   if(MathAbs(dHigh) > MathAbs(dLow))
    if(dLow == 0.00) 
     if(dHigh > 0)
      fLevelFC = 9999;
     else
      fLevelFC = -9999;
    else
     fLevelFC = dHigh / dLow;
   else
    if(dHigh == 0.00) 
     if(dLow > 0)
      fLevelFC = 9999;
     else
      fLevelFC = -9999;
    else
     fLevelFC = dLow / dHigh; 

   int signalTrade = 0;
   int fBar = Shift;
   if(dHigh > pLevelTrend && MathAbs(fLevelFC) > pLevelFC)
   {
    signalTrade = 2;
    fBar = BarHigh;
   }
   if(dLow < -1 * pLevelTrend && MathAbs(fLevelFC) > pLevelFC)
   {
    signalTrade = -2;
    fBar = BarLow;
   }
   if(dHigh > pLevelFlat && dLow > -1 * pLevelFlat && signalTrade == 0)
   {
    signalTrade = 1;
    fBar = BarHigh;
   }
   if(dLow < -1 * pLevelFlat && dHigh < pLevelFlat && signalTrade == 0)
   { 
    signalTrade = -1;
    fBar = BarLow;
   }
. . .
ФилеВрите(кодПаттерна, signalTrade);

In questo caso (per un tale "insegnante"), facendo dei cicli su variabili esterne, (che è quello che avevo nel mio codice, quindi le variabili hanno altri nomi), sarà possibile valutare non solo il fatto della "predizione" del segnale, ma anche alcune delle sue caratteristiche qualitative.

La cosa principale da ricordare è che "questa" scienza è falsa (in un posto chiamato "xforex"!!!), che i "trisigmi" non rotolano ;)

SZY. Shift - è solo per lo script - sulla barra di Shift in passato "riconosciamo" un pattern, e nel futuro da esso (barra di Shift) - valutiamo il segnale.

 
gip:
Di solito posso dire se ha successo o no in circa due giorni. Una semplice descrizione verbale è sufficiente per iniziare.

La grandezza è fuori scala.

 
hhohholl:

La grandezza è fuori scala


Cosa a cosa? Che cosa ha a che fare la grandezza con la determinazione delle prestazioni dei modelli in base alla metodologia?

O pensate che un semplice test possa in qualche modo essere paragonato all'elaborazione in un sistema esperto?

 
gip:


Da cosa a cosa? Che cosa ha a che fare la grandezza con il determinare con metodo l'efficacia di un modello?

O pensate che il semplice test possa in qualche modo paragonarsi all'elaborazione in il sistema esperto?

Vadim, cosa intendi per "sistema esperto", cosa può fare?