[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 572

 
neisseria:
Intenté crear un EA basado en una moneda, cara compra, cruz vende. Pero no funciona. Al probar en una ventana hay una inscripción: Al abrir la orden error 131, en la aplicación parecía - no es el volumen correcto. He mirado con atención y no encuentro ningún error. Hay un punto en todas partes, para separar la parte entera, no una coma. Por favor, ayuda. El código está en el archivo.
¿La cuenta permite un lote de 0,01? ¿Tal vez un lote mínimo de 0,1?
 
neisseria:
Traté de crear un EA, basado en la moneda, águila comprar, colas vender. Pero no funcionó. Al hacer la prueba, me aparece el siguiente mensaje en la ventana: Error 131 al abrir la orden, lo he buscado en la aplicación, no es el volumen correcto. He mirado con atención y no encuentro ningún error. Hay un punto en todas partes, para separar la parte entera, no una coma. Por favor, ayuda. El código está en el archivo.


uso:

MinLot= MarketInfo( símbolo(),MODE_MINLOT )// Tamaño mínimo de lote posible

StepLot= MarketInfo( símbolo(),MODE_STEPLOT )// Paso mínimo de cambio de lote

El lote debe ser >= MinLot y normalizado usando Lot=NormalizeDouble(Lot,Dig);

donde Dig=Número de dígitos_después_del_post PasoLota, es decir, PasoLota=0,01 - Dig=2 ... StepLot=0.1 - Dig=1 .....

Por ejemplo, con MinLot=0,1 y StepLot=0,01:

El lote puede ser de 0,1, 0,11, 0,12, etc. Pero no puede ser 0,99, 0,98 y ciertamente no puede ser 0,998,0,999, 0,111, 0,101.

 
Sepulca:


uso:

MinLot= MarketInfo( símbolo(),MODE_MINLOT )// Tamaño mínimo de lote posible

StepLot= MarketInfo( símbolo(),MODE_STEPLOT )// Paso mínimo de cambio de lote

El lote debe ser >= MinLot y normalizado usando Lot=NormalizeDouble(Lot,Dig);

donde Dig = Número de dígitos_después_del_punto_especimal StepLota, es decir, StepLot=0,01 - Dig=2 ... StepLot=0.1 - Dig=1 .....

Por ejemplo, con MinLot=0,1 y StepLot=0,01:

El lote puede ser de 0,1, 0,11, 0,12, etc. Pero no puede ser 0,99, 0,98 y ciertamente no puede ser 0,998,0,999, 0,111, 0,101.


Por ejemplo, con MinLot=0,1 y StepLot=0,01:

El lote puede ser de 0,1, 0,11, 0,12, etc. Pero no puede ser 0,99, 0,98.

De ninguna manera... ¿en serio?

88 u 89 veces aumentan el lote por el paso mínimo. Por ejemplo, el lote de cada posición posterior que se abra debe incrementarse en el paso mínimo. Es decir, añadir sin más el paso de cambio de lote mínimo al lote de la posición anterior. La posición 98 que se abra tendrá el lote 0,98, respectivamente, el lote de la posición 99 se incrementará en un paso mínimo 0,98+0,01=0,99...

¿Crees que el DT no dejará de abrir con tal cantidad?

 
artmedia70:

Por ejemplo, con MinLot=0,1 y StepLot=0,01:

El lote puede ser de 0,1, 0,11, 0,12, etc. Pero no puede ser 0,99, 0,98

De ninguna manera... ¿en serio?

88 u 89 veces aumentan el lote por el paso mínimo. Por ejemplo, el lote de cada posición posterior que se abra debe incrementarse en el paso mínimo. Es decir, añadir sin más el paso de cambio de lote mínimo al lote de la posición anterior. La posición 98 que se abra tendrá el lote 0,98, respectivamente, el lote de la posición 99 se incrementará en un paso mínimo 0,98+0,01=0,99...

¿Cree que las empresas de corretaje no permitirán la apertura con un lote así?


Maldita sea .... Por supuesto, se equivoca. No puede ser 0,09, 0,08.

Y estúpido o no estúpido - depende del escritor de EA para decidir.

 
kellin:
No, por supuesto que tengo que abrir con una orden de compra o de venta en la apertura de la siguiente o una de las siguientes barras. Y también pienso cerrar por un orden, asignándolo por el número de puntos desde la apertura.

Más tarde (en el fin de semana) voy a publicar aquí el código para la apertura de la orden de mercado - ya sea comprar o vender (a su elección), en la apertura de una nueva vela.
 
Sepulca:


uso:

MinLot= MarketInfo( símbolo(),MODE_MINLOT )// Volumen mínimo de lote posible

StepLot= MarketInfo( símbolo(),MODE_STEPLOT )// Paso mínimo de cambio de lote

El lote debe ser >= MinLot y normalizado usando Lot=NormalizeDouble(Lot,Dig);

donde Dig = Número de dígitos_después_del_punto_especimal StepLota, es decir, StepLot=0,01 - Dig=2 ... StepLot=0.1 - Dig=1 .....

Por ejemplo, con MinLot=0,1 y StepLot=0,01:

El lote puede ser de 0,1, 0,11, 0,12, etc. Pero no puede ser 0,99, 0,98 y mucho menos 0,998,0,999, 0,111,0,101

Ya conozco esta información. En el lote mínimo de mi broker 0,01, paso 0,01. Lo he cambiado a 0,1 y a 1 lote por conciencia, no sale nada, el error está en otra cosa.
 

Por cierto, no tengo intención de utilizar este Expert Advisor, sólo estoy aprendiendo el lenguaje de programación. De hecho, decidí por diversión ver cómo funcionaría en el probador, acabo de leer que el generador de números aleatorios no da números tan aleatorios, ya que se repite. El problema no parece estar en la falta de ortografía del número sino en el algoritmo, ¿en qué consiste el problema?

 
T-G:
Ayuda con un problema.
La pregunta es la siguiente: tengo un búho martin, abre las rodillas después de un número determinado de puntos, pero con un nuevo majik. Resulta que la señal abre una o tres órdenes con majic = 1, luego menos la siguiente rodilla en una señal2 abre una o tres órdenes con majic 2 y así sucesivamente.
Así que cada rodilla va de 1 a 3 órdenes con su propia majadería.

Ahora el punto de la pregunta es cómo calcular en un bucle las órdenes de cada majico, por ejemplo, he intentado hacerlo así

¿Qué te parece esto?

int Count() {
   int i, Сounts[100];
   
   for (i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()>Magic+100)   continue;
         if (OrderType()>1)                  continue;
         Сounts[OrderMagicNumber()]++;
         }
      }//for 
   Comment(10, Сounts[0] +"="+ Сounts[1] +"="+ Сounts[2]);
}

No lo comprobé, lo redacté en mi rodilla...

 
artmedia70:

¿Qué tal esto?

No lo comprobé, sólo lo esbocé en mis rodillas...

No funcionó, pero me diste la respuesta correcta, ya estoy listo, gracias.
 
Si alguien sabe, tengo una pregunta: necesito un script en bucle que "pulse" el botón "Refrescar" una vez cada 0,5 segundos en el gráfico actual y reinicie los indicadores. "He intentado hacer un script en bucle utilizando WindowRedraw(). He intentado hacer un script en bucle utilizando WindowRedraw() y Sleep(500), pero los indicadores no se reinician.
Razón de la queja: