Hola, podrías aconsejar por favor, en el código de abajo sin el bloque de bucle (que viene después del CopyByffer), el indicador se ejecuta normalmente, pero si se incluye un ciclo comparando el precio de una vela con el precio de una de las barras, las propias barras después del inicio no se muestran, ¿cuál podría ser el problema?
#property indicator_chart_window#property indicator_buffers3#property indicator_plots3#property indicator_type1DRAW_LINE#property indicator_color1 Olive
#property indicator_type2DRAW_LINE#property indicator_color2 Green
#property indicator_type3DRAW_LINE#property indicator_color3 Olive
inputint peroid = 20; // период полос 1inputint bands_shift= 0; // смещение полос 1 inputdouble deviation = 2.3; // отклонение полос 1inputENUM_APPLIED_PRICE applied_price=PRICE_CLOSE; // тип цены double Base[]; // массив для BASE_LINE индикатора iBandsdouble Upper[]; // массив для UPPER_BAND индикатора iBandsdouble Lower[]; // массив для LOWER_BAND индикатора iBandsint iBands1_handle; //Указатель на первый индикатор int iBands2_handle; //Указатель на первый индикатор int g_i_Window;
intOnInit()
{
g_i_Window=ChartWindowFind();
SetIndexBuffer(0,Base,INDICATOR_DATA);
SetIndexBuffer(1,Upper,INDICATOR_DATA);
SetIndexBuffer(2,Lower,INDICATOR_DATA);
iBands1_handle=iBands(NULL,PERIOD_CURRENT,peroid,bands_shift,deviation,applied_price);
if(iBands1_handle==INVALID_HANDLE){
Alert("Неудалось загрузить индикатор, повторите попытку");
return(-1);
}
return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate (constint rates_total, // размер входных таймсерий constint prev_calculated, // обработано баров на предыдущем вызовеconstdatetime& time[], // Time constdouble& open[], // Open constdouble& high[], // High constdouble& low[], // Low constdouble& close[], // Close constlong& tick_volume[], // Tick Volume constlong& volume[], // Real Volume constint& spread[]) // Spread
{
int i;
int shift = 0;
int shift1;
int shift2;
int shift3;
string alert;
double O, O1, O2, C, C1, C2, L, L1, L2, H, H1, H2;
shift1 = shift;
shift2 = shift + 1;
shift3 = shift + 2;
O = open[shift1];
O1 = open[shift2];
O2 = open[shift3];
H = high[shift1];
H1 = high[shift2];
H2 = high[shift3];
L = low[shift1];
L1 = low[shift2];
L2 = low[shift3];;
C = close[shift1];
C1 = close[shift2];
C2 = close[shift3];
i = (prev_calculated==0)?1: prev_calculated;
i = (prev_calculated==rates_total)?rates_total-1: i;
CopyBuffer(iBands1_handle,0,0,rates_total-1,Base);
CopyBuffer(iBands1_handle,1,0,rates_total-1,Upper);
CopyBuffer(iBands1_handle,2,0,rates_total-1,Lower);
for (i = i; i < rates_total; i++)
{
if(H > L && O > Lower[i])
{
int time_waiting = (int)TimeLocal() + 1;
while(TimeLocal() < time_waiting){}
Comment("True");
return(0);
}
elseComment("False");
}
if (prev_calculated==0) ChartRedraw();
return(rates_total);
}
En una situación necesitaba hacer barras de colores o candelabros de colores. Utilizan 4 buffers de valores y 1 buffer de color. La otra, necesitaba mostrar una línea de color, donde 1 buffer de valor y 1 buffer de color.
La llamada y el cambio de las propiedades del indicador provocan la inicialización del indicador. En consecuencia, si la configuración contiene barras o velas, entonces una opción de inicialización. Si la línea, la otra opción de inicialización.
Es imposible cambiar el número de topes en medio del indicador, que es lo que dijo Alexey Vyazmikin sin conocer las otras opciones.
En una situación necesitaba hacer barras de colores o candelabros de colores. Utilizan 4 buffers de valores y 1 buffer de color. Otra, necesitaba mostrar una línea de color, donde 1 buffer de valor y 1 buffer de color.
La llamada y el cambio de las propiedades del indicador provocan la inicialización del indicador. En consecuencia, si la configuración contiene barras o velas, entonces una opción de inicialización. Si la línea, entonces otra opción de inicialización.
Es imposible cambiar el número de topes en medio del indicador, que es lo que dijo Alexey Vyazmikin, sin conocer otras opciones.
Si decides escribir mi apellido en ruso, suena como Vyazmikin.
En cuanto a mis sospechas, creo que la respuesta es correcta a la pregunta planteada. Sin una explicación de las necesidades no tiene sentido decir lo contrario. La reinicialización es un reinicio del programa, está claro que se puede cambiar cualquier cosa en la configuración.
Si se escribe mi apellido en ruso, suena como Vyazmikin.
En cuanto a mis sospechas, creo que la respuesta a la pregunta planteada es correcta. Sin una explicación de las necesidades, no tiene sentido decir lo contrario. La reinicialización es un reinicio del programa, está claro que se puede cambiar cualquier cosa en la configuración.
¿Tanto ofende la falta de un cartel suave?
He hablado de incorrecciones, en mi opinión he hecho hincapié exactamente en la corrección de la respuesta.
Me mueve la iluminación, no la ofensa. ¿Por qué iba a ofenderme, sabías cómo se escribe y querías ofenderme? Ni siquiera consideré esa opción, ¿fue para nada?
Me motiva la iluminación, no el resentimiento. ¿Por qué iba a ofenderme, sabías escribir correctamente y querías ofenderme? Ni siquiera consideré esa opción, ¿fue para nada?
Hola, podrías aconsejar por favor, en el código de abajo sin el bloque de bucle (que viene después del CopyByffer), el indicador se ejecuta normalmente, pero si se incluye un ciclo comparando el precio de una vela con el precio de una de las barras, las propias barras después del inicio no se muestran, ¿cuál podría ser el problema?
Resultado:
No se puede.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
Alexey Viktorov, 2018.05.30 15:53
Bueno, no tan dinámicamente, pero una vez a través de la reinicialización se puede. Lo hice.
Si puede detallar, por favor describa
si puede ser más específico
¿Cuánto más detallado?
En una situación necesitaba hacer barras de colores o candelabros de colores. Utilizan 4 buffers de valores y 1 buffer de color. La otra, necesitaba mostrar una línea de color, donde 1 buffer de valor y 1 buffer de color.
La llamada y el cambio de las propiedades del indicador provocan la inicialización del indicador. En consecuencia, si la configuración contiene barras o velas, entonces una opción de inicialización. Si la línea, la otra opción de inicialización.
Es imposible cambiar el número de topes en medio del indicador, que es lo que dijo Alexey Vyazmikin sin conocer las otras opciones.
¿Cuántos detalles más?
En una situación necesitaba hacer barras de colores o candelabros de colores. Utilizan 4 buffers de valores y 1 buffer de color. Otra, necesitaba mostrar una línea de color, donde 1 buffer de valor y 1 buffer de color.
La llamada y el cambio de las propiedades del indicador provocan la inicialización del indicador. En consecuencia, si la configuración contiene barras o velas, entonces una opción de inicialización. Si la línea, entonces otra opción de inicialización.
Es imposible cambiar el número de topes en medio del indicador, que es lo que dijo Alexey Vyazmikin, sin conocer otras opciones.
Si decides escribir mi apellido en ruso, suena como Vyazmikin.
En cuanto a mis sospechas, creo que la respuesta es correcta a la pregunta planteada. Sin una explicación de las necesidades no tiene sentido decir lo contrario. La reinicialización es un reinicio del programa, está claro que se puede cambiar cualquier cosa en la configuración.
Si se escribe mi apellido en ruso, suena como Vyazmikin.
En cuanto a mis sospechas, creo que la respuesta a la pregunta planteada es correcta. Sin una explicación de las necesidades, no tiene sentido decir lo contrario. La reinicialización es un reinicio del programa, está claro que se puede cambiar cualquier cosa en la configuración.
¿Tanto ofende la falta de un cartel suave?
He hablado de incorrecciones, en mi opinión he hecho hincapié exactamente en la corrección de la respuesta.
¿Puede decirme si se trata de una cifra de prueba realista? ¿Y es un buen o mal resultado para un año con un depósito de 3000$?
¿Tanto ofende la falta de un cartel suave?
Me mueve la iluminación, no la ofensa. ¿Por qué iba a ofenderme, sabías cómo se escribe y querías ofenderme? Ni siquiera consideré esa opción, ¿fue para nada?
Me motiva la iluminación, no el resentimiento. ¿Por qué iba a ofenderme, sabías escribir correctamente y querías ofenderme? Ni siquiera consideré esa opción, ¿fue para nada?
La paz, la amistad, la goma de mascar.
Paz, amistad, goma de mascar.
¿Y los medios litros?