[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
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
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í :)
Mido mi tiempo según la hora de Greenwich.
Ahora estoy dormido. Buenas noches.
¿Qué dicen en Cataluña?
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.
Mostrar SetVLine();
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?
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
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).
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.