Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1508

 
Maxim Kuznetsov:

Você não tem que puxar a merda da referência, escreva o ciclo óbvio...você terá que viver com isso depois :-)

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

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

      DoChart(chartId);

   }

Eu também preciso digerir isto...
 
Maxim Kuznetsov:

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

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

      DoChart(chartId);

   }

Maxim, não consigo descobrir como aplicar isto ao meu problema(

 
MakarFX:

Por favor, ajude a encontrar ou escreva uma função para pesquisar objetos em gráficos abertos.

Cinco gráficos abertos, a EA está no primeiro. MT4

este código deve funcionar:

#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);
   }
}
//+------------------------------------------------------------------+

verificação das moedas criptográficas, eles trabalham nos fins de semana

A única coisa é monitorar a abertura (e o fechamento ? ) de novos gráficos e depois atualizar a lista
 
Igor Makanu:

este código deve funcionar:

verificação das moedas criptográficas, eles trabalham nos fins de semana

Obrigado))))

 
MakarFX:

É aceitável executar o indicador com código mínimo em cada gráfico? É possível fazer isso com um modelo padrão.

 
Aleksei Stepanenko:

É aceitável executar um indicador ou EA com código mínimo em cada gráfico? É possível fazer isso com um modelo padrão.

A EA no primeiro gráfico executa a DLL

então existe apenas um

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

Se tal indicador for colocado em cada gráfico desejado, então qualquer mudança de objetos na área controlada (gráfico) enviará um evento para o gráfico com o especialista.

//идентификатор графика с советником
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);
   }
Exemplo como uma idéia.
 
Aleksei Stepanenko:

Se você colocar tal indicador em cada gráfico necessário, então qualquer mudança de objetos na área controlada (gráfico) enviará um evento para o gráfico com o Consultor Especialista.

Exemplo como uma idéia

Obrigado, mas eu verifiquei meu código no criptograma, tudo funciona como eu queria.

Obrigado a todos por sua ajuda!

 
MakarFX:

Aqui está o meu problema com Chart_ID()

Fez assim

Mas você não pode verificá-lo no testador(.

...eu tenho que esperar tanto tempo por segunda-feira(

Durante a inicialização, tudo parece funcionar

Mas como vai funcionar na vida real?

Enquanto estive fora .........

À primeira vista, parece estar bem. Você pode conferir o roteiro em qualquer dia. Mas aqui na documentação eu não gosto do exemplo. Eis como aconselho a escrever

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

Se tal indicador for colocado em cada gráfico desejado, então qualquer mudança de objetos na área monitorada (gráfico) enviará um evento para o gráfico com o especialista.

Exemplo como uma idéia.

Para esta tarefa

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Qualquer pergunta de novatos sobre MQL4 e MQL5, ajuda e discussão de algoritmos e códigos

MakarFX, 2021.06.19 21:21

Para ser honesto Alexey, com meu conhecimento parece assustador...

Se você ainda não entrou no mercado, não pode voltar ao mercado e comprar de um cursor.


o indicador não é adequado.