[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 104
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Liebe Programmierer!
Hilfe, bitte. Der Indikator zeichnet Werte bei einer bullischen latenten Divergenz und nicht bei einer bärischen latenten.... Er schreibt, dass der Fehler 4002 - array index - out of range.
Ich scheine alles in Ordnung gebracht zu haben... Ich habe einen ganzen Abend gebraucht... Und das ist eine Schande - der Code ist der einfachste... Aber es zeichnet Stiere mit Pfeilen, aber keine Bären... BITTE! Was ist der Fehler in?????????????????????
//+------------------------------------------------------------------+
// div zz 5.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#Eigenschaft indicator_buffers 4
#Eigenschaft indicator_color1 CLR_NONE
#Eigenschaft indicator_color2 CLR_NONE
#property indicator_color3 BlauViolett
#property indicator_color4 Rot
#define arrowsDisplacement 0.0001
double cci[];
double cci1[];
double bullishDivergence[];
double bullishDivergence[];
//+------------------------------------------------------------------+
//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |
//+------------------------------------------------------------------+
int init()
{
//---- Indikatoren
SetIndexStyle(0, DRAW_NONE);
SetIndexStyle(1, DRAW_NONE);
SetIndexStyle(2, DRAW_ARROW);
SetIndexStyle(3, DRAW_ARROW);
SetIndexPuffer(0, cci);
SetIndexBuffer(1, cci1);
SetIndexPuffer(2, bullishDivergence);
SetIndexPuffer(3, bullishDivergence);
SetIndexArrow(2, 233);
SetIndexArrow(3, 234);
zurück(0);
}
//+------------------------------------------------------------------+
//| Funktion zur Deinitialisierung des Custor-Indikators |
//+------------------------------------------------------------------+
int deinit()
{
zurück(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Iterationsfunktion |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- zuletzt gezählte Takt wird nachgezählt
if(gezählte_Balken>0) gezählte_Balken--;
//int limit=Bars-counted_bars;
double vpadcci[];
double v[];
double hh[];
double ss[];
for (int i=500; i>=0; i--)
{
cci[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
wenn (
(cci[i]<cci[i-1])&&
(cci[i]<cci[i-2])&&
(cci[i]<cci[i+1])&&
(cci[i]<cci[i+2])
)
{
vpadcci[i]=cci[i];
ss[i]=Low[i];
}
}
for(int j=500; j>0; j--)
{
cci[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
wenn (
((cci[j+1]>vpadcci[10])&&
(cci[j]<vpadcci[10])&&
(niedrig[j]>ss[10]))) ||
((cci[j+1]>vpadcci[9])&&
(cci[j]<vpadcci[9])&&
(niedrig[j]>ss[9]))) ||
((cci[j+1]>vpadcci[8])&&
(cci[j]<vpadcci[8])&&
(niedrig[j]>ss[8]))) ||
((cci[j+1]>vpadcci[7])&&
(cci[j]<vpadcci[7])&&
(niedrig[j]>ss[7]))) ||
((cci[j+1]>vpadcci[6])&&
(cci[j]<vpadcci[6])&&
(niedrig[j]>ss[6]))) ||
((cci[j+1]>vpadcci[5])&&
(cci[j]<vpadcci[5])&&
(niedrig[j]>ss[5]))) ||
((cci[j+1]>vpadcci[4])&&
(cci[j]<vpadcci[4])&&
(niedrig[j]>ss[4]))) ||
((cci[j+1]>vpadcci[3])&&
(cci[j]<vpadcci[3])&&
(niedrig[j]>ss[3]))) ||
((cci[j+1]>vpadcci[2])&&
(cci[j]<vpadcci[2])&&
(niedrig[j]>ss[2])) ||
((cci[j+1]>vpadcci[1])&&
(cci[j]<vpadcci[1])&&
(niedrig[j]>ss[1]))) ||
((cci[j+1]>vpadcci[0])&&
(cci[j]<vpadcci[0])&&
(niedrig[j]>ss[0])
)
{ bullishDivergence[j] = Low[j] - arrowsDisplacement;
}
}
for (i=1; i<500; i++)
{
cci1[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
wenn
(
(cci1[i]>cci1[i-1])&&
(cci1[i]>cci1[i-2])&&
(cci1[i]>cci1[i+1])&&
(cci1[i]>cci1[i+2])
)
{
v[i]=cci1[i];
hh[i]=Hoch[i];
}
}
for(j=1; j<500; j++)
{
cci1[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
wenn (
((cci1[j+1]<v[10])&&
(cci1[j]>v[10])&&
(hoch[j]<hh[10]))) ||
((cci1[j+1]<v[9])&&
(cci1[j]>v[9])&&
(hoch[j]<hh[9]))) ||
((cci1[j+1]<v[8])&&
(cci1[j]>v[8])&&
(hoch[j]<hh[8]))) ||
((cci1[j+1]<v[7])&&
(cci1[j]>v[7])&&
(hoch[j]<hh[7]))) ||
((cci1[j+1]<v[6])&&
(cci1[j]>v[6])&&
(hoch[j]<hh[6]))) ||
((cci1[j+1]<v[5])&&
(cci1[j]>v[5])&&
(hoch[j]<hh[5])
)
{ { cci1[j]= High[j] + arrowsDisplacement;
}
}
zurück(0);
}
KoDim 14.02.2011 09:29
Hallo.
Bei der Programmierung des Expert Advisors war ich über den Parameter ma_shift- Verschiebung der Mittellinie in Balken - verblüfft. Ist die Verschiebung positiv, verschiebt sich die Linie nach rechts. Und umgekehrt, wenn die Verschiebung negativ ist, wird die Linie nach links verschoben.
Wenn ein positiver Wert verwendet wird, wird beim Überschreiten der Durchschnittswerte ein Auftrag eröffnet.
Wenn wir den Parameter jedoch negativ setzen, wird der Auftrag nicht geöffnet.
Was hat das mit der Sache zu tun?
Hier ist ein Auszug aus dem Code
Hallo, ich versuche schon seit einiger Zeit zu lernen, wie man EAs schreibt, deshalb hier eine Frage. Wie kann ich dem EA vorschreiben, einen Stop Loss zu setzen, nachdem ich einen Stop Buy oder Stop Loss gesetzt habe? Das heißt, nach dem Stop-Buy und Stop saß für 5 Punkte (grob gesprochen), die EA sofort setzen sich einen Stop-Loss.
Ist es möglich, einen EA zu erstellen, der alle Aufträge schließt, wenn der Take-Profit des zuletzt geöffneten Auftrags ausgelöst wird?
Sie können.
Pupersa ,suchen Sie diesen Auftrag und ändern Sie den Parameter "Stop Loss".
KoDim, vielleicht weil die Werte nach links verschoben sind, auf den Balken auf der rechten Seite (Kreuzung, auf der Sie überprüfen können) gibt es sie gar nicht?
Frage an die Programmierer: Wie macht man die Zahl hinter dem Komma zu einer ganzen Zahl?)
z. B. Nummer 1,128 benötigt 128, Nummer 1,12 benötigt 12, Nummer 1,2 benötigt 2)
Die Zahl ist eine externe Variable.
Frage an die Programmierer: Wie macht man die Zahl hinter dem Komma zu einer ganzen Zahl?)
Zum Beispiel braucht die Zahl 1,128 128, die Zahl 1,12 braucht 12, die Zahl 1,2 braucht 2)
Die Zahl ist eine externe Variable.
siehe hier: https://docs.mql4.com/ru/basis/operations/math
Wenn Geld und Volumen (und nicht Elliott-Wellen) auf dem Markt am Werk sind und die Preisbewegung nicht chaotisch, sondern von den Volumina getrieben ist, dann werden zwei Signale bei zwei Paaren (von den drei betrachteten) ein stärkeres Signal für das dritte Paar ergeben. Suchen Sie nach Auftragskumulierungsebenen, analysieren Sie die VSA und Sie werden die erforderlichen X und Y finden)))
Darüber hinaus (siehe Abbildung) verhindert ein deutliches Flat eines Währungspaares (gebildet aus 2 Währungen) nicht einen Trend im dritten Währungspaar (die restlichen 2 Paare). Wenn ein Trend von mehr als einer Währung im Gange ist, entsteht eine Art "Marktchaos". Da Intraday-Trends weniger stabil sind als mittel- und langfristige Trends, ist dieses Chaos bei kleinen TF am stärksten ausgeprägt.
Wenn ich den Markt in diesem Licht betrachte, neige ich zu der Annahme, dass der Trend der Währungen selbst (und nicht der Währungspaare) stabiler ist, da wir sonst ein Oszillatordiagramm erhalten würden, das überhaupt nicht analysiert werden kann.
Das ist es, was mir dieses Bild sagt. ))))
Frage an die Programmierer: Wie macht man die Zahl hinter dem Komma zu einer ganzen Zahl?)
Zum Beispiel braucht die Zahl 1,128 128, die Zahl 1,12 braucht 12, die Zahl 1,2 braucht 2)
Die Zahl ist eine externe Variable.