Discusión sobre el artículo "Cómo publicar un producto en el Mercado" - página 46

 
Evgenii Sidorov:

#propiedad indicador_separar_ventana

#propiedad indicator_chart_window

y ¿cómo especificar 2 pantallas diferentes para diferentes buffers?

No se puede. ObjectCreate puede ayudar. Dibujar con objetos.

 
Artyom Trishkin:

No se comprueba el FreezeLevel - si el precio está demasiado cerca, por ejemplo, del nivel StopLoss, no se puede modificar el StopLoss. La distancia de congelación sólo se determina por el nivel FreezeLevel

Aquí no se modifica el stop, sino que se cierra la operación, ¿o me equivoco?

 
Vladimir Khlystov:

No es la parada lo que se modifica, sino que se cierra la operación, ¿o me equivoco?

Si las operaciones están paradas, no se pueden cerrar.
 

Hola, chicos.

Espero que todo este bien.

Acabo de crear un EA ¿cuál es la mejor manera de licenciarlo para el mercado mql? Quiero presentar esta EA para vender en el mercado, pero no quiero añadir el tipo equivocado de concesión de licencias si no tengo que hacerlo. ¿Qué me recomiendan?

 
MOTIONCAPITAL:

¡Hola, chicos!

Espero que todo vaya bien.

Acabo de crear un EA ¿cuál es la mejor manera de licenciarlo para el mercado mql? Quiero presentar esta EA para vender en el mercado, pero no quiero añadir el tipo equivocado de concesión de licencias si no tengo que hacerlo. ¿Qué me recomiendan?

Solo hay una forma de ofrecer/licenciar en el MQL5 Market, lee las reglas:

https://www.mql5.com/es/market/rules

 
Aleksei Andarzhanov:
He escrito un Asesor Experto en MQL4. Quiero ponerlo en el Mercado. El Asesor Experto requiere dos indicadores personalizados, que no están disponibles en el terminal. No entiendo cómo adjuntarlos al Asesor Experto antes de enviarlo a probar. Y otra cosa. Las reglas dicen que el Asesor Experto debe ser ex5. Si está escrito en MQL4, ¿cómo hacerlo en ex5?

Es demasiado pronto para ir al mercado, si usted hace tales preguntas.

 
Evgeniy Zhdan:

Eres demasiado joven para estar en el mercado si estás haciendo preguntas como esa.

Lo resolví. Indicadores adjuntos al Asesor de Expertos a través de #recurso. Una cosa. Antes de eso, el Asesor Experto era rápido, voló rápidamente en el Probador, pero ahora la velocidad ha disminuido diez veces. He hecho todo de acuerdo a las reglas, como está escrito en la Guía, he insertado una función para encontrar la ruta al indicador GetRelativeProgramPath() - pero la velocidad es una tortuga, un día prueba 5 minutos....

 
Aleksei Andarzhanov:

Entendido. Indicadores adjuntos al Asesor de Expertos a través de #recurso . Pero una cosa ... Antes de eso, el Asesor Experto era rápido, volaba rápidamente en el Probador, pero ahora la velocidad ha disminuido diez veces. He hecho todo de acuerdo a las reglas, como está escrito en la Guía, he insertado una función para encontrar la ruta de acceso al indicador GetRelativeProgramPath() - pero la velocidad es tortuga, un día prueba 5 minutos....

¿Es el indicador de datos sondeados en cada tick?

 
Denis Nikolaev:

¿se sondean los datos del indicador en cada tick?

Sí, todo sigue igual en el código. Sólo ha cambiado la ubicación del indicador. Antes se solicitaba desde el terminal desde \\Indicators, y ahora se solicita desde el propio programa ex4.

#Fuente "\\Indicators\\\\##Contrast.ex4"

///////////

string path=GetRelativeProgramPath();

path=ruta+"::Indicadores##Contraste.ex4";

ContrasteMain_15 =NormalizeDouble(iCustom(NULL,15,ruta,coeff_1,0,0),Dígitos);

ContrastSignal_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,1,0),Digits);

//////////

cadena GetRelativeProgramPath()

{

int pos2;

//--- obtener la ruta absoluta al programa

string ruta=MQLInfoString(MQL_PROGRAM_PATH);

//--- encontrar la posición de la subcadena "\MQL4\"

int pos =StringFind(ruta,"\\MQL4\\\\");

//--- subcadena no encontrada - error

if(pos<0)

return(NULL);

//--- omitir el catálogo "\MQL4

pos+=5;

//--- omitir '\' innecesario

while(StringGetCharacter(ruta,pos+1)=='\\\')

pos++;

//--- si es un recurso, devuelve la ruta relativa al catálogo MQL4

if(StringFind(ruta,":::",pos)>=0)

return(StringSubstr(ruta,pos));

//--- encuentra un delimitador para el primer subdirectorio en MQL4 (por ejemplo, MQL4\Indicators)

//--- si no existe, devuelve la ruta relativa al catalogo MQL4

if((pos2=StringFind(ruta,"\\\",pos+1))<0)

return(StringSubstr(ruta,pos));

//--- devuelve la ruta relativa al subdirectorio (por ejemplo, MQL4Indicators)

return(StringSubstr(ruta,pos2+1))

}

 
Aleksei Andarzhanov:

Sí. Todo es igual que antes en el código. Sólo ha cambiado la ubicación del indicador. Antes se solicitaba desde el terminal desde \\Indicadores, y ahora desde el propio programa ex4.

#resource "\\\Indicators\\\\##Contraste.ex4"

///////////

cadena path=GetRelativeProgramPath();

path=path+"::Indicadores\\##Contraste.ex4";

ContrastePrincipal_15 =NormalizarDoble(iCustom(NULL,15,ruta,coeff_1,0,0),Dígitos);

ContrastSignal_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,1,0),Digits);

//////////

cadena GetRelativeProgramPath()

{

int pos2;

//--- obtener la ruta absoluta al programa

string ruta=MQLInfoString(MQL_PROGRAM_PATH);

//--- encontrar la posición de la subcadena "\MQL4\"

int pos =StringFind(ruta,"\\MQL4\\\\");

//--- subcadena no encontrada - error

if(pos<0)

return(NULL);

//--- omitir el catálogo "\MQL4

pos+=5;

//--- omitir '\' innecesario

while(StringGetCharacter(ruta,pos+1)=='\\\\')

pos++;

//--- si es un recurso, devuelve la ruta relativa al catálogo MQL4

if(StringFind(ruta,":::",pos)>=0)

return(StringSubstr(ruta,pos));

//--- encontrar el separador para el primer subdirectorio en MQL4 (por ejemplo, MQL4\Indicators)

//--- si no hay tal delimitador, devuelve la ruta relativa al catalogo MQL4

if((pos2=StringFind(ruta,"\\\",pos+1))<0)

return(StringSubstr(ruta,pos));

//--- devuelve la ruta relativa al subdirectorio (por ejemplo, MQL4/Indicators)

return(StringSubstr(ruta,pos2+1));

}

Menudo lío...
En iCustom() deberías sustituir dicha ruta por:
"::Indicadores\\\\##Contraste.ex4".