Hatalar, hatalar, sorular - sayfa 2968

 
Mihail Matkovskij :

Yanlış silme işleminiz var! Senin kodun:

Her öğe kaldırıldığında liste küçülür! Bu nedenle, bunu yapmanız gerekir:

Veya daha da kolay:

Cevap için teşekkürler. Sorunun eleman eklemekte olduğu ortaya çıktı.

 
Mihail Matkovskij :

Gelecekte çok çekirdekli bir işlemci ile donanımı bir araya getirmek için MQL5 Cloud Network hizmetinde 2 aracının ne kadar kazanacağını bulmaya karar verdim. Ajan Yöneticisi kullanılarak ajanlar eklendi. İyi eklenmiş gibi görünüyor.

Hiçbir şey şüphe uyandırmaz... MQL5.COM hesabımda oturum açtım. Ofisteki "Acenteler" bölümünde oluşturulan temsilciler görüntülenir. Servislerde, görev yöneticisinde ayrıca MetaTester-1 ve MetaTester-2 olmak üzere 2 servis buldum. Ancak yarım gündür ajanlar herhangi bir işlem yapmıyor. Her şey sıfır. Temsilciler neden çalışmıyor?

Ve şimdi genel olarak bakıyorum, ajanlar ofisimde emekli oldular:


MetaTester-1 hizmetleri ve   MetaTester-2 , Task Manager ve Agent Manager'da gösterilir. Doğru, Ajan Yöneticisi, hizmetlerin devre dışı bırakıldığını gösterir. Ve dün orada olmalarına rağmen hesapta yoklar... MQL5 Cloud Network'ün bu davranışının sebebi nedir?

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
Mihail Matkovskij :

Ve şimdi genel olarak bakıyorum, ajanlar ofisimde emekli oldular:


MetaTester-1 hizmetleri ve   MetaTester-2 , Task Manager ve Agent Manager'da gösterilir. Doğru, Ajan Yöneticisi, hizmetlerin devre dışı bırakıldığını gösterir. Ve dün orada olmalarına rağmen ofiste değiller... MQL5 Cloud Network'ün bu davranışının sebebi nedir?

Hiç kimse bir yere gitmedi - onay kutusunu temizleyin ...

 
Vladimir Karputov :

Hiç kimse bir yere gitmedi - onay kutusunu temizleyin ...

Ah... aynen! Temsilcilerimde 0 aktivite var...

 

İçeriğin boyutu ile sorunu çözmeye yardımcı olun, hiçbir şekilde değiştiremiyorum. Grafik penceresini değiştirirken, yükseklik boyutunun da değişmesi gerekir.

Ve OnCalculate() yeniden başlatıldığında kaydırma kaybolur


 //+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#include <Controls\Dialog.mqh>
#include <Controls\ListView.mqh>

//+------------------------------------------------------------------+
//| Class CPanelDialog                                               |
//| Usage: main dialog of the SimplePanel application                |
//+------------------------------------------------------------------+
class CPanelDialog : public CAppDialog
  {
public :
   CListView         m_list_view1; // the list object
   CListView         m_list_view2; // the list object

public :
                     CPanelDialog( void );
                    ~CPanelDialog( void );

   virtual bool       Create( const long chart, const string name, const int subwin, const int x1, const int y1, const int x2, const int y2);
   virtual bool       OnEvent( const int id, const long &lparam, const double &dparam, const string &sparam);
   virtual void       OnChangeListView( void );
protected :
   bool               CreateListView( void );
   virtual bool       OnResize( void );
   bool               OnDefault( const int id, const long &lparam, const double &dparam, const string &sparam);
  };

//+------------------------------------------------------------------+
//| Event Handling                                                   |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CPanelDialog)
ON_EVENT(ON_CHANGE,m_list_view1,OnChangeListView)
ON_OTHER_EVENTS(OnDefault)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CPanelDialog::CPanelDialog( void )
  {
  }
//+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
CPanelDialog::~CPanelDialog( void )
  {
  }
//+------------------------------------------------------------------+
//| Create                                                           |
//+------------------------------------------------------------------+
bool CPanelDialog::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 (! CreateListView() )
       return ( false );
//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Create the "ListView" element                                    |
//+------------------------------------------------------------------+
bool CPanelDialog:: CreateListView ( void )
  {
//--- coordinates
   int x1= 0 ;
   int y1= 0 ;
   int x2=ClientAreaWidth();
   int y2=ClientAreaHeight();
//--- create
   m_list_view1.Create( 0 ,m_name+ "ListView" , 0 ,x1,y1,x2,y2);
   m_list_view1.ColorBackground( clrMistyRose );
   Add(m_list_view1);
   m_list_view1.Alignment(WND_ALIGN_HEIGHT, 0 , 0 , 0 , 0 );
//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Handler of resizing                                              |
//+------------------------------------------------------------------+
bool CPanelDialog::OnResize( void )
  {
//--- call method of parent class
   if (!CAppDialog::OnResize())
       return ( false );

//--- succeed
   return ( true );
  }
//+------------------------------------------------------------------+
//| Event handler                                                    |
//+------------------------------------------------------------------+
void CPanelDialog::OnChangeListView( void )
  {

//+------------------------------------------------------------------+
  }
//+------------------------------------------------------------------+
//| Rest events handler                                                    |
//+------------------------------------------------------------------+
bool CPanelDialog::OnDefault( const int id, const long &lparam, const double &dparam, const string &sparam)
  {

//--- let's handle event by parent
   return ( false );
  }

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property version "1.00"
#property strict

#property indicator_chart_window

string symbols[];
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create application dialog
   if (!ExtDialog.Create( 0 , "Spread" , 0 , 12 , 12 , 250 , 300 ))
       return ( INIT_FAILED );
//--- run application
   if (!ExtDialog.Run())
       return ( INIT_FAILED );
//--- ok
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
//---
   ExtDialog.m_list_view1.ItemsClear() ; // Очистим список

   int k=MarketWatch();
   for ( int i= 0 ; i<k; i++)
     {
       string str = ( string )(i+ 1 )+ " из " +( string )k+ ": " +symbols[i]+ " = " +( string ) SymbolInfoInteger (symbols[i], SYMBOL_SPREAD );
       ExtDialog.m_list_view1.ItemAdd(str); // Заполним строками
     }

//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
   ExtDialog.OnEvent(id,lparam,dparam,sparam);

   if (id== CHARTEVENT_CHART_CHANGE || (id== CHARTEVENT_OBJECT_CLICK && StringFind (sparam, "MinMax" )> 0 ))
     {
       if (ExtDialog.Height()> 40 ) // Если окно не свёрнуто
        {
         ExtDialog.Height(( int ) ChartGetInteger ( 0 , CHART_HEIGHT_IN_PIXELS )- 50 ); // Изменим высоту диалог-окна
         ExtDialog.m_list_view1.Height(ExtDialog.Height()- 40 ); // Изменим высоту содержимого в диалог-окне
        }
     }
//---
  }
  
//+--- Список символов с MarketWatch --------------------------------+
int MarketWatch()
  {
   int s= SymbolsTotal ( true );
   ArrayResize (symbols,s);
   for ( int i = 0 ; i < s; i++)
      symbols[i] = SymbolName (i, true );
   return (s);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko :

İçeriğin boyutu ile sorunu çözmeye yardımcı olun, hiçbir şekilde değiştiremiyorum. Grafik penceresini değiştirirken, yükseklik boyutunun da değişmesi gerekir.

Ve OnCalculate() yeniden başlatıldığında kaydırma kaybolur


Bu makaledeki ControlsPlus penceresinin yamalı sürümünü ve kontrol kitaplığını deneyin. Orada kauçukluk otomatik olarak sağlandı.

Язык MQL как средство разметки графического интерфейса MQL-программ (Часть 3). Дизайнер форм
Язык MQL как средство разметки графического интерфейса MQL-программ (Часть 3). Дизайнер форм
  • www.mql5.com
В этой статье мы завершаем описание концепции построения оконного интерфейса MQL-программ с помощью конструкций языка MQL. Специальный графический редактор позволит интерактивно настраивать раскладку, состоящую из основных классов элементов GUI, и затем экспортировать её в MQL-описание для использования в вашем MQL-проекте. Представлено внутреннее устройство редактора и руководство пользователя. Исходные коды прилагаются.
 
Bir MQL programının, terminalin kendisinin bir sonucu olarak (yani, oturumun başında otomatik olarak) ve kullanıcı tarafından etkileşimli olarak başlatılmadığını öğrenmenin bir yolu var mı?
 
Stanislav Korotky :
Bir MQL programının, terminalin kendisinin bir sonucu olarak (yani, oturumun başında otomatik olarak) ve kullanıcı tarafından etkileşimli olarak başlatılmadığını öğrenmenin bir yolu var mı?

Hizmetler, döngü yok.
Terminal başladığında, döngülü değilse hizmet bir kez yürütülür.
Hizmete ne tür bir mantık koyacağınız, gerekli gereksinimler için zaten belirli bir görevdir.

 
Stanislav Korotky :
Bir MQL programının, terminalin kendisinin bir sonucu olarak (yani, oturumun başında otomatik olarak) ve kullanıcı tarafından etkileşimli olarak başlatılmadığını öğrenmenin bir yolu var mı?

Arandı, bulunamadı.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

fxsaber , 2021.02.02 19:34

Standart bir şekilde mi yoksa bir şablon üzerinden mi başlatıldığını lansman aşamasında Expert Advisor'da belirlemek gerekir.

Bu sorunu çözmek için herhangi bir düşünceniz var mı? Yol boyunca, çizelgenin oluşturulduğu zaman olan ömrünü belirlemenin bir alt görevi vardı.

 
fxsaber :

Arandı, bulunamadı.

Amaçlarım için bu çözümü buldum:

 ChartPriceOnDropped ()= 0.0
ChartTimeOnDropped ()= 1970.01 . 01 00 : 00 : 00
ChartXOnDropped ()= 0
ChartYOnDropped ()= 0

Terminalin başlangıcındaki bu fonksiyonlar sıfır verir.

not. Ne yazık ki, bu yöntem yalnızca fare ile çizim yapmak için uygundur. Kullanıcı "Tabloya ekle" komutunu çalıştırırsa, sorun devam eder.