Hallo, könnten Sie bitte beraten, in den Code unten ohne die Schleife Block (die nach dem CopyByffer kommt), der Indikator läuft normalerweise, aber wenn Sie einen Zyklus vergleichen den Preis einer Kerze mit dem Preis eines der Bars, die Bars selbst nach dem Start nicht angezeigt werden, was könnte das Problem sein?
#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);
}
In einer Situation musste ich farbige Balken oder farbige Kerzenständer erstellen. Sie verwenden 4 Wertepuffer und 1 Farbpuffer. Die andere, die ich brauchte, um eine farbige Linie anzuzeigen, wo 1 Wertpuffer und 1 Farbpuffer.
Das Aufrufen und Ändern von Indikatoreigenschaften führt zur Initialisierung des Indikators. Dementsprechend, wenn die Einstellungen Bars oder Candlesticks enthalten, dann eine Option der Initialisierung. Wenn die Zeile, die andere Option der Initialisierung.
Es ist nicht möglich, die Anzahl der Puffer in der Mitte des Indikators zu ändern, wie Alexey Vyazmikin sagte, ohne sich der anderen Optionen bewusst zu sein.
In einer Situation musste ich farbige Balken oder farbige Kerzenständer erstellen. Sie verwenden 4 Wertepuffer und 1 Farbpuffer. Die andere, die ich brauchte, um eine farbige Linie anzuzeigen, wo 1 Wertpuffer und 1 Farbpuffer.
Das Aufrufen und Ändern von Indikatoreigenschaften führt zur Initialisierung des Indikators. Dementsprechend, wenn die Einstellungen Bars oder Candlesticks enthalten, dann eine Option der Initialisierung. Wenn die Zeile, dann eine andere Initialisierungsoption.
Es ist nicht möglich, die Anzahl der Puffer in der Mitte des Indikators zu ändern, wie Alexey Vyazmikin sagte, ohne sich anderer Optionen bewusst zu sein.
Wenn Sie sich entscheiden, meinen Nachnamen auf Russisch zu schreiben, klingt er wie Vyazmikin.
Was meinen Verdacht angeht - ich denke, die Antwort auf die gestellte Frage ist richtig. Ohne eine Erklärung der Bedürfnisse ist es sinnlos, etwas anderes zu behaupten. Die Neuinitialisierung ist ein Neustart des Programms, es ist klar, dass Sie alles in den Einstellungen ändern können.
Wenn man meinen Nachnamen auf Russisch schreibt, klingt er wie Vyazmikin.
Was meinen Verdacht angeht, so glaube ich, dass die Antwort auf die gestellte Frage richtig ist. Ohne eine Erklärung des Bedarfs hat es keinen Sinn, das Gegenteil zu behaupten. Die Neuinitialisierung ist ein Neustart des Programms, es ist klar, dass Sie alles in den Einstellungen ändern können.
Stört Sie das Fehlen eines weichen Zeichens so sehr?
Habe ich von Unkorrektheit gesprochen, so habe ich meiner Meinung nach genau die Korrektheit der Antwort hervorgehoben.
alph: Können Sie mir sagen, ob dies eine realistische Testerfigur ist? Und ist es ein gutes oder schlechtes Ergebnis für ein Jahr mit einer Einlage von 3000$?
Stört Sie das Fehlen eines weichen Zeichens so sehr?
Mir geht es um Aufklärung, nicht um Beleidigung. Warum sollte ich beleidigt sein? Können Sie buchstabieren und wollen Sie mich beleidigen? Ich habe diese Option nicht einmal in Betracht gezogen, war sie umsonst?
Meine Motivation ist die Erleuchtung, nicht der Groll. Warum sollte ich beleidigt sein, wussten Sie, wie man richtig schreibt und wollten mich beleidigen? Ich habe diese Option nicht einmal in Betracht gezogen, war sie umsonst?
Hallo, könnten Sie bitte beraten, in den Code unten ohne die Schleife Block (die nach dem CopyByffer kommt), der Indikator läuft normalerweise, aber wenn Sie einen Zyklus vergleichen den Preis einer Kerze mit dem Preis eines der Bars, die Bars selbst nach dem Start nicht angezeigt werden, was könnte das Problem sein?
Ergebnis:
Das können Sie nicht.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
Alexey Viktorov, 2018.05.30 15:53
Nun, nicht ganz so dynamisch, aber einmal durch Neuinitialisierung können Sie das. Das habe ich.
Wenn Sie dies näher ausführen können, beschreiben Sie bitte
wenn Sie etwas genauer sein können
Wie viel detaillierter?
In einer Situation musste ich farbige Balken oder farbige Kerzenständer erstellen. Sie verwenden 4 Wertepuffer und 1 Farbpuffer. Die andere, die ich brauchte, um eine farbige Linie anzuzeigen, wo 1 Wertpuffer und 1 Farbpuffer.
Das Aufrufen und Ändern von Indikatoreigenschaften führt zur Initialisierung des Indikators. Dementsprechend, wenn die Einstellungen Bars oder Candlesticks enthalten, dann eine Option der Initialisierung. Wenn die Zeile, die andere Option der Initialisierung.
Es ist nicht möglich, die Anzahl der Puffer in der Mitte des Indikators zu ändern, wie Alexey Vyazmikin sagte, ohne sich der anderen Optionen bewusst zu sein.
Wie viel mehr Details?
In einer Situation musste ich farbige Balken oder farbige Kerzenständer erstellen. Sie verwenden 4 Wertepuffer und 1 Farbpuffer. Die andere, die ich brauchte, um eine farbige Linie anzuzeigen, wo 1 Wertpuffer und 1 Farbpuffer.
Das Aufrufen und Ändern von Indikatoreigenschaften führt zur Initialisierung des Indikators. Dementsprechend, wenn die Einstellungen Bars oder Candlesticks enthalten, dann eine Option der Initialisierung. Wenn die Zeile, dann eine andere Initialisierungsoption.
Es ist nicht möglich, die Anzahl der Puffer in der Mitte des Indikators zu ändern, wie Alexey Vyazmikin sagte, ohne sich anderer Optionen bewusst zu sein.
Wenn Sie sich entscheiden, meinen Nachnamen auf Russisch zu schreiben, klingt er wie Vyazmikin.
Was meinen Verdacht angeht - ich denke, die Antwort auf die gestellte Frage ist richtig. Ohne eine Erklärung der Bedürfnisse ist es sinnlos, etwas anderes zu behaupten. Die Neuinitialisierung ist ein Neustart des Programms, es ist klar, dass Sie alles in den Einstellungen ändern können.
Wenn man meinen Nachnamen auf Russisch schreibt, klingt er wie Vyazmikin.
Was meinen Verdacht angeht, so glaube ich, dass die Antwort auf die gestellte Frage richtig ist. Ohne eine Erklärung des Bedarfs hat es keinen Sinn, das Gegenteil zu behaupten. Die Neuinitialisierung ist ein Neustart des Programms, es ist klar, dass Sie alles in den Einstellungen ändern können.
Stört Sie das Fehlen eines weichen Zeichens so sehr?
Habe ich von Unkorrektheit gesprochen, so habe ich meiner Meinung nach genau die Korrektheit der Antwort hervorgehoben.
Können Sie mir sagen, ob dies eine realistische Testerfigur ist? Und ist es ein gutes oder schlechtes Ergebnis für ein Jahr mit einer Einlage von 3000$?
Stört Sie das Fehlen eines weichen Zeichens so sehr?
Mir geht es um Aufklärung, nicht um Beleidigung. Warum sollte ich beleidigt sein? Können Sie buchstabieren und wollen Sie mich beleidigen? Ich habe diese Option nicht einmal in Betracht gezogen, war sie umsonst?
Meine Motivation ist die Erleuchtung, nicht der Groll. Warum sollte ich beleidigt sein, wussten Sie, wie man richtig schreibt und wollten mich beleidigen? Ich habe diese Option nicht einmal in Betracht gezogen, war sie umsonst?
Frieden, Freundschaft, Kaugummi.
Frieden, Freundschaft, Kaugummi.
Und die halben Liter?