[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 398

 
alk:

Por favor, indique qué es lo que está mal en el código. Se supone que el robot debe cerrar una orden de venta, si no está, debe comprar. Aparece el error 4105, que intento solucionar, pero no hay resultado. ¿Tal vez haya otras formas de procesarlo?


Sustituir

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

a

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
 
Buenos días a ustedes, queridos expertos, por favor ayúdenme... Necesito: sobre la base del indicador i-Regr (adjunto) escribir un bloque de programa, que es capaz de determinar el ancho del canal en puntos con una periodicidad de 1 vez por minuto y mostrar este número en el gráfico. Gracias de antemano.
Archivos adjuntos:
i-regr_1.mq4  5 kb
 
magogy:
Buenos días a ustedes, queridos expertos, por favor ayúdenme... Necesito: sobre la base del indicador i-Regr (adjunto) escribir un bloque de programa, que es capaz de determinar el ancho del canal en puntos con una periodicidad de 1 vez por minuto y mostrar este número en el gráfico. Gracias de antemano.

Creo que con esta tarea es mejor aplicar al servicio
 
magogy:
Buenos días! Estimados expertos, por favor ayúdenme... Necesito: sobre la base del indicador i-Regr (adjunto) escribir un bloque de programa, que es capaz de determinar el ancho del canal en puntos con una periodicidad de 1 vez por minuto y mostrar este número en el gráfico. Gracias de antemano.
 datetime Time_=0; // объявить вверху, в глобальных переменных

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

¡Muchas gracias por el consejo!

Hay algunas sutilezas. La información se muestra como 0,0026, que corresponde a 26 puntos. He cambiado la línea de fondo y ahora se ve así:

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

La salida se muestra ahora como 25,6809

Por favor, indíquenos cómo redondear este número mediante programación para mostrar la información en puntos enteros en lugar de fraccionarios.

Saludos magogy

 
magogy:

Podrían decirme cómo redondear este número programáticamente para que la información se muestre en puntos enteros y no en fracciones.

Saludos magogy

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


je... lo sencillo y obvio que es todo para un profesional y lo aterrador e incomprensible que es todo para un novato...

¡muchas gracias por su ayuda!

 

Por favor, dime qué pasa. En el script declaro importado y llamo a la función:

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

...

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

He intentado obtener el valor por referencia y por puntero en la DLL (en C++). Si es por referencia no funciona, en caso de ser por puntero me salen punteros con valor cero. El código está en DLL:

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

Gracias.

 
apm:

Por favor, dime qué pasa. En el script declaro importado y llamo a la función:

He intentado obtener el valor por referencia y por puntero en la DLL (en C++). Si es por referencia no funciona, en caso de ser por puntero me salen punteros con valor cero. El código está en DLL:

Gracias.

MQL4 por referencia y por puntero sólo funciona con arrays y cadenas (también arrays).
 
Zhunko:
MQL4 por referencia y puntero sólo funciona con arrays y cadenas (también arrays).
Gracias. Lo tengo todo ahora, que tengas un buen fin de semana amable)
Razón de la queja: