Características úteis da KimIV - página 99

 
TarasBY писал(а) >>
Notei um erro na função TypeNearPos quando a condição é atendida:
Preço de mercado = preço de ordem em aberto, então esta ordem não é levada em conta por esta função.
Eu tinha que acrescentar esta simples condição ao código.
Esta condição também será útil em funções como TypeNearPos() e PriceOpenNearPos().


Faz mais sentido comparar ti com zero na condição ao invés de pp

if (ti==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
}
Se deixarmos a condição como ela está, é melhor sairmos do laço por meio de quebra em vez de retornarmos.
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
   if (pp==0)
      break;
}
 
Olá, Igor. Olá a todos.
Igor, estou falando com você como um excelente especialista e especialista em sua área.
A essência do meu problema é a seguinte:
Uso cinco indicadores em meu TS, um deles é o TRAP. Ele remove todos os "ruídos" desnecessários muito bem, mas é igualmente "bom". Tem três buffers de desenho: 0 para a linha de sinal, 1 e 2 para a carta bicolor. Quando a linha de sinal TRAP está em baixo e tem uma tabela vermelha por baixo - Sell. Quando a linha de sinal sobe e a tabela é azul - Comprar.
Manualmente tudo está bem, mas quando tento receber seus dados do Consultor Especialista, as torturas começam, o que continua até hoje.
O projeto...
   TRAPsig0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,0);  // Сигнальная линия,       0 бар
   TRAPsig1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,1);  // Сигнальная линия,       1 бар
   TRAPmnR0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,0);  // Буфер цвета 1 (красн.), 0 бар
   TRAPmnR1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,1);  // Буфер цвета 1 (красн.), 1 бар
   TRAPmnB0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,0);  // Буфер цвета 2 (син.),   0 бар
   TRAPmnB1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,1);  // Буфер цвета 2 (син.),   1 бар
...lê os dados, mas os dados não são de todo o que eu esperava. Tentei ler os dados dos três amortecedores para as barras 0 - 7 e exibi-los na tela. Zero barra contém 2147483647, primeira barra o preço, segunda barra o preço, terceira barra o preço, quarta barra novamente 2147483647 etc. Ao mesmo tempo, todos os dados não mudam com base em tick-by-tick, mas quando mudam. Às vezes após um longo período de tempo, às vezes rapidamente, e eles mudam seu conteúdo de acordo com um sistema estranho que eu ainda não entendi. Se primeiro há um preço lá, então pode ser este número misterioso, ou pode ser um preço diferente ou o mesmo (embora a linha suba e o preço deva subir), etc. ...
Em resumo, todas as minhas tentativas de sistematizar estas leituras levaram a que meu cérebro já devesse ser dado à sistematização dos sanitarianos.... :)
Estou clamando por ajuda... Igor, talvez você possa me aconselhar sobre como vencer este indicador?
Ou qualquer um dos gurus já lidando com este problema.
Ajude, por favor, todos os custos do trabalho...
Obrigado de antemão!
O próprio indicador está no trailer:
Arquivos anexados:
trap.ex4  4 kb
 
não usar zero bar.... Está apenas se formando, o que significa que o valor do indicador muda a cada tick....
 

A propósito - onde está o próprio Igor? Ele não é visto há quatro ou cinco meses!

 
kharko >>:
не используйте нулевой бар.... Он только формируется, а значит, значение индикатора меняется с каждым тиком....

A questão é que já tentei primeiro e segundo e terceiro e... tentou cada barra até sete em cada tampão. Os sinais não estão corretos. O sinal que exibe o preço, digamos, 1,3478 pode ser mantido até o próximo aumento do preço para o nível de 1,3478, e depois tornar-se acentuadamente 1,3486 ou o preço desaparecer e aparecer um valor desconhecido de 2147483647, ele pode vaguear de uma barra para outra nas leituras dos três amortecedores... Se Deus quiser... Ela pode estar presente nas leituras de três amortecedores em barras diferentes, e quando você muda o preço de uma barra, esta leitura passará para outra barra ou amortecedor... Não consegui superar sua lógica...

 
artmedia70 >>:

вообще цена пропадает и появляется непонятное значение 2147483647...

2147483647 é 0x7FFFFFFFFFF.

Constantes especiais usadas para indicar o estado dos parâmetros e variáveis. Podem ser os seguintes valores:

VAZIO_VALOR 0x7FFFFFFFFFF Valor padrão, ponteiro para um valor vazio. Usado em indicadores personalizados
 
artmedia70 писал(а) >>

A questão é que já tentei primeiro e segundo e terceiro e... tentou cada barra até sete em cada tampão. Os sinais não estão corretos. O sinal que exibe o preço, digamos, 1,3478 pode ser mantido até o próximo aumento do preço para o nível de 1,3478, e depois tornar-se acentuadamente 1,3486 ou o preço desaparecer e aparecer um valor desconhecido de 2147483647, ele pode vaguear de uma barra para outra nas leituras dos três amortecedores... Se Deus quiser... Ela pode estar presente nas leituras de três amortecedores em barras diferentes, e quando você muda o preço de uma barra, esta leitura passará para outra barra ou amortecedor... Não consegui superar sua lógica...


abra a janela de dados (Ctrl+D), passe o mouse sobre seu indicador e veja o que ele tem em barras. Não é calculado sobre barras zero, e sobre EMPTY_VALUE você já foi escrito.

 
PapaYozh >>:


откройте окно данных (Ctrl+D), поводите мышью по своему индикатору и посмотрите что он имеет в барах. На нулевом баре он не рассчитан, а про EMPTY_VALUE Вам уже написали.

Oh, merda! Você vive e aprende! E eu costumava fazer um Expert Advisor não comercial, que traçava esses dados em um gráfico... :))) Um bule de chá, e também estava fervendo quente. :)
Tudo se revelou tão fácil... Muito obrigado!!!!

 
PapaYozh >>:


Логичнее, в условии сравнивать с нулём не pp, a ti

Если же оставить условие как есть, то из цикла лучше выходить не по return, а по break.

Explique o motivo: "é melhor sair do laço por meio de quebra em vez de retornar" ????
Eu saio de uma função por retorno, mas só saio de um laço por quebra. Qual é o truque?

 

Ajude, por favor... Já tentei de tudo... Não consigo....=( Preciso encontrar a intersecção dos indicadores... Todas as dicas que recebi não me ajudaram...=( talvez você possa ajudar...

Arquivos anexados:
lastlast.mq4  13 kb
Razão: