오류, 버그, 질문 - 페이지 2968

 
Mihail Matkovskij :

삭제가 잘못되었습니다! 귀하의 코드:

각 요소가 제거됨에 따라 목록이 작아집니다! 따라서 다음을 수행해야 합니다.

또는 더 쉽게:

답변 해주셔서 감사합니다. 문제는 요소를 추가하는 데 있음이 밝혀졌습니다.

 
Mihail Matkovskij :

앞으로 멀티코어 프로세서로 하드웨어를 조립하기 위해 2명의 에이전트가 MQL5 클라우드 네트워크 서비스에서 얼마나 벌게 될지 알아보기로 했다. 에이전트 관리자를 사용하여 에이전트를 추가했습니다. 잘 추가된 것 같습니다.

의심할 여지가 없습니다... MQL5.COM 계정에 로그인했습니다. 사무실의 "에이전트" 섹션에 생성된 에이전트가 표시됩니다. 서비스에서 작업 관리자에서 MetaTester-1 및 MetaTester-2의 2개 서비스도 찾았습니다. 그러나 반나절 동안 에이전트는 작업을 수행하지 않았습니다. 모든 것이 0입니다. 에이전트가 작동하지 않는 이유는 무엇입니까?

그리고 지금 나는 일반적으로 에이전트가 내 사무실에서 은퇴 한 것을 봅니다.


MetaTester-1 서비스 및   MetaTester-2 작업 관리자 및 에이전트 관리자에 표시됩니다. 사실, 에이전트 관리자는 서비스가 비활성화된 것으로 표시합니다. 그리고 그들은 어제 거기에 있었는데도 계정에 있지 않습니다 ... MQL5 Cloud Network 의 동작에 대한 이유는 무엇입니까?

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

그리고 지금 나는 일반적으로 에이전트가 내 사무실에서 은퇴 한 것을 봅니다.


MetaTester-1 서비스 및   MetaTester-2 작업 관리자 및 에이전트 관리자에 표시됩니다. 사실, 에이전트 관리자는 서비스가 비활성화된 것으로 표시합니다. 그리고 그들은 어제 사무실에 있었지만 사무실에 있지 않습니다. MQL5 Cloud Network 의 동작에 대한 이유는 무엇입니까?

아무도 가지 않았습니다 - 확인란 선택을 취소하십시오 ...

 
Vladimir Karputov :

아무도 가지 않았습니다 - 확인란 선택을 취소하십시오 ...

아... 바로! 내 에이전트에는 0개의 활동이 있습니다...

 

콘텐츠의 크기 문제를 해결하는 데 도움이 됩니다. 어떤 식으로든 변경할 수 없습니다. 차트 창을 변경할 때 높이 크기가 변경되어야 합니다.

OnCalculate() 가 다시 시작되면 스크롤이 손실됩니다.


 //+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#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 :

콘텐츠의 크기 문제를 해결하는 데 도움이, 나는 어떤 식으로든 변경할 수 없습니다. 차트 창을 변경할 때 높이 크기가 변경되어야 합니다.

OnCalculate() 가 다시 시작되면 스크롤이 손실됩니다.


이 기사 에서 ControlsPlus 창과 제어 라이브러리의 패치 버전을 사용해 보십시오. 거기에 고무성이 자동으로 유지되었습니다.

Язык MQL как средство разметки графического интерфейса MQL-программ (Часть 3). Дизайнер форм
Язык MQL как средство разметки графического интерфейса MQL-программ (Часть 3). Дизайнер форм
  • www.mql5.com
В этой статье мы завершаем описание концепции построения оконного интерфейса MQL-программ с помощью конструкций языка MQL. Специальный графический редактор позволит интерактивно настраивать раскладку, состоящую из основных классов элементов GUI, и затем экспортировать её в MQL-описание для использования в вашем MQL-проекте. Представлено внутреннее устройство редактора и руководство пользователя. Исходные коды прилагаются.
 
MQL 프로그램이 터미널 자체의 결과로(즉, 세션 시작 시 자동으로) 실행되었고 사용자에 의해 대화식으로 실행되지 않았는지 알 수 있는 방법이 있습니까?
 
Stanislav Korotky :
MQL 프로그램이 터미널 자체의 결과로(즉, 세션 시작 시 자동으로) 실행되었고 사용자에 의해 대화식으로 실행되지 않았는지 알 수 있는 방법이 있습니까?

서비스, 루프 없음.
터미널이 시작될 때 서비스가 루프되지 않으면 서비스가 한 번 실행됩니다.
어떤 종류의 로직을 서비스에 넣을 것인지는 이미 필요한 요구 사항에 대한 특정 작업입니다.

 
Stanislav Korotky :
MQL 프로그램이 터미널 자체의 결과로(즉, 세션 시작 시 자동으로) 실행되었고 사용자에 의해 대화식으로 실행되지 않았는지 알 수 있는 방법이 있습니까?

검색, 찾지 못했습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2021.02.02 19:34

런칭 단계에서 Expert Advisor에서 표준 방식으로 론칭할지 템플릿을 통해 론칭할지 결정해야 합니다.

이 문제를 해결할 생각이 있습니까? 그 과정에서 차트 의 수명 을 결정하는 하위 작업이 있었습니다.

 
fxsaber :

검색, 찾지 못했습니다.

내 목적을 위해 다음 솔루션을 찾았습니다.

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

터미널 시작 부분의 이러한 함수는 0을 제공합니다.

추신. 불행히도 이 방법은 마우스로 스케치하는 경우에만 적합합니다. 사용자가 "차트에 첨부" 명령을 실행하면 문제가 남아 있습니다.