[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 398

 
alk:

Por favor, informe o que está errado no código. O robô deve fechar uma ordem de venda e se não estiver lá, ele deve comprar. O erro 4105 aparece, que eu tento resolver, mas não há resultado. Talvez haja outras maneiras de processá-lo?


Substitua

for(cnt=OrdersTotal();cnt>=0;cnt--)

para

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
 
Bom dia para vocês, queridos especialistas, por favor, ajudem-me... Eu preciso: com base no indicador i-Regr (anexo) escrever um bloco de programa, que é capaz de determinar a largura do canal em pontos com uma periodicidade de 1 vez por minuto e exibir este número no gráfico. Obrigado de antemão!
Arquivos anexados:
i-regr_1.mq4  5 kb
 
magogy:
Bom dia para vocês, queridos especialistas, por favor me ajudem... Eu preciso: com base no indicador i-Regr (anexo) escrever um bloco de programa, que é capaz de determinar a largura do canal em pontos com uma periodicidade de 1 vez por minuto e exibir este número no gráfico. Obrigado de antemão!

Acho que com esta tarefa é melhor aplicar ao serviço
 
magogy:
Bom dia! Caros especialistas, por favor, ajudem-me... Eu preciso: com base no indicador i-Regr (anexo) escrever um bloco de programa, que é capaz de determinar a largura do canal em pontos com uma periodicidade de 1 vez por minuto e exibir este número no gráfico. Obrigado de antemão!
 datetime Time_=0; // объявить вверху, в глобальных переменных

 if(Time[0]!=Time_){Alert(NormalizeDouble(sqh[0]-sql[0],4));Time_=Time[0];} //добавить внижней части кода, перед return-ом
 
KONDOR:

Muito obrigado pela dica!

Há algumas sutilezas. A informação é exibida como 0,0026, o que corresponde a 26 pontos. Mudei a linha de fundo e agora é o que parece:

if(Time[0]!=Time_){Alert(NormalizeDouble(sqh[0]*10000-sql[0]*10000,4));Time_=Time[0];}

A produção é agora mostrada como 25.6809

Favor aconselhar como arredondar este número de forma programática para exibir as informações em pontos inteiros em vez de fracionárias.

Cumprimentos Magogia

 
magogy:

Você pode me dizer como arredondar este número programmaticamente para que as informações sejam exibidas como pontos inteiros e não como frações.

Cumprimentos Magogia

вместо 4, поставить 0, т.е. точность выводимого значения - ноль знаков после запятой
Alert(NormalizeDouble(sqh[0]*10000-sql[0]*10000,4))
 
KONDOR:


heh... como tudo é simples e óbvio para um profissional e como tudo é assustador e incompreensível para um novato...

muito obrigado por sua ajuda!

 

Por favor, diga-me o que está errado. No roteiro, eu declaro importado e chamo a função:

#import "PendingDlg.dll"
int  ShowPendingDlg(int& nbar,int& sltp);

...

int    nbar=3,sltp=10;
//--- покажем диалог
if(!ShowPendingDlg(nbar,sltp)) return(1);

Tentei obter o valor por referência e por ponteiro em DLL (em C++). Se por referência não funcionar, no caso por ponteiro recebo indicações com valor zero. O código está em DLL:

__declspec(dllexport) int __stdcall ShowPendingDlg(int *nbar,int *sltp) { ... }

Obrigado.

 
apm:

Por favor, diga-me o que está errado. No roteiro, eu declaro importado e chamo a função:

Tentei obter o valor por referência e por ponteiro em DLL (em C++). Se por referência não funcionar, no caso por ponteiro recebo indicações com valor zero. O código está em DLL:

Obrigado.

A MQL4 por referência e por ponteiro funciona somente com matrizes e cordas (também matrizes).
 
Zhunko:
A MQL4 por referência e ponteiro só funciona com arrays e cordas (também arrays).
Obrigado! Já tenho tudo, tenha um bom homem de fim de semana)