Erros, bugs, perguntas - página 1142

 
ierehon:

Olá a todos!

Pergunta, como fazer um valor variável actualizado em cada tick durante um minuto, e depois esta soma é escrita para um valor separado, quando o minuto seguinte fecha, o valor da soma é substituído pelo novo valor?

Leia o artigo! E outros também.

Como exemplo para o vosso algoritmo, esbocei um indicador "contador de carraças". Se atribuir o valor requerido à variável b em cada tick, obterá o que pediu.

Arquivos anexados:
TickSum.mq5  4 kb
 
ParaMigVRN

Obrigado pelo artigo e pelo indicador! Vou tratar do assunto.


 
harbor:

pessoas, que me podem dizer como em mql5 calculara quantidade de fundos gratuitos necessários para abrir 1 lote de algum símbolo

Em mql4 sei como, mas em mql5 não o consigo encontrar

double marg;
OrderCalcMargin(ORDER_TYPE_BUY, sym, 1, tick.ask, marg);
 
Os vídeos do Youtube não são inseridos com HTTPS.
 
MigVRN:

1) Não crie indicadores em cada tick!

2) Verificar se o indicador é ou não criado, antes de aceder aos seus valores.

3) Verificar se os valores solicitados são copiados do indicador.

4) Apagar sempre a parte de cálculo do indicador após a conclusão do perito, caso contrário pode, a dada altura, ficar sem RAM.

O problema foi porque se tentou copiar os valores do indicador que ainda não tinha sido criado. Faça uma regra - verifique o resultado das funções que está a chamar.

Obrigado, consegui-o!

Mas altero os parâmetros de entrada dos indicadores BP_var_s, BDev_var_s e MA_var_s "à medida que avançamos". O que fazer neste caso ? Criar e apagar cada vez de acordo com....

 
Alvin1976:

Obrigado, já está!

Apenas altero os parâmetros de entrada dos indicadores BP_var_s, BDev_var_s e MA_var_s "à medida que avançamos". O que fazer neste caso ? Criar e apagar cada vez de acordo com....

Há aqui várias opções:

1) Os parâmetros indicadores mudam ao longo do tempo, de acordo com alguns critérios (condições). Portanto, não há necessidade de recriar pegas em cada carraça. Verifique a condição e, se for cumprida, recrie-a.

Suponhamos que a condição é que um evento de "novo bar" ocorra num período de um minuto. Exemplos da definição de um evento de "novo bar" são muitos - pesquise o website. Eu gosto mais desta variante.

2) Se ainda for necessário, em cada tick - esperar pela terminação da verificaçãoCopyBuffer() no laço (usando sleep())). Mas o mais provável é que as carraças sejam ignoradas. Como alternativa - para calcular carraças não para toda a história, mas para o último par de centenas de barras (para entrar no código dos índices padrão e para corrigir o código) - saltará menos carraças.

 

Ocorreu outro problema.

long Min_Dist;

bool Inf=(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL,Min_Dist));
      if (Inf=true) Print("      mindist=", DoubleToString(Min_Dist)); 

A variável Min_Dist no testador dá zero a todo o momento. Ainda não o verifiquei no mercado ao vivo.

Porquê zero? Lê com sucesso.....

 
Alvin1976:

Ocorreu outro problema.

A variável Min_Dist no testador dá zero a todo o momento. Ainda não o verifiquei no mercado ao vivo.

Porquê zero? Lê com sucesso.....

Experimente desta forma:
long Min_Dist;

Min_Dist=(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL);
      //if (Inf=true) Print("      mindist=", DoubleToString(Min_Dist)); 
Verifique o valor real de SYMBOL_TRADE_STOPS_LEVEL
 
barabashkakvn:
Experimente isto: Verifique o valor real de SYMBOL_TRADE_STOPS_LEVEL

É a mesma coisa. Zero :(.

No testador.

Vou verificar no mercado na segunda-feira.

Descobri-o. Este é o problema do concessionário. E não apenas um :-). Não o compreendi de imediato porque o google não deu nada de útil em SYMBOL_TRADE_STOPS_LEVEL, mas MODE_STOPLEVEL deu muita informação.

Vou utilizar SYMBOL_SPREAD.

 
Roffild:
Os vídeos do Youtube não são inseridos com HTTPS.
Porque é que o Youtube tem HTTPS? Aqui está o código habitual para o vídeo -http://youtu.be/KG0PIVuJ2kU