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

 
Lol Kek:

¿Es posible que una variable de entrada de tipo booleano en la interfaz de parámetros de entrada permita hacer doble clic en lugar de alternar entre verdadero/falso para mostrar su texto? Gracias

enum  ENUM_ONOFF
{
On  = 1,  // On   тут любой текст
Off = 0   // Off  тут любой текст
};

input ENUM_ONOFF iValue = On; // Параметр
 
Vladimir Pastushak:

Gracias, pero eso es un poco diferente. Conozco este método - en este caso voy a tener un selector desplegable, cuando se selecciona, selecciona el valor.

Pero necesito que funcione como entrada bool yesOrNo = true; - cuando en los parámetros de entrada sólo hay que pulsar dos veces y cambia el valor al contrario y viceversa en los repetidos. Sólo que en lugar de verdadero y falso imprime tu texto

 
Lol Kek:

Gracias, pero es un poco diferente. Sé de esta manera - en este caso voy a tener un selector desplegable cuando tengo que seleccionar, seleccione el valor.

Necesito que funcione como la entrada bool yesOrNo = true; - cuando en los parámetros de entrada sólo hay que hacer clic dos veces y cambia el valor al contrario y viceversa en los repetidos. Sólo que en lugar de verdadero y falso imprime tu texto

No hay diferencia bool es verdadero y folse es 1, folse es 0

 

Hola. Soy un principiante verde. Algunos consejos sobre lo básico.

1 - ¿Por qué estoy programando en mql4? Me envía una plantilla para mql5 con funcionesint OnInit() y void OnTick()? No crean errores, pero sí funcionan. Estoy empezando a confundirme.

2 - Estoy escribiendo un Asesor Experto.void OnTick() - como veo reemplaza la función int start() yint OnInit()- en lugar deint init().

2.1 - He prescrito las variables a utilizar enint OnInit() y ha empezado a quejarse. He asignado un tipo de variable inmediatamente como aparece. La maldición se detuvo. ¿Por qué?

2.2 - Es fácil abrirórdenes de compra y venta pendientes. ¿Por qué no los abre? Aunque no veo ningún error.

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,Ask+50,3,0,0,"bs1",1,0,clrGreen);

int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,Bid+50,3,0,0,"ss1",-1,0,clrRed);

3 - Cómo atornillar un contador a la variable - número de orden. (BS1, SS1) - variables que nos dicen directamente de qué orden se trata. Así, cuando el EA siga buscando la orden necesaria, la detectará con la misma facilidad.¿Seguirá siendo el mismo identificador después de queOP_BUYSTOP cambie su valor aBUY? ¿Podré encontrarlo utilizando los datos de BS1?

4 - ¿Cuál es la forma más fácil de comprobar si alguna de lasórdenes pendientes ya está abierta o no, especialmente si se especifica un posible deslizamiento de 3 puntos en los parámetros de apertura? Es decir, explora un rango de precios, no sólo un precio y puede abrir a 1-3 pips por encima/por debajo del precio por defecto....

5. Por favor, indíqueme dónde puede conseguir un libro de texto o lecciones sobre MQL4. Quiero mejorar mis habilidades. Me pregunto. Puede ser una estrategia descrita en 2 líneas, pero cuando abro un Asesor Experto, veo 100500 líneas de código. Por qué... No entiendo el código :(


Estoy inundado de preguntas :)) Por favor, ayúdenme a entender

 
<br/ translate="no">.


Estoy inundado de preguntas )))) Por favor, ayúdenme a entender

2.2 : Pedir+50 es un poco exagerado :-) 50 por lo que he entendido la idea de los puntos... quiero decir 50 * _Punto... y normalizarlo. Es decir, en lugar de Preguntar+50 debería escribir NormalizarDoble(Preguntar+50*_Punto,_Dígitos).

 
@Maxim Kuznetsov- gracias).
 

Leído, entendido lo que significa cada uno de los parámetros, set.....

Mi venta pendiente no se abre. Ni siquiera da errores.¡GetLastError()=0! Abre para comprar como debería, pero ignora para vender. Me hace reír: ¿qué quiere? ))))

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
    if (GetLastError()==1);
    {
    Alert (GetLastError());
    }

Buenas personas, ¿dónde puedo obtener los conocimientos necesarios? ))

 
Gilmor:

Leído, entendido lo que significa cada uno de los parámetros, set.....

Mi venta pendiente no se abre. Ni siquiera da errores.¡GetLastError()=0! Abre para comprar como debería, pero ignora para vender. Me hace reír, ¿qué quiere? ))))

Buenas personas, ¿dónde puedo obtener los conocimientos necesarios? ))

Hay una pestaña interesante en el terminal llamada "Expertos". Aquí se escriben los errores de los expertos. Echa un vistazo. Y luego en su código.

 
int start()                                  // Спец. функция start()
  {                                          
  double prise;
  double lots = 0.01;  
  if (OrdersTotal()<1)
  {
  prise = MarketInfo(Symbol(), MODE_ASK);
  // int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
   /* if (GetLastError()==1);
    {
    Alert (GetLastError());
    }
    */
  }
 
   return;                                   // Выход из start()
  }

Artyom Trishkin:

Hay una pestaña interesante en el terminal: "Expertos". Contiene errores de Asesores Expertos. Puedes mirar a través de él. Y luego en su código.

Como puedes ver esta pestaña también se muestra supuestamente perfecta. Lo cargué, lo inicié. No tiene ningún error. :(

Y así, ¡gracias! No sabía del uso de esta pestaña.

 

Buenas tardes.

Llevo una semana torturándome tratando de encontrar información. Ayuda con el código))

Objetivo : Averiguar la diferencia de pips de apertura y cierre de una vela.

Suma y muestra en la pantalla, por 100 barras.

Al final, quiero ver el importe total en la pantalla.

void OnTick ()

{

doble precio mínimo =99999 , mp,cl,

precio máximo =-99999;

doble Índice = 0;

doble Índice1 = 0;

for(int i=100; i>0; i--)

{

mp = iLow (Symbol(), PERIOD_CURRENT, i);

cl = iClose(Symbol(), PERIOD_CURRENT, i);

if( mp < minprice)

precio mínimo = mp - cl;

Índice = miniprecio + mp ;

}

Gracias.

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
Razón de la queja: