J'ai fait un de ces trucs une fois... - page 14

 

Privaval est banni et en quelque sorte silencieux, je vais donc commencer par un message pour lui : Sergey, si tu lis ceci, fais-moi savoir à l'occasion si tu as reçu ma réponse à ton courriel.


Entre-temps, j'ai réalisé un script, en marquant les niveaux selon une autre idée - et ces niveaux sont superbes. Malheureusement, il est un peu lourd pour recueillir de bonnes statistiques. Mais j'ai le sentiment que presque tous les systèmes de niveaux peuvent avoir une bonne apparence sur un graphique de prix :)


De plus, j'ai pris le temps d'écrire un Expert Advisor Strategy Tester utilisant l'algorithme décrit ci-dessus. Cependant, je ne l'ai pas encore testé car je viens de le terminer et je n'aime pas les conseillers experts. Cependant, cela semble fonctionner. Voici le code complet en pièce jointe pour la démonstration.

int start() {
  if (Start) {
    Start = false;
    HalfPoint = 0.5*Point;
    DLvl = 1000*Point;
    RecDLvl = 1.0/DLvl;
    dStopLevel = StopLevel*Point;
  }

// Блок сопровождения ордеров
  double Price;
  bool IsBuyStop = false;
  bool IsSellStop = false;
  for(int ord=OrdersTotal();ord>=0;ord--) {
    if(OrderSelect(ord,SELECT_BY_POS,MODE_TRADES)==false) continue;
    switch(OrderType()) {
      case OP_BUY: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Bid,5,Blue);
        break;
      case OP_SELL: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Ask,5,Yellow);
        break;
      case OP_BUYSTOP: 
        IsBuyStop = true;
        Price = GetBuyStopLevel(dStopLevel);
        if (OrderOpenPrice()-Price > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Blue);
        break;
      case OP_SELLSTOP: 
        IsSellStop = true;
        Price = GetSellStopLevel(dStopLevel);
        if (Price-OrderOpenPrice() > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Yellow);
        break;
    }  //  switch(OrderType())
  }  //  for(int ord=OrdersTotal();ord>=0;ord--)
  
//  Блок установки орлеров  
  static int Mnt;
  static int PreMnt;
  Mnt = TimeMinute(TimeCurrent());
  if (Mnt != PreMnt) {
    PreMnt = Mnt;
    if (!IsBuyStop) OrderSend(Symbol(),OP_BUYSTOP,Lots(),NormalizeDouble(GetBuyStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Blue);
    if (!IsSellStop) OrderSend(Symbol(),OP_SELLSTOP,Lots(),NormalizeDouble(GetSellStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Yellow);
  }
  return(0);
}

Je ne peux pas avancer sans Prival, il devra dire si le test est le sien ou pas.


P.S. Expert Advisor seulement pour cinq chiffres.

Dossiers :
 

En modifiant le conseiller expert, si nous nous concentrons sur le renversement au niveau, alors à la première approche du niveau, un ordre stop ne devrait pas être placé. En gros, l'EA précédent devrait donner le même nombre d'achats et de ventes à chaque niveau, tandis que cet EA devrait donner un achat de plus en cas d'approche par le haut et une vente de plus en cas d'approche par le bas et vice versa.

La pente de la prune pour le niveau 00 et le stopwave de 20 ppt (cinq chiffres) a un spread légèrement plus petit par trade, c'est l'eurodollar de l'été 2004

La dépendance de l'équilibre par rapport au niveau (c'est-à-dire l'optimisation par le paramètre Delta par incréments de 50 points (cinq chiffres)) est tout à fait cohérente avec les données obtenues précédemment sur les intersections de barres d'une minute


En toute logique, il est maintenant temps de parler de beaucoup de choses ; des glissements, des navires, des sceaux , des choux et des rois, et d'autres contextes et filtres. :)

 

essayez d'introduire des stops et de séparer les stratégies de breakout et de bounce par temps/volatilité.

 

Le nombre de variantes possibles est très important, c'est pourquoi il est judicieux de mener une enquête collective. Il est clair qu'il est nécessaire de varier le code, c'est-à-dire, sans quelques compétences initiales en mql sera difficile à faire. L'essentiel est que les résultats et la manière dont ils sont obtenus ne seront utiles que s'ils sont publiés. Bon, d'accord, le graal est peut-être interdit :), mais les gens devraient certainement connaître les résultats négatifs.


S'arrête pour entrer - c'est une insertion assez standard dans le code. Mais à mon avis, s'il ne s'agit pas d'un lointain arrêt d'"assurance", cela ne donnera rien d'autre qu'une autre façon de s'adapter.


Il est très facile de faire une stratégie de breakout comme si c'était le cas - il suffit de désactiver la mise en place d'ordres s'il existe un ordre de même sens (pas seulement en attente) et de fixer un stop suffisamment grand (comparable à la distance entre les niveaux). Mais il ne m'a pas été facile de faire un rebondissement correct à partir de ce schéma simple et beau. Dans l'idée, nous devrions chronométrer le franchissement du niveau et placer un ordre seulement après qu'il ait eu lieu. La subtilité est que ce fait ne peut pas être enregistré pour le niveau le plus proche de manière standard - après tout, le niveau le plus proche rebondit au moment où il est franchi. Elle peut durer jusqu'à trois ticks si le niveau moyen est exactement sur le niveau. C'est pourquoi les résultats du post précédent ont été obtenus en utilisant l'Expert Advisor considérablement modifié. Je ne l'ai pas posté ici car il a été suggéré pour Codobase (comment comprendre autrement le niveau d'intérêt réel pour ce sujet :)).


Les filtres temporels sont considérés comme l'un des plus efficaces et généralement assez simples à mettre en œuvre, il serait intéressant de voir les résultats. Vous êtes le bienvenu pour m'envoyer un message :)


Bien sûr, les filtres de volatilité sont aussi d'un grand intérêt, mais il y a encore plus de variantes de construction, nous avons besoin de variantes et de résultats spécifiques pour elles.

 
Vous pouvez faire appel à un expert ici.
 

Une inexactitude a été trouvée dans LevelsTrade_1.mq4 qui conduit à l'asymétrie d'un achat-vente. Ici, nous devons remplacer une ligne dans cette fonction :

double GetSellStopLevel(double StopLvl) {
  int ILvl = (Bid+HalfPoint)*RecDLvl;
  double DownLvl = DLvl*ILvl;
//  if (DownLvl > Bid-StopLvl-HalfPoint) DownLvl -= DLvl ;
  if (Bid-StopLvl < DownLvl-HalfPoint) DownLvl -= DLvl ;
  return (DownLvl);
}

La mauvaise ligne est commentée ici. La version correcte est jointe au message.

Dossiers :
 
Balbesik06:



Candidat !

Je vous ai vu et je m'adresse à vous.

Question hors sujet.

Voulez-vous retourner à Zig-Zag ?

Je vous ai écrit en "privé", il n'y a pas eu de réponse.

Et sur l'EA (argumenter ou non), j'ai des statistiques (sur la mienne) 7(+) - 1(-), mais l'EA d'un autre auteur.

Et il y a beaucoup de questions.

Si vous le vérifiez (en privé) et que les statistiques sont confirmées, alors vous corrigez Zig-Zag pour moi selon votre schéma.

Et l'algorithme (pour Expert Advisor) vous avez le droit de poster plus tard.

Vous aimez ?

Sincèrement.

 
Balbesik06:

...

Je vous ai écrit dans la section "privée" et je n'ai reçu aucune réponse.

Je n'ai rien entendu en privé, essayez encore. En dernier recours, vous pouvez m'envoyer un courriel. L'adresse de ma page se trouve sur mon profil et mon courriel est facile à trouver.
 
Balbesik06:

"... Au minimum, vous pouvez envoyer un e-mail,"...

Oui, essayez-le - après le sujet.

Le point est simple - démontré sur ONIX tous les "vols" sauf le vôtre.

Je ne vois pas l'intérêt d'un sevetnik s'il ne contient pas de guillemets "DOES NOT HOLD".

Regards.


P.S. Essayez (si ce n'est pas trop difficile) d'écrire - Bonjour.
 

Hmm, j'ai vérifié la boîte aux lettres Onyx (et j'y regarde rarement), elle est vide. Et les problèmes avec le courrier sont assez mystérieux.

Eugène, laissez-moi vous expliquer : vérifiez votre compte personnel sur ce forum, il devrait y avoir un message de ma part depuis avant-hier. Répondez-y simplement, décrivez le problème ou donnez un lien vers sa description, écrivez ce dont vous avez exactement besoin.

D'après ce que je comprends, il y a un problème d'accrochage des sommets de différents Zigzags. Le mien n'a pas ce problème. Je me souviens, lorsque j'ai écrit que le problème de l'accrochage des sommets en zigzag (plus probablement en CZZ) était presque universel. J'ai essayé de comprendre sa cause, et je pense y être parvenu. Mais beaucoup d'eau a coulé depuis, et je pense que maintenant beaucoup de zigzags ne gèlent plus non plus.

Dans tous les cas, ce dont vous avez besoin n'est pas clair ? Pour que je refasse tous les zigzags inclus avec le ZUP ?