Können Sie mir sagen, was ich falsch mache? Die Indikatoren wurden zur Verdeutlichung erstellt.
1. ich habe zwei Indikatoren erstellt, getrennt funktioniert alles (zeichnet).
Blinker 00 (einfarbig)
#property indicator_chart_window#property indicator_buffers 1#property indicator_plots 1#property indicator_color1 Greendouble Buffer_0[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate (constint rates_total, // размер входных таймсерийconstint prev_calculated, // обработано баров на предыдущем вызовеconstdatetime& time[], // Timeconstdouble& open[], // Openconstdouble& high[], // Highconstdouble& low[], // Lowconstdouble& close[], // Closeconstlong& tick_volume[], // Tick Volumeconstlong& volume[], // Real Volumeconstint& spread[]) // Spread
{
if(rates_total<10) return(0);
int start_pos=0; // точка стартаif(prev_calculated==0) start_pos=rates_total-100;
else start_pos=prev_calculated-1;
for(int i=start_pos;i<rates_total;i++)
{
Buffer_0[i]=high[i];
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
Indikator 11 (mehrfarbig)
#property indicator_chart_window#property indicator_buffers 2#property indicator_plots 1#property indicator_color1 Blue,Yellow,Reddouble Buffer_0[],Buffer_1[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingSetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
SetIndexBuffer(1,Buffer_1,INDICATOR_COLOR_INDEX);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_COLOR_LINE);
return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate (constint rates_total, // размер входных таймсерийconstint prev_calculated, // обработано баров на предыдущем вызовеconstdatetime& time[], // Timeconstdouble& open[], // Openconstdouble& high[], // Highconstdouble& low[], // Lowconstdouble& close[], // Closeconstlong& tick_volume[], // Tick Volumeconstlong& volume[], // Real Volumeconstint& spread[]) // Spread
{
if(rates_total<10) return(0);
int start_pos=0; // точка стартаif(prev_calculated==0) start_pos=rates_total-100;
else start_pos=prev_calculated-1;
for(int i=start_pos;i<rates_total;i++)
{
Buffer_0[i]=low[i];
Buffer_1[i]=1;
if(Buffer_0[i]>Buffer_0[i-1]) Buffer_1[i]=0;
if(Buffer_0[i]<Buffer_0[i-1]) Buffer_1[i]=2;
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
Ich möchte sie miteinander kombinieren; ich nehme den Indikator 11 (Multicolor) als Basis und füge einen Puffer hinzu, wie es beim Indikator 00 der Fall ist
Die Linie (Buffer_2[i]=high[i];) wird nicht gezeichnet, obwohl sie berechnet wird, ich kann die Farbe ändern.
#property indicator_chart_window#property indicator_buffers 3#property indicator_plots 2#property indicator_color1 Blue,Yellow,Red#property indicator_color2 Greendouble Buffer_0[],Buffer_1[];
double Buffer_2[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
SetIndexBuffer(0,Buffer_0,INDICATOR_DATA);
SetIndexBuffer(1,Buffer_1,INDICATOR_COLOR_INDEX);
SetIndexBuffer(2,Buffer_2,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_COLOR_LINE);
PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE);
return(0);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate (constint rates_total, // размер входных таймсерийconstint prev_calculated, // обработано баров на предыдущем вызовеconstdatetime& time[], // Timeconstdouble& open[], // Openconstdouble& high[], // Highconstdouble& low[], // Lowconstdouble& close[], // Closeconstlong& tick_volume[], // Tick Volumeconstlong& volume[], // Real Volumeconstint& spread[]) // Spread
{
if(rates_total<10) return(0);
int start_pos=0; // точка стартаif(prev_calculated==0) start_pos=rates_total-100;
else start_pos=prev_calculated-1;
for(int i=start_pos;i<rates_total;i++)
{
Buffer_0[i]=low[i];
Buffer_2[i]=high[i];// вот это не рисует
Buffer_1[i]=1;
if(Buffer_0[i]>Buffer_0[i-1]) Buffer_1[i]=0;
if(Buffer_0[i]<Buffer_0[i-1]) Buffer_1[i]=2;
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
sergey1294: Вопрос был по поводу внешних параметров input , у меня в советнике их большое количество, необходимые для более гибкой настройки эксперта, так вот как только я выбираю своего эксперта из общего списка в тестере, вылетает сразу терминал. с меньшим количеством нормально.
stringo:
Es ist gängige Praxis, eine Konfigurationsdatei für Einstellungen zu verwenden, insbesondere wenn es viele Einstellungen gibt. Der Name der Konfigurationsdatei kann jedoch als Parameter übergeben werden.
Eine gängige Praxis (unter Fachleuten) ist, dass das Terminal eine Fehlermeldung ausgibt, anstatt abzustürzen.
Das ist ein guter Punkt, wenn man sich daran erinnert, dass die Synchronisierung schneller geht...
PS
Zum Beispiel scheinen sie meine Anfrage #14620 vergessen zu haben (es dauert zu lange, sie zu synchronisieren)...
Laden Sie die neueste Version der Hilfe herunter und sehen Sie sich"MQL5 Referenz / Standardkonstanten, Aufzählungen und Strukturen / Umgebungsstatus / Toolinfo" an.
Rosh: Laden Sie die neueste Version der Hilfe herunter und sehen Sie sich"MQL5 Referenz / Standardkonstanten, Aufzählungen und Strukturen / Umgebungsstatus / Toolinfo" an.
Ich habe die Online-Version mit der Datei verglichen, die ich habe. Entweder bin ich völlig blind oder sie sind völlig identisch...
Ich nehme an, wir sprechen über die nächste Version des Terminals und eine neue Version der Hilfe?
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Die Optimierung nach bool wurde korrigiert
OK, nur sehe ich keine Bewegung in der Bewerbung (es gab da noch gewisse Nuancen)...
Bitte warten Sie.
Die Anwendungen werden nach einer Weile synchronisiert.
Bitte warten Sie.
Die Anwendungen werden nach einer gewissen Zeit synchronisiert.
Es hat sich gezeigt, dass die Synchronisierung schneller erfolgt, wenn man sie daran erinnert...
PS
Zum Beispiel scheint meine Anfrage #14620 vergessen worden zu sein (es dauert zu lange, sie zu synchronisieren)...
Können Sie mir sagen, was ich falsch mache? Die Indikatoren wurden zur Verdeutlichung erstellt.
1. ich habe zwei Indikatoren erstellt, getrennt funktioniert alles (zeichnet).
Blinker 00 (einfarbig)
Indikator 11 (mehrfarbig)
Ich möchte sie miteinander kombinieren; ich nehme den Indikator 11 (Multicolor) als Basis und füge einen Puffer hinzu, wie es beim Indikator 00 der Fall ist
Die Linie (Buffer_2[i]=high[i];) wird nicht gezeichnet, obwohl sie berechnet wird, ich kann die Farbe ändern.
Was mache ich falsch?
Was mache ich falsch?
PlotIndexSetInteger(2,PLOT_DRAW_TYPE,DRAW_LINE);
Вопрос был по поводу внешних параметров input , у меня в советнике их большое количество, необходимые для более гибкой настройки эксперта, так вот как только я выбираю своего эксперта из общего списка в тестере, вылетает сразу терминал. с меньшим количеством нормально.
Es ist gängige Praxis, eine Konfigurationsdatei für Einstellungen zu verwenden, insbesondere wenn es viele Einstellungen gibt. Der Name der Konfigurationsdatei kann jedoch als Parameter übergeben werden.
Die gängige Praxis (unter Fachleuten) ist, dass das Terminal eine Fehlermeldung ausgibt, aber nicht, wenn es abstürzt.
Ich unterstütze Sie - Schließen Sie nicht bei jeder Gelegenheit das Terminal oder entfernen Sie den EA aus dem Chart (laut den Entwicklern)...
PS
Apropos Vögel, es gibt eine Anfrage #17391 genau zu diesem Thema...
Das ist ein guter Punkt, wenn man sich daran erinnert, dass die Synchronisierung schneller geht...
PS
Zum Beispiel scheinen sie meine Anfrage #14620 vergessen zu haben (es dauert zu lange, sie zu synchronisieren)...
Laden Sie die neueste Version der Hilfe herunter und sehen Sie sich"MQL5 Referenz / Standardkonstanten, Aufzählungen und Strukturen / Umgebungsstatus / Toolinfo" an.
Ich habe die Online-Version mit der Datei verglichen, die ich habe. Entweder bin ich völlig blind oder sie sind völlig identisch...
Ich nehme an, wir sprechen über die nächste Version des Terminals und eine neue Version der Hilfe?