MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1508

 
Maxim Kuznetsov :

도움말에서 쓰레기를 끌 필요가 없습니다. 명백한 주기를 작성하십시오 ... 그러면 함께 살아야 합니다 :-)

   for(long chartId=ChartNext(0);chartId>0 &&!IsStopped();chartId=ChartNext(chartId)) {

      if (ChartSymbol(chartId)=="") continue;

      DoChart(chartId);

   }

이것도 소화해야지...
 
Maxim Kuznetsov :

   for(long chartId=ChartNext(0);chartId>0 &&!IsStopped();chartId=ChartNext(chartId)) {

      if (ChartSymbol(chartId)=="") continue;

      DoChart(chartId);

   }

Maxim, 이것을 내 작업에 적용하는 방법을 알 수 없습니다(

 
MakarFX :

열린 차트 에서 개체를 검색하는 기능을 찾거나 작성하는 데 도움을 주세요.

5개의 열린 차트, 고문이 첫 번째 차트에 있습니다. MT4

다음과 같은 코드가 작동해야 합니다.

 #property strict
#include <Arrays\ArrayLong.mqh>
CArrayLong ChartsID;
//+------------------------------------------------------------------+
int OnInit ()
{
   FindChartsBySymbol( _Symbol , ChartsID);
   for ( int i = ChartsID.Total() - 1 ; i >= 0 ; i--)
   {
       long chart_id = ChartsID.At(i);
       Print ( "ChertID = " , chart_id, " , symbol = " , ChartSymbol (chart_id));
   }
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
void FindChartsBySymbol( string symbol, CArrayLong &charts)
{
   for ( long currChart = ChartFirst (); currChart >= 0 ; currChart = ChartNext (currChart))
   {
       if ( ChartSymbol (currChart) == symbol) charts.Add(currChart);
   }
}
//+------------------------------------------------------------------+

암호 화폐를 확인하고 주말에 작동합니다.

유일한 것은 새 차트의 열기(및 닫기?)를 제어한 다음 목록을 업데이트하는 것입니다.
 
Igor Makanu :

다음과 같은 코드가 작동해야 합니다.

암호 화폐를 확인하고 주말에 작동합니다.

감사해요)))

 
MakarFX :

모든 차트에서 최소한의 코드로 지표를 실행해도 됩니까? 이것을 기본 템플릿으로 만들 수 있습니다.

 
Aleksei Stepanenko :

각 차트에서 최소한의 코드로 지표 또는 EA를 실행해도 됩니까? 이것을 기본 템플릿으로 만들 수 있습니다.

첫 번째 차트의 EA는 DLL 을 실행합니다.

그래서 하나만

C# DLL MQ4 построение формы общения
C# DLL MQ4 построение формы общения
  • 2021.04.02
  • www.mql5.com
Еще неделю назад я не знал что такое C#...теперь я знаю что это читается "си шарп"))) Прочитав статьи https://www.mql5...
 

이러한 표시기가 필요한 각 차트에 첨부된 경우 통제된 영역(차트)의 개체가 변경되면 이벤트가 전문가와 함께 차트로 전송됩니다.

 //идентификатор графика с советником
long ID= 1 ;

int OnInit () 
   {
   //установка флага получения событий создания объектов графика 
   ChartSetInteger ( ChartID (), CHART_EVENT_OBJECT_CREATE , true ); 
   //установка флага получения событий удаления объектов графика 
   ChartSetInteger ( ChartID (), CHART_EVENT_OBJECT_DELETE , true ); 
   return ( INIT_SUCCEEDED ); 
   } 

void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) 
   {
   //если объект удалён или создан, или изменён
   if (id== CHARTEVENT_OBJECT_DELETE || id== CHARTEVENT_OBJECT_CREATE || id== CHARTEVENT_OBJECT_CHANGE )
      {
      EventChartCustom (ID, 1 ,lparam,dparam,sparam); 
      }
   }

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[])
   {
   return (rates_total);
   }
예는 아이디어입니다.
 
Aleksei Stepanenko :

이러한 표시기가 필요한 각 차트에 첨부된 경우 통제된 영역(차트)의 개체가 변경되면 이벤트가 전문가와 함께 차트로 전송됩니다.

아이디어로서의 예

감사합니다. 하지만 크립트에서 내 코드를 확인했는데 모든 것이 내가 원하는 대로 작동합니다.

도움을 주셔서 감사합니다!

 
MakarFX :

다음은 Chart_ID()에 대한 내 문제입니다.

그랬어

하지만 테스터에서 확인할 수 없습니다(

... 월요일까지 너무 오래 기다려야 (

초기화시 모든 것이 작동하는 것 같습니다.

하지만 현실에서는 어떻게 될까요?

내가 여기에서 떨어져있는 동안 ......

얼핏 보면 정상인 것 같습니다. 스크립트는 언제든지 확인할 수 있습니다. 하지만 설명서의 예제가 마음에 들지 않습니다. 다음은 내가 쓰는 방법을 제안하는 방법입니다.

 #property strict

/********************Script program start function*******************/
void OnStart ()
 {
   long chart = ChartFirst ();
   while (chart >= 0 && ! IsStopped ())
   {
     if ( ObjectFind (chart, "00" ) >= 0 )
     Print ( "Symbol " , ChartSymbol (chart), " Period " , EnumToString ( ChartPeriod (chart)));
    chart = ChartNext (chart);
   }
 } /******************************************************************/

/*****************************End program****************************/
 
Aleksei Stepanenko :

이러한 표시기가 필요한 각 차트에 첨부된 경우 통제된 영역(차트)의 개체가 변경되면 이벤트가 전문가와 함께 차트로 전송됩니다.

예가 아이디어입니다.

그러한 작업을 위해

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

MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

MakarFX , 2021.06.19 21:21

Alexey, 솔직히 말하면, 내 지식으로는 무섭게 들립니다 ...

더 쉽게 필요 해요, 살 물건을 찾았어요, 샀어요, 팔려고 물건을 찾았어요, 팔았어요 .


표시기가 작동하지 않습니다.