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

 
Gevorg Hakobyan:
si(v=="NZD")
{
h=(iClose("NZDUSD",p,b)-iOpen("NZDUSD",p,b))/MarketInfo("NZDUSD",MODE_POINT)+
(iOpen("EURNZD",p,b)-iClose("EURNZD",p,b))/MarketInfo("EURNZD",MODE_POINT)+
(iOpen("GBPNZD",p,b)-iClose("GBPNZD",p,b))/MarketInfo("GBPNZD",MODE_POINT)+
(iOpen("AUDNZD",p,b)-iClose("AUDNZD",p,b))/MarketInfo("AUDNZD",MODE_POINT)+
(iClose("NZDJPY",p,b)-iOpen("NZDJPY",p,b))/MarketInfo("NZDJPY",MODE_POINT)+
(iClose("NZDCAD",p,b)-iOpen("NZDCAD",p,b))/MarketInfo("NZDCAD",MODE_POINT)+
(iClose("NZDCHF",p,b)-iOpen("NZDCHF",p,b))/MarketInfo("NZDCHF",MODE_POINT) ;
}
Ce que vous avez dans votre code n'a pas vraiment d'importance. Pouvez-vous dire à quel DC vous êtes connecté et que vous obtenez zéro au lieu de Point()?
 
sile:

Bonjour.

Aidez-moi, s'il vous plaît.

Maintenant le lot de chaque ordre suivant augmente en 1, 2, 3, 4, 5...

Je veux que le lot de chaque commande augmente non pas à chaque commande, mais par tranches de 3, donc 1, 1, 1, 1, 2, 2, 2, 3, 3, 3...

Le compteur doit être lancé et remis à la valeur initiale lorsque le seuil fixé est atteint :
extern double   LotStop        = 0.01;
extern double   Plus_LotStop   = 0.01;
extern double   Plus_N_ORD  = 3;        //каждые N ордеров
void OnTick()
  {
//---
int c=0;
  for (int i=1; i<=OrdersStop; i++)
   {
       if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
         {
            OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
            numB++;
            PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
          
            OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
            numS++;
            PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
         }
      c++;
      if(c==3){LOTs+=Plus_LotStop;c=0;}
    }
  }
 

Pouvez-vous me dire si un indicateur appelé "iSignal" fonctionne dans le terminal, est-il possible de savoir à partir d'un EA que cet indicateur existe réellement dans n'importe quelle fenêtre ou dans une fenêtre avec un EA ?

 
Vitaly Muzichenko:

Pouvez-vous me dire si un indicateur appelé "iSignal" fonctionne dans le terminal, est-il possible de savoir à partir d'un EA que cet indicateur existe réellement dans n'importe quelle fenêtre ou dans une fenêtre avec un EA ?

Dans l'aide ChartIndicatorName() ; Et d'autres que vous y verrez.


ChartIndicatorName

Renvoie le nom court de l'indicateur par son numéro dans la liste des indicateurs de la fenêtre graphique spécifiée.

stringChartIndicatorName(
longchart_id,// ID du graphique
intsub_window,// numéro de la sous-fenêtre
intindex// index de l'indicateur dans la liste des indicateurs ajoutés à la sous-fenêtre donnée
) ;

Paramètres

identifiant du graphique

[Chart ID. 0 signifie le graphique actuel.

sous_fenêtre

[in] Numéro de la sous-fenêtre du graphique. 0 signifie la fenêtre principale du graphique.

indice

[in] Index de l'indicateur dans la liste des indicateurs. Les indicateurs sont numérotés à partir de zéro, c'est-à-dire que le tout premier indicateur de la liste a un indice zéro. Le nombre d'indicateurs dans la liste peut être obtenu par ChartIndicatorsTotal().

Valeur retournée

Nom court de l'indicateur, qui estdéfini dans la propriété INDICATOR_SHORTNAME par la fonction IndicatorSetString().Pour obtenir des informations sur l'erreur, appelez la fonction GetLastError().


Passez en revue tous les graphiques, et recherchez l'indicateur requis sur ceux-ci. Vous pouvez également définir le nombre d'indicateurs sur le graphique, ainsi que le nombre de toutes les fenêtres d'un graphique. Vous y verrez dans l'aide.
 
Vitaly Muzichenko:

Pouvez-vous me dire si un indicateur appelé "iSignal" fonctionne dans le terminal, est-il possible de savoir à partir d'un EA que cet indicateur existe réellement dans n'importe quelle fenêtre ou dans une fenêtre avec un EA ?

C'est possible. Passez en revue les indicateurs de la boucle sur le graphique requis et comparez le nom de l'indicateur sélectionné avec celui donné. La fonction ChartIndicatorName().

Probablement, il devra aussi chercher dans les sous-fenêtres du graphique, si l'indicateur se trouve au "sous-sol".

 
Artyom Trishkin:

Dans l'aide ChartIndicatorName() ; Et d'autres que vous verrez là aussi.


ChartIndicatorName

Renvoie le nom de l'indicateur court par numéro dans la liste des indicateurs de la fenêtre graphique spécifiée.

stringChartIndicatorName(
longchart_id,// ID du graphique
intsub_window,// nombre de sous-fenêtres
intindex// index de l'indicateur dans la liste des indicateurs ajoutés à cette sous-fenêtre
) ;

Merci, c'est exactement ce que je cherchais, et ça marche !

Et maintenant retour) Est-ce la même chose, mais d'un indicateur trouver expert : (c) cet expert est vraiment dans n'importe quelle fenêtre, ou une fenêtre avec indicateur?

 
Vitaly Muzichenko:

Merci, c'est exactement ce que je cherchais, et ça marche !

Et maintenant retour) Y a-t-il un semblable, seulement à partir de l'indicateur pour trouver l'expert : (c)cet expert est-il vraiment dans une fenêtre quelconque, ou une fenêtre avec un indicateur?

Comment codez-vous en général ?
WindowExpertName - Операции с графиками - Справочник MQL4
WindowExpertName - Операции с графиками - Справочник MQL4
  • docs.mql4.com
WindowExpertName - Операции с графиками - Справочник MQL4
 
Vitalie Postolache:
Comment faites-vous pour coder ?
Je connais celui-là, mais il ne sait pas comment chercher sur les graphiques d'autres personnes.
 
Vitaly Muzichenko:
Je connais celui-ci, mais il ne peut pas chercher sur le dossier de quelqu'un d'autre.

Non seulement il ne sait pas comment chercher sur le graphique de quelqu'un d'autre, mais sur son propre graphique, il ne trouve que "son" indicateur, script ou expert, celui dans lequel cette fonction est prescrite.

Je ne l'ai pas vérifié, mais j'ai essayé de parcourir la boucle des graphiques.

ChartGetString(chart_id, CHART_EXPERT_NAME)
Je pense que ça devrait marcher.
 
Alexey Viktorov:

Non seulement il ne sait pas comment chercher sur le graphique de quelqu'un d'autre, mais sur son propre graphique, il ne trouve que "son" indicateur, script ou expert, celui dans lequel cette fonction est prescrite.

Je ne l'ai pas vérifié, mais je l'ai essayé sur des graphiques en boucle.

ChartGetString(chart_id, CHART_EXPERT_NAME)
Je pense que ça devrait marcher.

Oui, cela fonctionne et il trouve l'indicateur expert par son nom. Mais maintenant, une question : existe-t-il un outil similaire, mais pour les quatre, et de préférence multiplateforme ?

Merci !

Raison: