A1exPit: Ich meinte, dass, wenn Daten in ein Array übergeben wird, wird es in sequentieller Reihenfolge, d.h. array1[] = x; in welcher Zelle wird Wert x geschrieben werden, wenn die Zellennummer nicht direkt angegeben wird?
Wenn Sie verschiedene Werte schreiben wollen, verwenden Sie die Schleife sequentiell. Wenn Sie in eine bestimmte Zelle schreiben müssen, geben Sie deren Adresse an.
Wenn Sie verschiedene Werte schreiben wollen, verwenden Sie die Schleife sequentiell. Wenn Sie in eine bestimmte Zelle schreiben müssen, geben Sie deren Adresse an.
Ich danke Ihnen,
Hier ist eine weitere Frage: durch ArrayCopy, werde ich in der Lage sein, ein neues Array mit Größe gleich der Anzahl der gefüllten Zellen in der vorherigen erstellen? Oder sollte ich zuerst ein zweites Array erstellen und erst dann kopieren?
intArrayCopy( void& dst_array[], // куда копируем constvoid& src_array[], // откуда копируем int dst_start=0, // с какого индекса пишем в приемник int src_start=0, // с какого индекса копируем из источника int count=WHOLE_ARRAY// сколько элементов );
Hier ist eine weitere Frage: mit ArrayCopy, kann ich ein neues Array mit der gleichen Größe wie die Anzahl der gefüllten Zellen in der vorherigen erstellen? Oder muss ich erst ein zweites Array erstellen und dann kopieren?
intArrayCopy( void& dst_array[], // куда копируем constvoid& src_array[], // откуда копируем int dst_start=0, // с какого индекса пишем в приемник int src_start=0, // с какого индекса копируем из источника int count=WHOLE_ARRAY// сколько элементов );
Spread = MarketInfo(Symbol(),MODE_SPREAD); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){ int Spread2[x]; ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);} x=x+1; if (x > 1000) x = 0;
So schreibe ich den Spread-Wert in ExtSpread[], und wenn der einminütige Balken vorbei ist, verschiebe ich ihn in ein anderes Array - das theoretisch bis zum nächsten Balken überleben sollte.
Größe ExtSpread[1000]
Eine weitere Frage: Wenn das Array von Null an nummeriert ist, ist die letzte Zelle bei einer Größe von 1000 dann 999?
Dann ist es richtig: x++ und wenn ( x > 999 ) x=0;
Spread = MarketInfo(Symbol(),MODE_SPREAD); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){ int Spread2[x]; ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);} x=x+1; if (x > 1000) x = 0;
So schreibe ich den Spread-Wert in ExtSpread[], und wenn der einminütige Balken vorbei ist, verschiebe ich ihn in ein anderes Array - das theoretisch bis zum nächsten Balken überleben sollte.
Größe ExtSpread[1000]
Eine weitere Frage: Wenn das Array von Null an nummeriert ist, ist die letzte Zelle bei einer Größe von 1000 dann 999?
Dann ist es richtig: x++ und wenn ( x > 999 ) x=0;
Spread = (int)MarketInfo(Symbol(),MODE_SPREAD); if ( Spread >= 0 ) ExtSpread [x] = Spread; if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){ int Spread2[];ArrayInitialize (Spread2,EMPTY_VALUE); ArrayResize( Spread2,x,0); ArrayCopy( Spread2,ExtSpread,0,0, WHOLE_ARRAY);} x=x+1; if (x > 999) x = 0;
Guten Tag! Könnten Sie mir bitte sagen, ich habe die mt4 636 Version auf Android heruntergeladen, aber es sieht nicht die Liste der Makler. Wird die Terminalversion nicht mehr unterstützt?(( Wenn ja, wo kann ich eine funktionierende Version herunterladen?
Während der Kompilierung wird ein Fehler angezeigt. Was ist das Problem? Helfen Sie mir, es zu lösen!
ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Dies ist ein sehr nicht-optimaler Code, das Terminal hängt für ein paar Minuten, wenn es gestartet wird, und dann wird es sehr langsam sein, und wenn Sie es mit mehreren Charts laufen lassen, dann wird es überhaupt nicht funktionieren
Dies ist ein sehr nicht optimaler Code, das Terminal hängt beim Starten für ein paar Minuten, und dann wird es sehr langsam, und wenn Sie es mit mehreren Charts laufen lassen, dann wird es überhaupt nicht funktionieren
Ja, danke, alles repariert, keine Fehler. Verzögerungen, ja, sehr. Können Sie mir sagen, in welche Richtung ich optimieren muss, oder muss ich alles neu schreiben?
Ich meinte, dass, wenn Daten in ein Array übergeben wird, wird es in sequentieller Reihenfolge, d.h. array1[] = x; in welcher Zelle wird Wert x geschrieben werden, wenn die Zellennummer nicht direkt angegeben wird?
Nein. Wenn Sie alle Zellen mit demselben Wert füllen wollen , verwenden Sie ArrayInitialize().
Wenn Sie verschiedene Werte schreiben wollen, verwenden Sie die Schleife sequentiell. Wenn Sie in eine bestimmte Zelle schreiben müssen, geben Sie deren Adresse an.
Nein. Wenn Sie alle Zellen mit demselben Wert füllen wollen , verwenden Sie ArrayInitialize().
Wenn Sie verschiedene Werte schreiben wollen, verwenden Sie die Schleife sequentiell. Wenn Sie in eine bestimmte Zelle schreiben müssen, geben Sie deren Adresse an.
Ich danke Ihnen,
Hier ist eine weitere Frage: durch ArrayCopy, werde ich in der Lage sein, ein neues Array mit Größe gleich der Anzahl der gefüllten Zellen in der vorherigen erstellen? Oder sollte ich zuerst ein zweites Array erstellen und erst dann kopieren?
void& dst_array[], // куда копируем
const void& src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int count=WHOLE_ARRAY // сколько элементов
);
Ich danke Ihnen,
Hier ist eine weitere Frage: mit ArrayCopy, kann ich ein neues Array mit der gleichen Größe wie die Anzahl der gefüllten Zellen in der vorherigen erstellen? Oder muss ich erst ein zweites Array erstellen und dann kopieren?
void& dst_array[], // куда копируем
const void& src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int count=WHOLE_ARRAY // сколько элементов
);
Natürlich zuerst schaffen.
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[x];
ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 1000) x = 0;
So schreibe ich den Spread-Wert in ExtSpread[], und wenn der einminütige Balken vorbei ist, verschiebe ich ihn in ein anderes Array - das theoretisch bis zum nächsten Balken überleben sollte.
Größe ExtSpread[1000]
Eine weitere Frage: Wenn das Array von Null an nummeriert ist, ist die letzte Zelle bei einer Größe von 1000 dann 999?
Dann ist es richtig: x++ und wenn ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[x];
ArrayCopy( Spread2[],ExtSpread[],0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 1000) x = 0;
So schreibe ich den Spread-Wert in ExtSpread[], und wenn der einminütige Balken vorbei ist, verschiebe ich ihn in ein anderes Array - das theoretisch bis zum nächsten Balken überleben sollte.
Größe ExtSpread[1000]
Eine weitere Frage: Wenn das Array von Null an nummeriert ist, ist die letzte Zelle bei einer Größe von 1000 dann 999?
Dann ist es richtig: x++ und wenn ( x > 999 ) x=0;
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent() - iTime( NULL, 0, 0) >= 60 ){
int Spread2[];ArrayInitialize (Spread2,EMPTY_VALUE); ArrayResize( Spread2,x,0);
ArrayCopy( Spread2,ExtSpread,0,0, WHOLE_ARRAY);}
x=x+1;
if (x > 999) x = 0;
Aufgeschoben:
scomoroh, 2016.12.04 18:58
Bei der Kompilierung tritt ein Fehler auf. Was ist das Problem? Helfen Sie mit, es zu lösen!Aufgeschoben:
scomoroh, 2016.12.04 18:58
Während der Kompilierung wird ein Fehler angezeigt. Was ist das Problem? Helfen Sie mir, es zu lösen!ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Dies ist ein sehr nicht-optimaler Code, das Terminal hängt für ein paar Minuten, wenn es gestartet wird, und dann wird es sehr langsam sein, und wenn Sie es mit mehreren Charts laufen lassen, dann wird es überhaupt nicht funktionieren
ArrayInitialize(max,0) =>ArrayInitialize(arr,0);
for(int a=1;a<=pr;a++) =>for(int a=1;a<pr;a++)
Dies ist ein sehr nicht optimaler Code, das Terminal hängt beim Starten für ein paar Minuten, und dann wird es sehr langsam, und wenn Sie es mit mehreren Charts laufen lassen, dann wird es überhaupt nicht funktionieren