
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
En primer lugar, es incorrecto comparar Stochast_ real y entero 75, y en segundo lugar, es más correcto comparar su diferencia con cero.
Otro problema surge con el bloque de cierre de posiciones. Puse este bloque en mi Asesor Experto favorito. Sólo abre tratos estrictamente en la dirección de la tendencia (mi enhorabuena por ello...)
Pero dependiendo de la fuerza de la tendencia, el Asesor Experto es (¡y lo hace!) capaz de abrir constantemente varias operaciones, ¡una tras otra! Aquí es donde necesito el bloque de posiciones de cierre a la señal del indicador. Pero aquí está el problema: cuando se abren varias posiciones dentro de una tendencia y comienza la corrección contra la tendencia, el indicador del bloque da una señal de cierre. Como lo necesito.
Sin embargo, por alguna razón, no se cierran todas las posiciones abiertas. Básicamente, sólo la más temprana. Las que se han abierto más tarde no reaccionan a la señal de cierre, sino que continúan el movimiento. ¡Y además, - "la historia se repite como una farsa"! Con cada señal de cierre, sólo se cierra una, la posición abierta más antigua, y las demás siguen moviéndose. El lote de todos los puestos es constante.
Aquí está el gráfico del modo visual. El cierre por la señal del indicador se marca con un triángulo verde. Se ve claramente que sólo se cierra una posición cada vez por la señal. Me gustaría que se cerraran todos los puestos abiertos. Por favor, aconséjeme, ¿cuál es la razón?
Un recordatorio del código :
/********* Закрытие позиций **************************************** if (AutoClose) { //---------------------------------------------------------------------- if (ExpertOrder(MagicLong)) { //есть открытые ордера на покупку if(Stochast_1>=Up_lim && Stochast_0<Up_lim) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);//закрываем позицию return(0); // выходим } } //-------------------------------------------------------- if (ExpertOrder(MagicShort)) { //есть открытые ордера на продажу if(Stochast_1<=Low_lim && Stochast_0>Low_lim) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);//закрываем позицию return(0); // выходим } } //------------------------------------------------------- } //if (AutoClose)
Otro problema surge con el bloque de cierre...
¿Dónde está el bucle de OrdersTotal()?
No, ese no es el caso aquí. Las órdenes se definen de forma diferente:
Y esta versión del código es más cómoda para mí. Porque mis posiciones largas y cortas se abren independientemente unas de otras.
Sin embargo, sigue siendo el mismo con el cierre estándar. ...
Sin embargo, sigue siendo el mismo con el cierre estándar. ...
Puede intentar hacer un bucle inverso desde OrdersTotal hasta 0. Eso debería ayudar.
¿Cómo hacerlo? Por favor, escriba, si no es demasiado de una carga. Aquí está el gráfico por el camino - con el anterior "estándar": Todo es lo mismo - sólo una posición se cierra en la señal del indicador -
¿Cómo se hace eso?
for (int v=0; v<OrdersTotal(); v++)
escribir:
for (int v=OrdersTotal()-1; v>0; v--)
A mí me funciona.
¿Cómo se hace?
for (int v=0; v<OrdersTotal(); v++)
escribir:
for (int v=OrdersTotal()-1; v>0; v--)
A mí me funciona.
Tienes toda la razón. Aunque KimV tiene scripts y bibliotecas que implementan todo esto. Tal vez deberías buscarlo en su foro.