[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 74
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Una matriz de 8 puntos es M[8][2] en lugar de M[8][8].
¿Son los "tres" preseleccionados o qué?
Bueno, sí, el array es por supuesto M[8][2]. Los tres cuales son cualquiera de la matriz que tiene que ser definida en el proceso de cálculo. Podemos formularlo de forma ligeramente diferente: necesitamos encontrar las coordenadas del centro de una circunferencia y las coordenadas de tres puntos lo más cercanos posible a esa circunferencia.
Y luego OrderOpenPrice() .
¿así que lo definirá por sí mismo?
¿para que lo identifique él mismo?
Usted mira a través de las órdenes abiertas, y para cada orden, el comando OrderOpenPrice() da el valor del precio al que se abrió la orden.
Asigna su valor a alguna variable y utilízala.
En resumen, el problema se reduce a esto: hay tres puntos. Hay que dibujar un círculo de radio r tal que la suma de los cuadrados de las distancias de ellos al círculo sea mínima.
En realidad, es una gran tarea, que no puede resolverse en un abrir y cerrar de ojos. Un círculo no es una línea recta. Cuál de las dos distancias tomar no es en absoluto evidente.
He aquí un ejemplo concreto:
Muestra la disposición correcta.
¿Qué quieres decir con "lo detectará"?
Usted mira a través de las órdenes abiertas, y para cada orden, el comando OrderOpenPrice() da el valor del precio al que se abrió la orden.
Asigna su valor a alguna variable y utilízala.
Yo lo entendí así. Lo pondrá automáticamente y lo utilizará para la comprobación. ?
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Ask>(OrderOpenPrice()+(AD1*Point) )
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
return(0);
}
¿Parece que está bien?
Yo lo entendí así. Lo pondrá automáticamente y lo utilizará para comprobarlo. ?
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Ask>(OrderOpenPrice()+(AD1*Point) )
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
return(0);
}
¿Parece que está bien?
No del todo. ¿Y si no se selecciona ninguna orden? ¿Dónde está la normalización del precio cuando se envía una orden comercial?
Los pedidos se cierran en un bucle, lo que significa que la búsqueda debe hacerse no desde cero, sino desde OrdersTotal()-1 hasta >=0
En resumen, el problema se reduce a esto: hay tres puntos. Tienes que dibujar un círculo de radio r tal que la suma de los cuadrados de las distancias de ellos al círculo sea mínima.
En realidad es una gran tarea, no es algo que se pueda hacer en un abrir y cerrar de ojos. Un círculo no es una línea recta. Cuál de las dos distancias tomar no es en absoluto evidente.
Un ejemplo concreto:
Muestra la disposición correcta.
Creo que sí:
Elenn: Думаю, что так:
No, no aceptaré esa tarea. En el proceso de cálculo propiamente dicho, tendrás que decidir qué distancias tomar (hay dos distancias desde cualquier punto al círculo). Nada bonito.
Tal vez GA pueda ayudar a encontrar el mínimo local aquí. Pero no soy bueno en eso.
P.D. No has especificado la función objetivo: suma de cuadrados de las distancias o suma de las propias distancias.
En realidad es una gran tarea, no es algo que se pueda hacer en un abrir y cerrar de ojos. Un círculo no es una línea recta.