FOREX - Tendances, prévisions et implications 2016 - page 721

 
Vladimir Zubov:

Rena, le truc avec le réel, je ne peux pas avoir une ouverture sur une bougie, c'est un contrôle de fer. Pourquoi y a-t-il une telle situation à cause de l'écart dans les chandeliers ? Je n'ai même pas eu le symbole d'ouverture dans la capture d'écran, mais le terminal a fermé la position.

Comme une version...

Tout d'abord, le symbole à 5 chiffres signifie beaucoup de ticks et le nombre de fois que le même algorithme est exécuté. Il est exact qu'une erreur peut se produire au niveau d'un PEG en raison d'une forte variation du prix d'ouverture d'un ordre. L'ordre ne s'est pas ouvert, l'algorithme n'a pas traité l'erreur et le deuxième ordre suit. Et le premier a pu être ouvert après le premier. Regardez l'heure d'ouverture des commandes.

 
new-rena:

Comme une version de...

Tout d'abord, il s'agit d'une valeur à 5 chiffres, ce qui signifie beaucoup de ticks et le nombre de fois où le même algorithme est exécuté. Il est exact qu'une erreur peut se produire au niveau d'un PEG en raison d'un changement brutal du prix d'ouverture de l'ordre. La commande ne s'est pas ouverte, l'algorithme n'a pas traité l'erreur et voici la deuxième commande.

Version de quoi ? MT4 988

Code sous #propriété stricte

Je ne traite que le premier tick de l'ouverture d'un chandelier, cette construction est-elle correcte ?

//=============== Переменные =========================================

int prev_time = 0 ; // Travail avec les prix d'ouverture des chandeliers

void OnTick()

{//Start-

// ======= Travail sur les prix d'ouverture des chandeliers ============================

if ( Time[0] <= prev_time ) {return;}

prev_time = (int)Time[0] ;

}//Start End-.

 
Vladimir Zubov:
Version de quoi ? MT4 988
Version de la cause de la puce que vous avez décrite.
 
Vladimir Zubov:

...

Code sous #propriété stricte

Il s'agit d'un contrôle d'erreur de code, et non d'un traitement d'erreur d'OrderSelect. Avez-vous une fonction de traitement des erreurs OrderSelect dans votre code ?
 
new-rena:
Il s'agit de vérifier les erreurs dans le code, et non les erreurs de traitement de la commande OrderSelect. Votre code comporte-t-il un système de gestion des erreurs OrderSelect ?

ajouté comme un chandelier, c'est peut-être ça ?

Mais il n'y avait pas de discothèques et pas de redémarrage du terminal. Lors du redémarrage, je sais que la méthode n'est pas correcte, peut s'ouvrir au milieu d'une bougie, mais sur M1 ce n'est pas si important, et il n'y a pas eu de redémarrage.

 
new-rena:
Il s'agit d'une vérification des erreurs dans le code, et non des erreurs de traitement de la commande OrderSelect. Votre code comporte-t-il un système de gestion des erreurs OrderSelect ?

OrderSelect est mon gardien pour les fonctions de Kim, afin qu'il n'y ait pas d'ouverture sur la bougie, il semble n'y avoir aucun problème à ce niveau.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t=0;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}
//End

Il ne s'agit pas de la fonction, mais des nuances du travail dans le monde réel.

 
Vladimir Zubov:

ajouté comme un chandelier, c'est peut-être ça ?

Mais il n'y avait pas de discothèques et pas de redémarrage du terminal. En redémarrant, je sais que la méthode n'est pas correcte, peut s'ouvrir au milieu d'une bougie, mais sur M1 ce n'est pas si important, et il n'y a pas eu de redémarrage.

Vous l'aurez à chaque tic-tac. Utilisez iTime(...PERIOD_XX...). Si vous le faites de cette façon, il ne fonctionnera qu'à l'ouverture de la bougie de la TF que vous avez spécifiée. Toutefois, si la commande d'ouverture/fermeture de l'ordre renvoie une erreur, le robot la répète dans un nouveau chandelier.

Ou iTime(...Period()...). - Il s'agit du TF actuel, c'est-à-dire celui du graphique où se trouve l'EA.

 
Vladimir Zubov:

OrderSelect est mon gardien pour les fonctions de Kim, afin qu'il n'y ait pas d'ouverture sur la bougie, il semble n'y avoir aucun problème à ce niveau.

Il ne s'agit certainement pas de la fonction, mais des nuances du travail sur le réel.

charge....

Je n'en ai pas besoin pour de vrai...

 
new-rena:

échafaudage en charbon de bois....

Je n'ai pas besoin de ça sur le vrai...

1. Comment créer un nouveau contrôle de chandelier pour qu'une itération se fasse au premier tick ?

Il me semble que ce code fonctionne pour contrôler le déclenchement sur l'ouverture de la bougie :(

2. Pourquoi pas, il s'agit de la fonction de Kim pour déterminer la barre d'une position ouverte ?

P/S a tourné MT4 maintenant je dois tout écrire à nouveau ...

 
new-rena:

vous aurez ça à chaque tique. Utilisez iTime(...PERIOD_XX...). Si vous faites cela, il ne fonctionnera qu'à l'ouverture de la bougie de la TF que vous spécifiez. Toutefois, si la commande d'ouverture/fermeture de l'ordre renvoie une erreur, le robot la donnera à nouveau dans un nouveau chandelier.

Ou iTime(...Period()...). - c'est sur l'horizon temporel actuel, c'est-à-dire sur le graphique où se trouve l'EA.

J'ai téléchargé le code de l'exemple ici il y a cinq ans, mais maintenant tout le monde est "intelligent" et ne fait que maudire et se battre pour le freelancing et le marché...

Comment déterminer l'ouverture d'une bougie d'une manière nouvelle et correcte ?