LO SCAMBIO DI IDEE - pagina 35

 
OnGoing:
Qualunque cosa sia, non ci sono abbastanza scambi per trarre delle conclusioni.
puoi aumentare i trade molte volte - la scala di equity sarà mln e frequente, ma il FS diminuirà.
 
alex12:
potete aumentare le transazioni molte volte - la scala di equità sarà piccola e frequente, ma il FS diminuirà.
Che sia così, il risultato sarà comunque più affidabile.
 

Ieri mi sono imbattuto per caso in un risultato interessante.

L'idea è quella di tracciare rapidamente il comportamento di una valuta rispetto all'altra.

Scarichiamo questo Expert Advisor, è anche nel codebase di questo forum: ReverseSystemBEST

Testa uno strumento usando dati storici da un file - testiamo USD/Franc dall'anno 2000 e alla fine del

deltest aprire il grafico e vedere l'immagine seguente:

Inoltre lo salviamo come modello. Aprire il grafico giornaliero di eurobucks e aprire il modello salvato

Su questo grafico. Poi 2 volte cliccate con il mouse sulle icone e con il tasto destro selezionate "delete all icons".

Come risultato vedrete un'immagine come questa.

Cioè, potete vedere che il dollaro/franco e l'eurobucks sono strumenti valutari assolutamente speculari.





 
alex12:

Ieri mi sono imbattuto per caso in un risultato interessante.

L'idea è quella di tracciare rapidamente il comportamento di una valuta rispetto all'altra.

Scarichiamo questo Expert Advisor, è anche nel codebase di questo forum: ReverseSystemBEST

Testa uno strumento usando dati storici da un file - testiamo USD/Franc dall'anno 2000 e alla fine del

deltest aprire il grafico e vedere l'immagine seguente:

Inoltre lo salviamo come modello. Aprire il grafico giornaliero di eurobucks e aprire il modello salvato

Su questo grafico. Poi 2 volte cliccate con il mouse sulle icone e con il tasto destro selezionate "delete all icons".

Come risultato vedrete un'immagine come questa.

Cioè, potete vedere che il dollaro/franco e l'eurobucks sono strumenti valutari assolutamente speculari.






Oh, quante meravigliose scoperte per noi ......
 
L'idea è di creare un indicatore.

Inizialmente ho avuto questa idea con i tick, ma si è scoperto che non c'è la cronologia dei tick nel tester
così l'ho trasferita alle barre.
L'idea è una combinazione di barre. Le impostazioni possono essere:

Up - Buy:

Bullish = 0, Value
Bears = 0, Value
Colour
Line Thickness

Down - Sell:

Bears = 0, Value
Bulls = 0, Value
Colour
Line Thickness

Per esempio una barra 1 up e 2 down, 1 up e 3 down, poi 1/4, 1/5, !/6, 1/7 etc. per Sell.
Per Bai - 1 barra giù e 2 barre su, 1 giù e 3 su, poi 1/4, 1/5, ecc.

Per esempio, prendiamo una combinazione di 3 barre in alto e 7 barre in basso (3/7 in breve) per la vendita. Prendiamo il valore
del prezzo più alto della 3a barra e il prezzo più basso della 7a barra = calcoliamo il prezzo medio e disegniamo una linea
sul prezzo medio di questa combinazione di barre. Vorrei anche che questa combinazione fosse delineata con un cerchio
usando lo stesso indicatore.
Poi puoi scrivere un EA usando questo indicatore e controllare il risultato.

Se qualcuno scrive un indicatore e/o un consigliere, postatelo qui se non vi dispiace.

--------------------------------------------------------------------------------------------------------------+

A proposito - si può fare con i punti - basta scambiare direttamente online.
Non per tempo, come nel WOC EA, ma esattamente per combinazioni di punti e risulterà
che l'Expert Advisor non farà trading in base alla storia, ma alla situazione attuale. Ma è così,
è probabilmente troppo superficiale e poco plausibile - anche se non lo so esattamente io
.
 

leonid553:

C'è un indicatore Envelopes, e le tattiche classiche per lavorare con esso sono note. Ma a causa della sua struttura è troppo "sensibile", o con un grande periodo - ritarda molti segnali. Tuttavia, se appianiamo questo indicatore, la situazione cambia immediatamente! Selezioniamo la deviazione dei confini in modo che i confini coprano solo le punte delle candele ed entriamo da questi incroci seguendo rigorosamente la tendenza. - impostarla (la tendenza) programmaticamente tramite l'angolo di pendenza (per esempio) di questi bordi.

Una versione funziona in buy. L'altra versione funziona per vendere. Allo stesso tempo, perdiamo sorprendentemente i trade perdenti alle inversioni di tendenza! - Nessuna ironia! E inoltre durante un appartamento - nessun accordo! (perché la tendenza è stabilita dall'angolo di inclinazione!)

Ecco un grafico dell'indicatore lisciato - i punti di entrata sono mostrati con le frecce.

Un altro trucco. Puoi usarlo come filtro o come versione separata. Stocastico. Non deve essere usato secondo le regole classiche ma un po' non standard! Prendete un lungo periodo ed entrate all'incrocio non dall'esterno all'interno delle zone di ipercomprato/ ipervenduto, ma viceversa! - Ho mostrato le entrate con le frecce nella finestra stocastica.

Ho già realizzato dei primitivi Expert Advisors utilizzando entrambi i metodi descritti. I risultati sono soddisfacenti finora...

Su richiesta del moderatore Granit77 il post originale è stato cancellato e la discussione di Expert Advisor su stocastico filtrato è stata spostata qui https://www.mql5.com/ru/forum/112887/page15#518639

 
alex12:
L'idea è di creare un indicatore.

Questa idea è stata originariamente inventata da me con le zecche, ma si è scoperto che non c'è storia delle zecche nel tester
Così l'ho spostato sui bar.
L'essenza è una combinazione di barre.Le impostazioni possono essere le seguenti:

Su - Acquista:

Toro = 0, Valore.
Orsi = 0, Significato
Colore
Spessore della linea

Giù - Vendere:

Orsi = 0, Valore
Toro = 0, Valore
Colore
Spessore della linea

Ad esempio, 1 barra in alto e 2 in basso, 1 barra in alto e 3 in basso, poi 1/4, 1/5, !/6, 1/7 ecc. per Sell.
Per Bai - 1 barra giù e 2 barre su, 1 giù e 3 su, poi 1/4, 1/5, ecc.

Per esempio, prendiamo una combinazione di 3 barre in alto e 7 barre in basso (3/7 in breve) per la vendita. Prendiamo il valore
il prezzo più alto della 3a barra e il prezzo più basso della 7a barra = calcola il prezzo medio e traccia una linea
Vorrei anche che questa combinazione di barre fosse disegnata come un cerchio
utilizzando lo stesso indicatore.
Poi, puoi scrivere un EA usando questo indicatore e controllare il risultato.

Se qualcuno scrive un indicatore e/o un consigliere, postatelo qui se non vi dispiace.

--------------------------------------------------------------------------------------------------------------+

A proposito - può essere fatto con i punti - è necessario solo il trading online.
Non per tempo, come nel WOC-advisor, ma precisamente per combinazioni di punti.
che l'Expert Advisor non farà trading in base alla storia, ma in base alla situazione attuale. Ma è così,
anche se non ne sono sicuro.
Anche se io stesso non lo so esattamente.

Ho fatto un indicatore personalizzato come descritto sopra. Abbastanza interessante - perché = Accurato (identifica inequivocabilmente i modelli frattali dati).


Ecco il codice stesso:

//+------------------------------------------------------------------+
//|                             Copyright © 2010, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//|                                           Skype: Artmedia70      |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Gold
#property indicator_color2 LightBlue
//---- input parameters
extern int        BarsBefore=2;        // Баров до...
extern int        BarsAfter=2;         // Баров после
extern int        Width=2;             // Размер значка
extern int        BarsToProcess=100;   // Количество баров для поиска
//---- buffers
double FractUpBuffer1[];
double FractDnBuffer2[];
string sy, Prefix, NameIND;
int    tf;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
   SetIndexStyle(0,DRAW_ARROW,EMPTY,0);
   SetIndexBuffer(0,FractUpBuffer1);
   SetIndexArrow(0,119);
   SetIndexLabel(0,"Fractal Up");
   SetIndexEmptyValue(0,0.0);
   
   SetIndexStyle(1,DRAW_ARROW,EMPTY,0);
   SetIndexBuffer(1,FractDnBuffer2);
   SetIndexArrow(1,119);
   SetIndexLabel(1,"Fractal Dn");
   SetIndexEmptyValue(1,0.0);
//----
   NameIND="Pattern_v1_01";
   IndicatorShortName(NameIND+"_"+GetNameTF(Period()));
   Prefix=NameIND+"_"+GetNameTF(Period());    // Префикс для имён объектов
   sy=Symbol();
   tf=Period();
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
// -------- Блок удаления всех объектов, построенных на графике --------
   string Name_Del[1]; 
   int Quant_Del=0;                    
   int Quant_Objects=ObjectsTotal();   
   int LenPref=StringLen(Prefix);
   ArrayResize(Name_Del,Quant_Objects);
   for(int k=0; k<Quant_Objects; k++) {
      string Obj_Name=ObjectName(k);   
      string Head=StringSubstr(Obj_Name,0,LenPref);
      if (Head==Prefix) {                              
         Quant_Del+=1;        
         Name_Del[Quant_Del-1]=Obj_Name;
         }
     }
   for(int i=0; i<Quant_Del; i++)    
      ObjectDelete(Name_Del[i]); 
// ----- Конец блока удаления всех объектов, построенных на графике -----
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
   int   counted_bars=IndicatorCounted();
   int   i, k, j, limit;
//----
   if(counted_bars>0)      counted_bars--;
   limit=Bars-counted_bars;
   if(limit>BarsToProcess) limit=BarsToProcess;
   
//   if (limit>0) 
      FindUpFractals(BarsBefore, BarsAfter);
      FindDnFractals(BarsBefore, BarsAfter);
   
//----
   return(0);
}
//==============================================================================
// --------------------------------- Функции ----------------------------------+
//==============================================================================
int FindDnFractals(int nl, int nr) {
   int      i, k, nb;
   double   fractal;
   datetime tm;
   string   nm;
   bool     fl, fr;
   int delta=SetDistance(Period());
   for (i=BarsToProcess; i>0; i--) {
      fl=false;
      FractDnBuffer2[i]=0;
      if (Open[i]<Close[i]) {                   
         for (k=1; k<=nl; k++) {
            if (Open[i+k]>Close[i+k]) fl=true;
            else { fl=false; break; }
            }
         if (!fl || Open[i+nl+1]>Close[i+nl+1]) continue;
         fr=false;
         for (k=0; k<nr; k++) {
            if (Open[i-k]<Close[i-k]) fr=true;
            else { fr=false; break; }
            }
         if (!fr || Open[i-nr]<Close[i-nr] || iBarShift(sy,tf,Time[i-nr])==0) continue;
         if (Low[i]<Low[i+1]) { fractal=Low[i]; nb=i; tm=Time[i];}
         else { fractal=Low[i+1]; nb=i+1; tm=Time[i+1]; }
         FractDnBuffer2[nb]=fractal;
         nm=Prefix+"_Down_Fractal_"+nl+"/"+nr+"_"+TimeToStr(tm);
         fractal=MathMin(Low[i], Low[i+1]);
         SetArrow(218, LightBlue, nm, tm, fractal-delta*Point, Width);
         WindowRedraw();
         }
      }
   return(0);
}   
//+----------------------------------------------------------------------------+
int FindUpFractals(int nl, int nr) {
   int      i, k, nb;
   double   fractal;
   datetime tm;
   string   nm;
   bool     fl, fr;
   int delta=SetDistance(Period());
   for (i=BarsToProcess; i>0; i--) {
      fl=false;
      FractUpBuffer1[i]=0;
      if (Open[i]>Close[i]) {                   
         for (k=1; k<=nl; k++) {
            if (Open[i+k]<Close[i+k]) fl=true;
            else { fl=false; break; }
            }
         if (!fl || Open[i+nl+1]<Close[i+nl+1]) continue;
         fr=false;
         for (k=0; k<nr; k++) {
            if (Open[i-k]>Close[i-k]) fr=true;
            else { fr=false; break; }
            }
         if (!fr || Open[i-nr]>Close[i-nr] || iBarShift(sy,tf,Time[i-nr])==0) continue;
         if (High[i]>High[i+1]) { fractal=High[i]; nb=i; tm=Time[i];}
         else { fractal=High[i+1]; nb=i+1; tm=Time[i+1]; }
         FractUpBuffer1[nb]=fractal;
         nm=Prefix+"_Up_Fractal_"+nl+"/"+nr+"_"+TimeToStr(tm);
         fractal=MathMax(High[i], High[i+1]);
         SetArrow(217, PaleGoldenrod, nm, tm, fractal+4*delta*Point, Width);
         WindowRedraw();
         }
      }
   return(0);
}   
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0) {
   switch (TimeFrame) {
      case PERIOD_M1:  return("M1");
      case PERIOD_M5:  return("M5");
      case PERIOD_M15: return("M15");
      case PERIOD_M30: return("M30");
      case PERIOD_H1:  return("H1");
      case PERIOD_H4:  return("H4");
      case PERIOD_D1:  return("Daily");
      case PERIOD_W1:  return("Weekly");
      case PERIOD_MN1: return("Monthly");
      default:         return("UnknownPeriod");
      }
}
//+----------------------------------------------------------------------------+
int SetDistance(int TimeFrame) {
   switch (TimeFrame) {
      case PERIOD_M1:  return(1);
      case PERIOD_M5:  return(1);
      case PERIOD_M15: return(2);
      case PERIOD_M30: return(3);
      case PERIOD_H1:  return(4);
      case PERIOD_H4:  return(4);
      case PERIOD_D1:  return(4);
      case PERIOD_W1:  return(4);
      case PERIOD_MN1: return(4);
      default:         return(0);
      }
}
//+----------------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm, datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_ARROWCODE, cd);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//+----------------------------------------------------------------------------+
File:
 
alex12:

Ecco un tacchino costruito su misura come descritto sopra. Abbastanza interessante - perché = Accurato (rileva correttamente i modelli frattali).


Ecco il codice stesso:

Grazie per il codice. Per qualche motivo si vede solo sull'orario, non sulle altre metà.
 

То есть видно что доллар/франк и евробакс – абсолютно зеркальные валютные инструменты.

Forse dovremmo stare un po' più attenti alla parola "assolutamente".

Percoloro che sono nel serbatoio Commentare l'immagine: La media è stata presa per X= 10, 20, 100 e 250 candele. Il timeframe a sinistra è M30, a destra - D1. Qualsiasi cosa vicina allo zero significa assenza di qualsiasi "mirroring" per le ultime X candele [in media].

Così com'è, gli strumenti si muovono in modo simile, a volte nella stessa direzione, il che è confermato dalle correlazioni periodiche. Ma non è nemmeno cointegrato, il che è dimostrato dal grafico EURCHF non stazionario (anche se non posso confermarlo in modo inequivocabile - non l'ho testato, penso che sia insensato).

 
alex12:

Ecco un tacchino costruito su misura come descritto sopra. Abbastanza interessante - perché = Accurato (rileva correttamente i modelli frattali).

Ecco il codice stesso:


Grazie! Idea interessante!

Si vede su tutti i TF. Ma c'è qualcosa che non va nel frattale giallo. È disegnato su tutti i TF a distanze diverse e non lo stesso che sul blu.

Per favore, controllate!

SetArrow(217, PaleGoldenrod, nm, tm, fractal+4*delta*Point, Width);//?????