[¡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 70

 

Ayuda para resolver el problema. Puede que ya haya molestado a todo el mundo aquí, pero por favor, ayuda. Si la bandera de la barra anterior es 1 se permite dibujar la flecha hacia abajo. Después de que se dibuje, establecemos una nueva bandera igual a -1. En el otro lado por el contrario. Pero lo que hago mal. No hay flechas sin comentarios. Todas las flechas con comentarios.

flag[i] = flag[i+1];             
  if (// flag[i] == 1 && 
//в вниз           
       ma13_0 > ma55_0 && macd[0] >= macd[1] && macd[1] >= macd[2] && macd[2] >= macd[3] && cci15_0 > 50 && cci170_0 > 0)
  {
       S[i] = High[i]+point*Point;                
       flag[i] = -1 ; // флаг показывает нормально пока закоментировано        
  }        
  if (// flag[i] == -1 && 
//в верх          
       ma13_0 < ma55_0 && macd[0] <= macd[1] && macd[1] <= macd[2] && macd[2] <= macd[3] && cci15_0 < 50 && cci170_0 < 0)
  {
       B[i] = Low[i]-point*Point;                
       flag[i] = 1 ;//флаг показывает нормально пока закоментировано         
   }
 
granit77:
No lo sé. Sergeev sabe, dijo que parece estar bien. También me gustaría ver cómo se escribe correctamente.
Sólo lo he corregido un poco, para que se vea algo.
- Pongo el indicador en una ventana separada, luego puedes volver a ponerlo

- La matriz macd[] estaba colgada en el aire, la convirtió en un indicador, aumentó la precisión
- bloqueó su condición compleja para la apertura, puso una simple para el ajuste
- cambié la condición de la bandera, al menos funciona.

Entonces puedes introducir gradualmente las condiciones, verás inmediatamente dónde está el fallo.

Gracias. Voy a echar un vistazo. Mientras yo escribía el post anterior tú publicaste el tuyo.
 
100yan:

¡AYUDA! Por favor, dígame, si cierro parte de una posición (por ejemplo, orden de 1 lote, y cerrar 0,5 lote) OrderClose billete debe cambiar? Mi probador dice que sí... ¿Cómo evitarlo? A continuación, un trozo de código de cierre...

No hay manera de evitarlo. Es el DC el que cambia el billete. Esencialmente está reabriendo con otro volumen, de ahí el nuevo billete. Por lo tanto, mantenga su propio registro de órdenes y después del cierre parcial de una posición, memorice su nueva entrada para el trabajo posterior. También puede proporcionar algún tipo de identificación de posiciones parcialmente cerradas para un correcto seguimiento posterior de estas posiciones por parte de su Asesor Experto.
 
artmedia70:
No hay manera de evitarlo. Este es el DC que cambia el billete. Esencialmente estás reabriendo una posición con un volumen diferente, de ahí la nueva entrada. Por lo tanto, mantenga su propio registro de órdenes y después del cierre parcial de una posición, memorice su nueva entrada para el trabajo posterior. También puede prever alguna identificación de las posiciones parcialmente cerradas para un correcto seguimiento posterior por parte del Asesor Experto.

Gracias. ¿Cambia el MagicNumber?
 
gince:
Hice un dibujo temporal del buffer flag[] - está vacío, ¿por qué? ¿Dónde está mi error?

su error es que flag[i+1] no está inicializado.

por lo que la comparación flag[i]==1 y flag[i]==-1 ¡nunca se ejecutará!

 
100yan:

Gracias. ¿Cambia el MagicNumber?
no
 
100yan:

Gracias. ¿Cambia el MagicNumber?
El MagicNumber no cambia en este caso, a menos que el código EA lo prevea.
 
DhP:
El MagicNumber no cambia en este caso, a menos que esté previsto en el código EA.
es posible hacer esto ???? por favor muéstrame cómo se puede hacer
 
sergeev:
¿sí? y esto se puede prever ???? por favor muestre cómo se puede hacer
Cuando una posición está parcialmente cerrada, puedes cambiar el magik. Estoy seguro de que puedes escribir esto fácilmente.
 
sergeev:

su error es que flag[i+1] no está inicializado.

por lo que la comparación flag[i]==1 y flag[i]==-1 ¡nunca se ejecutará!

Lo que entiendo es que no he inicializado la configuración de flag[i+1 ]. Si es así, ¿dónde y cómo hacerlo?

Si pongo 1, entonces cuando inicie el indicador, éste (el indicador) esperará el cambio.

flag[i+1]= 1;//начальная установка

for(int i=limit-1;i>=0;i--){ 
   flag[i] == flag[i+1];   
   if ( flag[i] == 1  &&   
        условие продажи){              
       Продажа[i] = High[i]+point*Point; 
       flag[i] == -1 ;
    }                     
    if (flag[i] == - 1  &&     условие покупки){          
              Покупка[i] = Low[i]-point*Point; 
              flag[i] == 1 ;}
    }
}    
Razón de la queja: