Hilfe für Entwickler. - Seite 3

 
Sergey Chalyshev:

Helfen Sie mit, das Problem der verspäteten Angebote zu lösen. Ich verstehe nicht, wer verzögert und warum, hier ist ein gutes Beispiel.


Indikatoren können das Eintreffen von Kursen verzögern (bis sie gezählt sind, kommen die Kurse nicht).

 
Vladimir Pastushak:


Wenn es sich um eine Schaltfläche handelt, sind die Eigenschaften die Schaltfläche, und wenn es sich um ein Quadrat handelt, sind die Eigenschaften das Quadrat.

Hier ist ein Teil der grafischen Maschine, die ein Beispiel für einen Lösungsansatz für Ihr Problem sein kann:

 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); 
           }             
         }


Beachten Sie den Eintrag

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

Das gewünschte Fenster, das gewünschte Objekt und die gewünschte Eigenschaft werden in das Array eingefügt. Dann wird der neue Wert sofort durch die Funktion

ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,Свойство);
Dies ist der "Motor", wie ich ihn verstehe.
 

Ich habe die einfachsten Fragen.

Wie macht man einen Gral, was braucht man: Codestücke und andere Dinge, welche Strategie ist zu wählen?

 
Renat Akhtyamov:

Ich habe eine ganz einfache Frage.

Wie macht man einen Gral, was braucht man: Code und so?

Meiner Meinung nach ist es nicht nötig, einen Gral zu schaffen. Sie sollten dieses Wort vergessen, wenn Sie als Händler auf dem Markt arbeiten. ))
 
Реter Konow:
Meiner Meinung nach ist es nicht nötig, einen Gral zu schaffen. Sie sollten dieses Wort vergessen, wenn Sie als Händler auf dem Markt arbeiten. ))
Und wie soll man arbeiten, wenn alle um einen herum verlieren und es niemanden gibt, der eine profitable Strategie erlernen oder einen Expert Advisor entwickeln kann?
 
Renat Akhtyamov:
Wie können Sie arbeiten, wenn alle anderen undicht sind?
Dann müssen Sie anders arbeiten als alle anderen.)
 
Реter Konow:
Sie müssen also anders arbeiten als alle anderen.)
Egal wen Sie hier fragen, alle arbeiten. Nicht arbeiten, wie alle anderen nicht arbeiten?
 
Renat Akhtyamov:
Egal wen Sie hier fragen, alle arbeiten. Nicht wie alle anderen - funktionieren sie nicht?
Ich persönlich mag mittel- und langfristige Aktienstrategien. Ich mag keine Devisen. Eine Strategie muss auf der Kenntnis des Marktes, seiner Teilnehmer und der richtigen Interpretation der Daten aufbauen. Ohne dies ist jede Strategie ein "Ratespiel".
 
Реter Konow:
Ich persönlich mag mittel- und langfristige Aktienstrategien. Forex ist nicht nach meinem Geschmack. Eine Strategie muss auf der Kenntnis des Marktes, seiner Teilnehmer und der richtigen Interpretation der Daten aufbauen. Ohne dies ist jede Strategie ein "Ratespiel".
Ja, Sie haben Recht. Ich danke Ihnen!
 
Реter Konow:
Man muss also anders arbeiten.))
So arbeite ich. MitCButton können Sie verschiedene Schaltflächen mit und ohne Namen erstellen und die Eigenschaften nur der Schaltflächen ändern.
//|==================================================================|
//|                          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;
     }
  };
//|==================================================================|
//|                                                                  |
//|==================================================================|