Aide pour les développeurs. - page 3

 
Sergey Chalyshev:

Contribuer à résoudre le problème des devis tardifs. Je ne comprends pas qui retarde et pourquoi, voici un bon exemple.


Les indicateurs peuvent retarder l'arrivée des cotations (tant qu'ils ne sont pas comptés, aucune cotation n'arrive).

 
Vladimir Pastushak:


Si c'est un bouton, les propriétés seront celles du bouton, et si c'est un carré, les propriétés seront celles du carré.

Voici une partie du moteur graphique, qui peut constituer un exemple d'approche pour résoudre votre problème :

 if(!Объект_в_нажатом_состоянии && Идентификатор_события == _STANDART_EVENT_OBJECT_POINTED)
   {
    if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_MAIN_CATEGORY] == _OBJECT_MAIN_CATEGORY_STANDART)
     {
      if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_WINDOW_APPEARENCE_BUTTON)
        {
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,255); 
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrWhite); 
        }
   if(G_CORE[Номер_окна_под_событием][_W_Properties][_WINDOW_CURRENT_STATUS] == _WINDOW_CURRENT_STATUS_AWAKE)
     {    
      if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_SCROLL_BAR_BUTTON)
        {
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrSilver); 
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrSilver);  
        }
      if(
              G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_MENU_ITEM
         //&& !(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_INTERFACE_MAIN_MENU_ITEM && Открыто_окно_меню)
        )
        {
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrLightSkyBlue);
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,clrBlue); 
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrWhite); 
         //----------------
         if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_INTERFACE_MAIN_MENU_ITEM && Открыто_окно_меню) 
           {
            
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,0);
           }
         //----------------
        }
      if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_TOOL_BOX_ITEM)
        {
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrSilver); 
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrSilver);  
        }
      if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_TEXT_EDIT_BOX)
        {
         if(G_CORE[Номер_окна_под_событием][_W_Properties][_WINDOW_CATEGORY] == _WINDOW_CATEGORY_MENU)
           {
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,C'226,226,226');
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,clrLightSkyBlue); 
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,0);
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_FONTSIZE,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_FONTSIZE] + 1);  
           }
         else 
           {  
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,C'226,226,226');//clrLightSkyBlue
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BORDER_COLOR,clrLightSkyBlue);//clrBlue 
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,0);  //clrWhite
           // ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_FONTSIZE,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_FONTSIZE] + 1); 
           }   
        }
      if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_SET_VALUE_BUTTON)
        {
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrLightSkyBlue); 
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrBlue); 
         ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,clrWhite);
        }
        
      if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_CATEGORY] == _OBJECT_CATEGORY_WINDOW_HANDLE)
        {
         if(G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_VERTICAL_SCROLL_BAR_HANDLE)
           {
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,8421504); 
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_COLOR,8421504);
           }
         if(
               G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_WINDOW_RIGHT_HANDLE
            || G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_WINDOW_BOTTOM_HANDLE
            || G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_OBJECT_SUBCATEGORY] == _OBJECT_SUBCATEGORY_WINDOW_HW_HANDLE
           )
           {
            ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,clrDarkGray); 
           }             
         }


Notez l'entrée

G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME]

La fenêtre requise, l'objet requis et la propriété requise sont insérés dans le tableau. Ensuite, la nouvelle valeur, immédiatement, est fixée par la fonction

ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,Свойство);
C'est le "moteur" tel que je le comprends.
 

J'ai la plus simple des questions.

Comment faire un graal, ce qu'il faut : des morceaux de code et d'autres trucs, quelle stratégie adopter ?

 
Renat Akhtyamov:

J'ai la question la plus simple.

Comment fabrique-t-on un graal, de quoi a-t-on besoin : de morceaux de code et autres ?

Mon avis - il n'y a pas besoin de faire un graal. Vous devez oublier ce mot lorsque vous travaillez en tant que trader sur le marché. ))
 
Реter Konow:
Mon avis - il n'y a pas besoin de faire un graal. Vous devez oublier ce mot lorsque vous travaillez en tant que trader sur le marché. ))
Et comment travailler si tout le monde autour de vous perd, s'il n'y a personne pour apprendre une stratégie rentable ou développer un conseiller expert?
 
Renat Akhtyamov:
Comment pouvez-vous travailler si tout le monde fuit ?
Alors vous devez travailler différemment de tous les autres).
 
Реter Konow:
Vous devez donc travailler différemment de tout le monde).
Qui que vous demandiez ici, tout le monde travaille. Ne pas travailler comme tout le monde ne travaille pas ?
 
Renat Akhtyamov:
Qui que vous demandiez ici, tout le monde travaille. Pas comme tout le monde - ils ne travaillent pas ?
Personnellement, j'aime les stratégies d'actions à moyen et long terme. Je n'aime pas le forex. Une stratégie doit s'appuyer sur la connaissance du marché, de ses acteurs et sur une interprétation correcte des données. Sans cela, toute stratégie est un "jeu de devinettes".
 
Реter Konow:
Personnellement, j'aime les stratégies d'actions à moyen et long terme. Le Forex n'est pas à mon goût. Une stratégie doit être fondée sur la connaissance du marché, de ses acteurs et sur l'interprétation correcte des données. Sans cela, toute stratégie est un "jeu de devinettes".
Oui, vous avez raison. Merci !
 
Реter Konow:
Donc, vous devez travailler d'une manière différente.))
C'est comme ça que je travaille,CButton vous permet de créer différents boutons avec et sans noms et de modifier les propriétés de ces seuls boutons.
//|==================================================================|
//|                          CButton.mqh                             |
//|               Copyright 2016, Trading-go Project.                |
//| Author: Voldemar, Version: 13.04.2016, Site http://trading-go.ru |
//|------------------------------------------------------------------|
//| Класс для работы с простой кнопкой                               |
//|==================================================================|
#property strict
#include "CObject.mqh" 
//|==================================================================|
//|  CREATE("Opens",7000,7000,60,20,CORNER_LEFT_UPPER,"","Sans Serif",7,clrWhite,C'71,71,71',C'200,200,200',false,false,false,true,0,"\n");
//|==================================================================|
class CButton   
  {
protected:
   CObject           obj;
public:

   bool   SetXDISTANCE(int aX)                               { return      obj.SetXDistance(aX);}                   //--- установим координаты кнопки
   bool   SetXDISTANCE(string aName,int aX)                  { return      obj.SetXDistance(aName,aX);}             //--- установим координаты кнопки
   int    GetXDISTANCE(void)                                 { return (int)obj.GetXDistance();}                //--- установим координаты кнопки
   int    GetXDISTANCE(string aName)                         { return (int)obj.GetXDistance(aName);}           //--- установим координаты кнопки

   void   SetSUB_WINDOW(int aWindow)                         { obj.SetSubWindow(aWindow);}                    //--- установим координаты кнопки  
   int    GetSUB_WINDOW(void)                                { return obj.GetSubWindow();}                    //--- установим координаты кнопки 
   //---
   bool   SetNEW_NAME(string aName,string aNewName) { return obj.SetNewName(aName,aNewName);}        //---
   void   SetNAME(string aName)                              { obj.SetName(aName);}                            //---
   string GetNAME(void)                                      { return obj.GetName();}                          //---
   //---   
   void   SetHIDE(string aName)                              { obj.SetHide(aName);}                            //---
   void   SetHIDE(void)                                      { obj.SetHide();}                                 //---
   //---
   bool   SetKILL(void)                                      { return obj.SetDellName();}                            //---
   bool   SetKILL(string aName)                              { return obj.SetDellName(aName);}                       //---
   //---
   bool   GetOBJECT_FIND(void)                               { return obj.GetObject_Find();}                          //---
   bool   GetOBJECT_FIND(string aName)                       { return obj.GetObject_Find(aName);}                     //---

   // ================
   bool SetXYToTimePrice(string aName,int aX,int aY,int &aSubWindow,datetime &aTime,double &aPrice)
     {
      return  obj.SetXYToTimePrice(aName,aX,aY,aSubWindow,aTime,aPrice);
     }
   bool SetXYToTimePrice(int aX,int aY,int &aSubWindow,datetime &aTime,double &aPrice)
     {
      return  obj.SetXYToTimePrice(aX,aY,aSubWindow,aTime,aPrice);
     }
   // ================
   bool   SetTimePriceToXY(string aName,datetime aTime,double aPrice,int aXSIZE=0,int aYSIZE=0)
     {
      return obj.SetTimePriceToXY(aName,aTime,aPrice,aXSIZE,aYSIZE);
     }
   bool   SetTimePriceToXY(datetime aTime,double aPrice,int aXSIZE=0,int aYSIZE=0)
     {
      return obj.SetTimePriceToXY(aTime,aPrice,aXSIZE,aYSIZE);
     }
     void   Debug(bool aDebug=false) {             obj.Debug(aDebug);}                 //--- Режим дебага
   // ================
   //CREATE("Opens",7000,7000,60,20,CORNER_LEFT_UPPER,"","Sans Serif",7,clrWhite,C'71,71,71',C'200,200,200',false,false,false,true,0,"\n");
   // ================
   bool              CREATE(
                            const string           aName       = "Button",          // имя кнопки
                            const int              aX          = 20,                // координата по оси X
                            const int              aY          = 20,                // координата по оси Y
                            const int              aWidth      = 50,                // ширина кнопки
                            const int              aHeight     = 18,                // высота кнопки
                            const ENUM_BASE_CORNER aCorner     = CORNER_LEFT_UPPER, // угол графика для привязки
                            const string           aText       = "Button",          // текст
                            const string           aFont       = "Arial",           // шрифт
                            const int              aFont_size  = 10,                // размер шрифта
                            const color            aClr        = clrWhite,          // цвет текста
                            const color            aBack_clr   = C'71,71,71',       // цвет фона
                            const color            aBorder_clr = C'200,200,200',    // цвет границы
                            const bool             aState      = false,             // нажата/отжата
                            const bool             aBack       = false,             // на заднем плане
                            const bool             aSelection  = false,             // выделить для перемещений
                            const bool             aHidden     = true,              // скрыт в списке объектов
                            const int              aZ_order    = 0,                 // приоритет на нажатие мышью
                            const string           aTooltip    = "\n"               // комментарий
                            )
     {
      if(obj.CreateObject(aName,OBJ_BUTTON)) //--- создадим кнопку
        {
         SetXDISTANCE(aX);             //--- установим координаты кнопки
         SetYDISTANCE(aY);             //--- установим координаты кнопки
         SetXSIZE(aWidth);             //--- установим размер кнопки
         SetYSIZE(aHeight);            //--- установим размер кнопки
         SetCORNER(aCorner);           //--- установим угол графика, относительно которого будут определяться координаты точки
         SetTEXT(aText);               //--- установим текст
         SetFONT(aFont);               //--- установим шрифт текста
         SetFONTSIZE(aFont_size);      //--- установим размер шрифта
         SetCOLOR(aClr);               //--- установим цвет текста
         SetBGCOLOR(aBack_clr);        //--- установим цвет фона
         SetBORDER_COLOR(aBorder_clr); //--- установим цвет границы
         SetBACK(aBack);               //--- отобразим на переднем (false) или заднем (true) плане
         SetSTATE(aState);             //--- переведем кнопку в заданное состояние
         SetSELECTABLE(aSelection);    //--- включим (true) или отключим (false) режим перемещения кнопки мышью
         SetSELECTED(aSelection);      //--- включим (true) или отключим (false) режим перемещения кнопки мышью
         SetHIDDEN(aHidden);           //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
         SetZORDER(aZ_order);          //--- установим приоритет на получение события нажатия мыши на графике
         SetTOOLTIP(aTooltip);         //--- комментарий
        }
      else
         return false;
      return true;
     }
  };
//|==================================================================|
//|                                                                  |
//|==================================================================|
Raison: