[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 123

 
KabrGvin:

Bitte sagen Sie mir, wie ich den Einfluss von Wochenenden vermeiden kann, an denen es keine Bars gibt. Angenommen, die Balkenwerte werden mit Hilfe der Formeln berechnet:

nt i1=(Zeit[0]-t1)/60/Periode();

int i2=(Zeit[0]-t2)/60/Periode();

Und die Anzahl der Balken zwischen i1 und i2 entspricht der Differenz zwischen ihnen. Das heißt: Anzahl der Balken = i1-i2. Liegen i1 und i2 jedoch zwischen den Wochenenden, wird die Anzahl der Balken unter Berücksichtigung der Balken berechnet, die am Samstag und Sonntag nicht vorhanden sind. Wie kann ich mich aus dieser Situation befreien?

Mit freundlichen Grüßen, Dimitri.


Ich danke Ihnen allen. Ich habe es selbst herausgefunden.



 

Leute, wie rundet man 2,643789 auf eine ganze Zahl?

Ich kann es weder im Lehrbuch noch in der Dokumentation finden, ich kann nichts in der Suche finden, oder ich suche an der falschen Stelle.

 
eddy:

alsu, füllen Sie das ganze Wie aus?:)

und warum wird i gedruckt?) i ist gleich Balken-gezählt+2. Wie kann das negativ sein?

              for(i=Bars; i>=0; i--) Rel[i]=pr(Close[i])-pr(Close[i+1]);
     if(teni) for(i=Bars; i>=0; i--) {Rhi[i]=pr(High[i])-pr(Close[i+1]);
                                      Rlo[i]=pr(Low[i])-pr(Close[i+1]);
                                                Rlo[i]=MathMin(Rlo[i],0);
                                                Rhi[i]=MathMax(Rhi[i],0);}

Dieser Code wird bei jedem Tick ausgeführt, d.h. bei der Ankunft jedes Ticks werden alle Elemente der Arrays Rel,. von Balken bis Null wird ein Wert zugewiesen. (Übrigens, es gibt kein Element mit der Nummer Bars, der letzte Index im Array ist Bars-1 - das sollte man sich merken)

Nun zur Nicht-Zeichnung.

Wir müssen herausfinden, wo der Fehler liegt. Ich schlage vor, dass wir uns zunächst ansehen, welche Werte der i-Index annimmt und was die Funktion rsi() ausgibt. Da es in ME keinen Debugger gibt, müssen wir echo, d.h. Print() verwenden.

 
gheka:

Leute, wie rundet man 2,643789 auf eine ganze Zahl?

Ich kann es weder im Lehrbuch noch in der Dokumentation finden, ich kann nichts in der Suche finden, oder ich suche an der falschen Stelle.

https://docs.mql4.com/ru/math/MathRound

double MathRound( double Wert)

Die Funktion gibt den auf die nächste ganze Zahl gerundeten Wert des angegebenen numerischen Wertes zurück.

Beispiel:
double y=MathRound(2.8);
Print("Rundung 2,8 auf ",y);
y=MathRound(2.4);
Print("Rundung -2,4 auf ",y);
//Ausgabe: Abrundung von 2,8 auf 3
//Rundung von -2,4 auf -2

 
alsu:

...bei jedem Häkchen Alle Elemente von Rel,... von Balken bis Null wird ein Wert zugewiesen.

Nun zu der Nicht-Zeichnung.

Wir müssen herausfinden, wo der Fehler liegt. Ich schlage vor, dass wir uns zunächst ansehen, welche Werte der i-Index annimmt und was die Funktion rsi() dabei ausgibt. Da es in ME keinen Debugger gibt, können wir echo, d.h. Print() verwenden.

"Balken auf Null" habe ich bereits korrigiert), lese ich immer und korrigiere Dinge.

jetzt über die Nicht-Zeichnung)

Kann "Bars-counted+2" negativ sein?

 

Wie kann ich alle offenen Aufträge ändern?

Ich ändere aus irgendeinem Grund nur einen Auftrag

Hier ist mein Code

 tot=OrdersTotal();
if(tot>0)
{ if(OO_11(0)==false) <---- ОО_11() он проверяет есть ли стоп
{ int k=OrdersTotal();
for(int a=0;a<=k;a++)
{ if(OrderSelect(a,SELECT_BY_POS,MODE_TRADES))
{ if(OrderType()==OP_SELL)
{ if(OrderMagicNumber()==0)
{
int tik=OrderTicket();
OrderModify(tik,Ask,Ask+0.01000,0,0,0);
}
}
}
}
}
}
Ich habe 10-50 offene Orders ohne Magier, aber es setzt nur einen Stop-Loss auf eine Order, sagen Sie mir, was falsch ist?
 
eddy:

"Balken auf Null" habe ich bereits korrigiert), lese ich ständig und korrigiere Dinge.

jetzt über die Nicht-Zeichnung)

Kann "Bars-counted+2" negativ sein?

Während des Fluges, nein, das geht nicht. Aber es ist immer noch schneller, zu prüfen als zu denken. Im Idealfall sollten Sie überall Ausdrucke anbringen und sehen, wie die Software funktioniert.
 
gheka:

Wie kann ich alle offenen Aufträge ändern?

Ich ändere aus irgendeinem Grund nur einen Auftrag

Hier ist mein Code

Ich habe 10-50 offene Aufträge ohne Magic Open, aber ich erhalte Stop Loss nur für einen Auftrag, sagen Sie mir, was falsch ist?

1) Die Variable k wiederholt die Variable tot

2) a<=k ist falsch, korrigieren Sie a<k

3) Was steht in dem Protokoll über die Änderung von Aufträgen?

 
alsu:

1) die Variable k wiederholt die Variable tot

2) a<=k ist falsch, richtig ist a<k

3) Was steht im Protokoll über die Auftragsänderung?

Es gibt keine Informationen im Logbuch, nur die Eröffnung von Aufträgen und sonst nichts, es funktioniert auch nicht
 
alsu:

1) die Variable k wiederholt die Variable tot

2) a<=k ist falsch, richtig ist a<k

3) Was steht in dem Protokoll über die Auftragsänderung?

Es funktioniert jetzt), danke.
Grund der Beschwerde: