Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1125

 
BillionerClub:

¿Cómo convierto la posición del ratón en tiempo, pero sin tirar?

Tiene que haber al menos algún tipo de evento. ¿Funcionaría mover el ratón?
 
Alexey Viktorov:
Bueno, tiene que haber algún tipo de evento. ¿Quizás mover el ratón podría funcionar?

No, sólo leer las coordenadas y convertir durante la vela.

 
Alexey Viktorov:
Bueno, al menos debe haber algún evento. ¿Quizás mover el ratón podría funcionar?

Sí, gracias, tienes razón, es lo mismo. Aunque, por supuesto, una persona primero movería el ratón y luego pulsaría la tecla de acceso directo.

 
Resultó imposible utilizar las funciones de los eventos personalizados en los scripts. Ahora tengo que ejecutar el indicador y utilizarlo para ejecutar el script. En principio, qué diferencia hay si no se utiliza la función de arrastrar y soltar, sino las teclas de acceso rápido.
 
BillionerClub:
Es curioso, resulta que las funciones de eventos personalizados no se pueden utilizar en los scripts. Ahora tengo que ejecutar el indicador y ejecutar el script a través de él. En principio, qué diferencia hay si no uso la función de arrastrar y soltar, sino las teclas de acceso rápido.

Probablemente debería haber escrito en la documentación de forma más específica que OnChartEvent no funciona en los scripts, pero esa línea está en la documentación

La función puede ser llamada en Asesores Expertos e indicadores, debe tener tipo void y 4 parámetros:

Y los eventos personalizados no tienen nada que ver.

 
BillionerClub:

¿Cómo se convierte, la posición del ratón, en tiempo, pero sin tirar?

Algunos escriben sin signos de puntuación, otros hurgan... Creen que por hacer una pregunta todo el mundo debería saber de qué están hablando...

¿Fuiste a la escuela? ¿Fue difícil? ¿Crees que va a ser fácil aquí? ¿No preferirías volver a la escuela?

 
Alexey Viktorov:

Bueno, esta es la línea.

Sólo hay que poner un número en lugar de una fórmula y ...

Lo hago, pero me devuelve cero. Esta función en el indicador"A_D1", pongo su valor en el buffer, luego llamo al indicador desde el script, valor de salida a la impresora

  Lot= iCustom(NULL,0,"A_D1",0,1);
  Print("Lot ",DoubleToStr(Lot,2));

Si la función en el indicador con la cadena

RiskMony = floor(FreeMargin*risk/100);

imprimirá algún número 0.07, pero si

RiskMony =1.5;//

imprimirá 0.00

 

Gracias a todos por su ayuda y crítica, que todos tengan un buen día. He añadido todo el script al indicador a través de CHARTEVENT_CLICK como una función. Todo funcionó, la comodidad en los tiempos y la rapidez.


#include <Keys.mqh>
CKeys ckeys;

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- нажатие кнопки на клавиатуре 
   if(id==CHARTEVENT_CLICK)
     {

      if(ckeys.KeyCtrlState())
        {
        Запустить();        
        }

     }

  }



 
macleta:

Lo hago, pero me devuelve cero. Esta función en el indicador"A_D1", pongo su valor en el buffer, luego llamo al indicador desde el script, sale el valor a la impresora

Si la función en el indicador con la cadena

imprimirá algún número 0.07, pero si

imprimirá 0.00.

Int parece ir al redondeo binario, el truncamiento, y no es compatible con otros tipos de datos, sin pérdidas.

 
macleta:

Lo hago, pero me devuelve cero. Esta función en el indicador"A_D1", pongo su valor en el buffer, luego llamo al indicador desde el script, salida del valor a la impresora

Si la función en el indicador con la cadena

imprimirá algún número 0.07, pero si

imprimirá 0.00

¿Qué tal 15 o 20 en lugar de 1,5? ¿Quizás quieras obtener muy pocos beneficios en un TP demasiado largo?