ChartSetSymbolPeriod

Modifica o valor do símbolo e o período do gráfico especificado. A função é assíncrona, ou seja, envia o comando e não espera a conclusão da execução. Este comando é adicionado a uma fila de mensagens de gráfico e será executado após o processamento de todos os comandos anteriores.

bool  ChartSetSymbolPeriod(
   long             chart_id,     // ID Gráfico
   string           symbol,       // Nome símbolo
   ENUM_TIMEFRAMES  period        // Período
   );

Parâmetros

chart_id

[in]  ID Gráfico. Representa o gráfico atual.

symbol

[in]  Simbolo do gráfico. Valor NULL significa o símbolo gráfico atual (Expert Advisor é anexado)

period

[in]  Período do Gráfico (Prazo). Pode ser um dos valores de ENUM_TIMEFRAMES. 0 (zero) significa o período do atual gráfico.

Valor retornado

Retorna verdadeiro se o comando foi adicionado à fila do gráfico, caso contrário será falso. Para obter uma informação sobre o erro, chamar a função GetLastError().

Observação

O símbolo/período de mudança desencadeia a reinicialização do Expert Advisor, anexado ao gráfico.

A chamada da função ChartSetSymbolPeriod, com o mesmo símbolo e timeframe, pode ser utilizada para atualizar o gráfico (semelhante ao comando Refresh no terminal). A atualização do gráfico, por sua vez , inicia o recálculo dos indicadores vinculados a ele. Assim, você pode calcular o indicador no gráfico, mesmo na ausência de ticks (por exemplo, nos fins-de-semana e feriados).

Exemplo:

#define   SYMBOL    "GBPUSD"
#define   PERIOD    PERIOD_H1
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- obtemos o identificador do gráfico atual, seu símbolo e período
   long            chart_idChartID();
   string          symbol  = Symbol();
   ENUM_TIMEFRAMES period  = Period();
 
//--- no log informamos sobre a alteração do símbolo e do período do gráfico atual para os especificados em SYMBOL e PERIOD
   PrintFormat("Change the %s symbol and the %s period of the chart %I64u to %s %s",
               symbolTimeframeDescrioption(period), chart_idSYMBOLTimeframeDescrioption(PERIOD));
               
//--- alteramos o símbolo e o período do gráfico
   ChartSetSymbolPeriod(chart_idSYMBOLPERIOD);
   /*
   Resultado:
   Change the EURUSD symbol and the M1 period of the chart 133246248352168440 to GBPUSD H1
   */
  }
//+------------------------------------------------------------------+
//| Retorna a descrição do período do gráfico                     |
//+------------------------------------------------------------------+
string TimeframeDescrioption(const ENUM_TIMEFRAMES timeframe)
  {
   return(StringSubstr(EnumToString(timeframe), 7));
  }

Veja Também

ChartSymbol, ChartPeriod