Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 609

 
Alexander Antoshkin :

Ben de örneklerden buton kodunu aldım, .... Butona basma nasıl yapılır sabit değil yani işlevini yürüttükten sonra eski haline dönüyor..

Düğmeler hakkında ise, işte yardımdan bir örnek:

 //+------------------------------------------------------------------+
//|                                               ControlsButton.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"
#property description "Панель индикации и диалогов управления. Демонстрация работы класса CButton"
#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
//+------------------------------------------------------------------+
//| defines                                                          |
//+------------------------------------------------------------------+
//--- indents and gaps
#define INDENT_LEFT                         ( 11 )       // indent from left (with allowance for border width)
#define INDENT_TOP                          ( 11 )       // indent from top (with allowance for border width)
#define INDENT_RIGHT                        ( 11 )       // indent from right (with allowance for border width)
#define INDENT_BOTTOM                       ( 11 )       // indent from bottom (with allowance for border width)
#define CONTROLS_GAP_X                      ( 5 )       // gap by X coordinate
#define CONTROLS_GAP_Y                      ( 5 )       // gap by Y coordinate
//--- for buttons
#define BUTTON_WIDTH                        ( 100 )     // size by X coordinate
#define BUTTON_HEIGHT                       ( 20 )       // size by Y coordinate
//--- for the indication area
#define EDIT_HEIGHT                         ( 20 )       // size by Y coordinate
//--- for group controls
#define GROUP_WIDTH                         ( 150 )     // size by X coordinate
#define LIST_HEIGHT                         ( 179 )     // size by Y coordinate
#define RADIO_HEIGHT                        ( 56 )       // size by Y coordinate
#define CHECK_HEIGHT                        ( 93 )       // size by Y coordinate
//+------------------------------------------------------------------+
//| Class CControlsDialog                                            |
//| Usage: main dialog of the Controls application                   |
//+------------------------------------------------------------------+
class CControlsDialog : public CAppDialog
  {
private :
   CButton           m_button1;                       // the button object
   CButton           m_button2;                       // the button object
   CButton           m_button3;                       // the fixed button object

public :
                     CControlsDialog( void );
                    ~CControlsDialog( void );
   //--- create
   virtual bool       Create( const long chart, const string name, const int subwin, const int x1, const int y1, const int x2, const int y2);
   //--- chart event handler
   virtual bool       OnEvent( const int id, const long &lparam, const double &dparam, const string &sparam);

protected :
   //--- create dependent controls
   bool               CreateButton1( void );
   bool               CreateButton2( void );
   bool               CreateButton3( void );
   //--- handlers of the dependent controls events
   void               OnClickButton1( void );
   void               OnClickButton2( void );
   void               OnClickButton3( void );
  };
//+------------------------------------------------------------------+
//| Event Handling                                                   |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_CLICK,m_button1,OnClickButton1)
ON_EVENT(ON_CLICK,m_button2,OnClickButton2)
ON_EVENT(ON_CLICK,m_button3,OnClickButton3)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog( void )
  {
  }
//+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog( void )
  {
  }
//+------------------------------------------------------------------+
//| Create                                                           |
//+------------------------------------------------------------------+
bool CControlsDialog::Create( const long chart, const string name, const int subwin, const int x1, const int y1, const int x2, const int y2)
  {
   if (!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
       return ( false );
//--- create dependent controls
   if (!CreateButton1())
       return ( false );
   if (!CreateButton2())
       return ( false );
   if (!CreateButton3())
       return ( false );
//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Create the "Button1" button                                      |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButton1( void )
  {
//--- coordinates
   int x1=INDENT_LEFT;
   int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
   int x2=x1+BUTTON_WIDTH;
   int y2=y1+BUTTON_HEIGHT;
//--- create
   if (!m_button1.Create(m_chart_id,m_name+ "Button1" ,m_subwin,x1,y1,x2,y2))
       return ( false );
   if (!m_button1.Text( "Button1" ))
       return ( false );
   if (!Add(m_button1))
       return ( false );
//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Create the "Button2" button                                      |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButton2( void )
  {
//--- coordinates
   int x1=INDENT_LEFT+(BUTTON_WIDTH+CONTROLS_GAP_X);
   int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
   int x2=x1+BUTTON_WIDTH;
   int y2=y1+BUTTON_HEIGHT;
//--- create
   if (!m_button2.Create(m_chart_id,m_name+ "Button2" ,m_subwin,x1,y1,x2,y2))
       return ( false );
   if (!m_button2.Text( "Button2" ))
       return ( false );
   if (!Add(m_button2))
       return ( false );
//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Create the "Button3" fixed button                                |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButton3( void )
  {
//--- coordinates
   int x1=INDENT_LEFT+ 2 *(BUTTON_WIDTH+CONTROLS_GAP_X);
   int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
   int x2=x1+BUTTON_WIDTH;
   int y2=y1+BUTTON_HEIGHT;
//--- create
   if (!m_button3.Create(m_chart_id,m_name+ "Button3" ,m_subwin,x1,y1,x2,y2))
       return ( false );
   if (!m_button3.Text( "Locked" ))
       return ( false );
   if (!Add(m_button3))
       return ( false );
   m_button3.Locking( true );
//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Event handler                                                    |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickButton1( void )
  {
   Comment ( __FUNCTION__ );
  }
//+------------------------------------------------------------------+
//| Event handler                                                    |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickButton2( void )
  {
   Comment ( __FUNCTION__ );
  }
//+------------------------------------------------------------------+
//| Event handler                                                    |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickButton3( void )
  {
   if (m_button3.Pressed())
       Comment ( __FUNCTION__ + " Состояние элемента управления: On" );
   else
       Comment ( __FUNCTION__ + " Состояние элемента управления: Off" );
  }
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create application dialog
   if (!ExtDialog.Create( 0 , "Controls" , 0 , 40 , 40 , 380 , 344 ))
       return ( INIT_FAILED );
//--- run application
   ExtDialog.Run();
//--- succeed
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- очистим комментарии
   Comment ( "" );
//--- destroy dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,         // event ID  
                   const long & lparam,   // event parameter of the long type
                   const double & dparam, // event parameter of the double type
                   const string & sparam) // event parameter of the string type
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+

Dikkat: "Button1" ve "Button2" butonları sabit değil, "Button3" butonları sabittir.

Dosyalar:
 

Etkilenmiş:

George :

Lütfen bana bu anı söyle:

1. Danışman + gösterge çalışıyor

2. Sunucuyla bağlantı koptu ve göstergenin tüm işlemesi kaybolur, sağladığı veriler kalır.

Bunun hakkında nerede okuyabileceğinizi ve / veya bağlantı kesildiğinde ne olduğunu, oluşturmanın neden kaybolduğunu, ancak verilerin kaldığını söyleyebilir misiniz? Çizimi tekrar çizmek mümkün mü?

Şimdiden teşekkürler!

 
Karputov Vladimir :

Etkilenmiş:

George :

Lütfen bana bu anı söyle:

1. Danışman + gösterge çalışıyor

2. Sunucuyla bağlantı koptu ve göstergenin tüm işlemesi kaybolur, sağladığı veriler kalır.

Bunun hakkında nerede okuyabileceğinizi ve / veya bağlantı kesildiğinde ne olduğunu, oluşturmanın neden kaybolduğunu, ancak verilerin kaldığını söyleyebilir misiniz? Çizimi tekrar çizmek mümkün mü?

Şimdiden teşekkürler!

Göstergeyle başlayın - yani, "rates_total" parametresi "0" olduğunda OnCalculate () işlevinde ne olur:

İlk parametre Rates_total, gösterge tarafından hesaplanabilecek çubukların sayısını içerir ve grafikte mevcut olan çubukların sayısına karşılık gelir.

OnCalculate() işlevi tarafından döndürülen değer ile ikinci giriş parametresi prev_calculated arasındaki ilişkiye dikkat edin. İşlev çağrılırken prev_calculated parametresi , önceki çağrıda OnCalculate() işlevi tarafından döndürülen değeri içerir . Bu, bu işlevin önceki başlatılmasından bu yana değişmeyen çubuklar için yeniden hesaplamalardan kaçınmak için özel bir göstergeyi hesaplamak için ekonomik algoritmalar uygulamanıza olanak tanır.

Bunu yapmak için, geçerli işlev çağrısındaki çubuk sayısını içeren Rate_total parametresinin değerini döndürmek genellikle yeterlidir. OnCalculate() işlevine yapılan son çağrıdan bu yana fiyat verileri değiştiyse (daha derin geçmiş yüklendi veya geçmiş boşlukları dolduruldu), prev_calculated girdi parametresinin değeri terminalin kendisi tarafından sıfıra ayarlanacaktır.  

 
Karputov Vladimir :

Düğmeler hakkında ise, işte yardımdan bir örnek:

Dikkat: "Button1" ve "Button2" butonları sabit değil, "Button3" butonları sabittir.

Pek iyi bir örnek değil:

1 çünkü kütüphaneler

2 panel tarafından yapıldığı için

3 çünkü anlamıyorsun.

Bu yüzden, biri sabit, diğerinin sabitlenmesi gereken iki düğme çizdim - büyüsünün kaldırılması gereken "Ekle"

 //+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
bool stop_trading; 
 
int OnInit ()
{ //--- Создание Фиксированной кнопки "Старт-Стоп"
   if ( ! ObjectCreate ( 0 , "stop_button" , OBJ_BUTTON , 0 , 0 , 0 ) )
  { MessageBox ( "Кнопка 'Старт-стоп' не создана!" , "Ошибка" , MB_OK | MB_ICONHAND ); return ( INIT_FAILED );}
   else
  { ObjectSetInteger ( 0 , "stop_button" , OBJPROP_CORNER , CORNER_RIGHT_LOWER );
   ObjectSetInteger ( 0 , "stop_button" , OBJPROP_XDISTANCE , 60 );
   ObjectSetInteger ( 0 , "stop_button" , OBJPROP_YDISTANCE , 20 );
   ObjectSetInteger ( 0 , "stop_button" , OBJPROP_XSIZE , 60 );
   ObjectSetInteger ( 0 , "stop_button" , OBJPROP_YSIZE , 20 );
   if ( stop_trading )
    { ObjectSetInteger ( 0 , "stop_button" , OBJPROP_BGCOLOR , clrMagenta );
     ObjectSetInteger ( 0 , "stop_button" , OBJPROP_STATE , true );
     ObjectSetString ( 0 , "stop_button" , OBJPROP_TEXT , "Старт" );}
     else
    { ObjectSetInteger ( 0 , "stop_button" , OBJPROP_BGCOLOR , clrMediumSeaGreen );
     ObjectSetInteger ( 0 , "stop_button" , OBJPROP_STATE , false );
     ObjectSetString ( 0 , "stop_button" , OBJPROP_TEXT , "Стоп" );}  } 

 //--- Создание Нефиксированной кнопки "Добавить 
   if ( ! ObjectCreate ( 0 , "Add" , OBJ_BUTTON , 0 , 0 , 0 ) ) 
  {   Print ( "Кнопка 'Добавить' не создана!" ); return ( INIT_FAILED ); } 
  { 
     ObjectSetInteger ( 0 , "Add" , OBJPROP_CORNER , CORNER_RIGHT_LOWER );
     ObjectSetInteger ( 0 , "Add" , OBJPROP_XDISTANCE , 140 );         //--- установим координаты кнопки            
     ObjectSetInteger ( 0 , "Add" , OBJPROP_YDISTANCE , 20 );
     ObjectSetInteger ( 0 , "Add" , OBJPROP_XSIZE , 80 );                 //--- установим размер кнопки
     ObjectSetInteger ( 0 , "Add" , OBJPROP_YSIZE , 20 ); 
   //---
     ObjectSetInteger ( 0 , "Add" , OBJPROP_BGCOLOR , clrWhite );       //--- установим цвет фона
     ObjectSetInteger ( 0 , "Add" , OBJPROP_STATE , false );             //--- переведем кнопку в состояние false
     ObjectSetString ( 0 , "Add" , OBJPROP_TEXT , "Добавить" );         //--- установим текст  
    
     
  }  
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason )
{
//--- Удаление кнопки старт-стоп
   ObjectDelete ( 0 , "stop_button"   ); 
//--- Удаление кнопки Добавить
   ObjectDelete ( 0 , "Add" );  
}
//+------------------------------------------------------------------+
//| Expert Chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long & lparam, const double & dparam, const string & sparam )
{
   long b_state; 
   long f_state;
//---  
   if ( id == CHARTEVENT_OBJECT_CLICK )
  {
     if ( sparam == "stop_button" )
    {
       if ( ObjectGetInteger ( 0 , "stop_button" , OBJPROP_STATE , 0 , b_state ) )
      {
         if ( b_state == 1 ) 
        {
          stop_trading = true ;
           ObjectSetInteger ( 0 , "stop_button" , OBJPROP_BGCOLOR , clrMagenta );
           ObjectSetString ( 0 , "stop_button" , OBJPROP_TEXT , "Старт" );
        }
         else
        {
          stop_trading = false ;
           ObjectSetInteger ( 0 , "stop_button" , OBJPROP_BGCOLOR , clrMediumSeaGreen );
           ObjectSetString ( 0 , "stop_button" , OBJPROP_TEXT , "Стоп" );
        }
      }
      
    }
     
  }
  
   ChartRedraw ( ChartID ());

   //--Создание Нефиксированной кнопки "Добавить
    
 if (id== CHARTEVENT_OBJECT_CLICK ) // НАЖАТ ГРАФИЧЕСКИЙ ОБЪЕКТ       
         if ( sparam == "Add" ) // Нажата кнопка
         {
       if ( ObjectGetInteger ( 0 , "Add" , OBJPROP_STATE , 0 , f_state ) ) 
      {
         if (f_state == 1 ) 
        
        {
         // то, что то =true; здесь можно выбирать цвет /текст и т.д до нажатия
         //---
           ObjectSetInteger ( 0 , "Add" , OBJPROP_BGCOLOR , clrWhite ); //цвет кнопки
           ObjectSetString ( 0 , "Add" , OBJPROP_TEXT , "Добавить" );   // текст кнопки          
        }
         else
        {
           // то ,что то равно false;
           //---здесь можно изменять цвет /текст  и т.д после нажатия 
         // ObjectSetInteger( 0, "Add", OBJPROP_BGCOLOR,clrMediumSeaGreen );//цвет кнопки
         //  ObjectSetString( 0, "Add", OBJPROP_TEXT, "Добавить" ); // текст кнопки  
        
        }
 ChartRedraw ( ChartID ());

   }
  
}
 return ;  
  
} 
 
yöneticiye nasıl katılınır?
 
coon :
yöneticiye nasıl katılınır?
İşte talimat: Sinyallere nasıl abone olunur
 

mmmm, bir yönetici var, çalışmalarının etkinliğini görüyorum, "yatırım yapmak" istiyorum.

ps - üzgünüm, ben bir çaydanlığım.

 
coon :

mmmm, bir yönetici var, çalışmalarının etkinliğini görüyorum, "yatırım yapmak" istiyorum.

ps - üzgünüm, ben bir çaydanlığım.

 

Teşekkürler, çalışacağım.

Doğru, ilk yaklaşımdan ....... görünüşe göre anlamak için öznede olmalı.

Ben de öyle istedim...

Seçenekler var mı? Katılmak için başvuruda bulundunuz, rıhtımı doldurdunuz, $ yatırdınız, hepsi bu mu?

 
coon :

Teşekkürler, çalışacağım.

Doğru, ilk yaklaşımdan ....... görünüşte anlamak için konunun içinde olmalıdır.

Ben de öyle istedim...

Seçenekler var mı? Katılmak için başvuruda bulundunuz, rıhtımı doldurdunuz, $ yatırdınız, hepsi bu mu?

Eğitim videosunu izleyin : YouTube'da öğretici videoyu izleyin

Ücretli bir abonelik almak için bir MQL5.hesabına para yatırmanız gerekir. Sinyaller hakkında daha fazla bilgi için: Sinyaller hizmeti hakkında SSS

Витрина торговых сигналов в MetaTrader 4/5
Витрина торговых сигналов в MetaTrader 4/5
  • 2015.03.09
  • www.youtube.com
Как выбрать торговый сигнал в платформе MetaTrader и подписаться на него за пару кликов? Очень просто, смотри наше видео и ты узнаешь все о торговых сигналах.
Neden: