Bonjour, pourriez-vous me conseiller s'il vous plaît, dans le code ci-dessous sans le bloc de boucle (qui vient après le CopyByffer), l'indicateur fonctionne normalement, mais si vous incluez un cycle comparant le prix d'une bougie avec le prix d'une des barres, les barres elles-mêmes après le départ ne sont pas affichées, quel pourrait être le problème ?
#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);
}
Dans une situation, j'avais besoin de créer des barres ou des chandeliers de couleur. Ils utilisent 4 tampons de valeur et 1 tampon de couleur. Dans l'autre cas, j'avais besoin d'afficher une ligne colorée, avec 1 tampon de valeur et 1 tampon de couleur.
L'appel et la modification des propriétés de l'indicateur entraînent l'initialisation de l'indicateur. Par conséquent, si les paramètres contiennent des barres ou des chandeliers, alors une option d'initialisation. Si la ligne, l'autre option d'initialisation.
Il est impossible de modifier le nombre de tampons au milieu de l'indicateur, ce qu'a dit Alexey Vyazmikin sans être conscient des autres options.
Dans une situation, j'avais besoin de créer des barres ou des chandeliers de couleur. Ils utilisent 4 tampons de valeur et 1 tampon de couleur. Dans l'autre cas, j'avais besoin d'afficher une ligne colorée, avec un tampon de valeurs et un tampon de couleurs.
L'appel et la modification des propriétés de l'indicateur entraînent l'initialisation de l'indicateur. Par conséquent, si les paramètres contiennent des barres ou des chandeliers, alors une option d'initialisation. Si une ligne, alors une autre option d'initialisation.
Il est impossible de modifier le nombre de tampons au milieu de l'indicateur, comme l'a dit Alexey Vyazmikin, sans être conscient des autres options.
Si vous décidez d'écrire mon nom de famille en russe, ça sonne comme Vyazmikin.
En ce qui concerne mes soupçons - je pense que la réponse est correcte à la question posée. Sans explication des besoins, il est inutile de dire le contraire. La réinitialisation est un redémarrage du programme, il est clair que vous pouvez changer quoi que ce soit dans les paramètres.
Si vous choisissez d'écrire mon nom de famille en russe, cela ressemble à Vyazmikin.
En ce qui concerne mes soupçons - je crois que la réponse à la question posée est correcte. Sans explication des besoins, il est inutile de dire le contraire. La réinitialisation est un redémarrage du programme, il est clair que vous pouvez changer quoi que ce soit dans les paramètres.
L'absence d'une enseigne douce choque-t-elle tant que ça ?
J'ai parlé d'incorrection, à mon avis j'ai souligné exactement l'exactitude de la réponse.
L'absence d'une enseigne douce vous choque-t-elle tant que ça ?
Je suis guidé par l'illumination, pas l'offense. Pourquoi je serais offensé, tu sais épeler et tu veux m'offenser ? Je n'ai même pas envisagé cette option, c'était pour rien ?
Je suis motivé par l'illumination, pas par le ressentiment. Pourquoi devrais-je être offensé ? Vous savez écrire correctement et vous voulez m'offenser ? Je n'ai même pas envisagé cette option, c'était pour rien ?
Bonjour, pourriez-vous me conseiller s'il vous plaît, dans le code ci-dessous sans le bloc de boucle (qui vient après le CopyByffer), l'indicateur fonctionne normalement, mais si vous incluez un cycle comparant le prix d'une bougie avec le prix d'une des barres, les barres elles-mêmes après le départ ne sont pas affichées, quel pourrait être le problème ?
Résultat :
Vous ne pouvez pas.
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Bugs, bugs, questions
Alexey Viktorov, 2018.05.30 15:53
Enfin, pas de manière aussi dynamique, mais une fois la réinitialisation effectuée, c'est possible. Je l'ai fait.
Si vous pouvez élaborer, veuillez décrire
si vous pouvez être plus précis
Combien de détails en plus ?
Dans une situation, j'avais besoin de créer des barres ou des chandeliers de couleur. Ils utilisent 4 tampons de valeur et 1 tampon de couleur. Dans l'autre cas, j'avais besoin d'afficher une ligne colorée, avec 1 tampon de valeur et 1 tampon de couleur.
L'appel et la modification des propriétés de l'indicateur entraînent l'initialisation de l'indicateur. Par conséquent, si les paramètres contiennent des barres ou des chandeliers, alors une option d'initialisation. Si la ligne, l'autre option d'initialisation.
Il est impossible de modifier le nombre de tampons au milieu de l'indicateur, ce qu'a dit Alexey Vyazmikin sans être conscient des autres options.
Combien de détails en plus ?
Dans une situation, j'avais besoin de créer des barres ou des chandeliers de couleur. Ils utilisent 4 tampons de valeur et 1 tampon de couleur. Dans l'autre cas, j'avais besoin d'afficher une ligne colorée, avec un tampon de valeurs et un tampon de couleurs.
L'appel et la modification des propriétés de l'indicateur entraînent l'initialisation de l'indicateur. Par conséquent, si les paramètres contiennent des barres ou des chandeliers, alors une option d'initialisation. Si une ligne, alors une autre option d'initialisation.
Il est impossible de modifier le nombre de tampons au milieu de l'indicateur, comme l'a dit Alexey Vyazmikin, sans être conscient des autres options.
Si vous décidez d'écrire mon nom de famille en russe, ça sonne comme Vyazmikin.
En ce qui concerne mes soupçons - je pense que la réponse est correcte à la question posée. Sans explication des besoins, il est inutile de dire le contraire. La réinitialisation est un redémarrage du programme, il est clair que vous pouvez changer quoi que ce soit dans les paramètres.
Si vous choisissez d'écrire mon nom de famille en russe, cela ressemble à Vyazmikin.
En ce qui concerne mes soupçons - je crois que la réponse à la question posée est correcte. Sans explication des besoins, il est inutile de dire le contraire. La réinitialisation est un redémarrage du programme, il est clair que vous pouvez changer quoi que ce soit dans les paramètres.
L'absence d'une enseigne douce choque-t-elle tant que ça ?
J'ai parlé d'incorrection, à mon avis j'ai souligné exactement l'exactitude de la réponse.
Pouvez-vous me dire s'il s'agit d'une figurine de test réaliste ? Et est-ce un bon ou mauvais résultat pour une année avec un dépôt de 3000$ ?
L'absence d'une enseigne douce vous choque-t-elle tant que ça ?
Je suis guidé par l'illumination, pas l'offense. Pourquoi je serais offensé, tu sais épeler et tu veux m'offenser ? Je n'ai même pas envisagé cette option, c'était pour rien ?
Je suis motivé par l'illumination, pas par le ressentiment. Pourquoi devrais-je être offensé ? Vous savez écrire correctement et vous voulez m'offenser ? Je n'ai même pas envisagé cette option, c'était pour rien ?
Paix, amitié, chewing-gum.
Paix, amitié, chewing-gum.
Et les demi-litres ?