Indicador Perguntas Diversas - página 7

 

Sim, mas você tem que codificá-lo.

Exemplo:

Hora localCorretor ACorretor B
00:00
(GMT)
01:00
(GMT+1)
02:00
(GMT+2)

Você não pode usar PERÍODO_D1 porque

  • A barra D1 do corretor A começa às 23:00 locais (1 hora mais cedo)
  • A barra D1 do Corretor B começa às 22:00 locais (2 horas mais cedo)

Portanto, você deve usar as barras H1 com iBarShift e iHighest / iLowest (ou CopyHigh/CopyLow) para criar manualmente seu "dia" como você quiser.

----

Aqui está um roteiro rápido que pode ilustrar o ponto.

Solte-o em um gráfico e você verá que ele desenha um retângulo em torno de um 'dia' a partir das 23:00 horas, horário do servidor.

#define strict
#property show_inputs

#define DAY 86400
#define HOUR 3600

extern int time_shift = -1; // Hours to shift server time by

void OnStart()
  {
   time_shift*=HOUR;

   datetime oldest_bar = Time[Bars-1],
            midnight   = oldest_bar-(oldest_bar%DAY);

   while(midnight<=TimeCurrent())
     {
      datetime day_begin = midnight + time_shift,
               day_end   = day_begin + DAY - 1;
      double high[],
             low[];
      int high_cnt = CopyHigh(_Symbol, PERIOD_H1, day_begin, day_end, high),
          low_cnt  = CopyLow (_Symbol, PERIOD_H1, day_begin, day_end, low);
      if(high_cnt>0 && low_cnt>0)
        {
         double day_high = high[ArrayMaximum(high)],
                day_low  = low [ArrayMinimum(low)];
         string obj_name = TimeToString(day_begin,TIME_DATE);
         ObjectCreate(0, obj_name, OBJ_RECTANGLE, 0, day_begin, day_high, day_end, day_low);
        }
      midnight+=DAY;
     }
  }  


 
honest_knave:

Sim, mas você tem que codificá-lo.

Eu deveria estudar este exemplo.

Muito obrigado.

 

Mais uma vez, muito obrigado por seu grande exemplo.
Após seu comentário, eu resolvi facilmente meu problema.

---

Eu tentei algo para compensar o tempo automaticamente definido para diferentes corretores, infelizmente isso não funcionou.

P: Posso escrever algum código para os conjuntos de compensação de tempo definidos automaticamente para diferentes corretores, é possível?
( Eu ainda tento algo para isso )

Muito obrigado.

 

Tento abaixo do código, mas ele não me dá o valor correto.

P: O que está errado no código abaixo? ( Eu não descobri )

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

Muito obrigado.

 
Max Enrik:

Tento abaixo do código, mas ele não me dá o valor correto.

P: O que está errado no código abaixo? ( Eu não descobri )

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

Muito obrigado.

Parece que nem todos os corretores montaram isto corretamente. Por favor, veja aqui
 
honest_knave:
Parece que nem todos os corretores montaram isto corretamente. Por favor, veja aqui

Não há chance!
Estou apenas pensando em programadores profissionais e códigos desistiram?! Claro que não. : / ( mas eu sou )

Muito obrigado.

( tenho idéia de que vou tentar pelo menos - mais tarde )
 
Max Enrik:

Não há nenhuma chance!
Estou apenas pensando em programadores profissionais e códigos desistiram?! Claro que não. : / ( mas eu sou )

Muito obrigado.

( tenho idéia que vou tentar pelo menos - mais tarde )

Há sempre soluções.

Por exemplo, você pode voltar através das barras H1 ou M30 procurando um intervalo de tempo maior que 1 barra (ou seja, o mercado foi fechado durante este intervalo).

Mas é preciso ter cuidado com os fins de semana e feriados e com a história incompleta.

 
honest_knave:

Há sempre soluções.
Por exemplo, você pode voltar através das barras H1 ou M30 procurando um intervalo de tempo maior que 1 barra (ou seja, o mercado foi fechado durante este intervalo).
Mas é preciso ter cuidado com os fins de semana e feriados e com a história incompleta.

Muito obrigado por seu comentário útil.
 

Eu só preciso aprender sobre a hora da data, porque até agora quando eu tento escrever a hora da data relacionada ao código, eu sempre gastei muito tempo com essa parte dos códigos. ( até eu terminei com sucesso meus roteiros, mas nunca entendo mais claramente )
Então agora eu tento obter os dados da 1ª barra ( 1m, 5m, 15m, 30m, 1h e assim por diante ) do dia, mas não consigo.

( Eu tenho muitas e muitas abas no navegador google chrome relata sobre isso - apenas disparates )

Assim como alguém pode me ajudar a escrever o código para a primeira barra do dia ( M1, 5M e assim por diante ) com exemplo e explicar, por favor.

É claro que amanhã continuarei a pesquisar sobre esta preocupação.

Muito obrigado de antemão.

 

A primeira barra do dia deve ser a primeira barra após o TimeHour() começou de novo com a contagem.

Essa será, naturalmente, a primeira barra de qualquer coisa M1 , M5 , M15 etc. Todos eles iniciam novas barras.