[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 37

 

Aquí está todo lo que se define en el indicador.

#property indicator_buffers 8 // Número de buffers
SetIndexBuffer(1,Set_SL); // asignación de la matriz
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Estilo de línea

No es necesario definir el TAMAÑO del búfer del indicador.

 
Buenas noches. Por favor, avise - en mi Asesor Experto, después del cierre exitoso de una operación rentable, se reabre una posición en la misma dirección que la operación anterior (por supuesto, se convierte en no rentable en el futuro). ¿Cómo puedo prohibir la reapertura de esas operaciones incorrectas?
 
xruss >> :
Buenas noches. Por favor, avise - en mi Asesor Experto, después del cierre exitoso de una operación rentable, se reabre una posición en la misma dirección que la operación anterior (por supuesto, se convierte en no rentable en el futuro). ¿Cómo puedo prohibir la reapertura de esas operaciones erróneas?

Elimine la condición en la que se abren sus operaciones de esta manera, e inserte la condición como le gustaría que se abrieran.

 
Vinin >> :

Y sería una buena idea definir primero el tamaño de la matriz.

Aquí está todo, lo que se define en el indicador.

#property indicator_buffers 8 // Número de buffers
SetIndexBuffer(1,Set_SL); // asignación de matriz
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Estilo de línea

No es necesario definir el TAMAÑO del búfer del indicador.

 
ikatsko >> :

No es necesario definir el TAMAÑO del búfer del indicador.

No es necesario. Significa buffer doble Set_SL[];

 
granit77 >> :

No es necesario. Significa buffer doble Set_SL[];

Así que todavía tengo la pregunta publicada aquí el 22.03.2009 16:05 (página anterior). Sí, aquí hay un añadido: todo fue durante el fin de semana, es decir, no hubo TICs


 
ikatsko писал(а) >>

Así que todavía tengo una pregunta.

>> Poner todo el código ahí, a ver si lo resolvemos.

 
xruss писал(а) >>
Buenas noches. Me pueden decir por favor - en mi Asesor Experto, después de un cierre exitoso de una operación rentable, hay una reapertura de una posición en la misma dirección que la operación anterior (por supuesto, se convierte en no rentable en el futuro). ¿Cómo puedo prohibir la reapertura de esas operaciones erróneas?

Basta con comprobar la última transacción cerrada. Pero hay que prever cuando todavía no hay historia

 
ikatsko писал(а) >>

Esto es todo lo que se define en el indicador.

#property indicator_buffers 8 // Número de buffers
SetIndexBuffer(1,Set_SL); // asignación de una matriz
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Estilo de línea

No es necesario definir el TAMAÑO del búfer del indicador.

Esto no estaba presente en el código original. Si lo hay, hay otra razón. Deberíamos revisar todo el código.

 
Figar0 >> :

Publica el código completo, vamos a intentar resolverlo

Dejé (para simplificar) sólo lo que constituye el problema en el código. Pongamos el indicador y veamos el problema, por así decirlo.

//+------------------------------------------------------------------+
//| iK_exp_stat_v30.mq4 ||
//| Ivan Katsko...
//| |
//+------------------------------------------------------------------+
#property copyright "Ivan Katsko"
#enlace de la propiedad ""

#property indicator_separate_window // Mostrar en una ventana separada
#property indicator_buffers 8 // Número de buffers
#property indicator_color1 DeepPink // Color de la primera línea
#property indicator_color2 Purple // Color de la segunda línea
#property indicator_color3 Red // Color de la tercera línea
#property indicator_color4 LawnGreen // Color de la cuarta línea
#property indicator_color5 Gold // Color de la quinta línea
#property indicator_color6 Azul // Color de la sexta línea
#property indicator_color7 SteelBlue // Color de la séptima línea
#property indicator_color8 Lime //color de la octava línea

externo interno
Depth=1; // Profundidad del historial: 1 - en Valor del historial.
extern double Level=10; // Nivel mínimo SL/TP

int History; // Número de barras en el historial calculado

doble
Value_TP[]; // Array - Valor de Take Profit
Av_Sum_TP[], // Matriz - Cantidad media de Take Profit
Sum_na_TP[], // Matriz - Cantidad incremental de Take Profit
Algoritmo[], // Algoritmo: 1 - "hoy es como ayer", -1 - "hoy no es como ayer"
Dirección[], // Dirección de la orden: 1 - compra, -1 - venta
Sum_TP[], // Array - Cantidad de Take Profit incremental adaptable
Set_TP[], // Establecer el Take Profit
Set_SL[]; // Establecer Stop Loss


//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Set_TP); // asignación del array Swap Up
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1); // Estilo de línea
SetIndexBuffer(1,Set_SL); // Asignar el swing de la matriz hacia abajo
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); // Estilo de línea
SetIndexBuffer(2,Sum_TP); // Asignar matriz al buffer
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2); // Estilo de línea
SetIndexBuffer(3,Direction); // Asignación de un array al buffer
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,4); // Estilo de línea
SetIndexBuffer(4,Algoritm); // Asignar un array al buffer
SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,1); // Estilo de línea
SetIndexBuffer(5,Value_TP); // Asignar un array al buffer
SetIndexStyle(5,DRAW_HISTOGRAM,STYLE_SOLID,2); // Estilo de línea
SetIndexBuffer(6,Sum_na_TP); // Asignar un array al buffer
SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,2); // Estilo de línea
SetIndexBuffer(7,Av_Sum_TP); // Asignar un array al buffer
SetIndexStyle(7,DRAW_HISTOGRAM,STYLE_SOLID,2); // Estilo de línea

//--------------------------------------------------------------------
switch (Period()) // Establecer el número de barras a examinar
{
caso 1: Historia = 30; break; // Periodo 1 minuto
caso 5: Historia = 24; break; // Periodo de 5 minutos
caso 15: Historia = 24; break; // período de 15 minutos
caso 30: Historia = 24; break; // Periodo 30 minutos
caso 60: Historia = 24; break; // Un periodo de una hora
caso 240: Historia = 30; break; // Período de 4 horas
caso 1440: Historia = 22; break; // Periodo diario
por defecto: Alert("Seleccione el periodo M1 a D1."); break; /periodo horario
}
Set_SL[Historia*Profundidad]=1,0*Nivel*Punto;
Alert("Init:"," Set_SL[",Historia*Profundidad,"]=",Set_SL[Historia*Profundidad]);//Especialmente mostrarlo para ver: muestra (digamos) 0,0001
//--------------------------------------------------------------------//----
return(0);
}
//+------------------------------------------------------------------+
//| Función de desinicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Función de iteración de indicadores personalizada |
//+------------------------------------------------------------------+
int inicio()
{
Alert("Inicio:"," Set_SL[",Historia*Profundidad,"]=",Set_SL[Historia*Profundidad]);/Y esto ya muestra 2147483647
return(0);
}


Archivos adjuntos: