Skip to main content

Variabel Gleit Durchschnitt Amibroker


Idealerweise möchten Sie, dass ein gefiltertes Signal sowohl glatt als auch verzögerungsfrei ist. Lag verursacht Verzögerungen in Ihrem Trades, und steigende Verzögerung in Ihren Indikatoren in der Regel führen zu niedrigeren Gewinnen. Mit anderen Worten, Später kommen auf dem Tisch, nachdem das Fest bereits begonnen hat. Thats, warum Investoren, Banken und Institutionen weltweit nach dem Jurik Research Moving Average (JMA) fragen. Sie können es so anwenden, wie Sie irgendwelche anderen beliebten gleitenden Durchschnitt. Allerdings, JMAs verbessert Timing und Glätte wird Sie verblüffen. Die gezackte graue Linie im Diagramm simuliert Preisvorgänge, die in einem niedrigen Handelsbereich beginnen, dann Lücken zu einem höheren Handelsbereich. Da niemand an der Seitenlinie gewartet hat, bewegt sich ein perfekter Rauschunterdrückungsfilter (grüne Linie) reibungslos entlang der Mitte des ersten Trading-Bereichs und springt dann fast sofort in die Mitte des neuen Trading-Bereichs Von den nützlichsten Sachen, die Sie im Analysefenster tun können, ist, Ihre Handelsstrategie auf historischen Daten zurück zu testen. Dies kann Ihnen wertvolle Einblicke in Stärken und Schwachstellen Ihres Systems geben, bevor Sie echtes Geld investieren. Diese einzelne AmiBroker-Funktion kann für Sie viel Geld sparen. Schreiben Sie Ihre Handelsregeln Zuerst müssen Sie objektive (oder mechanische) Regeln haben, um den Markt zu betreten und zu verlassen. Dieser Schritt ist die Basis Ihrer Strategie und Sie müssen darüber nachdenken, da das System mit Ihrer Risikobereitschaft, Portfolio-Größe, Geld-Management-Techniken und viele andere individuelle Faktoren übereinstimmen muss. Sobald Sie Ihre eigenen Regeln für den Handel haben, sollten Sie sie als Kauf - und Verkaufsregeln in AmiBroker Formula Lanugage schreiben (plus kurz und decken, wenn Sie auch kurz handeln wollen). In diesem Kapitel werden wir sehr grundlegende gleitende durchschnittliche Cross-Over-System zu betrachten. Das System würde Aktienabrechnungen kaufen, wenn der enge Preis über 45-Tage-exponentiell gleitenden Durchschnitt steigt und verkauft Aktienbeteiligungen, wenn der Schlusskurs unter 45-Tage-exponentielle gleitenden Durchschnitt sinkt. Der exponentielle gleitende Durchschnitt kann in AFL mit seiner eingebauten Funktion EMA berechnet werden. Alles, was Sie tun müssen, ist, das Eingabe-Array und die Mittelungsperiode anzugeben, so dass der 45-tägige exponentielle gleitende Durchschnitt der Schlusskurse durch die folgende Aussage erhalten werden kann: Die enge Kennung bezieht sich auf das eingebaute Array, das die Schlusspreise des aktuell analysierten Symbols hält . Um zu testen, ob der enge Preis über den exponentiellen gleitenden Durchschnitt hinausgeht, verwenden wir die integrierte Kreuzfunktion: kaufen Kreuz (schließen, ema (schließen, 45)) Die obige Aussage definiert eine Kaufhandelsregel. Es gibt quot1quot oder quottruequot, wenn enge Preiskreuze über Ema (schließen, 45). Dann können wir die Verkaufsregel schreiben, die bei der Gegenüberstellung eintreten würde - enge Preiskreuze unter Ema (nahe, 45): Kreuz verkaufen (ema (schließen, 45), in der Nähe) Bitte beachten Sie, dass wir dieselbe Kreuzfunktion verwenden Die entgegengesetzte Argumentation. Die komplette Formel für lange Trades wird so aussehen: Kreuz kaufen (schließen, Ema (schließen, 45)) Kreuz verkaufen (Ema (schließen, 45), in der Nähe) HINWEIS: Um neue Formel zu erstellen, öffnet man den Formel-Editor mit dem Analysis-gtFormula Editor Menü, geben Sie die Formel ein und wählen Sie Tools-gtSend zum Analysemenü im Formel-Editor Um das System erneut zu testen, klicken Sie einfach auf die Schaltfläche "Zurück" im Fenster "Automatische Analyse". Stellen Sie sicher, dass Sie in die Formel eingegeben haben, die mindestens Kauf - und Verkaufshandelsregeln (wie oben gezeigt) enthält. Wenn die Formel korrekt ist, beginnt AmiBroker, Ihre Symbole nach Ihren Handelsregeln zu analysieren und erzeugt eine Liste simulierter Trades. Der ganze Prozess ist sehr schnell - Sie können Tausende von Symbolen in wenigen Minuten wieder testen. Das Fortschrittsfenster zeigt Ihnen die voraussichtliche Fertigstellungszeit. Wenn du den Prozess stoppen möchtest, kannst du im Fortschrittsfenster einfach auf Abbrechen klicken. Wenn der Prozess beendet ist, wird die Liste der simulierten Trades im unteren Teil des automatischen Analysefensters angezeigt. (Der Ergebnisbereich). Sie können untersuchen, wann die Kauf - und Verkaufssignale nur durch einen Doppelklick auf den Handel im Ergebnisbereich aufgetreten sind. Dies gibt Ihnen rohe oder ungefilterte Signale für jede Bar, wenn Kauf - und Verkaufsbedingungen erfüllt sind. Wenn Sie nur einzelne Handelspfeile sehen möchten (Öffnen und Schließen des aktuell ausgewählten Handels), sollten Sie auf die Zeile doppelklicken, während Sie die SHIFT-Taste gedrückt halten. Alternativ können Sie die Art der Anzeige auswählen, indem Sie im Kontextmenü die entsprechende Option auswählen, wenn Sie mit einer rechten Maustaste auf den Ergebnisbereich klicken. Zusätzlich zu der Ergebnisliste können Sie sehr detaillierte Statistiken über die Leistung Ihres Systems erhalten, indem Sie auf die Schaltfläche Bericht klicken. Um mehr über Berichtsstatistiken zu erfahren, schau dir bitte die Beschreibung des Berichtfensters an. Ändern der Back-Test-Einstellungen Zurück-Test-Engine in AmiBroker verwendet einige vordefinierte Werte für die Ausführung seiner Aufgabe einschließlich der Portfolio-Größe, Periodizität (täglich wöchentlich monatlich), Höhe der Provision, Zinssatz, maximale Verlust und Gewinn Ziel stoppt, Art der Trades, Preisfelder und so auf. Alle diese Einstellungen können vom Benutzer über das Einstellungsfenster geändert werden. Nachdem Sie die Einstellungen geändert haben, denken Sie bitte daran, Ihren Back-Test erneut auszuführen, wenn die Ergebnisse mit den Einstellungen synchronisiert werden sollen. Zum Beispiel, um den Test auf wöchentlichen Stäben statt täglich zu testen, klicken Sie einfach auf die Schaltfläche Einstellungen, wählen Sie Wöchentlich aus Periodizität Kombinationsfeld und klicken Sie auf OK. Führen Sie dann Ihre Analyse aus, indem Sie auf den Test klicken. Reservierte Variablennamen Die folgende Tabelle zeigt die Namen der reservierten Variablen, die von Automatic Analyzer verwendet werden. Die Bedeutung und Beispiele zu deren Verwendung finden Sie weiter unten in diesem Kapitel. Ermöglicht die Kontrolle des Dollarbetrags oder des Prozentsatzes des Portfolios, das in den Handel investiert wird (siehe Erläuterungen unten) Automatische Analyse (neu in 3.9) Bisher diskutierten wir eine ziemlich einfache Verwendung des Back-Testers. AmiBroker, unterstützt jedoch viel mehr anspruchsvolle Methoden und Konzepte, die später in diesem Kapitel diskutiert werden. Bitte beachten Sie, dass der Anfänger-Benutzer zuerst ein wenig mit den einfacheren Themen spielen sollte, die oben beschrieben wurden, bevor Sie fortfahren. Also, wenn Sie bereit sind, schauen Sie sich bitte die folgenden vor kurzem vorgestellten Features des Back-Testers an: a) AFL Scripting Host für fortgeschrittene Formel Schriftsteller b) verbesserte Unterstützung für kurze Trades c) die Art und Weise zu steuern Auftrag Ausführung Preis von der Script d) verschiedene Arten von Stopps im hinteren Tester e) Positionsgröße f) runde Losgröße und Tickgröße g) Randkonto h) Backtesting Futures AFL Scripting Host ist ein fortgeschrittenes Thema, das in einem separaten Dokument hier abgedeckt ist und ich werde nicht diskutieren Es in diesem Dokument. Verbleibende Features sind viel einfacher zu verstehen. In den Vorgängerversionen von AmiBroker, wenn du das System mit Hilfe von Lang - und Kurzgeschichten retten wolltest, könntest du nur eine Stop-and-Reverse-Strategie simulieren. Als die lange Position geschlossen wurde, wurde sofort eine neue Short-Position eröffnet. Es war, weil kaufen und verkaufen reservierte Variablen wurden für beide Arten von Trades verwendet. Jetzt (mit Version 3.59 oder höher) gibt es getrennte reservierte Variablen zum Öffnen und Schließen von langen und kurzen Trades: Kauf - quottruequot oder 1 Wert öffnet lange Handel verkaufen - quottruequot oder 1 Wert schließt lange Handel kurz - quottruequot oder 1 Wert öffnet kurze Handelsabdeckung - quottruequot oder 1 Wert schließt kurzer Handel Som, um kurze Trades zu retten, müssen Sie kurze und Cover-Variablen zuordnen. Wenn Sie Stop-and-Reverse-System (immer auf dem Markt) einfach zuweisen, verkaufen zu kurz und kaufen, um zu decken kurz verkaufen Deckung zu kaufen Dies simuliert die Art und Weise vor-3.59 Versionen funktionierte. Aber jetzt AmiBroker ermöglicht es Ihnen, getrennte Handelsregeln zu haben, um lange zu gehen und kurz zu gehen, wie in diesem einfachen Beispiel gezeigt: lange Trades Ein-und Ausreise Regeln: kaufen Kreuz (cci (), 100) verkaufen Kreuz (100, cci ()) kurz (Cci (), -100) Beachten Sie, dass in diesem Beispiel, wenn CCI zwischen -100 und 100 ist, Sie aus dem Markt sind. Steuern des Handelspreises AmiBroker bietet jetzt 4 neue reservierte Variablen zur Angabe des Preises, bei dem Kauf-, Verkaufs-, Kurz - und Deckungsaufträge ausgeführt werden. Diese Arrays haben folgende Namen: Kaufpreis, Verkaufspreis, Shortprice und Deckungspreis. Die Hauptanwendung dieser Variablen ist die Kontrolle des Handelspreises: BuyPrice IIF (Tag 1) HIGH, CLOSE) am Montag kaufen bei High, sonst kaufen Sie in der Nähe So können Sie die folgenden schreiben, um echte Stop-Bestellungen zu simulieren: BuyStop. Die Formel für den Kauf Stop Level SellStop. Die Formel für den Verkauf Stop-Level, wenn jederzeit während des Tages Preise steigen über Buystop-Ebene (highgtbuystop) der Kaufauftrag stattfindet (bei buystop oder niedrig je nachdem, was höher ist) Kaufen Cross (High, BuyStop) wenn jederzeit während des Tages Preise unter den Verkaufspreis fallen (SellPrice, SellStop) BuyPrice max (BuyStop, Low) Sicherstellen, dass der Kaufpreis nicht weniger als Low SellPrice min (SellStop, High) sicher ist Verkaufspreis nicht größer als hoch Bitte beachten Sie, dass AmiBroker die Kaufpreis-, Verkaufspreis-, Shortprice - und Coverprice-Array-Variablen mit den im Systemtest-Einstellungsfenster definierten Werten festlegt (siehe unten), so dass Sie es aber nicht in Ihrer Formel definieren müssen. Wenn Sie es nicht definieren, arbeitet AmiBroker wie in den alten Versionen. Beim Back-Testing überprüft AmiBroker, ob die Werte, die Sie dem Kaufpreis, dem Verkaufspreis, dem Shortprice, dem Deckungspreis zugewiesen haben, in den High-Low-Bereich der angegebenen Bar passen. Wenn nicht, wird AmiBroker es auf hohen Preis anpassen (wenn Preis-Array-Wert höher als hoch ist) oder auf den niedrigen Preis (wenn Preis-Array-Wert niedriger als niedrig ist) Profit-Ziel stoppt Wie Sie in der Abbildung oben sehen können, neue Einstellungen für Profit-Zielstopps sind im System-Test-Einstellungsfenster verfügbar. Profit-Ziel-Stops werden ausgeführt, wenn der hohe Preis für einen bestimmten Tag die Stopp-Ebene übersteigt, die als Prozentsatz oder Punktzunahme vom Kaufpreis gegeben werden kann. Standardmäßig werden Stopps zu einem Preis ausgeführt, den Sie als Verkaufspreis-Array (für lange Trades) oder Cover-Price-Array definieren (für kurze Trades). Dieses Verhalten kann durch die Verwendung von quotExit bei der Stopquot-Funktion geändert werden. QuotExit bei stopquot-Funktion Wenn du bei den Stopp-Box-Feldern die Markierung von noExit bei Stopquot-Box markierst, werden die Stopps auf exakte Stop-Ebene ausgeführt, dh wenn du Profit-Ziel-Stop bei 10 deinen Stop definiert hast und der Kaufpreis 50 Stopp-Order wird bei 55 durchgeführt, auch wenn Ihr Verkaufspreisarray enthält unterschiedlichen Wert (zB Schlusskurs von 56). Maximaler Verlust stoppt die Arbeit in ähnlicher Weise - sie werden ausgeführt, wenn der niedrige Preis für einen bestimmten Tag unter die Stoppebene sinkt, die als Prozentsatz oder Punktzunahme vom Kaufpreis gegeben werden kann. Diese Art von Stopp wird verwendet, um die Gewinne zu schützen Verfolgt Ihren Handel, so dass jedes Mal, wenn ein Positionswert ein neues Hoch erreicht, der nachlaufende Stopp auf einer höheren Ebene platziert wird. Wenn der Gewinn unter die nachlaufende Stopp-Ebene sinkt, wird die Position geschlossen. Dieser Mechanismus wird in der Abbildung unten dargestellt (10 Nachlaufstopp ist gezeigt): eine Stichproben-Low-Level-Implementierung des Profit-Ziel-Stopps in AFL: Buy Cross (MACD (), Signal ()) für (i 0 i lt BarCount i) Wenn (priceatbuy 0 Buy i) priceatbuy BuyPrice i if (priceatbuy gt 0 SellPrice i gt 1.1 priceatbuy) Verkaufen i 1 SellPrice i 1.1 priceatbuy priceatbuy 0 sonst Verkaufen i 0 Dies ist ein neues Feature in Version 3.9. Positionsgröße im Backtester wird durch neue reservierte Variable implementiert PositionSize ltsize arraygt Jetzt können Sie den Dollarbetrag oder den Prozentsatz des Portfolios steuern, das in den Handelspartner investiert wird, der in den Handel investiert ist, der in den Handel investiert wird: PositionSize 1000 invest 1000 in jedem Handels-negativen Zahlen -100 ..- 1 definieren Prozentsatz: -100 gibt 100 der aktuellen Portfolio-Größe, -33 gibt 33 der verfügbaren Eigenkapital zum Beispiel: PositionSize -50 investiert immer nur die Hälfte des aktuellen Equity Dynamic Sizing Beispiel: PositionSize - 100 RSI () als RSI variiert von 0..100 Dies führt zu einer Position abhängig von RSI-Werten - gt niedrige Werte von RSI wird zu höheren Prozentsatz investiert Wenn weniger als 100 der verfügbaren Bargeld investiert wird, dann die verbleibenden Betrag verdient Zinssatz Wie in den Einstellungen definiert. Es gibt auch ein neues Kontrollkästchen im AA-Einstellungsfenster: quotAllow Positionsgröße shrinkingquot - das steuert, wie der Backtester die Situation verarbeitet, wenn die angeforderte Positionsgröße (über PositionSize-Variable) das verfügbare Bargeld übersteigt: Wenn dieses Flag markiert ist, wird die Position mit der Größe eingegeben Vorhandenes Bargeld, wenn es unkontrolliert ist, wird die Position nicht eingegeben. Um die tatsächlichen Positionsgrößen zu sehen, verwenden Sie bitte einen neuen Berichtsmodus im AA-Einstellungsfenster: quotTrade-Liste mit Preisen und Pos. Sizequot Für das Ende ist hier ein Beispiel für Tharps ATR-basierte Positionsgrößen-Technik, die in AFL kodiert ist: Kaufen Sie ltyour kaufen Formel heregt Verkaufen 0 Verkauf nur durch Stop TrailStopAmount 2 ATR (20) Hauptstadt 100000 WICHTIG: Setzen Sie es auch in den Einstellungen: Initial Equity Risk 0.01Kapital PositionSize (RiskTrailStopAmount) BuyPrice ApplyStop (2, 2, TrailStopAmount, 1) Die Technik könnte wie folgt zusammengefasst werden: Das Gesamt-Eigenkapital pro Symbol beträgt 100.000, wir setzen das Risiko auf 1 des gesamten Eigenkapitals. Der Risikostufe wird wie folgt definiert: Wenn ein nachlaufender Stopp bei einer 50 Aktie bei etwa 45 (der Wert von zwei ATRs gegen die Position) liegt, wird der 5 Verlust in das 1000 Risiko aufgeteilt, um 200 Aktien zu kaufen. So ist das Verlustrisiko 1000, aber das Zuteilungsrisiko beträgt 200 Aktien x 50share oder 10.000. Also, wir vergeben 10 des Eigenkapitals auf den Kauf, aber nur riskieren 1000. (Bearbeitete Auszug aus der AmiBroker Mailing-Liste) Runde Losgröße und Tick Größe Verschiedene Instrumente werden mit verschiedenen quottrading unitsquot oder quotblocksquot gehandelt. Zum Beispiel können Sie fraktionierte Anzahl von Einheiten von Investmentfonds kaufen, aber Sie können nicht kaufen gebrochene Anzahl von Aktien. Manchmal muss man in 10s oder 100s viel kaufen. AmiBroker können Sie nun die Blockgröße auf globaler und per-Symbol-Ebene angeben. In der Symbol-gtInformation-Seite können Sie in der Symbol-gtInformation-Seite per-symbol runde Losgröße definieren (Bild 3). Der Wert von Null bedeutet, dass das Symbol keine spezielle runde Losgröße hat und von der Seite "Automatische Analyseeinstellungen" (Bild 1) die Option "Default Round Lot Sizequot" (globale Einstellung) verwendet. Wenn die Standardgröße auch auf Null gesetzt ist, bedeutet dies, dass die Anzahl der Aktienbeteiligungen erlaubt ist. Sie können auch die Losgröße direkt aus Ihrer AFL-Formel mit RoundLotSize reservierten Variablen steuern, zum Beispiel: Diese Einstellung steuert die minimale Preisbewegung des gegebenen Symbols. Sie können es auf globaler und per-Symbol-Ebene definieren. Wie bei der runden Losgröße kannst du in der Symbol-gtInformation-Seite (Abb. 3) per-Symbol-Tick-Größe definieren. Der Wert von null weist AmiBroker an, die in der Einstellungsseite (Bild 1) des automatischen Analysefensters definierte Quittungs-Tick-Größe zu verwenden. Wenn die Standard-Tick-Größe auch auf Null gesetzt ist, bedeutet dies, dass es keinen minimalen Preisverschiebung gibt. Sie können die Tickgröße auch aus der AFL-Formel mit der TickSize reservierten Variablen einstellen und abrufen, zB: Beachten Sie, dass die Tick-Größeneinstellung nur NUR-Trades betrifft, die durch eingebaute Stops und ApplyStop () verlassen wurden. Der Backtester geht davon aus, dass die Preisdaten den Tickgrößenanforderungen folgen und die von dem Benutzer gelieferten Preisarrays nicht ändern. Die Angabe von Zeckengröße ist also nur dann sinnvoll, wenn man eingebaute Stopps benutzt, so dass Ausstiegspunkte bei den Quotenpreisstufen anstelle der berechneten Werte erzeugt werden. Zum Beispiel in Japan - Sie können keine Bruchteile von Yen haben, so dass Sie globale Ticksize auf 1 definieren sollten, also eingebaute Stopps beenden Trades auf ganzzahligen Ebenen. Die Konto-Margin-Einstellung definiert die prozentuale Margin-Anforderung für das gesamte Konto. Der Standardwert der Kontobewertung beträgt 100. Das bedeutet, dass Sie 100 Fonds für den Handel anbieten müssen, und das ist die Art und Weise, wie der Backtester in früheren Versionen gearbeitet hat. Aber jetzt können Sie ein Margin-Konto simulieren. Wenn du auf Marge kaufst, wirst du einfach Geld von deinem Broker ausleihen, um Lager zu kaufen. Mit aktuellen Regelungen können Sie bis zu 50 der Kaufpreis der Aktie, die Sie kaufen möchten und leihen die andere Hälfte von Ihrem Broker. Um dies zu simulieren, geben Sie einfach 50 in das Feld Kontoband ein (siehe Bild 1). Wenn Ihr intiales Eigenkapital auf 10000 eingestellt ist, wird Ihre Kaufkraft dann 20000 sein und Sie können in der Lage sein, größere Positionen einzugeben. Bitte beachten Sie, dass diese Einstellungen die Marge für das gesamte Konto festlegen und es sich nicht um einen Futures-Handel handelt. Mit anderen Worten, Sie können Aktien auf Margin-Konto handeln. "Reverse-Eingangssignal" das Kontrollkästchen "exitquot" auf die Backtester-Einstellungen. Wenn es eingeschaltet ist (die Voreinstellung) - Backtester funktioniert wie in früheren Versionen und schließt bereits offene Position, wenn neues Eingangssignal in umgekehrter Richtung angetroffen wird. Wenn dieser Schalter ausgeschaltet ist - auch wenn das Rückwärtssignal auftritt, behält der Backtester den derzeit geöffneten Handel bei und schließt die Position nicht ab, bis ein reguläres Ausgangssignal (Verkaufs - oder Abdeckungssignal) erzeugt wird. Mit anderen Worten, wenn dieser Schalter ausgeschaltet ist, ignoriert Kurze Signale während langer Trades und ignoriert Kaufsignale bei kurzen Trades. QuotAllow gleiche Bar-Exit (Single-Bar-Handel) Option auf die Einstellungen Wenn es eingeschaltet ist (die Standardeinstellungen) - Ein-und Ausstieg an der gleichen Bar ist erlaubt (wie in früheren Versionen), wenn es ausgeschaltet ist Next bar nur (dies gilt für reguläre Signale, es gibt eine separate Einstellung für ApplyStop-generierte Exits). Das Umschalten auf OFF ermöglicht es, das Verhalten von MS-Backtestern zu reproduzieren, das nicht in der Lage ist, am selben Tag zu vergeben. QuotActivate stoppt sofort quotDiese Einstellung löst das Problem der Prüfung von Systemen, die Trades auf dem Markt öffnen. In Versionen vor dem 4.09-Backtester wurde davon ausgegangen, dass du Trades auf dem Markt gegangen wirst, so dass eingebaute Stationen vom nächsten Tag aus aktiviert wurden. Das Problem war, als Sie in der Tat definierten offenen Preis als der Handel Eintrag Preis - dann am selben Tag Preisschwankungen nicht auslösen die Stopps. Es gab einige veröffentlichte Workarounds basierend auf AFL-Code, aber jetzt müssen Sie nicht brauchen, um sie zu verwenden. Einfach, wenn Sie auf offen handeln, sollten Sie markActivate stoppen sofortquot (Bild 1). Sie können fragen, warum nicht einfach die Kaufpreis oder Shortprice-Array, wenn es gleich offenen Preis ist. Unglücklicherweise wird das nicht funktionieren Warum einfach, weil es Doji-Tage gibt, wenn der offene Preis gleich ist und dann der Backtester nie wissen wird, ob der Handel am Markt geöffnet oder geschlossen wurde. Also brauchen wir wirklich eine separate Einstellung. Deu QuickAFLquotQuickAFL (tm) ist ein Merkmal, das eine schnellere AFL-Berechnung unter bestimmten Bedingungen ermöglicht. Anfangs (seit 2003) war es nur für Indikatoren verfügbar, ab Version 5.14 steht er auch in der automatischen Analyse zur Verfügung. Anfänglich war die Idee, ein schnelleres Diagramm durch die Berechnung der AFL-Formel nur für den Teil, der auf dem Diagramm sichtbar ist, zuzulassen. In ähnlicher Weise kann das automatische Analysefenster eine Untermenge von verfügbaren Zitaten verwenden, um AFL zu berechnen, falls ausgewählt 8220range8221 Parameter kleiner als 8220All Zitate. Detaillierte Erläuterungen zur Funktionsweise von QuickAFL und deren Steuerung finden Sie in diesem Knowledge Base-Artikel: amibrokerkb20080703quickafl Beachten Sie, dass diese Option nicht nur im Backtester funktioniert, sondern auch bei Optimierungen, Explorationen und Scans. AFL ist eine spezielle Programmiersprache, die verwendet wird, um zu definieren Und erstellen Sie benutzerdefinierte Indikatoren, Scans, Explorationen, Back-Tests und Guru Kommentare. Lexikalische Elemente Dieses Kapitel beschreibt die verschiedenen Kategorien von wortähnlichen Einheiten (Token), die vom AFL-Sprachdolmetscher erkannt werden. Whitespace Whitespace ist der kollektive Name für Leerzeichen (Leerzeichen), Tabs, neue Zeilenzeichen und Kommentare. Whitespace kann dazu dienen, anzugeben, wo Token beginnen und enden, aber jenseits dieser Funktion wird jeder überschüssige Whitespace verworfen. Kommentare sind Textstücke, die verwendet werden, um ein Programm zu kommentieren. Kommentare sind für die Programmierer verwenden nur sie sind aus dem Quellcode vor dem Parsing entfernt. Das sind zwei Möglichkeiten, um Kommentare abzuschreiben: C-like Kommentare und C wie Kommentare. Ein C-ähnlicher Kommentar ist eine beliebige Folge von Zeichen, die nach dem Symbolpaar platziert wurden. Der Kommentar endet beim ersten Auftreten des Paares nach dem Initialen. Die gesamte Sequenz, einschließlich der vier Kommentar-Trennzeichen-Symbole, wird durch einen Raum ersetzt. Ein C wie Kommentare sind einzeilige Kommentare, die mit zwei benachbarten Schrägstrichen () an beliebiger Stelle innerhalb der Linie beginnen und bis zur nächsten neuen Zeile reichen. AFL erlaubt keine verschachtelten Kommentare. AFL erkennt fünf Klassen von Token: Identifikatoren Konstanten String-Literale Operatoren Punctuatoren (auch als Separatoren bezeichnet) Identifikatoren sind beliebige Namen beliebiger Länge, die Funktionen und Variablen gegeben sind. Identifikatoren können die Buchstaben (a-z, A-Z), das Unterstrichzeichen (quotquot) und die Ziffern (0-9) enthalten. Das erste Zeichen muss ein Brief sein. AFL-Identifikatoren sind nicht zwischen Groß - und Kleinschreibung unterschieden. Konstanten sind Token, die feste numerische oder Zeichenwerte darstellen. Numerische Konstanten bestehen aus Dezimalzahl und optional: Dezimalpunkt und Dezimalbruchteil. Negative numerische Konstanten haben unary minus (-) vorangestellt. String-Konstanten, auch als String-Literale bekannt. Bilden eine spezielle Kategorie von Konstanten, die verwendet werden, um feste Sequenzen von Zeichen zu behandeln und werden als eine Sequenz einer beliebigen Anzahl von Zeichen geschrieben, die von doppelten Anführungszeichen umgeben sind: Dies ist buchstäblich ein Stringquot Der null (leere) String ist quittiert. Die Zeichen innerhalb der doppelten Anführungszeichen können Escape-Sequenzen (quotnquot - eine neue line-Escape-Sequenz) enthalten. Ein konstanter Ausdruck ist ein Ausdruck, der immer eine Konstante auswertet. Sie werden ebenso ausgewertet wie reguläre Ausdrücke. Punctuator (auch als Trennzeichen bekannt) in AFL ist eines der folgenden Zeichen: (). . Klammern (öffnen (und schließen)) Gruppenausdrücke, isolieren bedingte Ausdrücke und geben Funktionsaufrufe und Funktionsparameter an: dc (ab) überschreiben normale Vorrang a (b UND c) OR (d UND e) bedingter Ausdruck func () Funktion rufen keine Argumente auf Das Komma (,) trennt die Elemente einer Funktionsargumentliste Das Semikolon () ist ein Anweisungsterminator. Jede rechtliche AFL-Expression, gefolgt von einem Semikolon, wird als eine Anweisung interpretiert, die als Ausdrucksaussage bekannt ist. Der Ausdruck wird ausgewertet und sein Wert wird verworfen (außer Guru-Kommentare, wo String-Werte in das Ausgabefenster geschrieben werden) Der Punkt (.) Ist ein Mitgliedszugriffsoperator. Es wird verwendet, um COM-Objekt-Methoden aufzurufen. Wenn myobj-Variable das Objekt mit dem dot-Operator hält, können wir die Methoden (Funktionen) des myobj-Objekts aufrufen: Das Gleichheitszeichen () trennt Variablendeklarationen aus Initialisierungslisten: x 5 Es gibt auch den Standardwert für einen Parameter an (siehe eingebaut Funktionsbeschreibung): macd (schnell 12 langsam 26) Standardwerte für schnelle und langsame Argumente) Sprachstruktur Jede Formel in AFL enthält eine oder mehrere Ausdrucksaussagen. Jede Aussage muss durch Semikolon () beendet werden. Auf diese Weise können Sie lange Ausdrücke in mehrere physikalische Linien brechen (um Klarheit zu erlangen) und AmiBroker wird es immer noch wie eine einzige Aussage behandeln, bis das Semikolon beendet ist. Beispiele: Identifikatoren Identifikatoren in AFL werden verwendet, um Variablen und Funktionen zu identifizieren. Es gibt einige vordefinierte Bezeichner, die auf eingebaute Arrays und Funktionen verweisen. Die wichtigsten sind Preis-Array-Identifikatoren. Sie identifizieren spezifische Preisfelder, auf die die Formel einwirken soll. Die gültigen Array-Bezeichner sind offen. hoch . niedrig . schließen . Volumen Openint Durchschnittlich Preis-Array-Identifikatoren können wie in der folgenden Tabelle gezeigt abgekürzt werden. Beachten Sie, dass dies nicht case-specific ist. Speichern Sie den Wert des zweiten Operanden in dem vom ersten Operanden angegebenen Objekt (8220simple assignment8221). Der Zuweisungsoperator weist einer Variablen einen Wert zu: wo Ergebnis Variablenkennung ist und Ausdruck ein beliebiger numerischer, Array - oder Textausdruck ist. Da sich der Operator wie andere Operatoren verhält, haben Ausdrücke, die ihn verwenden, zusätzlich zu der Zuordnung dieses Wertes in die Variable einen Wert. Dies bedeutet, dass Sie die Zuweisungsoperatoren wie folgt ketten können: j k l 0 j, k und l gleich Null, nachdem die Beispielanweisung ausgeführt wurde. Achtung: Bitte nicht verweigern Zuweisungsoperator () mit Gleichheitsprüfung () Dies sind zwei verschiedene Betreiber und Sie dürfen keine Zuordnung () verwenden, um die Gleichheit zu überprüfen. If (Name () quotMSFTquot) WRONG. - Variablenzuweisungsoperator anstelle der Gleichheitsüberprüfung verwendet, wenn (Name () quotMSFTquot) CORRECT - Gleichheitsoperator richtig verwendet Dies ist einer der häufigsten Codierungsfehler, die hier aufgeführt sind. Arithmetische Operatoren Formeln können die folgenden mathematischen Operatoren enthalten: Erhalten Sie die bitweise Inklusive ODER der ersten und zweiten Operanden speichern das Ergebnis in dem Objekt, das durch den ersten Operanden typeof () Operator spezifiziert wird Der Typofoperator wird auf folgende Weise verwendet: typeof (Operand) Der Typ des Operators gibt einen String zurück, der den Typ des nicht ausgewerteten Operanden angibt. Operand ist die Zeichenfolge, Variable, Funktionskennung oder Objekt, für die der Typ zurückgegeben werden soll. Bei der Bereitstellung von Bezeichner sollte es alleine ohne arithmetische Operatoren ohne zusätzliche Argumente und ohne Klammern bereitgestellt werden. Wenn Sie den von der Funktion zurückgegebenen Werttyp überprüfen möchten, müssen Sie den Rückgabewert zunächst einer Variablen zuordnen und dann typeof (Variable) verwenden. Mögliche Rückgabewerte sind: quotundefinedquot - identifier ist nicht definiert quotnumberquot - operand steht für eine nummer (skalar) quotarrayquot - operand stellt ein array quotstringquot dar - operand stellt einen string formfaktor dar - operand ist ein eingebauter funktionsbezeichner quotuser functionquot - operand ist ein user - Definierte Funktion quotobjectquot - Operand repräsentiert COM-Objekt quotmemberquot - Operand repräsentiert Member-Funktion oder Eigenschaft von COM-Objekt quothandlequot - Operand steht für Windows-Handle quotunknownquot - Typ des Operanden ist unbekannt (sollte nicht passieren) typeof-Operator erlaubt unter anderem, um undefinierte Variablen im folgenden zu erkennen (Ifvar) undefined) Wenn somevar undefined ist, wird der Code hier ausgeführt. Das folgende Beispiel COMMENTARY Code zeigt die Ausgabe von typeof () in einigen üblichen Situationen: x MACD () y LastValue (x) Funktion testfun () return 1 Printf (typeof (test) n) die undefinierte Variable printf (typeof (1) n) wörtliche Zahl printf (typeof (checking) n) literal string printf (typeof (x) n) array variable printf (typeof (y) n) skalar Variable printf (typeof (MACD) n) Funktionskennung printf (typeof (testfun) n) Benutzerfunktionskennung Operatorvorrang und Klammern AFL unterstützt Klammern in Formeln. Klammern können verwendet werden, um die Operation Vorrang zu kontrollieren (die Reihenfolge, in der die Operatoren berechnet werden). AmiBroker macht immer Operationen in den innersten Klammern. Wenn Klammern nicht verwendet werden, ist der Vorrang wie folgt (höhere Priorität aufgeführt zuerst): (ohne Klammer) würde von AmiBroker als quotL 2quot plus quotHquot berechnet werden, da Division eine höhere Priorität hat. Dies würde zu einem viel anderen Wert führen als ein paar Worte über incrementdecrement Operatoren. Es gibt zwei Arten von ihnen: Postfix und Präfix. Die unären Operatoren (und -) heißen 8220prefix8221 inkrementieren oder dekrementieren Operatoren, wenn die Inkrement - oder Dekrementoperatoren vor dem Operanden erscheinen. Postfix Inkrement und Dekrement hat höhere Priorität als Präfix Inkrement und Dekrement Operatoren. Wenn der Operator vor seinem Operanden erscheint, wird der Operand inkrementiert oder dekrementiert und sein neuer Wert ist das Ergebnis des Ausdrucks. Ich werde zuerst inkrementiert und Ergebnis (Nummer 6) wird zugewiesen. Das Ergebnis des Postfix-Inkrement - oder Dekrement-Vorgangs ist der Wert des Postfix-Ausdrucks, bevor der Inkrement - oder Dekrement-Operator angewendet wird. Die Art des Ergebnisses ist die gleiche wie die des Postfix-Ausdrucks, ist aber nicht mehr ein l-Wert. Nachdem das Ergebnis erhalten wurde, wird der Wert des Operanden inkrementiert (oder dekrementiert). Jij wird der Wert von 5 (vor Inkrementierung) zugewiesen und dann werde ich auf 6 erhöht. Zugriff auf Array-Elemente: - subscript operator Ein Array-Identifier gefolgt von einem Ausdruck in eckigen Klammern () ist eine subscripted Darstellung eines Elements eines Arrays Objekt. Es repräsentiert den Wert des Ausdrucks-ten Elements des Arrays. BarCount-Konstante gibt die Anzahl der Balken in Array (wie Close, High, Low, Open, Volume, etc.). Array-Elemente werden von 0 (Null) bis BarCount-1 nummeriert. BarCount ändert sich nicht, solange Ihre Formel die Ausführung fortsetzt, aber es kann zwischen den Ausführungen wechseln, wenn neue Balken hinzugefügt werden, der Zoomfaktor geändert oder das Symbol geändert wird. Um die erste Leiste zu erhalten, kannst du Array 0 verwenden, um die letzte Leiste des Arrays zu erhalten, die du Array verwenden kannst. BarCount - 1 Schließen 5 Stellt das sechste Element (Balken) des nahen Arrays dar. Schließen 0 Stellt die allererste verfügbare Leiste des nahen Arrays dar. High BarCount - 1 Stellt den letzten Balken von High Array dar. Matrizen und Matrixoperatoren Matrizen sind zweidimensionale Arrays von Zahlen. Um eine Matrix zu verwenden, verwenden Sie: myvarname Matrix (rows, cols, initvalue) Um auf Matrixelemente zuzugreifen, verwenden Sie: myvarname row col wobei row ein Zeilenindex ist (0. Anzahl der Zeilen-1) und col ist ein Spaltenindex (0. number Der Spalten-1) Matrizen und ihre Elemente unterstützen alle skalaren (elementweisen) arithmetischen und logischen Operationen. Alle diese Standardoperatoren werden auf Matrizen elementweise ausgeführt. Aus diesem Grund zum Beispiel zwei Matrizen hinzuzufügen, müssen sie die gleiche Größe haben (die Anzahl der Zeilen und Spalten muss gleich sein). Wenn es nicht dasselbe ist, liegt es an Ihnen, wie Sie die Berechnung auf jedem Element über eine Schleife durchführen können. So können Sie zB addieren, subtrahieren, multiplizieren, zwei Matrizen teilen, wenn sie dieselben Dimensionen mit einem Aufruf haben. X Matrix (5. 6. 9) Matrix 5 Zeilen 6 Spalten, Anfangswert 9 y Matrix (5. 6. 10) Matrix 5 Zeilen 6 Spalten, Initialwert 10 zy - x gibt Dir Matrix 5 Zeilen und 6 Spalten gefüllt mit Elemente mit Wert 1 (Differenz zwischen 10 und 9). Alle diese Operationen werden durchgeführt ELEMENT-WISE. Sie können auch jede arithmetische und logische Operation auf Matrix-UND-Skalarwert anwenden. Dies würde eine elementare Operation auf jedem Element der Quellmatrix und dem skalaren Wert durchführen. M Matrix (10. 10. 0) m wird 10x10 Matrix gefüllt mit Nullen z m z ist nun auch eine Matrix für (i 0 i lt 10 i) z i 4 i füllen z mit einigen anderen Werten, beachten Sie, dass m unberührt bleibt. Für (i 0 i lt 10 i) TRACEF (gg, g, gn. I, mi 1, mi 4, zi 4) skalare Addition (elementweise) z 3 m 5 für (i 0 i lt 10 i) TRACEF (gg , G, gn. I, mi 1, mi 4, zi 4) Es gibt einen speziellen Operator, der nur auf Matrizen arbeitet - es ist Matrixprodukt. Der Operator für Matrixprodukt ist (das Zeichen). Matrixprodukt ist die lineare Algebra-Methode, um Matrizen zu multiplizieren. Wenn Sie CAB schreiben, multipliziert sie die Matrix A (n, k) mit der Matrix B (k, m), um die Matrix C (n, m) zu erzeugen, so dass die Anzahl der Spalten in Matrix A gleich der Anzahl der Zeilen in Matrix B sein muss. Weitere Informationen finden Sie unter: en. wikipedia. orgwikiMatrixmultiplication Der Vorrang des Matrixproduktbetreibers ist der gleiche wie (so hat er höhere Priorität als Addition und Subtraktion). Eine Matrix (1. 3) B Matrix (3. 2) Matrix A 1, 4, 6 Matrix B 2, 3 5, 8 7, 9 A 0 0 1 A 0 1 4 A 0 2 6 B 0 0 2 B 0 1 2 B 1 0 5 B 1 1 8 B 2 0 7 B 2 1 9 TRACEF (g g. X 0 0, X 0 1) zusammengesetzte Anweisungen (Bausteine) Eine zusammengesetzte Anweisung besteht aus null oder mehr in geschweiften Klammern eingeschlossenen Anweisungen ( ). Eine zusammengesetzte Anweisung kann überall dort verwendet werden, wo eine Aussage erwartet wird. Zusammengesetzte Anweisungen werden gemeinhin als 8220blocks.8221 bezeichnet (dies wird von der C-Sprache ausgeliehen, Benutzer anderer Programmiersprachen werden verwendet, um BEGIN für zu verwenden) wenn (Betrag gt 100) TRACE (Betrag über 100) Saldo Betrag sonst Balance Balance - Betrag Built - In Funktionen Zusätzlich zu mathematischen Operatoren enthält AmiBroker über 70 integrierte Funktionen, die mathematische Operationen durchführen. Die folgende Formel besteht aus einer einzigen Funktion, die die Quadratwurzeln der Schlusskurse ergibt: Die folgende Formel besteht aus einer einzigen Funktion, die einen 14-Perioden-RSI-Indikator gibt: Die folgende Formel besteht aus zwei Funktionen. Das Ergebnis ist die Differenz zwischen dem MACD-Indikator und einem 9-Perioden-exponentiellen gleitenden Durchschnitt des MACD: Alle Funktionsaufrufe müssen aus Funktionskennzeichen (Name), gefolgt von einem Paar von Klammern bestehen. Wie in früheren Beispielen entnommen wurde, kann eine Funktion innerhalb einer Funktion quittiert werden. Die verschachtelte Funktion kann als Hauptfunktionsdaten-Array-Parameter dienen. Die folgenden Beispiele zeigen Funktionen, die in Funktionen verschachtelt sind: Das erste Beispiel berechnet einen 10-fach einfachen gleitenden Durchschnitt eines 15-Perioden-Relative Strength Index (RSI). Das zweite Beispiel berechnet einen 20-Perioden-exponentiellen gleitenden Durchschnitt eines 15-Perioden-RSI und berechnet dann einen 10-fach einfachen gleitenden Durchschnitt dieses gleitenden Durchschnitts. Bedingungsfunktion IIF () Mit der Funktion iif () werden bedingte Zuordnungen erstellt. Es enthält drei Parameter wie im folgenden Beispiel gezeigt. Die oben genannte Quittungserklärung lautet (in englischer Sprache) wie folgt: Wenn der heutige Abschluss größer ist als der heutige 10-tägige einfache gleitende Durchschnitt der Schließung, dann ordnen Sie der dynamischen Variablen einen 9-tägigen RSI zu, ansonsten weisen Sie einen 14-tägigen RSI zu. Die nächste Formel ordnet 149positive volume148 der Volresult-Variable zu, wenn das Schließen größer ist als der Medianpreis. Andernfalls wird ein quotnegative volumequot zugeordnet. Wenn Sie einfach wollen, dass ein Ausdruck als wahr oder falsch ausgewertet wird, kann dies ohne die Verwendung der iif () - Funktion erfolgen. Die folgende Formel führt entweder zu einem 1 (true) oder einem 0 (false): Das gleiche getan mit iif () gibt die gleichen Ergebnisse, aber die Formel ist länger. Bitte beachten Sie, dass IIF eine Funktion ist - so wird das Ergebnis der Auswertung von dieser Funktion zurückgegeben und sollte einer Variablen zugeordnet werden. IIf wertet immer sowohl TRUEPART als auch FALSEPART aus, obwohl er nur einen von ihnen zurückgibt. Aus diesem Grund sollten Sie auf unerwünschte Nebenwirkungen achten. IIF-Funktion ist NICHT eine Flusskontrolle. Wenn Sie eine Flusskontrolle benötigen (bedingte Ausführung einiger Codeteile), sollten Sie nach einer anderen Bedingungserklärung suchen, die später in diesem Dokument beschrieben wird. Das folgende Beispiel zeigt einen gemeinsamen Fehler, der mit der IIF-Funktion gemacht wurde: IIf (Bedingung, Ergebnis 7. Ergebnis 9) DIES IST FALSCH Die korrekte Verwendung ist: Ergebnis IIf (Bedingung, 7. 9) 7 oder 9 wird zurückgegeben und der Ergebnisvariable zugeordnet Bedingung Um die Aufrechterhaltung komplexer Formeln zu verkürzen, zu vereinfachen, zu verbessern und zu erleichtern, können Sie Variablen verwenden. In der Tat mit Variablen können Sie deutlich verbessern Formel Berechnung Geschwindigkeit. So wird dringend empfohlen, Variablen zu verwenden und es gibt keine Begrenzung auf die Anzahl der Variablen, die Sie definieren können. Eine Variable ist eine Kennung, die einem Ausdruck oder einer Konstanten zugeordnet ist. Die Anzahl der Variablen, die in einer Formel verwendet werden, ist nicht begrenzt. Variablen müssen zugeordnet werden, bevor die Variable in der Formel verwendet wird. Variablen können nicht innerhalb eines Funktionsaufrufs vergeben werden. Benutzerdefinierte Variablennamen (Bezeichner) können nicht bereits von Funktionen verwendete Namen duplizieren (zB ma, rsi, cci, iif usw.) oder vordefinierte Array-Identifikatoren (zB offen, hoch, niedrig, nah, einfach, o, c, l, H, s, a). Reservierte Variablen AmiBroker verwendet einige reservierte Variablennamen in seinen Formeln, zum Beispiel im Auto-Analyse-Fenster müssen Sie Werte auf 2 Variablen mit dem Namen buy oder sell vergeben, um die Bedingungen anzugeben, unter denen quotbuyquot und quotsellquot Bedingungen auftreten. Zum Beispiel (System, das kauft, wenn MACD über 0 Zeile steigt und verkauft, wenn MACD unter 0 Zeile fällt) verwendet AmiBroker die folgenden reservierten Variablennamen. Bitte beachten Sie, dass Variablen, die als veraltet markiert sind, nicht in neuer Codierung verwendet werden dürfen. Sie sind nur für Rückwärtskompatibilität gelassen und neue Formeln sollten moderne Funktionen wie Plot () verwenden, um Indikatoren und AddColumn () zu definieren, um Explorationsspalten zu definieren. Diagramm N Farbe (veraltet) definiert den Farbindex der N-ten Graphenlinie (Farbindizes beziehen sich auf die aktuelle Palette - siehe PreferencesColor) colorCustom1 0 colorCustom2 1 colorCustom3 2 colorCustom4 3 colorCustom5 4 colorCustom6 5 colorCustom7 6 colorCustom8 7 colorCustom9 8 colorCustom10 9 colorCustom11 10 ColorCustom12 11 colorCustom13 12 colorCustom14 13 colorCustom15 14 colorCustom16 15 colorBlack 16 colorBrown 17 colorDarkOliveGreen 18 colorDarkGreen 19 colorDarkTeal 20 colorDarkBlue 21 colorIndigo 22 colorDarkGrey 23 colorDarkRed 24 colorOrange 25 colorDarkYellow 26 colorGreen 27 colorTeal 28 colorBlue 29 colorBlueGrey 30 colorGrey40 31 colorRed 32 colorLightOrange 33 colorLime 34 colorSeaGreen 35 ColorAqua 35 colorLightBlue 37 colorViolet 38 colorGrey50 39 colorPink 40 colorGold 41 colorYellow 42 colorBrightGreen 43 colorTurquoise 44 colorSkyblue 45 colorPlum 46 colorLightGrey 47 colorRose 48 colorTan 49 colorLightYellow 50 colorPaleGreen 51 colorPaleTurquoise 52 colorPaleBlue 53 colorLavender 54 colorWhite 55 graph N barcolor (veraltet) definiert das Array, das Hält Palettenindizes für jeden gezeichneten Balkendiagramm N-Stil (veraltet) definiert den Stil des N-ten Graphen. Style ist definiert als eine Kombination (Summe) eines oder mehrerer nachfolgender Flags: styleLine 1 - normales (Zeilen-) Diagramm (Standard) styleHistogramm 2 - Histogramm-Diagramm styleThick 4 - Fett (dick) styleDots 8 - include dots styleNoLine 16 - no line styleLog 32 - halb-logarithmische Skala styleCandle 64 - Leuchter-Diagramm styleBar 128 - traditionelles Balkendiagramm styleNoDraw 256 - kein Unentschieden (nur Achsen-Skalierung durchführen) StyleStaircase 512 - Treppenhaus (quadratisch) chart styleSwingDots 1024 - Mittelpunkte für Treppenhaus-ChartNoRescale 2048 - kein Rescale StyleNoLabel 4096 - kein Wert Etikett stylePointAndFigure 8192 - Punkt und Figur (neu in 4.20): styleArea 16384 - Bereichsdiagramm (extra breites Histogramm) styleOwnScale 32768 - Plot verwendet unabhängige Skalierung styleLeftAxisScale 65536 - Plot verwendet linke Achsenskala (unabhängig von der rechten Achse) Nicht alle Flaggenkombinationen machen Sinn, zum Beispiel (641) (Candlestick Line) wird in Candlestick Chart (style64) Hinweis auf Candlestickbar Charts: Diese Stile verwenden indirekt O, H, L Arrays zusätzlich zu Grafik N. So gewöhnliche Leuchter Preis Chart Formel ist graph0close graph0style64. Aber wenn du etwas anderes als den nahen Preis zeichnen willst, musst du den vordefinierten O, H, L Arrays neue Werte zuordnen. Graph N Barcolor (veraltet) definiert das Array von Farbindizes für die Balken und Leuchter im N-ten Graphen (Farbindizes beziehen sich auf die aktuelle Palette - siehe PreferencesColor)

Comments

Popular posts from this blog

Best Time Of Day To Sale Aktien Optionen

Ausübung von Aktienoptionen Ausübung einer Aktienoption bedeutet den Erwerb der emittenten Stammaktien zu dem von der Option festgelegten Preis (Zuschusspreis), unabhängig vom Aktienkurs zum Zeitpunkt der Ausübung der Option. Weitere Informationen finden Sie unter Lageroptionen. Tipp: Ausübung Ihrer Aktienoptionen ist eine anspruchsvolle und manchmal komplizierte Transaktion. Die steuerlichen Implikationen können stark variieren ndash achten Sie darauf, einen Steuerberater zu konsultieren, bevor Sie Ihre Aktienoptionen ausüben. Wenn Sie glauben, dass der Aktienkurs im Laufe der Zeit steigt, können Sie die langfristige Beschaffenheit der Option nutzen und darauf warten, dass Sie die Möglichkeit haben, die Aktienoptionen auszuüben Üben sie aus, bis der Marktpreis des Emittentenbestandes Ihren Stipendienpreis übersteigt und Sie fühlen, dass Sie bereit sind, Ihre Aktienoptionen auszuüben. Denken Sie daran, dass die Aktienoptionen nach einer gewissen Zeit ablaufen. Aktienoptionen haben kein...

Weis Trading Strategien Llc

Holen Sie sich für jedes Interview in nur 30 Minuten vorbereitet Weil Sie vielleicht nicht viel Zeit haben, um vorzubereiten, haben wir eine fokussierte Interview-Tests entwickelt, um Ihnen zu helfen, Interview-bereit in 30 Minuten zu bekommen. Mein Interview war der nächste Tag und ich wollte schnell. Leicht zu bedienende Führer und das war perfekt. Alex R. (Verkauf). Ich hatte nicht viel Zeit, mich vorzubereiten, da mein Interview am folgenden Tag war, also verbrachte ich nur etwa 25 Minuten. Es hat geklappt und ich habe den Job bekommen. Vielen Dank. Jennie F. (Finanzdienstleistungen). Ich hatte ein Interview am nächsten Tag und konnte in kurzer Zeit. vorbereitet sein. Ich danke dir sehr. Paula C. (Krankenpflege). Es war perfekt, weil es mit Strategien und Techniken, die verwendet werden können, um für ein hartes Interview in kurzer Zeit vorbereitet werden gepackt wurde. David B. (Marketing). Ich brauchte etwas schnell, das helfen könnte, mich auf meinen Interviewtermin vorzubereite...

5 Punkt Einfach Symmetrisch Gleitender Durchschnitt

Bewegungsdurchschnitte Bewegungsdurchschnitte Bei herkömmlichen Datensätzen ist der Mittelwert oft der erste und eine der nützlichsten Zusammenfassungsstatistiken zu berechnen. Wenn Daten in Form einer Zeitreihe vorliegen, ist das Serienmittel ein nützliches Maß, entspricht aber nicht der Dynamik der Daten. Mittelwerte, die über kurzgeschlossene Perioden berechnet werden, die entweder der aktuellen Periode vorausgeht oder auf der aktuellen Periode zentriert sind, sind oft nützlicher. Weil diese Mittelwerte variieren oder sich bewegen, wenn sich die aktuelle Periode von der Zeit t 2, t 3 usw. bewegt, werden sie als gleitende Mittelwerte (Mas) bezeichnet. Ein einfacher gleitender Durchschnitt ist (typischerweise) der ungewichtete Durchschnitt von k vorherigen Werten. Ein exponentiell gewichteter gleitender Durchschnitt ist im Wesentlichen derselbe wie ein einfacher gleitender Durchschnitt, aber mit Beiträgen zum Mittelwert, der durch ihre Nähe zur aktuellen Zeit gewichtet wird. Weil es n...