Monday, 26 June 2017

Rpgle Kette Hi Indikator Forex


Programmierung MT4-Indikator Joined Aug 2010 Status: Member 150 Beiträge Ich bin ein Code in der TradeStation, die sehr nützlich ist sehr nützlich Ich bin unter Metatrader für 10 Tage, also weiß ich nicht, wie man meinen Metatrader-Indikator unter diesem Programm programmiert, ist ziemlich kompliziert, dass es einen gemacht hat Statistische Studie der Schwung Berechnung Wahrscheinlichkeit mit Markov Ketten so, wenn jemand kann translat itll natürlich diesen Code :-) danke jai fais un code sous tradestation qui mest trs utile vraiment trs utile je suis sous metatrader depuis 10 jours donc je ne sais pas Kommentar Programmierer mon Zeichen Sous Metatrader ce Programm est assez compliqu il fait une tude statistique des Swings un calcul de probabilit en utilisant les chaines de markov donc si une personne peut le transcrire bien sur elle auras ce code :-) merciAgreed - wenn es nur ist Zwischen CHAIN ​​und SETLL. Allerdings - es sei denn, Sie sind qualaintainingquot Legacy-Code und Sie haben sehr strenge Standards für die Erhaltung RPG-Opcodes (Doppel-Whammy) - Ich werde die SQL-Route (wählen Sie zählen, wenn vorhanden, etc.) auf diesem ein. Es ist allgemeiner Glaube, dass IBM die Optimierung der RPG-Opcodes vor langer Zeit (vermutlich um die gleiche Zeit, als Ihre Frau an der Konferenz teilnahm) aufhörte, aber sie arbeiteten weiter an der SQL-Engine. Also von einem Performance-Standpunkt aus und ehrlich gesagt SQL ist besser lesbar mit freiem Code als quotsetll Z1DEPT DPTMASTquot - Ich empfehle dringend, SETLLCHAIN ​​zugunsten von SQL zu graben. Das ist meine bescheidene Meinung natürlich. Leistung ist in der Regel (nicht immer) weniger wichtig als andere Überlegungen wie Klarheit. Und wenn (wenn) IBM39s aktuelle Wünsche vertraut werden sollen und dem n-ten Grad gehorcht, sollte dies in jedem Fall mit SQL erreicht werden. - kh Dies ist ein interessanter Artikel. Wir (AS400 Menschen), wissen, dass natürlich quotspeedquot, ist relativ. Leistung ist immer durch InputOutput begrenzt, während der beste schriftliche Code immer gewinnt. Leistung ist immer noch von IO begrenzt. Aber das SETLL ist interessant, dass es keine Daten in den Puffer bringt, während die traditionelle KETTE tut. Außerdem ist die SETLL beim Erstellen einer 3Copy-Funktion wichtig. Bringen Sie in das Programm die ursprüngliche Aufzeichnung, laden Sie die Schlüsselfelder ändern, was Sie ändern müssen Vor dem Schreiben, verwenden Sie SETLL, um sicherzustellen, dass niemand hat in den Datensatz mit diesen Tasten snuck Wenn es nicht gefunden wird (mit nicht gleich nach dem Setll) Sie Kann nun sicher den Rekord schreiben. Wenn du CHAIN ​​anstelle von SETLL im obigen Schritt einsetzest, wird das Verhalten der CHAIN ​​die Schlüsselwerte ersetzen, die du gerade geladen hast .. Yo er utilizado mucho el setll porque es mas rapido para una cantidad de registros a realizar la busqueda, Ya que se situa en el puntero directo del registro eine buscar, mientras con el Kette si es pequeo el archivo es poca la diferencia. Lo importante es mejor trabajar con el Setll. Yo lo er trabajado con el RPGII, III y en ambiente nativo Übersetzung (mit Google Translate so ist es nicht perfekt) Ich habe viel verwendet, weil es schneller ist SETLL für eine Reihe von Datensätzen, um die Suche durchzuführen, weil es in der direkten befindet Zeiger Datensatz zu finden, während die Kette, wenn die Datei klein ist, gibt es wenig Unterschied. Das Wichtigste ist besser, mit dem SETLL zu arbeiten. Ich arbeitete mit RPGII, III und nativer Umgebung Ich mag SETLL als Rekordschlösser, die nicht in das Bild spielen und es einfach zu starten, von diesem Punkt zu lesen, wenn es gewünscht wird. Während beim Lesen von MASSIVE Mengen an Datenperformance eine Überlegung sein kann, aber mit den heutigen Maschinen ist der Unterschied zwischen einem CHAIN ​​und SETLL mehr so ​​klein, ich weiß nicht, dass ich die Leistung als die volle Entschlossenheit nutzen würde, die besser ist. Aber auch so SETLL sollte schneller sein, weniger Probleme mit Rekordschlössern (ja ich weiß, dass du sie auch mit CHAIN ​​vermeiden kannst) und ist ein guter Startplatz für IO, wenn es für notwendig erachtet wird. Ich habe immer gefolgt, was Tommy vorschlägt. Mir wurde gesagt, als ich anfing, RPG zu lernen, dass SETLL effizienter war, wenn man nur auf die Existenz eines Rekordes prüft. Um SETLL zu erleben, ist etwas schneller, muss aber von einer READ CHAIN ​​gefolgt werden. Ist eine einzigartige Ausbildung logisch weniger dann schreiben Anweisungen schneller die Berechnung. Ja, in der gegebenen Situation ist SETLL aus 2 Gründen effizienter - zuerst ist die Geschwindigkeit, mit der der Dateizeiger auf den Reqd-Datensatz gelangen kann. SETLL setzt nur den Indikator ein, die Kette wird in den Pufferspeicher oder die Programmvariablen alle Feldinformationen des gefundenen Datensatzes bringen - zu Zeiten können solche Informationen die Werte der Variablen überschreiben, wenn dies nicht beabsichtigt ist. Daher würde SETLL auf Speicher sparen und AVOID unerwünschte Überschreibfehler vermeiden. SETLL ist inhärent schneller, wie von anderen angemerkt. Leider, aufgrund von Design-Änderungen manchmal müssen Sie voran gehen und den Datensatz abholen, um einige Feldwerte zu bekommen, und wenn diese Änderung gemacht wird, müssen Sie Volumen-Tests zusätzlich zu den regelmäßigen Tests auf dem Programm zu bestimmen, wie viel es wird Kostet dich in der Laufzeit - war da. Wenn der Datensatz nur auf Existenz zugegriffen wird, dann ist ein SETLL weniger teuer als ein CHAIN. Immer besser, um den Cursor zurückzusetzen und eine Anzeige zu testen. Dies kann für kleine Mengen von IO nicht wichtig sein, aber für einen Job, der das oft tun muss, kann die Zeitersparnis schnell addieren. Simon, ich benutze es mit 42 -) SETLL ist meist viel weniger teuer als CHAIN. Ich kenne eine Ausnahme. Vor einer Reihe von Jahren in meiner früheren Beschäftigung haben wir herausgefunden, dass ein SETLL auf einer logischen selectomit Datei sehr kostspielig, weit langsamer als CHAIN ​​sein könnte. Wenn ich mich richtig erinnere, wurden die meisten der Zeilen von der selectomit ausgeschlossen. Dies ist ein nicht brainier, SETLL ist immer die beste Methode, um einfach zu validieren, dass ein Datensatz in Dateien gespeichert ist. Programme sollen so gestaltet werden, dass sie die Funktionalität maximieren. Sie sollten auch so gestaltet sein, dass sie sowohl von ausländischen als auch von lokalen genutzt werden können. Ich habe über 25 Jahre Design-Anwendung in RPG, RPG400, amp RPGLE die SETLL-Methode versichert, dass variable Werte in Ihrem Programm nicht während einer einfachen Datensatz-Validierung geändert werden. Sobald Sie die Existenz eines Datensatzes validiert haben, können Sie dann weitergehen, um die Anfrage nach Bedarf zu verarbeiten. Oben ist eine großartige Erklärung für alles, um etwas Gedächtnis zu erfrischen. SETLL ist noch effizienter, wenn es sich um logische Dateien und Indizes handelt. Mit diesen Dateitypen muss eine Kette das Suchargument in der logischen Datei positionieren, den Speicherort des Datensatzes in der physischen Datei abrufen, den Datensatz in der physikalischen Position positionieren und dann den Datensatz in den IO-Puffer verschieben. Ein SETLL müsste einfach das Suchargument in der logischen Position positionieren. Ein weiterer Bonus ist, dass beim Einsatz mit lokal scoped Dateien die SETLL keine IO-Datenstruktur benötigt. Absolut CHAIN ​​ist viel besser. Es wäre hilfreich, Manoj, wenn Sie Ihre Gründe, warum Sie betrachten CHAIN ​​als besser als SETLL für Rekord Existenz Validierung. Für mich selbst würde ich SETLL aus den hier von anderen gegebenen Gründen verwenden. Besonders in einem komplexen Programm, bei dem Daten aus anderen Datensätzen in derselben Datei verwendet werden. Allerdings wäre ein anderer Ansatz, wenn Sie routinemäßig einen Datensatz in einer 39-ten Data39-Tabelle (z. B. Ländercodes) existieren, ein Dienstprogramm - oder Dienstprogramm sein, das alle stehenden Datentabellen enthält. Ein Anruf oder Prozeduraufruf würde dann aus Ihrem Programm gemacht werden, wobei die Tabellen-ID, Schlüssel und Methode (get or check). Die Prozedur oder das Programm gibt dann einen Code zurück, um anzugeben, ob der Datensatz existiert (Prüfmethode) und der Datensatz selbst in einer Datensatzformat-Datenstruktur (Get-Methode). Mit diesem Dienstprogramm, müssen Sie nicht auf viele Tabellen-Dateien in jedem Programm, das Sie schreiben zugreifen. Und bestimmte Dateien werden nur im Dienstprogramm geöffnet, wenn eine Anfrage gestellt wird. Wir machen dies in meiner Firma, indem wir ein Batch-Programm verwenden, um die Tabellen und ein Datenwarteschlangenpaar zu verarbeiten, um zwischen dem Anwendungsprogramm und dem Batch-Job zu kommunizieren. Darüber hinaus gibt es ein Anfrage-Fenster-System zu behandeln 3939 Anfragen in Schlüsselfelder auf den Anruf. Aber das geht über den Rahmen dieser Diskussion hinaus. Ich glaube, Manoj meinte, du bekommst mehr aus CHAIN, also ist es besser. Ich verwende CHAIN ​​nur, wenn ich sicher weiß, es gibt nur einen Datensatz für die Schlüssel geliefert und ich benötige Informationen für diese Zeile für weitere Verwendung abgerufen. Ich glaube, dass beide Befehle für verschiedene Zwecke erstellt wurden, vielleicht sind seine Funktionen ähnlich, aber SETLL ist es, einen Zeiger auf einen Datensatz unter einem Kriterium zu approximieren, und die Kette ist es, Datensätze zufällig zu lokalisieren. Ich kann ein Messer benutzen, um zu schrauben, aber das Messer ist zu schneiden. Ich glaube nicht, dass SETLL am meisten ausdrücklich als setll ist. Wie auch immer, jeder macht ein Programm nach seinem Stil. Geschwindigkeit sollte eigentlich nicht der Gating-Faktor hier sein - Klarheit sollte sein. Ich persönlich würde immer CHAIN ​​verwenden, weil ich denke, es macht die Absicht des Codes offensichtlicher. Ein SETLL per Definition soll den Cursor positionieren. Die Tatsache, dass es eine genaue Übereinstimmung erkennen kann, ist zufällig zu seinem primären Gebrauch. Wenn ich eine SETLL sehe, nehme ich an, dass der Programmierer für eine READ-Sequenz positioniert ist - wenn ich CHAIN ​​sehe, nehme ich an, dass die Existenz eines Datensatzes überprüft wird. Welches der beiden Szenarien passt am besten zu den OP39s quotvalidatequot Anforderung Für mich ist die Wahl offensichtlich. P. S. Während in der Theorie ein SETLL immer schneller sein sollte, habe ich es vor einigen Jahren auf einer regelmäßigen Datenbank (nicht Multi-Format) getestet und festgestellt, dass in mehreren Tests CHAIN ​​schneller war. Stelle dir das vor. Ich bin mit Jon einverstanden. In einer IO-gebundenen Anwendung ist jeder Leistungsunterschied zwischen CHAIN ​​und SETLL geringfügig. Code für Korrektheit und Klarheit zuerst. Im Falle der Validierung, lassen Sie sich sagen, ein Staats-Code, warum sollte ich CHAIN ​​ich don39t brauchen die Beschreibung des Staates. Ich muss nur wissen, dass CA ein gültiger Code ist. Ich benutze die SETLL, um wie die Dokumentation im Code zu sein, um den anderen Leuten zu sagen, die dem Code begegnen, dass ich die Werte nicht im Datensatz benötige. Ich überprüfe nur, ob es dort auf der Akte ist. Während ich mit einer CHAIN ​​die bewusste Anstrengung mache, die Werte aus der Datei abzurufen, um sie zu benutzen. Also, wenn Sie sich schon entschieden haben, warum haben Sie die Frage gestellt Wenn Sie wirklich wollen, um die Absicht eindeutig offensichtlich, dann sollten Sie eine Unterprozedur, um solche Elemente zu validieren. Auf diese Weise liest der Code: Und dann kannst du einen Array-Lookup verwenden, SETLL, CHAIN, SQL, einen Web Service etc. etc. für den eigentlichen Abruf und es doesn39t Angelegenheit. Die Tatsache, dass keine Daten abgerufen werden, ist ebenfalls offensichtlich. Sie können die Methode auch später mit null Auswirkungen ändern (z. B. macht es überhaupt keinen Sinn, einen staatlichen Tisch zu haben. Es war lange her, dass irgendwelche hinzugefügt wurden.) In Bezug auf quot. Brauche die werte I39m nicht wirklich sicher, warum, wenn man den Code betrachtet, den sie sich interessieren würden. Auch deine SETLL-Konvention wäre ohne Hilfe, wenn ich deinen Code lese, weil ich davon ausgehen würde, dass du eine Liste gestartet hast. Ich glaube nicht, dass es mir jemals gelingt, dass Sie eine Validierung machten, aber die Daten nicht benötigt haben. Dies ist letztlich eine dieser Fragen, die wirklich das ist, ist Quittierung - wenn es eine starke Möglichkeit gibt, die ich die Daten trotzdem benötige, werde ich die CHAIN ​​verwenden - wenn es genau für die Verifikation der Daten geht (der Benutzer will einen Datensatz hinuntersetzen Art der Sache) Ich benutze SETLL - warum lese in Daten, wenn du es nicht benutzen wirst Warum nimm SETLL, wenn du die Daten sowieso benutzen willst. In anderen Worten - das Ziel diktiert, was logischer ist. Angesichts der angegebenen Kriterien - Datensatzvalidierung. SETLL macht Sinn - warum hat das System Daten abgerufen, die nicht verwendet werden werden Das ist ein bisschen wie das Fahren in den Supermarkt zu sehen, ob es sich um Milch handelt, nehmen Sie es nach Hause und sagen Sie quotYup, sie haben Milch, wenn man einfach den Laden anrufen kann Fragen. Ich bin ein autodidaktischer RPG-Programmierer und ich habe mehr von dieser kurzen Diskussion gelernt, als ich sagen kann. Ich habe immer den Unterschied bemerkt, aber ich habe nie die Verzweigungen der Wahl betrachtet. Danke, dass ihr mich erleuchtet habt Für die neue Entwicklung bevorzuge ich SQL SELECT eher als native IO, die Liste der Vorteile für die Verwendung von SQE über CQE ist lang. Aber du findest viele Winkel auf der Spitze einer Nadel.

No comments:

Post a Comment