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

 
Artyom Trishkin:

Puedes hacerlo. Pero ten cuidado. Para una posición abierta, devuelve el precio de cierre. Correspondientemente: para comprar - oferta, para vender - demanda

o. No sabía que se podía utilizar así.

Pensaba que OrderClosePrice() sólo se podía tomar de una posición cerrada.

la ayuda no dice nada al respecto)
 
igrok333:
o. No sabía que se podía utilizar así.

Pensaba que OrderClosePrice() sólo podía tomarse de una transacción cerrada.

no hay nada al respecto en la ayuda)

Característica no documentada. Pero hay algunas convenciones. No recuerdo cuáles en este momento. Tienes que preguntarle a Alexey @Alexey Viktorov - él escribió sobre ellos recientemente.

 
Artyom Trishkin:

Una posibilidad no documentada. Pero hay algunas convenciones allí. No puedo recordar cuáles son en este momento. Pregúntale a Alexey @Alexey Viktorov - él escribió sobre ellos recientemente.

¿Y este código?

¿No se inicia la variable por cero inmediatamente?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for (int i=OrdersTotal()-1; i>=0; i--)       
   {                                        
   if(OrderSelect(i,SELECT_BY_POS)==true)
      {   
         if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );                              
         if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
         
         if (pr==false) Print("закрытие ордера ", OrderSymbol() ," завершилось с ошибкой #",GetLastError());
         if (pr==true) Print("ордер ", OrderSymbol() , " ЗАКРЫТ");
       }
    }
  } 
 
igrok333:
¿Y este código?

¿La variable no se inicializa inmediatamente con cero?

No confíe en los valores predeterminados. Es mejor preocuparse por su valor al declarar una variable local: bool pr=false;

En general, por supuesto, es innecesario ponerlo ahí. Basta con comprobar lo que devuelve la función:

if(!OrderClose()) Imprime("Bummer");

 

¿Cómo puedo saber el precio del abanico de Fibonacci de una vela anterior? MQL5
ObjectGetValueByTime() no funciona, devuelve 0, luego alta, luego baja la vela

 

@ArtyomTrishkin

Buenas tardes. Por favor, ayuda. Dime qué pasa con mi indicador. No entiendo por qué no dibuja nada en absoluto.

https://www.mql5.com/ru/forum/224805#comment_6372281

Archivos adjuntos:
indicator.ZIP  21 kb
probability.zip  50 kb
 
Artyom Trishkin:

Esta es una característica no documentada. Pero hay algunas convenciones. No recuerdo cuáles en este momento. Tengo que preguntarle a Alexey @Alexey Viktorov - él escribió sobre ellos recientemente.

Fue hace mucho tiempo... pero aún así se las arregló para encontrarlo. Renat explica con claridad por qué es indeseable. Pero en mi opinión, no es tan malo. El problema puede ocurrir cuando recibimos una recotización al cierre del pedido. Si fijamos el precio de compra o de venta en la solicitud, siempre podemos actualizar el precio y volver a intentarlo. Y en el caso de especificar el precio de cierre OrderClosePrice(), tendremos que seleccionar la orden repetidamente para refrescar los datos de la misma.

Conclusión: Si no puedes, pero realmente lo necesitas, puedes hacerlo.

Применение функция OrderClosePrice() к открытым ордерам
Применение функция OrderClosePrice() к открытым ордерам
  • 2006.09.11
  • www.mql5.com
Вопрос к разработчикам: Корректно ли использование данной конструкции: OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,CLR_NONE) Проверка...
 

Por favor, aconséjeme. Leo datos de un archivo CSV, incluyendo una columna con un precio con un separador de lugar "." (1.22426) a través de FileReadString(handle), luego a través de la función StrToDouble, todo está bien. Pero también hay una columna con el precio, pero ya está delimitada por "," (1,22426) y StrToDouble no la lee. ¿Qué hacer, si no hay posibilidad de cambiar la coma por el punto en el propio CSV?

 
WinProject:

Por favor, aconséjeme. Leo datos de un archivo CSV, incluyendo una columna con un precio con un separador de lugar "." (1.22426) a través de FileReadString(handle), luego a través de la función StrToDouble, todo está bien. Pero hay una columna con el precio que ya está separada por "," (1,22426) y StrToDouble no la lee. ¿Qué puedo hacer si no puedo cambiar la coma por un punto en el CSV?


FileReadString


y entonces puedes cambiarla de una coma a un punto:


StringReplace

Reemplaza todas las subcadenas encontradas en la cadena con la secuencia de caracteres dada.

intStringReplace(
cadena&cadena,//patrón en el que se realizará la sustitución.
const stringfind,// buscó la subcadena
const string replacement// subcadena a sustituir
);

 
Vladislav Andruschenko:

FileReadString


y luego puede cambiar de una coma a un punto:


StringReplace

Reemplaza todas las subcadenas encontradas en la cadena con una secuencia de caracteres dada.

intStringReplace(
cadena&cadena,// cadena a sustituir
const stringfind,// buscó la subcadena
const string replacement// subcadena a sustituir
);


Gracias) , variable Cena=FileReadString(handle); inserto en la función Separator=StringReplace(Sepa,",","."); escribe error "conversión implícita de número a cadena" -.

no quiere leer el valor con el separador "," (1,22426) como una cadena, y StringReplace no funciona. ¿O lo estoy haciendo mal?

Razón de la queja: