[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 487

 
tol64:


)))) No, creo que sería mejor dejar al mago. Y dejar los pedidos pendientes.

Para ser más precisos, deja los símbolos mágicos que sean necesarios. Y si utiliza varios EAs en diferentes gráficos, también debe incluir los símbolos en la comprobación. Todavía no he llegado a este punto. ))


Normalmente comprobamos un símbolo y un magik - un símbolo para usar en diferentes instrumentos, no para cambiar un magik - y un magik para usar en un instrumento y diferentes marcos temporales - pero sólo se puede comprobar un magik, si se emite en variables externas
 
¿Pueden decirme si el corredor jmt:0 es del mismo color en verano y en invierno?
 
FOReignEXchange:

Nunca uso magos en absoluto. Aunque a veces hay unos cuantos artículos a la vez. Utilizo billetes. Es mucho más fácil comprobarlo a través de OrderSelect. Y la función OrderSend se vuelve más clara. Bueno, cada uno es dueño de su propia letra. Personalmente, nunca he tenido problemas sin magos.

El billete nunca va a ninguna parte. Esconveniente.

Exactamente... :) Cerrar una posición parcialmente abierta. Y luego tratar de cambiar la parada o tomar por el billete que tiene para esta posición. Tendrás lo mejor de ambos mundos. :)

Ejemplo: Tenemos una posición abierta con 1.0 lote, y el ticket #1. Debe cerrar 0,5 lotes de esta posición y mantener los 0,5 lotes restantes.

Acciones del Centro de Concesión:

1. Cerrar la posición nº 1 con todo el volumen (lote 1.0)

2) Abrir la posición 2 con un volumen de 0,5 lotes

A ti te parece un cierre parcial de la posición 1 y dejar el resto en el mercado. Sólo que el billete de esta posición no es lo que crees que es...

 
FOReignEXchange:


¿No lo entiendo? Estoy mirando en la ayuda, allí OrderSelect() utiliza una condición. Y no he visto ningún lugar sin verdad.

If es un operador de condición. Y debería haber una condición entre paréntesis. Me parece más lógico que sea así. Aunque puede que no haya ninguna diferencia.

Hagamos una analogía con el ruso. En mi opinión, es más conveniente leer el código mentalmente sustituyendo sus operadores por texto hablado:

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

Lo que tenemos aquí es:

Si la orden no ha sidoelegida, interrumpimos el bucle.

Ahora:

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;

Aquí es más conveniente:

sino se ha seleccionado ningún pedido, interrumpimos el bucle.

Lo mismo es absolutamente lo mismo, pero es más fácil de leer. Y hay menos escritura...

Y también podemos eliminar todas las cosas innecesarias y obtener aún menos código:

if(!OrderSelect(i,SELECT_BY_POS)) break;

¿Por qué? Porque seleccionamos una orden de mercado y es MODE_TRADES por defecto, así que podemos omitirlo en el parámetro de la función OrderSelect()...

Oh, sí... :)

 
artmedia70:

Oh, Dios... :)


)))

De acuerdo. Es de día, así que ¡buenos días! ))

Tengo otra anomalía que no entiendo a primera vista. La operación más sencilla:

double High_1  = NormalizeDouble(iHigh(Symbol(),Timeframe,1),Digits);
double new_val = NormalizeDouble(High_1 + PlsMns_point*Point,Digits);

Puedo ver en el diario:

Y literalmente en una imagen de espejo:

 double Low_1   = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);
 double new_val = NormalizeDouble(Low_1 - PlsMns_point*Point,Digits);

En el registro veo esta "cifra":

La variable externaPlsMns_point es de tipo int. Se pasa a una función. ¿Qué debo hacer para eliminar este malentendido? ))

 

La variable externa PlsMns_point es de tipo int .

Por la primera entrada del registro, parece ser de tipo Double, siendo int un entero.

 
Stells:

La variable externa PlsMns_point es de tipo int .

Según la primera entrada del registro es de tipo Double, int es un entero.


Y cuando se multiplica por el Punto, parece que se produce la conversión. Pero este no es el problema, ya que también he probado el doble.

P.D. Y además dos variantes idénticas. La única diferencia está en el reflejo. ¿Por qué?

 

Creo que te falta este valor:

double Low_1 = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);

tal vez descargar la historia

 
tol64:


)))

De acuerdo. Es de día, así que ¡buenos días! ))

Tengo otra anomalía que no entiendo a primera vista. La operación más sencilla:

Puedo ver en el diario:

Y literalmente en una imagen de espejo:

En el diario veo esta "figura":

La variable externaPlsMns_point es de tipo int. Se pasa a una función. ¿Qué debo hacer para eliminar este malentendido? ))

Imprime también los valores de las variables Alto_1 y Bajo_1. En general, imprime los valores pasados a la función, e imprime también los valores de retorno. Así verás de dónde partir. Las variables de las que se está seguro suelen tomar valores absolutamente inesperados. Es entonces cuando encontrarás el error que has cometido.
 

Buenos días, cómo puedo cambiar el volumen del archivo de registro (ajustar, borrar), que a veces se obstruye a valores enormes debido a los errores de EA. Necesito una manera de hacer esto por el propio Asesor Experto.