開発者向けのヘルプです。 - ページ 3

 
Sergey Chalyshev:

見積もり遅延の問題解決に貢献します。誰がなぜ遅延しているのか理解できない、ここに良い 例があります。


インジケータは、気配値の到着を遅らせることができます(カウントされるまでは、気配値は到着しません)。

 
Vladimir Pastushak:


ボタンであればボタン、四角であれば四角のプロパティになります。

ここでは、問題解決へのアプローチの一例として、グラフィックエンジンの一部をご紹介します。

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


エントリーに注目

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

必要なウィンドウ、必要なオブジェクト、必要なプロパティが配列に挿入されます。そして、新しい値を、すぐに、関数

ObjectSetInteger(0,G_CORE[Номер_окна_под_событием][Номер_объекта_под_событием][_NAME],OBJPROP_BGCOLOR,Свойство);
これが私の理解する "エンジン "です。
 

素朴な疑問があるのですが。

グレイルの 作り方、必要なもの:コードの断片やその他のもの、採用すべき戦略とは?

 
Renat Akhtyamov:

一番シンプルな疑問があります。

グレイルの作り方、必要なもの:コードの断片とか?

私の意見-グレイルを 作る必要はない。マーケットでトレーダーとして働いている間は、この言葉を忘れるべきでしょう。))
 
Реter Konow:
私の意見-グレイルを作る必要はない。マーケットでトレーダーとして働くときは、この言葉を忘れてはいけない。))
また、周りがみんな負けていて、儲かる戦略を学んだり、Expert Advisorを開発 したりする人がいない場合、どのように仕事をすればいいのでしょうか?
 
Renat Akhtyamov:
みんなが漏らしているのに、どうして仕事ができるんだ?
そうすると、みんなと違う仕事をしなければならない)
 
Реter Konow:
だから、みんなと違う仕事をしなければならない)
ここで誰に聞いても、みんな働いている。みんなが働いていないように、働いていない?
 
Renat Akhtyamov:
ここで誰に聞いても、みんな働いている。みんなとは違う、効かない?
個人的には、中長期の株式戦略が好きです。FXは好きではありません。戦略は、市場やその参加者についての知識、そしてデータを正しく解釈することで構築されなければなりません。それがなければ、どんな戦略も「当てずっぽう」になってしまう。
 
Реter Konow:
個人的には、中長期の株式戦略が好きです。FXは私の好みではありません。戦略は、市場やその参加者、データの正しい解釈に関する知識の上に築かれなければなりません。それがなければ、どんな戦略も「当てずっぽう」になってしまう。
はい、おっしゃるとおりです。ありがとうございました。
 
Реter Konow:
だから、別の方法で仕事をしなければならないのです))
それが私の仕事です。CButtonでは名前のあるボタンとないボタンで異なるものを作り、ボタンだけのプロパティを 変更することができます。
//|==================================================================|
//|                          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;
     }
  };
//|==================================================================|
//|                                                                  |
//|==================================================================|