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

 
Vitaly Muzichenko:
Usted ya tiene un precio determinado a partir del cual sólo debe realizar el arrastre utilizando el análogo de un arrastre simple, pero un arrastre simple se basa en el precio de apertura de la posición = OrderOpenPrice() y aquí se basa en el precio medio calculado y modifica todas las posiciones en un nivel

Sí, lo tengo.

Estoy mirando el código que he puesto antes y me da una imagen como esta en el probador

Es una función que quiero reducir el tamaño de esos comederos, porque hay un desagüe en uno de ellos.

como un ejemplo anterior -

Ahora tengo las manos llenas de cortos sobre el crecimiento del dólar-yen y sólo quiero añadir allí la función de seguro (si las pérdidas alcanzan un porcentaje del saldo - cerrar todo)
Archivos adjuntos:
TesterGraph.gif  19 kb
 
vitek2010:

No me refería a los ticks, sino a la necesidad de fijar las lecturas mínimas y máximas del buffer del indicador calculado en un marco temporal más pequeño, en el hueco de un marco temporal más grande que intentaré mostrar en la captura de pantalla En este caso, se toma el marco temporal más grande, y el H1 más pequeño (pero esta es la ventana de diferentes marcos temporales):

[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]

Consideraré la semana 05.12 (retículo rojo) este gráfico de barras del indicador mostrado arriba muestra claramente que el movimiento total del par al final de la semana fue descendente en 95 puntos, pero no muestra cuántos puntos fueron descendentes o ascendentes durante la semana.

Y aquí en esta pantalla se puede ver la dinámica de este indicador en el gráfico H1 durante esta semana:

[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]

El indicador tenía un valor mínimo de 400 y luego subió a 700 y cerró en 160 (la diferencia de números en dos pantallas no es importante)

necesito todos estos valores en un indicador en una barra del histograma y el mínimo, el máximo y el cierre (en este caso en la mecha). idealmente en el marco de tiempo actual del que se especifica en la configuración del marco de tiempo

Lo hice en MT4 insta a través de la copia del sitio MKL5

En el código que has mostrado arriba, la referencia es al TF actual, así que ¿de qué estamos hablando? Si accede a M5 desde W1, escríbalo así.

Si se trabaja con el marco de tiempo actual, entonces el precio de cierre está flotando en la barra cero, y en el resto - sólo un precio de cierre, no muchos, ¿cómo puedo construir un histograma en un valor?

Las imágenes se insertan utilizando el botón apropiado en la parte superior de la ventana de edición de mensajes, hay un montón de botones útiles allí, te recomiendo que aprendas.

 
trader781:

Sí, lo tengo.

Estoy mirando el código que he puesto antes y me da una imagen como esta en el probador

esa es la función que quiero recortar el tamaño de esos comederos, porque eventualmente hay un desagüe en uno de ellos

como un ejemplo anterior -

Abrí cortos por la subida del yen-dólar y quiero asegurarlo (si las pérdidas alcanzan el porcentaje del saldo - cerrar todo)
Me gustaría utilizar la función "bump" (si las pérdidas alcanzan un porcentaje del saldo). Y los términos de TC para refinar, si la plomada - a continuación, las entradas no están allí y no hay.
 
Vitalie Postolache:
Hay que "chocar" menos a menudo o renunciar a la martingala. Y refinar los términos de la ST, si usted está perdiendo - a continuación, las entradas no están allí y no hay.

Gracias por el consejo, pero sólo quiero que el código funcione como yo quiero, no se trata de rentabilidad/ganancia. Sólo quiero ver cómo son estas funciones.

Pues bien, me he encontrado con una expresión en el código anterior(_BuyLot>_SellLot?)Oferta:Oferta)

¿Cómo debo interpretarlo?

 
trader781:

Gracias por el consejo, pero sólo quiero que el código funcione como yo quiero, no se trata de rentabilidad/ganancia. Sólo quiero ver cómo son estas funciones.

Pues bien, me he encontrado con una expresión en el código anterior(_BuyLot>_SellLot?)Oferta:Oferta)

¿Cómo debo interpretarlo?

Lea aquí https://docs.mql4.com/ru/basis/operators/ternary
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
  • docs.mql4.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
 
trader781:

Gracias por el consejo, pero sólo quiero que el código funcione como yo quiero, no se trata de rentabilidad/ganancia. Sólo quiero ver cómo son estas funciones.

Pues bien, me he encontrado con una expresión en el código anterior(_BuyLot>_SellLot?)Oferta:Oferta)

¿Cómo debo interpretarlo?

Es así en la transcripción. La entrada anterior es más corta y suele tener un aspecto más agradable en el código, pero el sentido de la ejecución del código no cambia

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}
 
Vitaly Muzichenko:

Es así en la transcripción. La entrada anterior es más corta y muy a menudo tiene un aspecto más agradable en el código, pero no cambia el sentido de la ejecución del código

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}

donde xxx =_CompraLote

si no

xxx =_SellLot

¿verdad?


Alexey Viktorov:
Lea aquí https://docs.mql4.com/ru/basis/operators/ternary
Tengo un trozo de código poco llamativo escrito en un lenguaje sencillo, y aun así apenas se puede entender lo que dice desde mi punto de vista. Es un simple algoritmo escrito por un generador.
 
trader781:

donde xxx =_CompraLote

si no

xxx =_SellLot

¿verdad?

No, no lo es.

if(_BuyLot-_SellLot != 0) {
  if(_BuyLot > _SellLot) {
   AllAwerage= NormalizeDouble(Bid-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  } else {
   AllAwerage= NormalizeDouble(Ask-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  }
} else {
  AllAwerage=0;
}

Pero eso es un montón de líneas de código

 
trader781:

donde xxx =_CompraLote

si no

xxx =_SellLot

¿verdad?


Tengo un trozo de código poco llamativo escrito en un lenguaje sencillo y, sin embargo, apenas se puede distinguir lo que está escrito ahí desde mi punto de vista. Un simple algoritmo escrito por un generador.

No es así. El operador trampa asigna un valor a una variable, no a la expresión que se compara.

double precio=(_Lote de compra>Lote de venta?)Bid:Ask);

Y ya es hora de que entendamos los algoritmos, tanto los generados como los manuscritos. Aunque a veces es más fácil escribir a mano que averiguar lo que alguien ha metido ahí.

 
Vitalie Postolache:


Y los algoritmos ya deberían estar desmontados, tanto los generados como los manuscritos.

Bueno, todavía no utilizo clases, arrays, macros ni importo de bibliotecas de Windows. Todo a su tiempo.
Razón de la queja: