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
Wem meine Lösung gefällt, der kann mich persönlich anschreiben. Ich werde es verfeinern und verschenken.
Viel Glück für alle.
Ein Symbol-Zyklus, die Prüfung auf eine neue Bar-Eröffnung beim Eintreffen eines Kurses usw. kann leicht zu meiner Lösung hinzugefügt werden. Und was hat OOP damit zu tun?
Sie haben ein falsches Beispiel gewählt. Denken Sie in aller Ruhe über etwas anderes nach.
Und du tust es. Wenn man bedenkt, dass sich Charaktere verändern können - das ist ja auch beim Lesen von Charakteren so.
Tun Sie es. Vorausgesetzt, dass Charaktere sich verändern können - denn wenn man die Charaktere liest, ist das wahr.
Und was, wenn ich das tue? Was sagen Sie dann? Ich verrate Ihnen ein Geheimnis: Für mich ist diese Art von Aufgabe ein absolutes Kinderspiel. Glauben Sie wirklich, dass ich es nicht schaffe? Das ist einfach nur naiv...
Und was, wenn ich das tue? Was sagen Sie dann? Ich verrate Ihnen ein Geheimnis: Für mich ist diese Art von Aufgabe ein absolutes Kinderspiel. Glauben Sie wirklich, dass ich es nicht schaffe? Das ist einfach nur naiv...
Nun, tun Sie es schon.
Artyom hat die Frage nicht beantwortet, aber die Frage ist folgende: Schreiben Sie im prozeduralen Stil, so dass es richtig funktioniert
Keine Frage. Hedge, um den Vergleich von String-Operationen zu sparen, wenn der Kunde ein Verrückter ist und auf allen Symbolen gleichzeitig handeln will.
Aber es scheint, dass es nirgendwo anders möglich ist, Operationen und Speicher zu speichern - alles ist minimal
void OnTimer(){
Alert(Fn_new_bar("EURUSD", PERIOD_D1)); }
//+------------------------------------------------------------------+
uint Sp_Adler32(string line){
ulong s1 = 1;
ulong s2 = 0;
uint buflength=StringLen(line);
uchar char_array[];
ArrayResize(char_array, buflength,0);
StringToCharArray(line, char_array, 0, -1, CP_ACP);
for (uint n=0; n<buflength; n++){
s1 = (s1 + char_array[n]) % 65521;
s2 = (s2 + s1) % 65521;}
return ((s2 << 16) + s1);}
//+------------------------------------------------------------------+
bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf){
static datetime st_time[];
static uint st_id[];
//---- set
datetime new_time = iTime(symb, tf, 0); if(new_time==0) return(false);
uint new_id = Sp_Adler32(StringConcatenate(symb,EnumToString(tf)));
datetime old_time = 0;
uint old_id = 0;
//---- find
int size = ArraySize(st_time);
for(int i=0; i<size; i++){
if(st_id[i]!=new_id) continue;
old_id = st_id [i];
old_time = st_time[i];
break;}
//----add new element
if(old_time==0){
ArrayResize(st_time, size+1); st_time[size]=new_time;
ArrayResize(st_id, size+1); st_id [size]=new_id; }
//----
return(old_time>0 && old_time<new_time);}
Ich entschuldige mich für die leichte Verzögerung.
Hier ist die erste Version der Funktion. Sie können es weiter verfeinern und entwickeln. Wenn Sie einen Fehler entdecken, geben Sie bitte Ihre Kommentare ab.
Der Punkt liegt nicht in OOP, sondern in der Tatsache, dass Ihr Code linear ist, obwohl Sie das wahrscheinlich nie lernen werden...
Kein Problem. Hedge, um den Vergleich von String-Operationen zu speichern, gut, wenn der Kunde ist ein Verrückter und wird auf alle Zeichen gleichzeitig zu handeln.
Aber es scheint, dass es nirgendwo anders möglich ist, Operationen und Speicher zu speichern - alles ist minimal.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Mt4 Ende der Unterstützung.
Artyom Trishkin, 2017.09.10 23:21
Ich hatte das Ziel, dass das Endergebnis seines prozeduralen Codes in einer solchen Schleife funktioniert:
Aus Gewohnheit falsch benannt -bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf) ist die richtige Funktion.
Dann tun Sie es jetzt.
GUT. Ihre Lösung funktioniert nur bei Zecken. Meiner ist mit einer Zeitschaltuhr ausgestattet. Glauben Sie, dass meine Methode der Zeitmessung mit Balkenauftritten einen Nachteil hat? Ja. So soll es sein. Ich werde eine Prüfung auf das Eintreffen eines Angebots hinzufügen, bevor ich eine neue Balkenmarkierung setze. Ich werde der Funktion einen weiteren Parameter hinzufügen - ein Symbol. Der Benutzer wählt das Symbol, mit dem er das neue Taktereignis empfangen möchte, und sendet es an die Funktion. Die Funktion prüft den Zeitpunkt des letzten Zitats dieses Symbols. Dann vergleichen wir den Zeitpunkt des formellen Auftretens des Balkens mit dem Zeitpunkt des Angebots und setzen das Ereignisflag.
Ich habe gerade erst begonnen, dieses Thema zu studieren, aber ich sehe keine Schwierigkeiten.
Es geht nicht um OOP, sondern darum, dass Ihr Code linear ist, auch wenn Sie das vielleicht nie wissen...