Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 656

 
Vitaly Muzichenko:

Usted en una rama de los teóricos del payaso, hay amor para dibujar no está claro qué, y no está claro por qué

Y hay muchos hilos similares en este foro, ¡al menos discútelos!

¡No entiendo a Vitaly! - ¿Hablas en serio? - ¿O estás bromeando?

Como es bien sabido, la teoría del comercio como tal no existe en la naturaleza.

Existen diferentes "ondas de Elliott", números de Fibonacci, funciones de Weierstrass, etc.

Pero no tiene nada que ver con la "teoría del comercio".

Y de qué "teoría del trading" podemos hablar, si el 99,9999% de los usuarios del foro, desarrolladores y traders no pueden construir la más simple media móvil de tendencia.

Así que dibujan el "no sé qué" y el "no sé por qué", como has dicho.

------------------------------------------------------------------------------

Y tampoco se puede "dibujar" correctamente la tendencia más sencilla. - Estoy seguro de ello. Perdóname por ser tan directo. Pero no puedes.

Pero tú hablas fácilmente de los PAYASOS, y hablas de algo que no sabes ni puedes hacer.

Esta es la paradoja a la que asistimos.

----------------------------------------------------------------------------------

Pero no es esto lo que más me sorprende, es algo totalmente distinto.

Veo miles de autónomos y todo tipo de académicos en el mercado de divisas ofreciendo sus servicios a todo el mundo.

Hay PUBLICIDAD por todas partes. Paga - y te ayudarán, paga - y te enseñarán ...

Muy bien - te pagaré, les respondo.

Pero muéstrame tus calificaciones.

¡¡¡CONSTRÚYEME LA TENDENCIA MÁS SENCILLA!!!

Nadie lo ha construido, ni los autónomos, ni los académicos, ni los desarrolladores, NADIE.

Tienen miedo de ser avergonzados. Porque no saben cómo hacerlo. Aunque a primera vista no hay nada difícil.

Este es el procedimiento estándar. Lo tenemos en MT4/MT5. Simplemente lo construyeron y demostraron su maestría.

Pero no existen esos casos. Todos dibujan "no entiendo qué" y "no entiendo por qué". ¿Todo el mundo es un payaso?

----------------------------------------------------------------------------------

Y tú dices: ¡Zoquete teórico!

Quienes son los más PAYASOS aquí - ¡¡¡Ni siquiera lo sé!!!

 
Artyom Trishkin:

1. ¿Por qué?

2. ¿Qué fue? ¿Cómo fue?

1. ¿Por qué? - para los cálculos.

2. ¿Qué fue? - Así que los números diferentes,Bid-buyPrice= 1,00000000000006551e-05 y no 0,00001. y por quédouble(Bid-buyPrice) dio 0,00001, los que requieren la conversión adoble, si he entendido bien, cuando Bid y buyPrice ya son de tipo doble?

 
Andrey Sokolov:

1. ¿Por qué? - Para los cálculos.

2. ¿Qué fue? - Así que los números diferentes,Bid-buyPrice= 1,00000000000006551e-05 y no 0,00001. y por quédouble(Bid-buyPrice) dio 0,00001, los que requieren la conversión adoble, si he entendido bien, cuando Bid y buyPrice ya son de tipo doble?

¿Por qué se convierten explícitamente los tipos a doble si se opera con números dobles? Te mostré una conversión de tipo double a tipo string cuando se imprime.

¿Estás seguro de que 1,000000000000000006551e-05 y 0,00001 son números diferentes? Formato de salida diferente - no ha especificado el método de salida en Comment(), por lo que es un formato de salida científico. Por eso escribí - o bien hacer una conversión explícita de tipo doble a cadena, o utilizar DoubleToString() con la precisión requerida.

Hay de todo en la ayuda - y ni siquiera está en la accesibilidad paso a paso, sólo un clic del ratón en el menú de documentación.

Aquí hay uno de la ayuda, he marcado lo que necesito:

Comentario

Muestra un comentario definido por el usuario en la esquina superior izquierda del gráfico.

void  Comment(
   argument,     // первое значение
   ...           // последующие значения
   );

Parámetros

...

[en] Cualquier valor, separado por comas. Se puede utilizar un carácter de avance de línea "\n" o "\r\n" para dividir la salida en varias líneas. El número máximo de parámetros es de 64. La longitud total del mensaje (incluyendo los caracteres de servicio no visualizables) no puede ser superior a 2045 caracteres (los caracteres superfluos se truncarán a la salida).

Valor devuelto

No hay valor de retorno

Nota

Las matrices no se pueden pasar a Comment(). Las matrices deben imprimirse como elementos.

Los datos de tipo doble se imprimen con 16 dígitos decimales después del punto decimal, y pueden salir en formato tradicional o científico, dependiendo de cómo sea más compacta la entrada. Los datos de tipo flotante se emiten con 5 dígitos decimales después del punto. Para obtener números reales con una precisión diferente o en un formato especificado explícitamente, utilice DoubleToString().

Los datos de tipo bool salen como "verdadero" o "falso". Las fechas se imprimen como AAAA.MM.DD HH:MI:SS. Para obtener la fecha en otro formato, utilice la función TimeToString(). Los datos del tipo de color se emiten como una cadena R,G,B o como un nombre de color, si este color está presente en el conjunto de colores.

Cuando setrabaja en el probador de estrategias en modo de optimización, no se ejecutala función Comment().

 
Artyom Trishkin:¿Estás seguro de que 1,000000000000000006551e-05 y 0,00001 son números diferentes? Formato de salida diferente - no ha especificado el método de salida en Comment(), por lo que es el formato de salida científico el que está siendo sustituido por el terminal. Por eso escribí - o bien hacer una conversión explícita de tipo doble a cadena, o utilizar DoubleToString() con la precisión deseada.

La pregunta surgió porque no funcionaba la condición en la que se comparaba la variable*Punto y el resultado de esta resta, en la que se restaba otra variable con el valor doble a Bid con el valor doble y el resultado de la resta debía ser convertido a doble de nuevo.

¿Por qué no es el tipo doble en el proceso de sustracción?

He leído la ayuda pero no he visto ninguna respuesta, así que pregunto aquí.

 
Andrey Sokolov:

La pregunta surgió porque no funcionaba la condición en la que se comparaba la variable*Punto y el resultado de esta resta, en la que se restaba otra variable con el valor doble a Bid con el valor doble y el resultado de la resta debía ser convertido a doble de nuevo.

¿Por qué no es el tipo doble en el proceso de sustracción?

He leído la ayuda pero no he visto ninguna respuesta, así que pregunto aquí.

Al restar el doble del doble, el resultado será el doble. Es algo seguro.

Pero sólo tú sabes con qué lo estás comparando.

 
Artyom Trishkin:

Cuando se resta el doble del doble, el resultado es el doble. Eso es seguro.

Pero sólo tú sabes con qué estás comparando.

extern double First_PartialTrailingStart=15;

if(Digits() ==3 | Digits()==5) {First_PartialTrailingStart*=10; }

if(double(Bid-buyPrice)>=First_PartialTrailingStart*Point) - funciona

if((Bid-buyPrice)>=First_PartialTrailingStart*Point) - no funciona

 
Andrey Sokolov:

extern double First_PartialTrailingStart=15;

if (Digits() ==3 | Digits()==5) {First_PartialTrailingStart*=10; }

if(double(Bid-buyPrice)>=First_PartialTrailingStart*Point) - funciona

if((Bid-buyPrice)>=First_PartialTrailingStart*Point) - no funciona

Todo funciona. Guión:

//+------------------------------------------------------------------+
//|                                                  TestCompare.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
#define   Bid       SymbolInfoDouble(Symbol(),SYMBOL_BID)
//--- input parameters
input uint     InpFirstPartialTrailingStart  =  15;   // Старт трала через (пунктов)
input uint     InpMultiplier                 =  10;   // Множитель пунктов
input int      InpPriceShift                 =  20;   // Отступ цены Buy от Bid
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double part_trailing_start=double(InpFirstPartialTrailingStart<1 ? 1 : InpFirstPartialTrailingStart);
double multiplier=double(InpMultiplier<1 ? 1 : InpMultiplier);
double value=part_trailing_start*multiplier*Point();
double shift=InpPriceShift*Point();
double buy_price=Bid-shift;
//---
   double res=NormalizeDouble(Bid-buy_price,Digits());
   bool   cmp=NormalizeDouble(res-value,Digits())>=0;
   Alert
     (
      "Старт трала через ",(string)value," пп."
      ", Цена Bid=",(string)Bid,
      ", цена Buy=",(string)buy_price,
      ", Bid-цена Buy=",DoubleToString(res,Digits()),
      ", Bid-buy_price>=value: ",string(cmp)
     );
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Todo funciona. El guión:

Gracias, lo investigaré.

 
¿Es posible obtener el precio de cierre de una vela en su último tick?
 
Andrey Sokolov:
¿Es posible obtener el precio de cierre de una vela en su último tick?
Este es el precio de la oferta. Otra pregunta: ¿cómo sabes que es la última garrapata?