[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 875

 
reag:

Ja, die erste Option funktioniert nicht, obwohl ich mit einem nicht standardisierten Zeitrahmen arbeite, die zweite schon. Ich danke Ihnen allen!


Die erste Option funktioniert - mindestens 20 Tage auf einem Demo-Konto (keine Zeit mehr zu überprüfen) und in der Tester auf die Geschichte für 10 Jahre

ZS: Nun, wenn es nicht funktioniert, funktioniert es nicht :)

 
IgorM:


die erste Option funktioniert - mindestens 20 Tage auf einem Demo-Konto (keine Zeit mehr zu überprüfen) und in der Tester auf die Geschichte für 10 Jahre

SZS: Nun, nicht arbeiten heißt nicht arbeiten :)

Die erste funktioniert bei einem echten Konto. Bei mir funktioniert es wahrscheinlich, weil das Diagrammfenster sehr groß ist. Wahrscheinlich funktioniert es, weil das Diagrammfenster sehr groß ist und nicht das Maximum erreicht... aber vielleicht ist die EA so - es geht ihm gut... :)
 
Andrei01:
In der Demo ist es nicht beängstigend. :) aber auf der echten Seite ist es wahrscheinlich besser, kein Risiko einzugehen und es normal zu machen ... Wahrscheinlich funktioniert es, weil das Diagrammfenster sehr groß ist und nicht das Maximum erreicht ... aber vielleicht ist der EA so - es wird schon gut gehen... :)


nicht wirklich - indem ich die Anzahl der Balken zähle, kann ich den Moment des Ladens der Historie nicht "verpassen" - und in diesen Momenten ist es besser, ein wenig zu warten, die Historie wird nicht nur am Ende der TF geladen, sondern manchmal auch am Anfang der TF - ok, das ist ein großes Geheimnis shhhhhhhhhh

:)

 
IgorM:


nicht wirklich - indem ich die Anzahl der Balken zähle, kann ich den Moment des Ladens der Historie nicht "verpassen" - und in diesen Momenten ist es besser, ein wenig zu warten, die Historie wird nicht nur am Ende der TF geladen, sondern manchmal auch am Anfang der TF - ok, das ist ein großes Geheimnis shhhhhhhhhh

:)


Es stellte sich heraus, dass auch die zweite Variante nicht funktioniert ... Die Taktnummern im Indikatorfeld ändern sich ohnehin nicht! Ich verstehe, dass das an dem nicht standardisierten Zeitrahmen liegt. Es wird durch die Standard-Period_Converter_Opt gebildet, ich bekomme es von M1 bis M2, wenn ich M2 Bars sind gleich eine Hälfte der Max bar im Fenster zu öffnen, und wenn ich den Wert der Max bar im Fenster zu bekommen, die fomation des SetIndexBuffer Array stoppt...((
 
reag:

Es stellte sich heraus, dass auch die zweite Option nicht funktioniert ... die Taktnummern im Indikatorfeld ändern sich ohnehin nicht! Ich vermute, das liegt an dem nicht standardisierten Zeitrahmen. Es wird durch die Standard-Period_Converter_Opt gebildet, ich bekomme es von M1 zu M2, wenn ich M2 Bars sind gleich eine Hälfte von Max bar im Fenster zu öffnen, und wenn ich den Wert von Max bar im Fenster zu bekommen, die fomation der SetIndexBuffer Index-Array stoppt...((


aber zumindest einige Parameter des neuen Taktes mit dem gespeicherten Takt verglichen werden können?

Wenn Sie eine nicht standardisierte TF haben - ist es möglich, dass der Balken, den Sie für Null halten, einen Index hat, der nicht 0 oder 1 ist?

 
IgorM:


aber zumindest einige Parameter des neuen Taktes mit dem gespeicherten Takt verglichen werden können?

Wenn Sie eine nicht standardisierte TF haben - ist es möglich, dass der Balken, den Sie für Null halten, einen anderen Index als 0 oder 1 hat?


Der Algorithmus zur Erkennung eines neuen Balkens funktioniert, aber das Diagramm stoppt nach Erreichen eines maximalen Balkens im Fenster; ich nehme an, dass das Schüren des SetIndexBuffer-Index-Arrays stoppt. Hier ist das Problem, d.h. nach der Aktivierung funktioniert alles gut und dann friert das Diagramm ein und die Balken bewegen sich... und folglich funktioniert der Indikator nicht!
 
reag:

Der Algorithmus selbst erkennt einen neuen Balken, aber das Diagramm stoppt nach Erreichen eines maximalen Balkens im Fenster, ich nehme an, dass die Erzeugung des SetIndexBuffer Index-Arrays stoppt. Hier ist das Problem, d.h. nach dem Einschalten funktioniert alles gut, und dann friert der Chart ein und die Balken bewegen sich... und folglich funktioniert der Indikator nicht!

Wenn es beim Start funktioniert, liegt das Problem vielleicht darin, dass die Anzahl der neu zu zeichnenden Balken falsch definiert ist.
 
IgorM:

Wo befindet sich der Code? Wenn dies beim Starten geschieht, könnte das Problem darin bestehen, dass die Anzahl der neu zu zeichnenden Balken nicht korrekt definiert ist

#property indicator_chart_window
#property show_inputs
#property indicator_buffers 3 // Anzahl der Puffer
#property indicator_color1 DarkSeaGreen // Farbe der ersten Zeile
#property indicator_color2 SaddleBrown // Farbe der zweiten Zeile
#property indicator_color3 SaddleBrown // Farbe der zweiten Zeile

extern intHistory=300; // Anzahl der Balken im berechneten Verlauf
extern int Arrows=1;
extern int Line=0; // Anzahl der Balken für Berechnungen
//extern int Left_Right= 5; // Horizontaler Versatz (Balken)
extern int Up_Right=8; // vertikaler Versatz (Punkte)
static int up = 1, intPost=600;
statisch datetime VPPosLStr,time0new,time0old;
double Line_0[],Line_1[],Line_2[]; //Deklaration von Datenarrays

//--------------------------------------------------------------------
int init() //Spezialfunktion init()
{

if (Pfeile==1 && Linie==1)int Style=1;
if (Arrows==1 && Lines!=1)style=3;
if (Arrows!=1 && Lines==1)style=2;
switch(Style) // Kopfzeilenschalter
{ // Körperstartschalter
Fall 1 :
//--------------------------------------------------------------------
SetIndexBuffer(0,Line_0); // Array dem Puffer 0 zuweisen
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1);// Linienstil
SetIndexEmptyValue(0,0.0);
//--------------------------------------------------------------------
SetIndexBuffer(1,Line_1); // Array dem Puffer 1 zuweisen
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // Linienstil
SetIndexArrow (1,217);
//--------------------------------------------------------------------
SetIndexBuffer(2,Line_2); // Array dem Puffer 2 zuweisen
SetIndexStyle (2,DRAW_ARROW,EMPTY,1); // Linienstil
SetIndexArrow (2,218);
//--------------------------------------------------------------------
break; // Optionen.
Fall 2 :
//--------------------------------------------------------------------
SetIndexBuffer(0,Line_0); // Zuweisung eines Arrays zum Puffer 0
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1);// Linienstil
SetIndexEmptyValue(0,0.0);
Pause;
Fall 3 :
//--------------------------------------------------------------------
SetIndexBuffer(1,Line_1); // Array dem Puffer 1 zuweisen
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // Linienstil
SetIndexArrow (1,217);
//--------------------------------------------------------------------
SetIndexBuffer(2,Line_2); // Array dem Puffer 2 zuweisen
SetIndexStyle (2,DRAW_ARROW,EMPTY,1); // Linienstil
SetIndexArrow (2,218);
//--------------------------------------------------------------------
Pause;
default: break; // Fall hat nicht übereingestimmt
}
int k=Bars; // Ende des Körpers Schalter

return(0); // Beenden der Funktion init()
}
//--------------------------------------------------------------------
int start() // Spezielle Funktion start()
{
//----+ prüft die Anzahl der Balken auf Richtigkeit
//Berechnung des Indikators
if(Geschichte-1 < 15)
zurück(0);

//+--- +==========================================+
int i, // Balkenindex
n, // formaler Parameter (Index)
k, // Index des Indexelements des Index-Arrays
Counted_bars; // Anzahl der berechneten Balken
Doppellinie;
iBarShift(NULL, 0, VrPostStr);
//Kommentar (indpostr," ",up);
//--------------------------------------------------------------------
/* Gezählte_Balken=IndicatorCounted(); // Anzahl der gezählten Balken
//---- Prüfung auf mögliche Fehler
if(Gezählte_Balken < 0)
zurück(-1);
i=Bars-Counted_bars-1+indicatorCounted; // Index des ersten nicht gezählten Balkens
if (i>History-1) // Wenn es viele Balken gibt, dann .
i=History-1; // ...die angegebene Zahl berechnen
time0new=Time[0];
if(time0old!=time0new)
{
i=Geschichte-1;
time0old=time0new;
Kommentar ("Balken ",Balken,",Verlauf ",Verlauf,",i ",i);
}

for(i=i-1; i >= 3; i--) // Schleife über nicht gezählte Takte
{
if(up==0)
{
Line=Low[i];

if (Line<Low[i-1] && Line<Low[i-2] && Bpostr<Time[i])
{
Zeile_0 [i] = Zeile[i];
Zeile_0 [i] = Zeile;
Line_2[i] = Line-up_down*Point;
up=1;
weiter;
}
}
if(up==1) //Baue Fibo-Gitter nach dem Kriterium von zwei Kerzenstöcken Rollback
{
Zeile=Hoch[i];

if (Zeile>Hoch[i-1] && Zeile>Hoch[i-2]&& Bpostr<Zeit[i])
{
Zeile_0[i] = Zeile[i];
Zeile_0[i] = Zeile;
Line_1[i] = Line+Up_down*Point;
up=0;
}
}
//Indexberechnung für den nächsten Takt
}
// WindowRedraw();
//--------------------------------------------------------------------
zurück(0);
}
//--------------------------------------------------------------------
int deinit()
{

zurück(0);
}
 
reag:


   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0; i<limit; i++){
Ich schreibe Indikatoren auf diese Weise, dies ist mein Standard-Indikator Start - es ist ein bisschen gestreckt, aber wenn ich mit mql, schrieb ich es so und das ist, wie es bleibt
es ist schwer, Ihren Code zu verstehen - die Variablennamen in kyrillischen Buchstaben machen mir Angst - ich komme mit den Kommentaren durcheinander
 
IgorM:
Ich schreibe Indikatoren auf diese Weise, dies ist mein Standard-Indikator Start
es ist schwierig, Ihren Code zu verstehen - die Variablennamen in kyrillischen Buchstaben machen mir Angst - ich komme mit den Kommentaren durcheinander

Ja, es ist nur ich versuchen... Cyrillic )), die Kombination von Bars und IndicatorCounted() auf einem Nicht-Standard-Zeitrahmen funktioniert nicht genau, wenn die Max bar in Bars Fenster überschritten wird es geht nicht weiter.
Grund der Beschwerde: