Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 49

 
Chiripaha:

J'ai rencontré un problème intéressant :

J'écris une condition triviale :

,,,

Si vos prix A et B sont les mêmes, la condition correcte pourrait ressembler à ceci

if( А + 0.5 * Point < Б )
{
  // Выполнить действия
}
 
Aizec:

Puis-je avoir un petit exemple de code ?

https://www.mql5.com/ru/code/10831
 


TarasBY:

Roger:
Les nombres fractionnaires doivent être normalisés avant d'être comparés.
Mislaid:

Si vos prix A et B, la condition correcte pourrait ressembler à ceci

Merci beaucoup pour votre aide !

Je normalise les données en permanence, c'est pourquoi j'ai été surpris par un phénomène similaire. Mais apparemment, tout n'est pas pris en compte dans le processus d'écriture et par l'expérience, donc le conseil de "normaliser juste avant de comparer les paramètres comparés" est très efficace. Tout a fonctionné de manière cohérente.

 

Bonsoir à tous.

Pouvez-vous me dire pourquoi une commande ne s'ouvre pas ?

int dernier ;

int start()

(

if (Hour( ) == 12) // si une bougie de 12 heures est formée sur TF 60
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ) ; // se souvenir du N de cette bougie
if (last == 10) // et quand cette bougie est N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ) ; // ouvrir l'ordre

)

retour(0) ;

Je pense que iBarShift ne fonctionne pas car le paramètre iTime( NULL, 0, 0) ) renvoie l'heure en secondes, alors que j'en ai besoin au format D'04.04.2000 19:05 '.

QUESTION 1. Quelle fonction renvoie l'heure d'ouverture d'une bougie au format D'04.04.2000 19:05 '.

J'ai vérifié - avec ce format, la fonction iBarShift fonctionne et l'ordre s'ouvre. Mais cela ne fonctionne que si la première condition est manquante if (Hour( ) == 12)

QUESTION 2 Pourquoi iBarShift ne fonctionne pas après la condition if (Hour( ) == 12)

MERCI.

 
solnce600:

Bonsoir à tous.

Pouvez-vous me dire pourquoi une commande ne s'ouvre pas ?

int dernier ;

int start()

(

if (Hour( ) == 12) // si une bougie de 12 heures est formée sur TF 60
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ) ; // se souvenir du N de cette bougie
if (last == 10) // et quand cette bougie est N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ) ; // ouvrir l'ordre

)

retour(0) ;

Je pense que iBarShift ne fonctionne pas car le paramètre iTime( NULL, 0, 0) ) renvoie l'heure en secondes, alors que j'en ai besoin au format D'04.04.2000 19:05 '.

QUESTION 1. Quelle fonction renvoie l'heure d'ouverture d'une bougie au format D'04.04.2000 19:05 '.

J'ai vérifié - avec ce format, la fonction iBarShift fonctionne et l'ordre s'ouvre. Mais cela ne fonctionne que si la première condition est manquante if (Hour( ) == 12)

QUESTION 2 Pourquoi iBarShift ne fonctionne pas après la condition if (Hour( ) == 12)

MERCI.


c'est-à-dire que vous (si j'ai bien compris) ouvrez une position sur la 22ème barre du cadre horaire.

int start()
  {

if(iBarOfDayCalc(60)==22)
     int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point,"jfh",123 ); //открыть ордер

 return(0);
  }

//  фуннкцыя------------------------
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc(int tf=0, datetime dt=0) {
  if (tf<=0) tf=Period();
  if (dt<=0) dt=TimeCurrent();
  if (tf>PERIOD_D1) {
    Print("iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1");
    return(0);
  }
  double ms=MathMod(dt/60, 1440);      // количество минут от начала суток
  int    bd=MathFloor(ms/tf)+1;        // номер бара от начала суток

  return(bd);
}
 
r772ra:


C'est-à-dire que vous (si je vous comprends bien) ouvrez une position sur la 22ème barre du cadre horaire.

Dans mon exemple - exactement comme ça, c'est-à-dire à la 22e bougie.

Mais en général, je voudrais me souvenir de n'importe quelle bougie (avec les paramètres dont j'ai besoin).

et après elle (mémorisé) bougie sera déplacé à une distance désirée (ie, sera - 5,6....100)

ouvrir une commande.

Par conséquent, si je ne me trompe pas, la fonction ci-dessus de Kim ne fonctionnera probablement pas pour moi,

car il compte les bougies depuis le début de la journée et ne fonctionne qu'avec 24 bougies.

Je pense que j'ai besoin de la fonction iBarShift qui peut se souvenir de n'importe quelle bougie.

(Par exemple, chaque cinquantième ou centième chandelier à partir de n'importe quel chandelier dont j'ai besoin).

Mais cette fonction, pour une raison quelconque, ne fonctionne pas(les détails sont décrits dans le premier message)

Je vous serais reconnaissant si vous pouviez m'aider à trouver des réponses à mes questions.

Merci beaucoup pour votre participation.

 

Bonjour, pourriez-vous me conseiller sur la façon de m'assurer qu'après avoir ouvert cette position particulière, le code de l'EA commence à fonctionner depuis le début.

if (ticketbuy>0)
{
retour ;
}

Je ne veux pas qu'il ouvre d'autres commandes par d'autres conditions et j'en ai quelques autres à ouvrir. Je dois ouvrir plusieurs autres commandes. Merci.

 
Vinin:

S'il y a suffisamment de tampons d'indicateurs, vous pouvez le faire sans objets.


mais comment ? si l'indicateur est fenêtré, comment pouvez-vous afficher les flèches sur le graphique ? je n'utilise que 4 buffers

 

Bonjour. Désolé de m'immiscer dans une conversation en cours... Si vous avez une minute ... J'ai un indicateur qui dessine une flèche vers le haut et vers le bas et j'ai besoin de faire un EA pour cela. Je peux dire que je commence juste à apprendre muell et que je ne m'occupe pas des indicateurs.

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 blue

#property indicator_color2 Red

//---- paramètres d'entrée

extern int NumBars=500 ;

//---- tampons

double ExtMapBuffer1[] ;

double ExtMapBuffer2[] ;

double page ;

peut-être que quelqu'un a un modèle

 

Veuillez me conseiller si quelqu'un le sait. Gepard 5.0 Expert Advisor sur Forex4you ouvre quelques trades avec de gros moins. Où puis-je régler les paramètres ?

Raison: