iOpen

Retorna o valor do preço de abertura da barra (indicado pelo parâmetro shift) do gráfico correspondente.

double  iOpen(
   const string        symbol,          // símbolo
   ENUM_TIMEFRAMES     timeframe,       // período
   int                 shift            // deslocamento
   );

Parâmetros

symbol

[in]  Nome simbólico do instrumento. NULL significa o símbolo atual.

timeframe

[in]  Período. Pode ser um dos valores da enumeração ENUM_TIMEFRAMES. 0 significa o período do gráfico atual.

shift

[in]  Índice do valor recebido do timeseries (deslocamento - número especificado de barras atrás - em relação à barra atual).

Valor de retorno

Valor do preço de abertura da barra (indicado pelo parâmetro shift) do gráfico correspondente ou 0 no caso de erro. Para mais informações sobre o erro, deve-se chamar a função GetLastError().

Observação

A função sempre retorna dados relevantes, para isso, a cada chamada, faz uma solicitação aos timeseries para o símbolo/período especificado. Isso significa que, se não houver dados prontos na primeira chamada de função, preparar o resultado poderá levar algum tempo.

A função não armazena os resultados de chamadas anteriores, pois não há cache local para retorno rápido do valor.

Exemplo:

input int shift=0;
//+------------------------------------------------------------------+
//| Function-event handler "tick"                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime time  = iTime(Symbol(),Period(),shift);
   double   open  = iOpen(Symbol(),Period(),shift);
   double   high  = iHigh(Symbol(),Period(),shift);
   double   low   = iLow(Symbol(),Period(),shift);
   double   close = iClose(NULL,PERIOD_CURRENT,shift);
   long     volume= iVolume(Symbol(),0,shift);
   int      bars  = iBars(NULL,0);
 
   Comment(Symbol(),",",EnumToString(Period()),"\n",
           "Time: "  ,TimeToString(time,TIME_DATE|TIME_SECONDS),"\n",
           "Open: "  ,DoubleToString(open,Digits()),"\n",
           "High: "  ,DoubleToString(high,Digits()),"\n",
           "Low: "   ,DoubleToString(low,Digits()),"\n",
           "Close: " ,DoubleToString(close,Digits()),"\n",
           "Volume: ",IntegerToString(volume),"\n",
           "Bars: "  ,IntegerToString(bars),"\n"
           );
  }

Veja também

CopyOpen, CopyRates