Dieser Code sticht ins Auge, als wäre er absichtlich schlechter gemacht worden.
Wenn es keinen Unterschied macht, sollten wir es so machen:
Und warum?
ps; Ahh, ich verstehe. Nun, dies ist ein Beispiel. Wenn das Arbeitsfeld gefüllt wird, wird es mit Sicherheit um einen Index aufgefüllt. Nicht die Variante, bei der man auf solche Feinheiten achten muss.
Das ist Blödsinn. Ich habe diese Funktion genutzt, ohne das Handbuch zu lesen. ...
Es hat funktioniert, vielen Dank !!! Was ich schrieb, war in der Tat Unsinn, dieArrayRemove löschen Funktion funktioniert gut auf Arrays von jeder Dimension.
Der Fehler lag an anderer Stelle. Nachdem ich die Funktion angewendet hatte, musste ich sie neu definieren, diesmal in ein kleineres Array, denn im nächsten Schritt wurde diese Variable wieder in der Schleife verwendet, und das Array fiel aus dem Bereich heraus (ich mag mich in der Terminologie irren, aber ich hoffe, ich habe mich klar ausgedrückt).
Ich werde die Arbeitsversion unten und in der angehängten Datei veröffentlichen. Die subtilen Punkte werden hervorgehoben.
//+------------------------------------------------------------------+int Array_Caste_Positions_Creating(){
int n = 0;
long ticket = 0;
bool new_pos = true;
//---Запись новых тикетов в массив позиций int All_Position = PositionsTotal();
int Array_Size = ArrayRange(Arr_Position,0);
//--- for(int i = 0; i < All_Position; i++){
if(m_position.SelectByIndex(i)){
ticket = PositionGetInteger(POSITION_TICKET);
new_pos = true;}
for(int e = 0; e < Array_Size; e++){
if(Arr_Position[e][0]==ticket){
new_pos = false;
n++;
break;}}
if(new_pos){
int New_Size = Array_Size+1;
ArrayResize(Arr_Position,New_Size,0);
Arr_Position[Array_Size][0] = (int)ticket;//Ticket
Arr_Position[Array_Size][1] = 0;//Number_Caste (0 = начальные позиции)
n++;}}
//---Удаление из массива мёртвых тикетов
Array_Size = ArrayRange(Arr_Position,0);
All_Position = PositionsTotal();
//--- for(int e = 0; e < Array_Size; e++){
int ticket_dead = Arr_Position[e][0];
bool dead_pos = true;
for(int i = 0; i < All_Position; i++){
if(m_position.SelectByIndex(i)){
if(ticket_dead == PositionGetInteger(POSITION_TICKET)){
dead_pos = false;
n++;
break;}}}
if(dead_pos){
ArrayRemove(Arr_Position,e,1);Array_Size = ArrayRange(Arr_Position,0);}}
//--- return(n);}
//+------------------------------------------------------------------+
Ich fühle mich wie ein unangepasster Schüler, der unwissentlich einem Streit zwischen zwei Lehrern beiwohnt, von denen jeder auf der Richtigkeit seiner Lehrmethode beharrt.
Erlauben Sie mir, meine heiklen drei Cents einzubringen.
Trotz der leichten Unvollkommenheit des Codes desvon Alexey Viktorov geposteten Beispiels waren die von ihm vorgetragenen Gedanken korrekt und halfen uns, es zu verstehen. Und wenn ein Freiberufler bereit ist, unentgeltlich zu helfen und nicht versucht, einen zusätzlichen Cent zu erpressen - dann lobe ich ihn, ich respektiere ihn wirklich. Ich danke Ihnen.
Aliaksandr Hryshyn- Vielen Dank, Sie waren auch nicht gleichgültig und wollten aufrichtig helfen, und Sie haben es getan. Wer weiß, wie sich die Ereignisse ohne Ihre Kritik entwickelt hätten?
Es hat funktioniert, vielen Dank !!! Was ich schrieb, war wirklich Unsinn, dieArrayRemove löschen Funktion funktioniert gut auf Arrays von jeder Dimension.
Der Fehler lag an anderer Stelle. Nachdem ich die Funktion angewendet hatte, musste ich sie neu definieren, diesmal in ein kleineres Array, denn im nächsten Schritt wurde diese Variable wieder in der Schleife verwendet, und das Array fiel aus dem Bereich heraus (ich mag mich in der Terminologie irren, aber ich hoffe, ich habe mich klar ausgedrückt).
Ich werde die Arbeitsversion unten und in der angehängten Datei veröffentlichen. Die subtilen Punkte werden hervorgehoben.
Großartig, wenn irgendwelche anderen Stellen im Code Ablehnung verursachen - bitte zeigen Sie mir, ich bin ein Homebrew Coder, was ich gegraben, das ist mein, Wissen ist nicht systematisch und fragmentarisch. Ich wäre Ihnen sehr dankbar, wenn Sie mich auf den richtigen Weg führen könnten.
Korrigiert, jetzt ist es so:
//---Запись новых тикетов в массив позиций int All_Position = PositionsTotal();
int Array_Size = ArrayRange(Arr_Position,0);
//--- for(int i = 0; i < All_Position; i++){
ticket = (int)PositionGetTicket(i);
new_pos = true;
for(int e = 0; e < Array_Size; e++){
if(Arr_Position[e][0]==ticket){
new_pos = false;
n++;
break;}}
if(new_pos){
int New_Size = Array_Size+1;
ArrayResize(Arr_Position,New_Size,0);
Arr_Position[Array_Size][0] = (int)ticket;//Ticket
Arr_Position[Array_Size][1] = 0;//Number_Caste (0 = начальные позиции)
n++;}}
Großartig, wenn es irgendwelche anderen Stellen im Code, die Ablehnung verursachen - bitte zeigen Sie mir, ich bin ein Homebrew Coder, was ich gefunden habe, ist mein, das Wissen ist nicht systematisch und bruchstückhaft. Ich wäre Ihnen sehr dankbar, wenn Sie mir den richtigen Weg zeigen könnten.
Nur gelegentlich. Ich werde es nicht weiter verfolgen. Tatsächlich bin ich Autodidakt und auch ein alter Autodidakt.
Mit einer Menge was? Array-Elemente, die nicht einmal bei jedem Häkchen gefüllt werden? Wie wird es sich bemerkbar machen?
Dieser Code sticht ins Auge, als wäre er absichtlich schlechter gemacht worden.
Nun, wenn es keinen Unterschied macht, dann machen wir es so:
Warum nicht?
Dieser Code sticht ins Auge, als wäre er absichtlich schlechter gemacht worden.
Wenn es keinen Unterschied macht, sollten wir es so machen:
Und warum?
ps; Ahh, ich verstehe. Nun, dies ist ein Beispiel. Wenn das Arbeitsfeld gefüllt wird, wird es mit Sicherheit um einen Index aufgefüllt. Nicht die Variante, bei der man auf solche Feinheiten achten muss.Und warum?
Das ist wahrscheinlich der Grund, warum Sie das Array innerhalb der Schleife ändern lassen, wenn die Größe im Voraus bekannt ist.
Ich kenne den genauen Grund nicht :).
Sie sind freiberuflich tätig, nicht wahr? Schrecklich :).
Das ist wahrscheinlich der Grund, warum Sie das Array innerhalb der Schleife ändern lassen, wenn die Größe im Voraus bekannt ist.
Ich kenne den genauen Grund nicht :).
Sie sind freiberuflich tätig, nicht wahr? Schrecklich :).
Und was ist damit?
Das ist Blödsinn. Ich habe diese Funktion genutzt, ohne das Handbuch zu lesen. ...
Es hat funktioniert, vielen Dank !!! Was ich schrieb, war in der Tat Unsinn, dieArrayRemove löschen Funktion funktioniert gut auf Arrays von jeder Dimension.
Der Fehler lag an anderer Stelle. Nachdem ich die Funktion angewendet hatte, musste ich sie neu definieren, diesmal in ein kleineres Array, denn im nächsten Schritt wurde diese Variable wieder in der Schleife verwendet, und das Array fiel aus dem Bereich heraus (ich mag mich in der Terminologie irren, aber ich hoffe, ich habe mich klar ausgedrückt).
Ich werde die Arbeitsversion unten und in der angehängten Datei veröffentlichen. Die subtilen Punkte werden hervorgehoben.
Ich fühle mich wie ein unangepasster Schüler, der unwissentlich einem Streit zwischen zwei Lehrern beiwohnt, von denen jeder auf der Richtigkeit seiner Lehrmethode beharrt.
Erlauben Sie mir, meine heiklen drei Cents einzubringen.
Trotz der leichten Unvollkommenheit des Codes desvon Alexey Viktorov geposteten Beispiels waren die von ihm vorgetragenen Gedanken korrekt und halfen uns, es zu verstehen. Und wenn ein Freiberufler bereit ist, unentgeltlich zu helfen und nicht versucht, einen zusätzlichen Cent zu erpressen - dann lobe ich ihn, ich respektiere ihn wirklich. Ich danke Ihnen.
Aliaksandr Hryshyn- Vielen Dank, Sie waren auch nicht gleichgültig und wollten aufrichtig helfen, und Sie haben es getan. Wer weiß, wie sich die Ereignisse ohne Ihre Kritik entwickelt hätten?
Es hat funktioniert, vielen Dank !!! Was ich schrieb, war wirklich Unsinn, dieArrayRemove löschen Funktion funktioniert gut auf Arrays von jeder Dimension.
Der Fehler lag an anderer Stelle. Nachdem ich die Funktion angewendet hatte, musste ich sie neu definieren, diesmal in ein kleineres Array, denn im nächsten Schritt wurde diese Variable wieder in der Schleife verwendet, und das Array fiel aus dem Bereich heraus (ich mag mich in der Terminologie irren, aber ich hoffe, ich habe mich klar ausgedrückt).
Ich werde die Arbeitsversion unten und in der angehängten Datei veröffentlichen. Die subtilen Punkte werden hervorgehoben.
Schnelles Tutorial.
Hier ist sie
kann ersetzt werden durch
Ein wenig Alphabetisierung.
Diese
kann ersetzt werden durch.
Großartig, wenn irgendwelche anderen Stellen im Code Ablehnung verursachen - bitte zeigen Sie mir, ich bin ein Homebrew Coder, was ich gegraben, das ist mein, Wissen ist nicht systematisch und fragmentarisch. Ich wäre Ihnen sehr dankbar, wenn Sie mich auf den richtigen Weg führen könnten.
Korrigiert, jetzt ist es so:
Großartig, wenn es irgendwelche anderen Stellen im Code, die Ablehnung verursachen - bitte zeigen Sie mir, ich bin ein Homebrew Coder, was ich gefunden habe, ist mein, das Wissen ist nicht systematisch und bruchstückhaft. Ich wäre Ihnen sehr dankbar, wenn Sie mir den richtigen Weg zeigen könnten.
Nur gelegentlich. Ich werde es nicht weiter verfolgen. Tatsächlich bin ich Autodidakt und auch ein alter Autodidakt.
Tickets in mql5 sind vom Typ ulong
Dann muss man weniger zum Tippen mitbringen
Nur wenn es einen Anlass gibt. Ich werde nicht zuschauen. Und im Allgemeinen bin ich auch Autodidakt, und zwar ein alter Autodidakt.
Tickets in mql5 sind vom Typ ulong
Dann muss man weniger zum Tippen mitbringen
Danke, ich werde es berücksichtigen und später hier noch einmal wiederholen.