[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 181

 

Olá a todos!


Minha pergunta é de um novato.

Eu tenho um indicador que exibe dados de arquivos externos em um gráfico. Aqui estão minhas perguntas:

1. Como abro a caixa de diálogo de seleção de arquivos padrão?

2. Como contornar a restrição das pastas a partir das quais os arquivos do código podem ser abertos (especialistas/arquivos)?

3. Como fazer um controle no gráfico que pode ser clicado para desativar o roteiro. A questão principal é como fazer um EA, por exemplo, algum tipo de botão ou outra coisa para interagir com o usuário através dele)?


Obrigado!

 

Explique para o nerd qual é o erro!

Estou fazendo um script simples na demonstração da Finam para mostrar o preço Alert(BId);

Todos os trabalhos, mas por alguma razão o preço é exibido com 4 casas decimais, embora as cotações estejam em 5 casas decimais para EURUSD. A IMA também é calculada com 4 casas decimais e não com 5.

O que estou fazendo errado, por favor avise????

 
Onesto:

Explique para o nerd qual é o erro!

Estou fazendo um script simples na demonstração da Finam para mostrar o preço Alert(BId);

Todos os trabalhos, mas por alguma razão o preço é exibido com 4 casas decimais, embora as cotações estejam em 5 casas decimais para EURUSD. A IMA também é calculada com 4 casas decimais e não com 5.

Por favor, me avise o que estou fazendo errado

Você está fazendo tudo certo, mas o terminal imprime 4 casas decimais, converte duas vezes em cadeia antes de imprimir com o número correto de casas decimais.

Alerta(DuploToStr(Bid,Digitos));

 
sanderz:

Olá a todos!


Minha pergunta é de um novato.

Eu tenho um indicador que exibe dados de arquivos externos em um gráfico. Aqui estão minhas perguntas:

1. Como abro a caixa de diálogo de seleção de arquivos padrão?

2. Como contornar a restrição das pastas a partir das quais os arquivos do código podem ser abertos (especialistas/arquivos)?

3. Como fazer um controle no gráfico que pode ser clicado para desativar o roteiro. A questão principal é como fazer um EA, por exemplo, algum tipo de botão ou outra coisa para interagir com o usuário através dele)?


Obrigado!

1-2.Padrão é o quê? Embora, em qualquer caso, para as duas primeiras perguntas, você precisará usar WinAPI e/ou DLL externas.

3. Diretamente do roteiro para fazer um item gráfico no laço para rastrear suas coordenadas e quando você o arrasta, o roteiro irá pausar ou descarregar.

A maneira mais fácil de fazer isso é olhar para o código fonte, há muitos artifícios visuais na base de código.

 
Caros membros do fórum, vocês podem me ajudar a produzir uma tabela de todas as transações do Quicksilver para que ela seja atualizada on-line e para que eu possa mudar o número de filas exibidas. Eu tentei, mas a tabela inteira é exibida e não atualizada.
 
splxgf:

1-2. Qual deles é o padrão? Mas em qualquer caso, as duas primeiras perguntas exigirão WinAPI e/ou DLL externas.

3. Diretamente do roteiro para fazer um elemento gráfico no laço para rastrear suas coordenadas e quando você o arrasta, o roteiro fará uma pausa ou descarregará.

A maneira mais fácil de fazer isso é olhar para o código fonte, há muitos artifícios visuais na base de código.

Obrigado.
 
splxgf:

Você está fazendo tudo corretamente, mas o terminal sai com 4 casas decimais, converta o dobro para uma corda antes de emiti-lo com o número correto de dígitos.

Alerta(DuploToStr(Bid,Digitos));


Obrigado, agora eu entendo.

Ao calcular no corpo do Expert Advisor, os dados vêm com 5 ou 4 dígitos?

 
Onesto:


Obrigado, agora eu entendo.

E ao calcular no corpo da EA, os dados vão com 5 ou com 4?

Os cálculos são realizados com o número normal de dígitos, que podem ser verificados com Alert(Bid*100000);
 

Caro, tenho uma pergunta novamente:

duplo hc=(iHigh(NULL,0,1)-iClose(NULL,0,1));
double cl=(iClose(NULL,0,1)-iLow(NULL,0,1));

if((iClose(NULL,0,1)<iOpen(NULL,0,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,CLR_NONE);


Há um problema: as posições são abertas 17-40 vezes a cada 1 minuto, embora eu as teste em gráficos de 15 minutos. E o pedido deve abrir não mais que uma vez a cada 15 minutos. Somente então a condição de fechamento da vela anterior ser inferior à sua vela aberta é cumprida.

Por que é assim?

 
NaVolne:

Caro, tenho uma pergunta novamente:

if((iClose(NULL,15,1)<iOpen(NULL,15,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,CLR_NONE);


Há um problema: as posições são abertas 17-40 vezes a cada 1 minuto, embora eu as teste em gráficos de 15 minutos. E presumo que um pedido não deve abrir com mais freqüência do que uma vez a cada 15 minutos. Somente então a condição de fechamento da vela anterior ser inferior à sua vela aberta é cumprida.

Por que é assim?


Presumo que a ordem deve ser aberta uma vez a cada 15 minutos, no início de

na área de declaração variável

double OpenBar=0; 

 

int start()
   {
    //Проверка на начало нового бара
    double CurOpenBar=iOpen(NULL,PERIOD_M15,0);  
    if (OpenBar==CurOpenBar) {return;} else {OpenBar=CurOpenBar;}
    //ваш код
   }


algo assim...

Mas sua condição é cumprida em cada carrapato, então a ordem abre em cada carrapato.