Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1813

 
Alexander Avksentyev #:

Prix - Niveau SL

et ensuite

se compare à la SL minimale autorisée.

Je suppose que la vue est plus claire plus loin.

Si ce n'est pas bien, alors c'est mal.

Vous voulez que je normalise ce que j'ai calculé, mais les informations obtenues par MarketI sont déjà lisibles ? Il s'agira d'une comparaison normale.

Oui ?

Non

doubleNormalizeDouble(
valeur double,

(Bid - sl_lev)

// nombre à normaliser


intchiffres

Digits

// nombre de chiffres après le point décimal
);

 
Kedrov #:

Bonjour à tous !

Aidez-moi !

L'indicateur common_sr affiche le maximum/minimum d'hier uniquement aujourd'hui, sur la période en cours. C'est-à-dire que ces niveaux, ces limites ne sont pas affichés le jour d'hier - seulement aujourd'hui. Et c'est correct !

Et le même indicateur, montrant les niveaux maximum/maximum de la semaine précédente, les dessine également dans la semaine précédente. Bien que, logiquement, il ne devrait tirer que la semaine en cours.

J'ai essayé de représenter ces idées dans la capture d'écran. Si j'ai des questions, je donnerai les réponses.

Pourrez-vous le corriger de quelque manière que ce soit ?

Merci beaucoup pour votre aide !

Dossiers :
common_sr.mq4  39 kb
 

Alexander Avksentyev #:

J'ai supposé qu'on y verrait plus clair à partir de maintenant.


double price=NormalizeDouble(Bid - sl_lev,Digits);
if(price < MarketInfo(Symbol(),MODE_STOPLEVEL) * Point) return;
 
Tretyakov Rostyslav #:

Rostislav !

Merci beaucoup de votre sollicitude !

Et pour le résultat !

Merci beaucoup !

Bonne chance !

 
Tretyakov Rostyslav #:

Rostislav !

Et ce "courant" peut être inséré de façon permanente dans le code mq4. Ne pas fixer le TF requis à chaque fois. Je n'ai pas réussi.

 
Kedrov #:

Rostislav !

Et ce "courant" peut être inséré de façon permanente dans le code mq4. Afin de ne pas régler à chaque fois la TF requise. Cela n'a pas fonctionné pour moi.

Cette ligne au début du code

input ENUM_TIMEFRAMES Precision=PERIOD_D1; // Precision   PERIOD_H1

Remplacez-le par


input ENUM_TIMEFRAMES Precision=PERIOD_CURRENT; // Precision   PERIOD_H1
 
Tretyakov Rostyslav #:

Cette ligne au début du code

le remplacer par...


Merci beaucoup, Rostislav !

Tout a fonctionné !

Bonne chance !

 

Aussi, dites-moi comment MakarFH est devenu Rostislav.

Où y a-t-il une consonance... quelque chose du tout ?

 
Maxim Kuznetsov #:

Aussi, dites-moi comment MakarFH est devenu Rostislav.

Où se trouve même une consonance ... quelque chose là.

décompiler)

 

Bonjour à tous. Pouvez-vous me conseiller, s'il vous plaît ?

J'essaie de calculer un croisement sur un MACD standard d'une ligne de signal et d'un histogramme. L'idée est la suivante : à chaque nouvelle barre, nous prenons les deux bougies précédentes et obtenons les valeurs de l'indicateur sur chacune d'elles. Si la valeur MACD de la deuxième bougie est supérieure à la valeur du signal et que la valeur MACD de la première bougie est déjà inférieure au signal et que toutes les valeurs sont supérieures à zéro, cela signifie qu'il y a un croisement à la hausse et vice versa.

Mais, au moment d'obtenir la valeur, elle devient en quelque sorte énorme. Et une seule - la ligne de signal de la deuxième bougie. Il peut être 8 à quel degré, 4,5, 7, etc. Lorsque la barre suivante apparaît, la valeur de la ligne de signal de la deuxième barre à partir de la nouvelle barre peut déjà être normale. Tous les autres s'avèrent être corrects. Et dans la fenêtre de données, la valeur est également correcte. Je ne comprends pas pourquoi. Qu'est-ce que je fais de mal ?

PrevMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
PrevSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
CtrlMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,2);
CtrlSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,2);

Сomment(CtrlMACD+" "+CtrlSignalMACD+" "+PrevMACD+" "+PrevSignalMACD);

J'ai le sentiment qu'il s'agit d'une double variable. Parce que la valeur dans la fenêtre de données est 0,000081, mais il s'avère 8,1....., la même chose j'ai remarqué avec une autre valeur - dans la fenêtre de données 0,000071, mais dans la variable 7,1..... Mais elles sont toutes définies comme des variables doubles.

Dossiers :
Raison: