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

 
MosheDayan:

Mes amis, comment se sortir correctement de cette situation... L'indicateur dessine deux lignes horizontales à partir du CSV (Rouge - du début de la journée à la fin de la journée) Bleu - Faisceau provenant des derniers jours, à différents niveaux de prix. Mais il y a des jours où ces niveaux ont la même valeur/prix. Comment faire pour que, lorsque les lignes coïncident, le rayon (bleu) soit affiché et que la ligne rouge ne soit pas visible sur le graphique, mais physiquement présente... c'est-à-dire qu'elle soit transparente.

Maintenant - Draw_Level("Red", red, DRAW_NONE, STYLE_SOLID,0) ; il arrête de dessiner la ligne, mais le rayon n'est pas non plus visible de dessous. Merci.

Faites attention à la séquence de création des objets. Et qu'est-ce que Draw_Level() ? Pourquoi mentionner une fonction personnalisée si personne ne la connaît ?

 
Artyom Trishkin:

Bon après-midi. Qu'essayiez-vous exactement de faire vous-même ? Je ne vois que les deux codes joints. Si vous avez besoin de quelqu'un qui fasse tout à votre place, c'est à cela que sert le travail en free-lance.

Et si vous essayez vous-même, alors montrez-moi exactement ce que vous faites et ce que vous ne comprenez pas.

Bonjour, Artem ! Remarque correcte. Oui, je joins le fichier Wordovan avec le code. Ce que j'ai ajouté à mon code à partir de l'algorithme emprunté est marqué en rouge. Je ne peux pas dire avec certitude où je ne le comprends pas encore car je ne peux pas comprendre entièrement le mécanisme du travail du code. Mais peut-être pourriez-vous m'orienter dans la bonne direction avec vos conseils. Je vous en serais reconnaissant.

 

Bonne journée !
J'ouvrirai un ordre sur un symbole différent du graphique où le conseiller expert est attaché. La question est de savoir si je dois vérifier au préalable l'exactitude de Bid et comment le faire.

double Bid0= MarketInfo(OtherSymbol0,MODE_BID);
OrderSend(OtherSymbol0,OP_SELL,1,Bid0,3,stoploss,takeprofit,"My order",16384,0,clrGreen); 
 

Bon après-midi.

Pouvez-vous me conseiller sur la façon d'écrire l'heure suivante dans le code : 23:59 du premier vendredi du mois après le premier mercredi de ce mois ? Par exemple, si le mois a commencé le jeudi, vous avez besoin de l'heure 23:59 du deuxième vendredi...

Merci.

 
MosheDayan:

Bon après-midi.

Pouvez-vous me conseiller sur la façon d'écrire l'heure suivante dans le code : 23:59 du premier vendredi du mois après le premier mercredi de ce mois ? Par exemple, si le mois a commencé le jeudi, vous avez besoin de l'heure 23:59 du deuxième vendredi...

Merci.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int countWedn=0;
   int countFrid=0;
   if(TimeDayOfWeek(TimeCurrent())==5 && Hour()==23 && Minute()==59)
     {
      countWedn=0;
      countFrid=0;
      for(int i=0; i<=Day(); i++)
        {
         if(TimeMonth(iTime(Symbol(),PERIOD_D1,i))==TimeMonth(TimeCurrent()))
           {
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==3)countWedn++;
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==5)countFrid++;
           }
        }
     }
   if(countWedn==1 && countFrid==1)Print(" 23:59 первой пятницы месяца после первой среды этого месяца ");
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Tu peux. Et le sens de la pensée est correct. Pouvez-vous me montrer comment vous avez essayé de prendre les paramètres ?


Je l'ai compris. Il est nécessaire de "lier" l'objet graphique à la classe correspondante.

#include <ChartObjects\ChartObject.mqh>.

void OnStart()

{

Objet CChartObject ;

chaîne de caractères objName = "" ;

double prix = 0 ;

datetime dt ;

int NumTriangles = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE) ;

for (int j=0;j<NumTriangles;j++){

objName = ObjectName(ChartID(),j) ;

object.Attach(ChartID(),objName,0,3) ;

for (int i=0;i<object.NumPoints();i++){

prix = objet.Prix(i) ;

dt = object.Time(i) ;

Print("Point pivot - ",IntegerToString(i)," Time = ",TimeToString(dt)," Price = ",DoubleToString(price,4))

}

objet.Detach() ;

}

 

Bonjour à tous !

J'ai une telle question, il y a un tel blocage :

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

La variable opf_all doit donner le bénéfice total pour toute la période. Mais lorsque vous sélectionnez le paramètre de la journée en cours dans l'onglet "Historique du compte" du terminal, ce module affiche le résultat suivant

seulement pour le jour en cours, et quand nous sélectionnons la période entière, ce module montre pour la période entière. Cela ne devrait pas être le cas. Indépendamment de l'intervalle sélectionné dans l'historique du compte.

le module doit toujours afficher le bénéfice total pour toute la période. Peut-être que je ne comprends pas quelque chose ?

Ce problème est-il résolu d'une manière ou d'une autre ?

 
Valerius:

Bonjour à tous !

J'ai une telle question, il y a un tel blocage :

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

La variable opf_all doit donner le bénéfice total pour toute la période. Mais lorsque vous sélectionnez le paramètre de la journée en cours dans l'onglet "Historique du compte" du terminal, ce module affiche le résultat suivant

seulement pour le jour en cours, et quand nous sélectionnons la période entière, ce module montre pour la période entière. Cela ne devrait pas être le cas. Indépendamment de l'intervalle dans l'historique du compte

le module doit toujours afficher le bénéfice total pour toute la période. Peut-être que je ne comprends pas quelque chose ?

Ce problème est-il résolu d'une manière ou d'une autre ?

Non, il ne peut être résolu autrement qu'en sélectionnant la taille de l'historique calculé dans l'onglet "Historique du compte".

Et veuillez coller le code en utilisant le bouton SRC - il se trouve juste au-dessus du champ de saisie du texte dans le menu de formatage des messages. J'ai collé correctement votre "spoilage" illisible.

 
Artyom Trishkin:

Non, pas résolu autrement qu'en sélectionnant la taille de l'historique calculé dans l'onglet Historique du compte.

Et veuillez coller le code en utilisant le bouton SRC - il se trouve juste au-dessus du champ de saisie du texte dans le menu de mise en forme des messages. J'ai collé correctement votre "spoilage" illisible.

Merci et excuses...

 

Bonjour.il y a un bouton sur le graphique https://www.mql5.com/ru/code/19049 et il ouvre le site web.j'ai besoin de pouvoir activer le script par ce bouton.cela peut-il être refait ?.merci.

Link
Link
  • votes : 11
  • 2017.09.01
  • Iurii Tokman
  • www.mql5.com
Индикатор создает графическую кнопку, при нажатии на которую открывается окно браузера с сайтом, заданным в настройках индикатора.
Raison: