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

 
psyman:

Pour le prochain code, une histoire en images :


Déconnexion du réseau, ajout d'un indicateur

Je passe au tableau suivant


y2 a changé de valeur, je reviens en arrière


y2 a rendu sa valeur, mais le marqueur est compté par la valeur "partie" ! Je fais tourner la molette de la souris.

Le marqueur est de nouveau à sa place !

Lorsque l'on passe au graphique adjacent, toutes les fenêtres inactives ne sont pas étendues en plein écran. C'est-à-dire qu'ils sont plus petits que dans l'état actif. Par conséquent, les objets obtiennent des coordonnées plus petites à partir du coin supérieur gauche du graphique. Ensuite, lorsque vous activez la fenêtre, vous devez attendre que le graphique soit rafraîchi ou le rafraîchir de force. Cela se fait en faisant défiler la molette de défilement.

 
psyman:

Pour le prochain code, une histoire en images :


Déconnexion du réseau, ajout d'un indicateur

Je passe au tableau suivant


y2 a changé de valeur, je reviens en arrière


y2 a rendu sa valeur, mais le marqueur est compté par la valeur "partie" ! Je fais tourner la molette de la souris.

Le marqueur est de nouveau à sa place !

vous pouvez vous débarrasser deChartTimePriceToXY
et
imprimer du texte brut(OBJ_TEXT) + 1-3 barres dans le futur, il sera toujours là où vous en avez besoin)

 
Taras Slobodyanik:

vous pouvez ignorerChartTimePriceToXY
et
imprimer du texte brut(OBJ_TEXT) + 1-3 barres dans le futur, il sera toujours là où vous le voulez)

Seulement si vous désactivez le décalage de la barre vers la droite, le texte sera en dehors de la fenêtre.

L'idée est correcte, mais apparemment l'expérience fait cruellement défaut.

 
Alexey Viktorov:

Seulement si vous désactivez le décalage de la barre vers la droite, le texte sera en dehors de la fenêtre.

C'est une bonne idée, mais vous êtes probablement très inexpérimenté.

Si vous voulez que le marqueur soit à l'endroit, vous pouvez simplement prendre la barre la plus à droite du graphique et dessiner dessus.

 

Bon après-midi .
Pouvez-vous suggérer comment créer des variables de type global dans EA, afin que ces données ne soient pas effacées lors de l'appel de nouvelles fonctions ?

Appeler les données variables par :

bool  GlobalVariableGet( string  "name", double "var"  ); // К примеру

Où alors "var" peut être inséré dans les opérations.

Et ils sont créés avec la fonction :

datetime  GlobalVariableSet( 
   string  name,      // имя 
   double  value      // устанавлимое значение 
   );

J'essaie juste de tout comprendre. Il n'y a pas d'exemples et je ne suis pas sûr que les données fonctionnent si l'une est unedate et l'autre unbool? Aucune erreur ?

 
psyman:

Pour le prochain code, une histoire en images :

Déconnexion du réseau, ajout d'un indicateur

Je passe au tableau suivant

y2 a changé de valeur, je reviens en arrière

y2 a rendu sa valeur, mais le marqueur est compté par la valeur "partie" ! Je fais tourner la molette de la souris.

Le marqueur est de nouveau à sa place !

//+------------------------------------------------------------------+
//|                                              !_clr_indicator.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0

string objname="Bid";
input color Bid_color = clrCrimson;

//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason) 
   { 
   ObjectDelete(0,objname);
   } 
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   SetTXT();
   return(rates_total);
}

//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) 
{ 
   if(id==CHARTEVENT_CHART_CHANGE) 
      SetTXT();
}

//+------------------------------------------------------------------+
void SetTXT() 
{
int      first_bar=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
int      width_bar=(int)ChartGetInteger(0,CHART_WIDTH_IN_BARS,0);
double   label_price=iClose(_Symbol,_Period,0);
datetime label_time=0;

   if(width_bar>first_bar)
      label_time=iTime(_Symbol,_Period,1)+(width_bar-first_bar)*PeriodSeconds();
   else
      label_time=iTime(_Symbol,_Period,first_bar-width_bar+1);

   if(ObjectFind(0,objname)<0)
      {
      ObjectCreate(0, objname, OBJ_TEXT,0,0,0);
      ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 12);
      ObjectSetInteger(0, objname, OBJPROP_COLOR, Bid_color);
      ObjectSetString(0, objname, OBJPROP_FONT, "Verdana");
      ObjectSetInteger(0,objname,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
      ObjectSetInteger(0,objname,OBJPROP_BACK,false);
      ObjectSetInteger(0,objname,OBJPROP_SELECTABLE,false);
      }
   
   ObjectSetString(0,objname,OBJPROP_TEXT,DoubleToString(label_price, _Digits-1)); 
   ObjectMove(0,objname,0,label_time,label_price);
   
   ChartRedraw();
}
 
Taras Slobodyanik:


Merci beaucoup, demain je vais réfléchir à un moyen de remplacer iTime et iClose car je suis assis sur XP.

 
Bonne journée à vous tous !
Question pour les programmeurs .
Veuillez me conseiller !
Certains courtiers ne me permettent pas d'ouvrir un ordre avec un prix de prise de bénéfices et un prix d'arrêt des pertes.

Une seule fonction OrderSend().

Au contraire, l'OrderSend() ouvrira un ordre, mais le prix stop et le prix de profit seront absents de cet ordre.

Cet ordre doit être modifié sur les lignes de code suivantes en utilisant OrderModify() et en ajoutant le stop et le profit à l'ordre.


La question est donc de savoir qui et comment traite ou assure une affaire dans le cadre d'un achat ou d'une vente.
lorsque, par exemple, OrderSend() a fonctionné mais que OrderModify() n'a pas fonctionné pour une raison ou une autre et que l'utilisateur n'a pas été en mesure d'exécuter la commande.
il y a un ordre ouvert sans stop ni profit ?

Comment m'assurer contre un tel événement et/ou comment le gérer ?
Veuillez me conseiller.
Si vous ne savez pas comment utiliser Astrakhan, veuillez ne pas utiliser le code d'Astrakhan.

temps, mais je ne peux pas trouver d'informations à ce sujet.

Je crois que la fonction Breakeven a une certaine assurance, mais seulement si le prix est passé dans le rouge.

Si le prix s'est tourné vers la perte, mais qu'il n'y a pas de stop loss ?

Je vous suis très reconnaissant de votre réponse !
 

Bonjour à tous !

Pouvez-vous me dire pourquoi je ne peux pas entrer dans ses propriétés alors que l'EA fonctionne ? J'avais l'habitude, mais maintenant je ne peux pas ouvrir les propriétés. Un redémarrage du terminal a permis de résoudre le problème, mais celui-ci est réapparu au bout d'une minute. Le conseiller expert est récent, le terminal fonctionne également depuis peu. Quel est le problème avec les propriétés de l'EA ?

Merci !

 
demonRDV:

Bonjour à tous !

Pouvez-vous me dire pourquoi je ne peux pas entrer dans ses propriétés alors que l'EA fonctionne ? J'avais l'habitude, mais maintenant je ne peux pas ouvrir les propriétés. Une fois, il a été possible de redémarrer le terminal, mais le problème est réapparu après une minute. Le conseiller expert est récent, le terminal fonctionne également depuis peu. Quel est le problème avec les propriétés de l'EA ?

Merci !

Appuyez sur la touche F7 :-)

Il n'est pas toujours possible de cliquer sur l'icône de l'EA - l'icône peut être couverte par d'autres objets, l'EA peut surcharger la file d'attente des messages et 100500 autres raisons.

Raison: