Erros, bugs, perguntas - página 611

 
x100intraday:

Tenho medo de imaginar como. Na verdade, preciso de uma variante flexível, não preciso de uma corda na sua forma inalterada, mas de várias cordas diferentes para formar, em loop... Se for possível, gostaria de ver um exemplo mais específico...

...

Pode também formar condições mais complicadas em #define numa só linha:

#define LOG(text,logs,html,type,spc,style)  if(type){if(logs){okLOG(text,spc);}if(html){okHTML(text,spc,style);}}  if(!type){if(logs){erLOG(text,spc);}if(html){erHTML(text,spc,style);}}

Não sei como resolver o seu problema, ainda não o experimentei. Terei de experimentar... ))

Talvez você possa formar vários #define's como este e depois escolher o que pode precisar num loop.

De corda a enumeração pode preparar a função com interruptor de antemão. Mas pode ter um número muito grande de opções, aparentemente, e este método não vai funcionar...

Oh, aqui está outra opção! É possível gerar um ficheiro mqh, que está pré-conectado ao ficheiro principal. Ou seja, deve haver uma função que aceite uma corda e depois gere um ficheiro mqh. O ficheiro será sempre substituído. É exactamente assim que vai funcionar))))

 

tol64, a opção #define faz-me suar a frio. Não estou a contestar que provavelmente posso trabalhar onde for preciso, mas está algures na Olimpíada sobre programação utilizando formas não padronizadas - nem que seja para alcançar o resultado a qualquer custo. Rejeitei o método de troca pela mesma razão que descrevi acima: não quero adicionar blocos de código extra grandes para uma tarefa ideologicamente elementar. Parece-me que deveria haver uma forma padrão bastante simples... Caso contrário, começo a sentir-me como um hacker a tentar entrar no sistema e obter o resultado desejado de uma forma sofisticada...

Há uma questão crucial no ar: é possível e como aceder elemento por elemento à lista padrão dos mesmos períodos de tempo, à lista de visibilidade do objecto em períodos de tempo, etc.? Até agora, tenho de preencher manualmente a matriz pela força bruta e depois recuperar de lá o que preciso por índice:

ENUM_TIMEFRAMES TFsArr[3]={PERIOD_M15, PERIOD_M20, PERIOD_M30);
Quanto tempo mais! Talvez possa retirar estes elementos da matriz/lista pré-definida de uma só vez? Uma coisa é se não tiver conhecimentos suficientes... mas nunca encontrei ninguém a aceder a recursos predefinidos no código de outra pessoa sem antes encher a almofada com cópias de penas...
 
x100intraday:
Como posso preparar antecipadamente uma string com enumeração lógica(?) como: OBJ_PERIOD_M10| OBJ_PERIOD_H4, para depois apenas substituir em ObjectSetInteger () variável pronta sob a forma de string colada? Tentei colá-lo simbolicamente e depois envolvê-lo em StringToInteger(), mas não funcionou... PorqueOBJ_PERIOD_... - é um elemento do tipo enumeral mas tem o hex-equivalente da bandeira do tipo int? Então esta enumeração parece mais uma operação OU...
Poderia simplesmente somá-las, algo do género:
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,(int)OBJ_PERIOD_M10+(int)OBJ_PERIOD_H4);

ou seja, adicionando os enumeros necessários à variável int.

 

Espalhamentos irrealistamente grandes:

No servidor AlpariFS GBPUSD 648, USDCHF 110

GBPUSD 168, USDCHF 185 no servidor MQ-Demo

outros símbolos estão dentro da norma.

É uma peculiaridade do mercado fino ou um bug no MetaTrader 5?

A libra parece ter-se acalmado agora, mas a propagação no canadiano e australiano é de 88 e 61, respectivamente. O suíço ainda está preso com 185 pips espalhados.

void OnStart()
  {
   while(!IsStopped()){Comment(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));Sleep(100);}
   Comment("");
  }
 
Swan:
Pode simplesmente somá-las, algo do género:

ou seja, adicionando os enumeros desejados à variável int.

De onde tiram os enumeros? São como que incorporados na língua como palavras/valores pré-definidos (reservados). Não quero ter o meu próprio conjunto de enumeros duplicados.
 
x100intraday:

Como é que eu posso preender uma string com enumeração lógica(?) como: OBJ_PERIOD_M10| OBJ_PERIOD_H4

Então esta enumeração parece mais uma operação OR bitwise...

Não é o que parece, é o que é.

De onde tiram os enumeros? Estão de certa forma incorporados na língua sob a forma de palavras/valores pré-definidos (reservados).

A partir dos enumeros, é claro. Veja na ajuda.

Não quero criar o meu próprio conjunto de enumeros duplicados.

terá de ter algo que pelo menos... enums, arrays, define.

caso contrário não irá mais longe do que isso

 
sergeev:

Não é o que parece, é o que é.

dos enums, claro. Procure-o na ajuda.

Terá de fazer algo a esse respeito. Enums, arrays, define.

Não irá mais longe do que isso.

Se quiser começar, tudo bem, já está feito. Mas porque não podemos aceder ao repositório de itens da lista incorporado na língua sob a forma de nomes pré-definidos e constantes? Em algum lugar os criadores esconderam todas estas enumerações.
 
x100intraday:
De onde tiram os enumeros? São como que incorporados na língua como palavras/valores pré-definidos (reservados). Não quero criar o meu próprio conjunto de enumeros duplicados.

não compreende a pergunta)

ENUMs = números inteiros, sem matriz/lista pré-definida.

 
Swan:

não compreende a pergunta)

ENUM_es = números inteiros, sem matriz/lista pré-definida.

ENUM_y = é um enumero. Uma lista pré-definida.
 
x100intraday:
Mas porque não podemos aceder a um repositório de itens de lista incorporados na língua sob a forma de nomes e constantes predefinidos? Onde é que os criadores colocaram todas estas enumerações...

Está a utilizar o mesmo ENUM_TIMEFRAMES. O que é isso para si?