[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

 
Können wir einen EA erstellen, der alle Aufträge schließt, wenn der Take-Profit des zuletzt geöffneten Auftrags ausgelöst wird?
 

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);
}



Dateien:
divfzzg5.mq4  5 kb
 
Übertragen von einem anderen Thema. Es wird empfohlen, hier einfache Fragen zu stellen. Der Code sollte über die SRC-Schaltfläche gepostet werden, da er so viel einfacher zu lesen ist.
<br / translate="no">.
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

SMFast0=iMA( NULL, Tmfrm_work, PeriodSMFast, -3, ModeSMFast, PriceSMFast, 0 ); // МА быстрая на текущем баре
SMFast1=iMA( NULL, Tmfrm_work, PeriodSMFast, -3, ModeSMFast, PriceSMFast, 1 ); // МА быстрая на первом баре

SMSlow0=iMA( NULL, Tmfrm_work, PeriodSMSlow, 0, ModeSMSlow, PriceSMSlow, 0 ); // МА медленная на текущем баре
SMSlow1=iMA( NULL, Tmfrm_work, PeriodSMSlow, 0, ModeSMSlow, PriceSMSlow, 1 ); // МА медленная на первом баре

if(SMFast0>SMSlow0 && SMFast1<SMSlow1)

{
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}

if(SMFast0<SMSlow0 && SMFast1>SMSlow1)
{
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
} 
 

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.

 
Poseidon:
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 zum MT5. Woran erkenne ich, dass das Prüfgerät seine Arbeit beendet hat? Außer visuell :)
 
eddy:

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
 
nemo811:


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. ))))

DiePrüfung des Dollar-Index auf M1 und M5 ergab schlechtere Ergebnisse als GBP/USD. Große TFs können aufgrund des sehr kleinen Historienarchivs nicht getestet werden. Fibogroup bietet nicht viel davon für Nedex an, und viele Maklerunternehmen bieten keine an. Deshalb ist es problematisch, Währungstrends zu studieren und mit kleinen Lots (0,01) zu arbeiten .....
 
eddy:

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.

double a = 1.123345;
int b = a;
Auch das ist möglich.