Faire des choses intéressantes gratuitement - page 32

 
inoy:

Bonjour. Peut-être que quelqu'un serait intéressé par l'écriture du chalutage original. Je n'ai rien trouvé de semblable sur le web. Le TdR réel : le stop et le profit se déplacent (TralTP), mais toujours uniquement dans le sens du PRIX, c'est-à-dire que la fourchette des deux côtés ne fait que se réduire. Tout ceci est simple, et le "truc" est que le chalutage change en % (et NON en pips) du SL ou du TP. Exemple : J'ai une position ouverte avec SL = 300, TP = 100 (total 400 pips = 100%, SL = 75%, TP = 25% de la fourchette). Le prix a bougé de +50 pips, le stop loss est fixé à 150 pips. 150 pips du prix, c'est-à-dire -100. Au total, le rapport initial de 3/1 a été conservé. Le prix est revenu au point d'ouverture (0), pour SL 100 points, cela signifie que nous devons déplacer le TP à +33. Donc, etc.

Le prix n'évolue pas par des sauts fantastiques (+50, -50)... La spécification technique n'est pas soluble. Ou plutôt, elle peut être résolue, mais ce ne sera pas ce que vous voulez. Le chalut réagira à chaque tic et la fourchette se réduira plus vite que vous ne le souhaitez. Je ne dis pas qu'elle se rétrécit à chaque tick, mais dès que vous passez quelques points, la fourchette se rétrécit. Et je ne parle même pas de cinq chiffres, le chalut sera encore plus sensible aux citations et la fourchette se réduira encore plus vite.

 
J'ai immédiatement pensé à cela, c'est à cela que sert la variable Step. Le chalut ne doit pas se déplacer en "quelques points" mais dans un % donné de la fourchette, par exemple 25% du SL - TP actuel. La tâche peut également être résolue différemment en général (en option) : l'utilisateur doit vérifier le rapport P/L original dans un intervalle de temps spécifié par l'utilisateur en minutes. Le sens ne change pas, et l'essence de l'idée reste la même. Mieux encore, vous pouvez faire les deux.
 
inoy:
J'y ai pensé tout de suite, c'est à ça que sert la variable Step. Le chalut ne doit pas se déplacer en "quelques points", mais dans un % donné de la fourchette, par exemple 25% de l'écart actuel SL - TP. La tâche peut également être résolue différemment en général (en option) : l'utilisateur doit vérifier le rapport P/L original dans un intervalle de temps spécifié par l'utilisateur en minutes. Le sens ne change pas et l'essence de l'idée reste la même. Mieux encore, vous pouvez faire les deux.

Merde... Désolé... J'ai mal compris l'étape du paramètre ! :))

Mais quand même, je vais écrire une pensée à voix haute. Vous ne devez pas perdre votre temps à chaluter, mais à vous fier à l'analyse technique...

 
Vous avez peut-être raison. Mais outre l'AT, il existe aussi l'analyse probabiliste, qui résout le problème du choix à différents rapports de risque. J'ai eu l'idée du chalutage à partir du test de Shapiro décrit par Elder.
 

Bonjour, j'ai trouvé un bon indicateur, il donne un signal clair pour 20 pips au moins, mais les signaux viennent très rarement et de manière inattendue, je n'ai pas le temps de les suivre. J'ai essayé de mettre une alerte (bip) mais cela ne fonctionne pas, j'aimerais pouvoir l'utiliser comme un conseiller expert aussi ! Je l'utilise depuis six mois et c'est un bon produit ! Je l'utilise depuis plus d'un an et c'est un bon produit !

voici un miracle

Dossiers :
 
DDEEDD:

Bonjour, j'ai trouvé un bon indicateur, il donne un signal clair pour 20 pips au moins, mais les signaux viennent très rarement et de manière inattendue, je n'ai pas le temps de les suivre. J'ai essayé de mettre une alerte (bip) mais cela ne fonctionne pas, j'aimerais pouvoir l'utiliser comme un conseiller expert aussi ! Je l'utilise depuis cinquante ans et il est bon ! Je l'utilise depuis plus d'un an et c'est un bon produit !

C'est un miracle.


L'indicateur pointe à 1 bar.

Plus précisément, il trace un point d'entrée sur la barre à laquelle il vérifie le prix de clôture. Cela signifie que vous n'entrerez pas au prix d'ouverture de la barre, mais à la clôture, c'est-à-dire avec une barre de retard.

voici ce qu'il analyse - le prix de clôture traversant la ligne de chalut (à une distance de nPips) du dernier flip

vous êtes sur un terrain plat



 

J'utilise un conseiller expert en parallèle. Bien sûr, il y a des pertes, mais elles sont insignifiantes par rapport aux pertes globales.

 

J'ai trouvé un indicateur intéressant dans CodeBase et je voudrais le modifier légèrement.

Sortie vers le coin supérieur droit de l'écran
TF de travail
ApPrise
DnPrise

Distance entre les lignes en pips

Peut-être qui peut le refaire ?

Dossiers :
 
Bonjour à tous. Je voulais faire un zigzag rapide pour mon EA en utilisant le thème XLab_ZZZ de l'auteur du fil de discussion. Mais XLab_ZZZ compte depuis le début de l'histoire et j'ai besoin des deux premières ruptures à droite. Je l'ai écrit, mais il y a un problème et je ne sais pas où il est. Regardez-le à l'œil nu, vous verrez peut-être où se trouve l'erreur. Regardez les prix d'ouverture.
//+------------------------------------------------------------------+
//|                                                   1+FZZ_test.mq4 |
//+------------------------------------------------------------------+

 int Step=30;
 string tmp,line[4]; int last_time_signal_ss,last_time_signal_bs;
 double p1,p2,p3,p4,p5; int mp, t1,t2,t3,t4,t5;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
     mp=1; if(Digits==3 || Digits==5)mp=10; 
     for (int i=0;i<4;i++)line[i]="Line"+Symbol()+"_"+i+"_ZZ";
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   DeleteObjects("ZZ");Comment("");
//----
   return(0);
  }

void DeleteObjects(string text) {
   string name;
   for (int i = ObjectsTotal() - 1; i >= 0; i--) {
      name = ObjectName(i);
      if (StringFind(name,text) > -1) ObjectDelete(name);
   }
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  
  Signal();
 //_ObjectSet(line[0], p2,t2,Close[1],Time[0]);
 _ObjectSet(line[1], p3,t3,p2,t2);
 _ObjectSet(line[2], p4,t4,p3,t3);
 _ObjectSet(line[3], p5,t5,p4,t4);
//----
   return(0);
  }
//+------------------------------------------------------------------+
int Signal(){
int x,n;
p1=0;p2=0;p3=0;p4=0;p5=0; t1=0;t2=0;t3=0;t4=0;t5=0;
double hi=High[1], lo=Low[1], c=Close[1]; int th=0,tl=0;

for(int i=1; i<500;i++)
   {
    
    if(p2==0)
    {
    if(High[i]>hi){hi=High[i]; th=Time[i];}
    if(Low [i]<lo){lo=Low [i]; tl=Time[i];}
    if(hi-lo>Step*Point*mp)
      {
       if(c>lo && c<hi ){
                          if(th>tl){p2=hi;t2=th;p3=lo;t3=tl;}
                          if(tl>th){p2=lo;t2=tl;p3=hi;t3=th;}
                          continue;
                         }
       }
    }
    
    if(p2>0 && p4==0)
     {
     n=i;
       if(p3>p2){
                 if(p3-Low [n]>Step*Point*mp){p4=Low [n];t4=Time[n];continue;}
                 if(High[n]>p3)if(p3-Low [n]< Step*Point*mp){p3=High[n];t3=Time[n];}
                }  
       if(p3<p2){
                 if(High[n]-p3>Step*Point*mp){p4=High[n];t4=Time[n];continue;}
                 if(Low[n]<p3){p3=Low[n];t3=Time[n];}
                }  
     }
    
    if(p4>0)
      {
       x=i;
       if(p4>p3){
                 if(p4-Low [x]>Step*Point*mp){p5=Low [x];t5=Time[x];break;}
                 if(High[x]>p4){p4=High[x];t4=Time[x];}
                 
                }  
       if(p4<p3){
                 if(High[x]-p4>Step*Point*mp){p5=High[x];t5=Time[x];break;}
                 if(Low[x]<p4){p4=Low[x];t4=Time[x];}
                 
                }  
      }
    if(p5>0)break;
    
    }

return(0);}

void _ObjectSet(string name, double price1, int time1, double price2,int time2) {
   if(ObjectFind(name)!= -1)ObjectDelete(name); 
   ObjectCreate(name,OBJ_TREND,0,0,0,0,0);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_COLOR,DodgerBlue);
   ObjectSet(name, OBJPROP_TIME1, time1);
   ObjectSet(name, OBJPROP_PRICE1, price1);
   ObjectSet(name, OBJPROP_TIME2, time2);
   ObjectSet(name, OBJPROP_PRICE2, price2);
   ObjectSet(name,OBJPROP_RAY,false); 
}
 
FION:
Je voulais faire un zigzag rapide pour l'EA basé sur le thème XLab_ZZZ de l'auteur du fil.

Premièrement, vous comptez dans la mauvaise direction. Deuxièmement, vous avez complètement détruit le but de mon zigzag :)

Vous devez introduire le code de l'indicateur dans le conseiller expert directement tel quel. Rien ne se passera pour l'EA s'il calcule l'historique complet (ou depuis la barre spécifiée) lors de son lancement.

Raison: