L'ÉCHANGE D'IDÉES - page 35

 
OnGoing:
Quoi qu'il en soit, il n'y a pas assez d'échanges pour tirer des conclusions.
vous pouvez augmenter les transactions plusieurs fois - l'escalier de l'équité sera mln et fréquent, mais le FS diminuera.
 
alex12:
vous pouvez augmenter les transactions plusieurs fois - l'escalier des capitaux propres sera petit et fréquent, mais le FS diminuera.
Qu'il en soit ainsi, le résultat sera tout de même plus fiable.
 

Je suis tombé par hasard sur un résultat intéressant hier.

L'idée est de retracer rapidement le comportement d'une monnaie par rapport à une autre.

Nous téléchargeons cet Expert Advisor, il est aussi dans la base de code de ce forum: ReverseSystemBEST

Il teste un instrument en utilisant des données historiques provenant d'un fichier - nous testons USD/Franc à partir de l'année 2000 et à la fin de l'année 2000.

dutest, ouvrez le tableau et voyez l'image suivante :

Ensuite, nous l'enregistrons comme modèle. Ouvrez le graphique quotidien de l'eurobucks et ouvrez le modèle sauvegardé.

Sur ce graphique. Ensuite, 2 fois, cliquez avec la souris sur les icônes et le bouton droit sélectionne supprimer toutes les icônes.

Vous verrez alors une image comme ci-dessous.

En d'autres termes, vous pouvez constater que le dollar/franc et l'eurobucks sont des instruments monétaires parfaitement symétriques.





 
alex12:

Je suis tombé par hasard sur un résultat intéressant hier.

L'idée est de retracer rapidement le comportement d'une monnaie par rapport à une autre.

Nous téléchargeons cet Expert Advisor, il est aussi dans la base de code de ce forum: ReverseSystemBEST

Il teste un instrument en utilisant des données historiques provenant d'un fichier - nous testons USD/Franc à partir de l'année 2000 et à la fin de l'année 2000.

dutest, ouvrez le tableau et voyez l'image suivante :

Ensuite, nous l'enregistrons comme modèle. Ouvrez le graphique quotidien de l'eurobucks et ouvrez le modèle sauvegardé.

Sur ce graphique. Ensuite, 2 fois, cliquez avec la souris sur les icônes et le bouton droit sélectionne supprimer toutes les icônes.

Vous verrez alors une image comme ci-dessous.

En d'autres termes, vous pouvez constater que le dollar/franc et l'eurobucks sont des instruments monétaires parfaitement symétriques.






Oh, que de merveilleuses découvertes pour nous ......
 
L'idée est de créer un indicateur.

J'ai eu cette idée à l'origine avec les ticks, mais il s'avère qu'il n'y a pas d'historique des ticks dans le testeur
, alors je l'ai transférée aux barres.
L'idée est une combinaison de barres. Les paramètres peuvent être :

Up - Buy :

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

Down - Sell :

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

Par exemple une barre 1 up and 2 down, 1 up and 3 down, puis 1/4, 1/5, !/6, 1/7 etc. pour Sell.
Pour Bai - 1 mesure en bas et 2 mesures en haut, 1 en bas et 3 en haut, puis 1/4, 1/5, etc.

Par exemple, prenons une combinaison de 3 barres à la hausse et 7 barres à la baisse (3/7 pour faire court) pour la vente. Nous prenons la valeur
du prix le plus élevé de la 3ème barre et du prix le plus bas de la 7ème barre = calculons le prix moyen et traçons une ligne
sur le prix moyen de cette combinaison de barres. Je voudrais également que cette combinaison soit soulignée par un cercle
en utilisant le même indicateur.
Vous pouvez ensuite écrire un EA en utilisant cet indicateur et vérifier le résultat.

Si quelqu'un écrit un indicateur et/ou un conseiller, postez-le ici si vous le voulez bien.

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

À propos - il est possible de le faire avec des points - il suffit d'échanger directement en ligne.
Pas par le temps, comme dans l'EA WOC, mais exactement par des combinaisons de points et il s'avérera
que le conseiller expert ne négociera pas par l'histoire, mais par la situation actuelle. Mais c'est ainsi,
est probablement trop superficiel et peu crédible - bien que je ne sache pas exactement moi-même
.
 

leonid553:

Il existe un indicateur Enveloppes, et les tactiques classiques pour travailler avec lui sont connues. Mais en raison de sa structure, il est trop "sensible", ou avec une grande période - il retarde beaucoup de signaux. Cependant, si nous lissons cet indicateur, la situation change immédiatement ! Nous sélectionnons l'écart des frontières de manière à ce que celles-ci ne couvrent que les pointes des bougies et nous entrons par ces croisements en suivant strictement la tendance. - le fixer (la tendance) de manière programmatique par l'angle de pente (par exemple) de ces bordures.

Une version fonctionne à l'achat. L'autre version fonctionne pour vendre. En même temps, nous manquons étonnamment des trades perdants lors des renversements de tendance ! - Pas d'ironie ! Et en plus pendant un appartement - pas d'affaires ! (car la tendance est déterminée par l'angle de la pente !)

Voici un graphique indicateur lissé - les points d'entrée sont indiqués par des flèches.

Encore une astuce. Vous pouvez l'utiliser comme un filtre ou comme une version séparée. Stochastique. Il ne doit pas être utilisé selon les règles classiques mais un peu hors normes ! Prenez une longue période et entrez au moment du croisement non pas de l'extérieur vers l'intérieur des zones de surachat/survente, mais vice versa ! - J'ai montré les entrées avec des flèches dans la fenêtre stochastique.

J'ai déjà créé des conseillers experts primitifs en utilisant les deux méthodes décrites. Les résultats sont satisfaisants jusqu'à présent...

À la demande du modérateur Granit77, le message original a été supprimé et la discussion sur le conseiller expert sur les stochastiques filtrés a été déplacée ici https://www.mql5.com/ru/forum/112887/page15#518639.

 
alex12:
L'idée est de créer un indicateur.

Cette idée a été initialement inventée par moi avec les tiques, mais il s'avère qu'il n'y a pas d'historique des tiques dans le testeur
Alors je l'ai déplacé vers les barres.
L'essence est une combinaison de barres. Les réglages peuvent être les suivants :

Up - Buy :

Haussier = 0, Valeur.
Ours = 0, Signification
Couleur
Épaisseur de la ligne

En bas - Vendre :

Ours = 0, Valeur
Haussier = 0, Valeur
Couleur
Épaisseur de la ligne

Par exemple, 1 mesure en haut et 2 mesures en bas, 1 mesure en haut et 3 mesures en bas, puis 1/4, 1/5, !/6, 1/7 etc. pour Sell.
Pour Bai - 1 mesure en bas et 2 mesures en haut, 1 en bas et 3 en haut, puis 1/4, 1/5, etc.

Par exemple, prenons une combinaison de 3 barres à la hausse et 7 barres à la baisse (3/7 pour faire court) pour la vente. Nous prenons la valeur
le prix le plus élevé de la 3ème barre et le prix le plus bas de la 7ème barre = calculer le prix moyen et tracer une ligne
Je voudrais également que cette combinaison de barres soit dessinée comme un cercle.
en utilisant le même indicateur.
Ensuite, vous pouvez écrire un EA en utilisant cet indicateur et vérifier le résultat.

Si quelqu'un écrit un indicateur et/ou un conseiller, postez-le ici si vous le voulez bien.

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

D'ailleurs, il est possible de le faire avec des points - il suffit de faire du commerce en ligne.
Pas par le temps, comme dans le conseiller WOC, mais précisément par des combinaisons de points.
que le conseiller expert ne négocie pas en fonction de l'historique, mais de la situation actuelle. Mais c'est ainsi,
bien que je n'en sois pas sûr.
Bien que moi-même je ne le sache pas exactement.

J'ai créé un indicateur personnalisé comme décrit ci-dessus. Plutôt intéressant - parce que = Précis (identifie sans équivoque les modèles fractals donnés).


Voici le code lui-même :

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

Voici une dinde fabriquée sur mesure selon la description ci-dessus. Plutôt intéressant - parce que = Précis ( Détecte correctement les motifs fractals).


Voici le code lui-même :

Merci pour le code. Pour une raison quelconque, il n'apparaît que sur l'horaire, pas sur les autres moitiés.
 

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

Peut-être devrions-nous être un peu plus prudents avec le mot "absolument".

Pourceux qui sont dans le réservoir Commentez l'image : La moyenne a été prise pour X= 10, 20, 100 et 250 chandeliers. Le cadre temporel de gauche est M30, celui de droite - D1. Tout ce qui est proche de zéro signifie l'absence de tout "miroir" pour les X dernières bougies [en moyenne].

En fait, les instruments évoluent de manière similaire, parfois dans la même direction, ce qui est confirmé par des corrélations périodiques. Mais elle n'est même pas cointégrée, ce qui est prouvé par le graphique non stationnaire de l'EURCHF (bien que je ne puisse pas le confirmer sans ambiguïté - je ne l'ai pas testé, je pense que c'est insensé).

 
alex12:

Voici une dinde fabriquée sur mesure, comme décrit ci-dessus. Plutôt intéressant - parce que = Précis ( Détecte correctement les motifs fractals).

Voici le code lui-même :


Merci ! Une idée intéressante !

Il apparaît sur toutes les TF. Mais quelque chose ne va pas avec le fractal jaune. Il est dessiné sur toutes les TF à des distances différentes et pas de la même manière que sur le bleu.

Vérifiez-le s'il vous plaît !

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