[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 229

 
nikkola >> :

No lo descompilé, así es como lo conseguí...

No hay ninguna diferencia.

 
extraño, se fue solo, pero gracias a TheXpert de todos modos , sabré cual es el error
 
nikkola >> :

No lo descompilé, así es como lo conseguí...

Y en general, los expertos de este tipo están incluso en este recurso a granel y con código abierto. Era una especie de EA de ciruela, trabajaba en la intersección del precio y la ondulación. Lo he sustituido por otro indicador y ya está. Y me encontré con este problema.

 
y una pregunta más, alguien sabe si las citas están disponibles en forma de archivo, porque mi internet se está acabando ^_^
 
nikkola >> :

Hola, ayuda por favor no puedo entender... Tengo un EA que funciona con señales de oscilador, abre posiciones después de cruzar el cero. Quiero que abra una posición cuando la barra actual se haya cerrado y la señal se haya formado. Puede abrir y cerrar una posición varias veces en un minuto :) Hasta que la señal se ajuste.

Aquí está el código:


extern double Lot = 0.1;
extern double Per = 14;
bool gi_84 = TRUE;
int gi_88 = 366;
doble gd_92 = 0,02;
doble gd_100 = 0,2;
int g_period_108 = 14;
int gi_112 = 50;
int g_slippage_116 = 0;



void start() {
int l_cmd_52;
int l_ticket_56;

string l_symbol_0 = Symbol();
double l_isar_8 = iCustom(NULL,0, "daytrend-t01",Per,0,0);
double l_isar_9 = iCustom(NULL,5, "daytrend-t01",Per,0,0);
int l_cmd_40 = -1;
int l_ord_total_44 = OrdersTotal();
Lote = MathMax(Lote, MarketInfo(l_symbol_0, MODE_MINLOT));
for (int li_48 = l_ord_total_44; li_48 > 0; li_48--) {
if (OrderSelect(li_48 - 1, SELECT_BY_POS) == TRUE) {
l_cmd_52 = OrderType();
if (OrderSymbol() != l_symbol_0 || l_cmd_52 < OP_BUY || l_cmd_52 > OP_SELL) continue;
l_ticket_56 = OrderTicket();
RefreshRates();
if (l_cmd_52 < OP_SELL) {
si (l_isar_8 > 0) {
while (OrderClose(l_ticket_56, Lot, Bid, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continuar;
}
} si no {
si (l_isar_8 < 0 ) {
while (OrderClose(l_ticket_56, Lot, Ask, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continuar;
}
}
l_cmd_40 = l_cmd_52;
}
}
if (l_cmd_40 < OP_BUY && g_period_108 == 0 || DayOfYear() < gi_88) {
RefreshRates();
if (l_isar_8 < 0 && l_isar_9 < 0 ) while (OrderSend(l_symbol_0, OP_BUY, Lot, Ask, g_slippage_116, 0, 0) == 0) FunError(gi_112);
si no
if (l_isar_8 > 0 && l_isar_9 > 0 ) while (OrderSend(l_symbol_0, OP_SELL, Lot, Bid, g_slippage_116, 0, 0) == 0) FunError(gi_112);
}
}

void FunError(int ai_0) {
Sleep(ai_0);
RefreshRates();
}

void deinit() {
}

Para ello utilizo el siguiente código:


bool Barra_de_funcionamiento()
/*
está diseñada para detectar si hay una nueva barra,
si se capta la nueva barra "true" en caso contrario "false".
===========
Variables:
===========
Test_Time - Tiempo de prueba
*/
{
static datetime Hora_de_prueba=0;
if(¡Tiempo_de_prueba!=Tiempo[0])
{
Hora_de_prueba=Hora[0];
return(true);
}
return(false);
}


A mi pregunta por favor ayúdame si sé o dime si es imposible hacerlo... estoy buscando una respuesta desde hace 3 días y todavía no hay suerte. :-(

 
betmen >> :

Para mi pregunta por favor ayuden a quien sepa o me diga si es imposible hacerlo... Llevo 3 días buscando una respuesta y hasta ahora sin resultado. :-(

La interfaz de usuario personalizada se utiliza para personalizar los ajustes. Es decir, una ventana que ha sido especialmente desarrollada para una tarea específica (para indicadores específicos). No hay posibilidad de crear tales ventanas en Metatrader. Esto significa que tienen que ser creados en otro lugar, con un archivo ejecutable. El archivo ejecutable puede ser Exe o Dll. Dll puede ser llamado al inicio de un indicador/script, es claramente más conveniente.

 
jartmailru >> :

La interfaz de usuario personalizada se utiliza para establecer los parámetros. Es decir, una ventana especialmente diseñada para una tarea específica (para indicadores concretos). No hay posibilidad de crear tales ventanas en Metatrader. Esto significa que tienen que ser creados en otro lugar, con un archivo ejecutable. El archivo ejecutable puede ser Exe o Dll. Puedes llamar a la Dll en el inicio del indicador/script, es más cómodo.

¡¡¡Gracias!!!

Si quieres compartir el artículo donde se describe, te lo agradeceré mucho... :-)

 
betmen >> :

¡¡¡Gracias!!!

La pregunta es cómo configurar la interfaz entre los objetos del "formulario principal" y las variables en MQL4, si me compartes algunos enlaces a artículos sobre ello, acabaré de explotar de gratitud... :-)

Bueno, mi impresión es que es mejor ignorar la Dll,

mostrar modalmente puede ser peligroso (es un indicador en el hilo de la UI, puede tener consecuencias)-.

o quizás no... En general, el formulario puede ser ejecutado en un entorno separado - con Wtl todo resultó genial.

El indicador esperará una bandera que le permita trabajar e interrogará esta forma.

Y luego - cuando el formulario se muestra listo - hay diferentes funciones como get(int & to[]), con punteros/referencias,

que transferirá datos diferentes. Con las cuerdas, podría haber problemas...

Y ya compartirás conmigo el enlace al artículo ;-).

 
jartmailru >> :

Bueno, tengo la impresión de que es mejor ignorar la Dll,

mostrarlo modalmente podría ser peligroso (está en el hilo de la interfaz de usuario, podría tener consecuencias)-

o quizás no... En general, el formulario puede ser ejecutado en un entorno separado - con Wtl todo resultó genial.

El indicador esperará una bandera que le permita trabajar e interrogará esta forma.

Y luego - cuando el formulario se muestra listo - hay diferentes funciones como get(int & to[]), con punteros/referencias,

que transferirá datos diferentes. Con las cuerdas, podría haber problemas...

Puedes compartir conmigo el enlace al artículo ;-).

La pregunta era cómo los indicadores estándar dibujan una nueva pestaña "Parámetros" al seleccionar la configuración de la operación del indicador en sí, con la posibilidad de sustituir los números con algo más legible.

Por ejemplo, si llama a la MA:


en el código del indicador es la variable "MA_Method" y la selección del método va por la condición


switch(MA_Método)
{
caso 1 : short_name="EMA("; draw_begin=0; break;
caso 2 : nombre_corto="SMMA("; break;
caso 3 : short_name="LWMA("; break;
por defecto :
MA_Método=0;
short_name="SMA(";


Sugieres ejecutar un exe compilado desde otro entorno durante la inicialización, realmente es posible ejecutar un archivo exe durante la inicialización, pero entonces hay otro problema - ¿cómo pasar los datos del programa a las variables del propio indicador?

es decir, ¿cómo pasar un valor de combobox1.text convertido en un número a MA_Method?

No es estética a través de un archivo y parece que MetaTrader y mi "test.exe" no tienen espacio de memoria común.

 
Rita писал(а) >>

Gracias. Lo intentaré ahora.

//------------------------------------------

Sí, ha funcionado. Los expertos están trabajando.

Y no me ha funcionado :-( Me sigue saliendo la excusa del error y el cierre de MT