[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 297

 
hoz:


No existe el ideal. Sólo observo a la gente que escribe, por así decirlo, para tener una visión general. A veces encuentro algunos trucos que puedo aprender de otros. A veces veo que el código no es legible en absoluto. Como el de tarasBY, por ejemplo. Por mucho que lo intente, no se puede leer. Puedo leerlo en segmentos claros y luego ¡bam! no puedo entender nada más. Y así en muchos lugares.

Un amigo me pidió que descompilara, y es más fácil de entender allí que los códigos de tarasBY. Tal vez sea algo normal, pero dudo que muchos descargadores los entiendan. Quien sea demasiado listo para entenderlos, no los descargará... Entonces surge la pregunta de por qué publicarlos allí :)

¡Yo tampoco uso nada de él! Por qué intentar hacer algo a ciegas, hay que dejar todo claro, para qué. Y la publicación es para la publicidad, y si todo está claro, lo descargarán y no pedirán nada.
 
tara:
Mido mi tiempo según la hora de Greenwich.
Mi horario es una hora menos que el del servidor y sigo viviendo en Europa Central. Y deberías tener tres horas más si el servidor es GMT. Me voy a la cama. ¡Que tengas una buena noche sin explosiones!
 

Ahora estoy dormido. Buenas noches.

¿Qué dicen en Cataluña?

 
¡Buenas noches! ¡Pero ahora ya es de madrugada! ¡Pero es tarde en la noche!
 
GaryKa:
En absoluto
Sí, es el cociente de dos logaritmos naturales. Ahora mira la fórmula de "Sustitución de la base del logaritmo". Así que el resultado es que esta expresión
es equivalente al logaritmo decimal de bd_LOTSTEP. En MQL no hay una función separada para el logaritmo decimal, por lo que se utiliza esta conversión.


Esto es lo que estaba diciendo. El código de mi lengua... Creo que, o bien el programador no tiene miedo a las matemáticas, o bien es una especie de protección contra la lectura del código (es broma). No sé, mi opinión personal es que las matemáticas simplifican el algoritmo al igual que switch...case en lugar de if.
 
rigonich:

Mostrar SetVLine();
 
Hola, he tratado de entender cómo insertar indicadores personalizados en EA. Compilado bien, pero escribe absolutamente

datos erróneos, por favor indique dónde está el error.




Inserto todo el código, excepto el "copyright"

extern int PeriodP=12;
extern int TimeFrame=0;
double P_up0,P_up1,FrApPrise;
//+------------------------------------------------------------------+
//| función de inicialización experta |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit() xml-ph-0016@deepl.in
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int start()
{
//----

P_up0=iCustom(Symbol(),Period(), "Price channel",PeriodP,0,0)
P_up1=iCustom(Symbol(),Period(), "rezerv-xrust",FrApPrise,0,0);
{Comment("show price channel=",P_up0,"\n", "show xrust=",P_up1);}
//----
return(0);
}



utiliza dos indicadores

1)https://www.mql5.com/es/code/8908

Price channel.mq4

2)https://www.mql5.com/ru/code/8318

Fractal_Level_Xrust_V2.mq4

por favor ayuda, ¿por qué 1 muestra y el otro no quiere?
 
gyfto:

Eso es lo que estaba diciendo. Condicional mi lengua... Creo que, o bien el programador no tiene miedo a las matemáticas, o bien es una especie de protección contra la lectura del código (es broma). No sé, mi opinión personal es que las matemáticas simplifican el algoritmo al igual que switch...case en lugar de if.

Hay un fallo en ese código. Aquí, sacado de contexto:


La cuestión es que la expresión

MathCeil(MathAbs(MathLog( 0.25 )/MathLog(10))) = 1

Por lo tanto, el valor del lote se redondea a un decimal.


Sin embargo, siga leyendo, tal vez le sirva de ayuda.

 

Una pequeña adición a la descripción de mi pregunta.He rehecho el indicador de crunch.Aquí está el código

#property copyright "#Copyright © 2008, XrustSolution.#"
#enlace de propiedad "#xrust.ucoz.net#"

#propiedad ventana_del_gráfica_del_indicador
extern int TimeFrame=0;//Si=0, entonces el actual


extern string FrApNam="Ap";//nombre de la línea correspondiente al Fractal ascendente.
extern string FrDnNam="Dn";//nombre de la línea correspondiente al Fractal hacia abajo

//-----------------------------------------------------------------------------+
doble FrPrise;
doble FrApPrise=0,FrDnPrise=0;

//+----------------------------------------------------------------------------+
void init(){

if(TimeFrame==0){TimeFrame=Period();}
IndicatorShortName("Factal_Level_Xrust "+TimeFrame);
FrApNam=StringConcatenate(FrApNam,TimeFrame);
FrDnNam=StringConcatenate(FrDnNam,TimeFrame);
return;}
void deinit(){
ObjectDelete(FrDnNam);
ObjectDelete(FrApNam);
Comentario(" ");
return;}
//+----------------------------------------------------------------------------+
int inicio()
{
int barras_contadas=IndicadorContado();
int límite;
doble tmp;
int i, j,k;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Barras_contabilizadas;
//-----------------------------------------------------------------------------+

LineAp();
LineDn();
string FAP=DoubleToStr((FrApPrise),Dígitos);
string FDP=DoubleToStr((FrDnPrise),Dígitos);
int diap=MathRound((FrApPrise-FrDnPrise)/Punto);
{Comentario("Marco temporal="+Marco temporal+
"\nApPrise111 ="+FAP+
"\nDnPrise ="+FDP+
"\N - Canal Fractal ="
+diap+"Punto");}

return(0);
}
//-----------------------------------------------------------------------------+
// busca la línea horizontal por nombre redibuja si el precio ha cambiado |
//-----------------------------------------------------------------------------+
void LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
//Comentario(FrPrise);
if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);

WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
// busca una línea horizontal por nombre, redibuja si el precio ha cambiado |
//-----------------------------------------------------------------------------+
void LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);

WindowRedraw();
return;}
//-----------------------------------------------------------------------------+
//Kim ¡Respeto y respeto!! |
//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Versión: 07.10.2006
//| Descripción : Buscar el fractal más cercano. Devuelve el nivel de precios. |
//+----------------------------------------------------------------------------+
//| Parámetros: |
//| sy - nombre del instrumento ("" o NULL - símbolo actual) |
//| tf - timeframe ( 0 - TF actual) ||
//| modo - tipo de fractal (MODE_LOWER|MODE_UPPER) ||
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
if (sy=="" | sy=="0") sy=Símbolo();
doble f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY"<0) d=4; else d=2;

for (s=2; s<100; s++) {
f=iFractales(sy, tf, mode, s);
if (f!=0) return(NormalizeDouble(f, d))
}
Print("FindNearFractal(): Fractal no encontrado");
return(0);
}

No necesito líneas en el gráfico, sólo necesito dos números (uno de cada uno de estos indicadores de espíritu).

 
palomnik:

Una pequeña adición a la descripción de mi pregunta.Reworked el indicador de crujido.Aquí está el código

Si quieres obtener una respuesta, respeta a la gente que lee tus garabatos.

El código debe ser insertado usando el botón SRC - está encima de la caja de edición de tu post entre otras herramientas de formato.