[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 40

 
Je dirai en tant que codeur qui écrit principalement sur demande : quelques dizaines de lignes de code "supplémentaires" (quand on comprend ce qu'on a écrit là et qu'on a confiance en lui), ce n'est jamais redondant, du moins en termes de fiabilité du système dans son ensemble, et respectivement moins de retours et de problèmes de communication avec le client.
 
FAQ:
Je vais dire en tant que codeur, principalement sur mesure : quelques dizaines de lignes de code "supplémentaires" (lorsque vous comprenez ce que vous avez écrit là et que vous avez confiance en lui) ne sont jamais superflues, du moins en termes de fiabilité du système dans son ensemble, et par conséquent moins de rappels et de problèmes dans le traitement du client.

Je vois. Merci. J'ai déjà effectué les modifications.

Mais tout de même, j'ai trouvé intéressant qu'il s'avère que l'ouverture peut aussi se faire avec un volume "bâclé"... pas tout à fait comme il se doit, mais le fait est que...

 
sergeev:

La FAQ le dit bien. Vous ne pouvez pas vous fier aux "valeurs par défaut". Parce que je me souviens que l'erreur 131 (mauvais lot) apparaissait souvent, si vous ne faites pas une normalisation avant d'envoyer une commande.
Peut-être que maintenant les MMOs ont fait leur propre vérification de lot par défaut sur les serveurs lorsqu'ils envoient un ordre pour exécution.

Vous devez donc toujours effectuer votre propre normalisation des prix et des lots avant de les envoyer.

C'est une bonne règle de codage pour vous, et une garantie de moins de tracas avec des problèmes potentiels à l'avenir.

Compris, merci.

"Je me souviens que 131 erreurs (mauvais lot) apparaissaient souvent si je ne normalisais pas avant d'envoyer la commande.

Je l'ai accidentellement vérifié moi-même, lorsque j'ai "oublié" d'activer la fonction de normalisation des lots.

 
Roman.:

Je vois. Merci. J'ai déjà fait les changements.

Mais j'ai quand même trouvé intéressant qu'il soit possible d'ouvrir avec un volume "négligé"... pas tout à fait comme il se doit, mais le fait est que...


Avant l'introduction des cinq chiffres, personne ne s'est posé la question de la normalisation - tout fonctionnait comme avant.
 
Bonjour à tous !
La question est la suivante, la première fois que l'indicateur est mis en marche, il est affiché
par alphabra-cadabra (pic.1). Après un nouveau défilement de l'historique, tout est normal (fig.2).

Pouvez-vous me dire quel est le problème ? Ci-dessous si vous avez besoin du code.

#property indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Tomato
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property indicator_level1 0
#property indicator_levelcolor Gray
#property indicator_levelstyle 2

extern int Period_MA = 5;
extern int MA_Line1 = 13;
extern int MA_Line2 = 34;
 
double Brs[],BrsMA1[],BrsMA2[],MathArr[],MathArr1;
int i=0,j=0;
double hvostUp,hvostDn,rast,S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,Brs);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(1,BrsMA1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,BrsMA2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexLabel(0,"Bars_");
   SetIndexLabel(1,"Bars_MA1");
   SetIndexLabel(2,"Bars_MA2");
     
   ArrayResize(MathArr,Period_MA);
   
 //---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Bars_MA");

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start() {  

int ncount=IndicatorCounted();
int limit=Bars-ncount-1;

for (int i=0; i<limit; i++)
{

if (High[i+2]>High[i+1] && Low[i+2]>Low[i+1])
{
hvostUp=(High[i+2]-High[i+1])/Point;
hvostDn=(Low[i+2]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+1])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]<High[i+1] && Low[i+2]<Low[i+1])
{
hvostUp=(MathAbs(High[i+2]-High[i+1]))/Point;
hvostDn=(MathAbs(Low[i+2]-Low[i+1]))/Point;
rast=(High[i+1]-Low[i+2])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]>=High[i+1] && Low[i+2]<=Low[i+1])
{
S=(High[i+1]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+2])/Point;
}

if (High[i+2]<=High[i+1] && Low[i+2]>=Low[i+1])
{
S=(High[i+2]-Low[i+2])/Point;
rast=(High[i+1]-Low[i+1])/Point;
}

if (High[i+2]<=Low[i+1] || Low[i+2]>=High[i+1])
{
S=0;
rast=1;
}

if(j>=Period_MA-1)j=0;
j++;
 MathArr[j]=(S/rast*100);
 
Brs[i]=iMAOnArray(MathArr,0,Period_MA,0,0,0);
BrsMA1[i]=iMAOnArray(Brs,0,MA_Line1,0,0,0);
BrsMA2[i]=iMAOnArray(Brs,0,MA_Line2,0,0,0);
}   
  return(0);
}

Fig.1

Fig. 2

Dossiers :
bars_ma_1.mq4  4 kb
 
Ce serait bien d'automatiser ce processus, c'est-à-dire de faire ce travail à l'avance au lieu d'attendre que le bénéfice se déclenche. J'ai regardé tous les scripts postés, j'en ai trouvé un similaire, mais ils disent qu'il ne fonctionne pas. Ou créons une fonction qui, lorsqu'un TP ou un SL se déclenche, le script ouvre tous les ordres qui viennent d'être fermés, mais dans un format en attente. De nombreux traders savent ce qu'ils vont faire dans une certaine situation et il est très pratique de le faire avant que la situation ne se produise.
 
sting-igor:
Ce serait bien d'automatiser ce processus, c'est-à-dire de faire ce travail à l'avance au lieu d'attendre que le bénéfice se déclenche. J'ai regardé tous les scripts postés, j'en ai trouvé un similaire, mais ils disent qu'il ne fonctionne pas. Ou créons une fonction qui, lorsqu'un TP ou un SL se déclenche, le script ouvre tous les ordres qui viennent d'être fermés, mais dans un format en attente. De nombreux traders savent ce qu'ils vont faire dans une certaine situation et il est très pratique de le faire avant que la situation ne se produise.

Vous êtes au bon endroit :Travail
 
Fox_RM:
Bonjour à tous !
La question est la suivante, la première fois que l'indicateur est mis en marche, il est affiché
par abracadabra (fig.1). Après un nouveau défilement de l'historique, tout est normal (fig.2).

Pouvez-vous me dire quel est le problème ? Ci-dessous si vous avez besoin du code.

Fig.1

Fig. 2


Je suis désolé que la question ait été posée une deuxième fois.

Comparez votre variante avec celle-ci

Ça ne fonctionne toujours pas correctement, mais c'est mieux.

J'ai encore modifié l'indicateur

Dossiers :
 
FAQ:

Vous allez par là :Travail
Personne n'en a ?
 
sting-igor:
Personne n'en a ?


Code de base Dig

Si vous ne pouvez pas en trouver, commandez-en un.

Raison: