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

 

Aquí incluso escribió las huellas



Hice una entrada, tal vez esto ayude ahttp://recordit.co/ot9m4jpiws

 
Roman Sharanov:

Aquí incluso escribió las huellas


En realidad, la solicitud de modificación no cambia los niveles que ya existen.
 
Vladimir Karputov:
No puedo realizar una solicitud de modificación sin cambiar los niveles ya existentes.

¿Cuál es la causa del error? Que estoy tratando de poner la parada de edad (cero en este caso) en la parada.

He añadido una comprobación en el registro, si la misma toma es la misma, no se hace la transferencia...pero sigue siendo la misma

¿O tengo que normalizar el tee, de lo contrario no se comprueba?

 
Roman Sharanov:

¿Cuál es la causa del error? Que estoy tratando de poner la parada de edad (cero en este caso) en la parada.

He añadido una comprobación en el registro, si la misma toma es la misma, entonces no se hace la transferencia...pero sigue siendo lo mismo

¿O tengo que normalizar el TP, de lo contrario no lo comprobará?

La posición tenía estas paradas: una sandía y tres melones. Quieres cambiar las paradas y, atención, envías un pedido: una sandía y tres melones.

Es decir, no hay realmente ningún cambio en las paradas.
 
Vladimir Karputov:
La posición tenía estas paradas: una sandía y tres melones. Quieres cambiar las paradas y, atención, envías un pedido: una sandía y tres melones.

Por lo tanto, no hay ningún cambio en las paradas.

Ya veo. Entonces, ¿cómo puedo cambiar ese take profit sin cambiar el nivel de stop?

 
Roman Sharanov:

Lo tengo. Entonces, ¿cómo puedo cambiar el take profit sin cambiar el nivel de stop?

No entiendes nada. Lee sobre las sandías y los melones hasta que se aclare.
 
Vladimir Karputov:
No entiendes nada. Lee sobre sandías y melones hasta que quede claro.

Hagamos abstracción del hecho de que tengo

Tengo una posición, su toma en el nivel 5, su entrada en el nivel 3, su parada en el nivel 2

Quiero llevarlo al nivel 6.

¿Cómo lo hago?

 
Roman Sharanov:

Hagamos abstracción del hecho de que tengo

Tengo una posición, su toma en el nivel 5, su entrada en el nivel 3, su parada en el nivel 2

Quiero mover la toma en el nivel 6.

¿Cómo lo hago?

Código completo. Símbolo. Plazo de tiempo. Fecha de inicio de la prueba. Gráfico (captura de pantalla). Archivo de registro de la pestaña "Registro".
Esto es lo mínimo.
Estoy esperando hasta mañana.
 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategia

FAQ de principiantes MQL5 MT5 MetaTrader 5

Roman Sharanov, 2019.05.23 09:43

void transposeTakeProfit(double tpLvl){
        for(int i = PositionsTotal() - 1; i >= 0; i--){
        PositionSelectByTicket(PositionGetTicket(i));
        if(PositionGetString(POSITION_SYMBOL) == _Symbol && PositionGetInteger(POSITION_MAGIC) == _magic){
                trade.PositionModify(PositionGetTicket(i), PositionGetDouble(POSITION_SL), tpLvl);
        }
   }
}

Pues bien, aquí sucede, se abre una operación, el nivel al que tengo que mover todo el take profit, si hay otras operaciones

Pero este es el primer comercio, va directamente a esta función e inmediatamente un error


PositionSelectByTicket es absolutamente innecesario aquí. Basta con dejar el seleccionado.

Para evitar intentar colocar un stop o una toma en el precio donde ya está colocado, debemos comprobar si el nuevo stop o toma es igual al anterior.

Y tenemos que entender cuántos spreads son el nivel mínimo para colocar un stop.

 

Hola a todos. Por favor, dígame qué demonios está pasando.

Estoy escribiendo código en mql5, quiero usar la función PositionClose, pero dice "¡Hombre! PositionClose' - la función sólo puede declararse en el ámbito global".

Yo estaba como, quiero decir que esta misma función está en #include <Trade\Trade.mqh> por defecto.


Comprobado. Está ahí.

¿Por qué se muestra, qué necesita, cómo cerrar la posición?


El propio código


string bumaga1 = "SBERP";
 int MinuteClose;
 
//---------- Закрываем позиции и удаляем ордера перед концом сессии старт
 MinuteClose =  MinuteMQL4();
 
 if (PositionSelect(bumaga1) && HOUR1 == 18 && MinuteClose > 15)
 {
                bool  PositionClose(bumaga1, 3);
 }
 
  if (!PositionSelect(bumaga1) && HOUR1 == 18)
  {
                                bool  OrderDelete(tik1);
   }
   
//---------- Закрываем позиции и удаляем ордера перед концом сессии энд
Razón de la queja: