Erstellen eines kompletten Bond in VBA | Jack Tellington | Skillshare

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

Erstellen eines kompletten Bond in VBA

teacher avatar Jack Tellington

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu jedem Kurs
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Eine Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu jedem Kurs
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Eine Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

6 Einheiten (32 Min.)
    • 1. Einführung in das Bond

      2:48
    • 2. Benutzerformular erstellen

      8:06
    • 3. Verwalten des Manage

      4:01
    • 4. Instantiate des Objekts

      5:10
    • 5. Die Formel implementieren

      6:54
    • 6. Das Userform Von Excel zu VBA

      4:46
  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Alle Niveaus

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

71

Teilnehmer:innen

--

Projekte

Über diesen Kurs

In diesem Kurs lernst du, wie du ein pricing erstellen kannst. Du lernst wichtige neue Funktionalitäten in der VBA kennen, angefangen bei der Erstellung eines unästhetischen Tools auf einer Tabelle bis hin zur Strukturierung und Optimierung deiner Arbeit mit dem Userform. Außerdem erfährst du einige Best Practices darüber, wie du die Datenspeicherung auf VBA mit dem Kurs verwalten kannst.

Triff deine:n Kursleiter:in

Teacher Profile Image

Jack Tellington

Kursleiter:in

Skills dieses Kurses

Technologie Webentwicklung Fesseln

Kursbewertungen

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%
Bewertungsarchiv

Im Oktober 2018 haben wir unser Bewertungssystem aktualisiert, um das Verfahren unserer Feedback-Erhebung zu verbessern. Nachfolgend die Bewertungen, die vor diesem Update verfasst wurden.

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen bei Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung in das Bond: Hallo, Leute. Willkommen zu dieser neuen Anleihe-Preisklasse von VB a finance dot com. Heute werden wir sehen, wie wir ein Anleihenpreis-Tool in V. B. Aerstellen können B. A Ich werde Ihnen auch zeigen, wie Sie das Feature-Benutzerformular verwenden. Während wir in der Klasse weitergehen, werden Sie sehen, dass das Lernen über Benutzerformulare eine sehr gute Investition, weil Benutzerformulare so viele Aufgaben schneller, weniger mühsam oder konsistenter machen können . zunächst Lassen Sie unszunächsteinen Überblick über die Anleihungsprinzipien und die Indikatoren, die wir auf Excel berechnen werden . Eine Anleihe ist im Grunde ein Schuldinstrument, das es dem Unternehmen ermöglicht, Geld über einen öffentlichen Markt zu sammeln und zusätzliche, die wir allgemein nennen Zinsen für den Käufer der Anleihe. Es gibt verschiedene Arten von Anleihen Instrumente, die auf dem Markt ausgetauscht werden, jede mit unterschiedlichen Merkmalen. Beginnen wir mit der einfachsten Anleihe, um die Null-Coupon-Anleihe zu berechnen. Dies ist die Art der Anleihe, die während der Laufzeit der Anleihe keine Zinsen zahlt. Also, wenn die Anleihe fällig wird, was bedeutet, dass sie im Datum abgelaufen ist, erhält der Anleger eine Pauschalsumme gleich der ursprünglichen Investition, auf die die Zinsen hinzugefügt wird , der Preis einer Null-Kuponanleihe Rendite kann mit der FIS-Formel berechnet werden hier. F ist der Nennwert der Anleihe, d. h. der Betrag, der dem Inhaber bei Fälligkeit gezahlt wird, entspricht dem Zinssatz gegenüber der Anzahl der Jahre bis zur Fälligkeit. Es gibt eine andere Art von Anleihe, bei der der Käufer Zwischengeldströme erhält, die tatsächlich abgezinste Coupons sind . Was ist ein Gutschein? Wir definieren den Zinsertrag als Jahreszinssatz für eine Anleihe, ausgedrückt als Prozentsatz des Anleihekurses. Wie Sie in der folgenden Formel sehen können, definieren wir den Anleihepreis, indem wir einige der diskontierten Cashflows tun , auf denen wir den endgültigen Coupon hatten. Es gibt jetzt zwei Indikatoren, die ich Ihnen zeigen möchte, die für unser Anleihe-Preis-Tool sehr wichtig sein werden , wobei der erste die Dauer ist. Die Laufzeit ist einfach ein Maß dafür, wie lange es dauert, bis die Anleihe durch ihre internen Cashflows zurückgezahlt wird . jedoch Bei einer Null-Kuponschuldverschreibung gilt die Laufzeitjedochnicht, da hier keine zwischengeschalteten Cashflows vorliegen. Am wichtigsten ist, wir müssen uns daran erinnern, dass D-Derivat von R in Abhängigkeit von der Dauer ausgedrückt wird. Nun, da wir die Dauer definiert haben, können wir einen neuen Indikator einführen, der Konvexität genannt wird. Die Sträftenstadt misst grundsätzlich den Grad, in dem sich die Dauer ändert, wenn sich die Rendite bis zur Reife ändert. Die Sträflinge Stadt wird in der Regel als Risikomanagement-Tool verwendet, weil sie hilft, die Höhe des Marktrisikos zu messen , dem ein Portfolio von Anleihen ausgesetzt ist. Dies ist das Ende dieser Klasse. Bevor Sie zum nächsten springen, stellen Sie sicher, das Quiz zu tun Vielen Dank für Ihre Aufmerksamkeit. 2. Benutzerformular erstellen: Hallo, Leute. Willkommen zurück in der Anleihe Preisklasse von VB a Finance dot com Heute werden wir die Anwendung der Prinzipien, die ich gerade eingeführt Sie mit diesem großartigen Tool das Benutzerformular zusehen Anwendung der Prinzipien, die ich gerade eingeführt Sie mit diesem großartigen Tool das Benutzerformular zu . Wie können wir ein Benutzerformular auf VB definieren? A. Ein Benutzerformular ist einfach ein Fenster oder ein Dialogfeld, das Eingaben des Benutzers sammelt und verarbeitet . In einem Microsoft Office-Programm können wir einen Benutzer für Mann V B A hinzufügen, indem Sie mit der rechten Maustaste auf Microsoft Excel -Objekt klicken. Wir werden dann gehen, um einfügen und klicken Sie auf Benutzerformular. Ein neues Fenster wird jetzt angezeigt. Wir nennen es das Designfenster, auf dem wir unser Benutzerformular entwerfen werden. Wir können bereits das Benutzerformular gestartet und auf dem Bildschirm angezeigt, um zu sehen, wie es aussieht. Moment ist es nur ein klassisches Fenster, auf dem wir Widgets hinzufügen werden, die die Verbindung zwischen unserer Anwendung und dem Benutzer herstellen . Es wird daher das Excel -Raster ersetzen, das sich nicht mehr auf der Hauptschnittstelle unserer Anwendung befindet. In Bezug auf unser Projekt werden wir auf dem Benutzer formularspezifische Werkzeuge hinzufügen, die es uns ermöglichen, Parameter für die Anleihe zum Preis einzugeben. Wir werden auch einen Bereich haben, in dem wir die Ergebnisse anzeigen werden. Nicht nur der Anleihepreis, sondern auch seine Sensibilität. Konvexität und die Coupons werden bis zur Fälligkeit aufgelistet. Wir werden nun beginnen, das Benutzerformular zu entwerfen. Es wird der erste Schritt unseres Projekts sein. Zuerst werden wir das Fenster benennen. Wir werden es Bond pricer nennen. Der Name des Benutzerformulars dieser Eigenschaft ist also der Name, den das Benutzerformular im V B A-Code hat . So können wir auf das Benutzerformular und seine Eigenschaften zugreifen, indem wir den variablen Bondpricer in der V B A Code Associate ID zum Benutzerformular verwenden und den Titel des Fensters oben ändern . Wir müssen die Eigenschaft „caption“ ändern. Jetzt werden wir unser Benutzerformular in zwei Unterteile teilen. Der erste Teil enthält unsere Parameter. Wir werden einen Typ Frame-Widget durch Ziehen und Ablegen des Fensters aus der Toolbox und wählen Frame hinzufügen . Dann geben wir die gewünschten Abmessungen in unserem Benutzerformular an. Versuchen wir, etwas Schönes hier zu tun. Dieser erste Frame hat die Parameter für den Beschriftungsnamen. Der zweite Bereich ist der Abschnitt, der ein Ergebnis enthält. Lassen Sie uns einfach die Ergebnisse nennen. Los geht's. Lassen Sie uns versuchen, das Benutzerformular anzuzeigen. Jetzt haben wir unsere zwei Frames, Parameter und Ergebnisse. Jetzt füllen wir den Raum mit dem Werkzeugkasten. Trotzdem, durch Ziehen und Ablegen von Steuerelementen, die nützlich sind, um die Ergebnisse anzuzeigen und die Parameter einzugeben . Der erste Schritt sind also unsere Parameter. Wir werden ein Textfeld hinzufügen, das es dem Benutzer ermöglicht, die ersten Parameter einzugeben. Hier gehen wir und ein Label-Typ Widget, das verwendet wird, um das Textfeld auf dem Bildschirm zu benennen. Wie Sie sehen können, befindet sich die Beschriftung neben dem Textfeld, so dass der Benutzer wissen kann, dass dieses Textfeld den Wert erhält , der durch die Beschriftung beschrieben wird. Dann, mit den Eingaben, die wir aus dem Textfeld erhalten, werden wir in der Lage sein, den Anleihepreis zu berechnen. Dieser erste Parameter wird also der Bondteil des Wertes sein. Wir geben ihm den Namen par value Feld wie auf dem Benutzerformular. Die Namenseigenschaft ist der Name, den unsere Lehrbücher im Code haben werden. Hier. Es ist nicht das Etikett, das wir nennen müssen. Es ist eher das Textfeld. Jetzt können wir das gleiche für die anderen Parameter kopieren und einfügen. - Jetzt haben wir die vier Parameter, obwohl einer fehlt, müssen wir hinzufügen, die Periode ist Stadt der Gutscheine. Für diesen Parameter verwenden wir kein Textfeld. Es ist nicht wirklich angepasst, da es nur vier mögliche Entscheidungen für die Zeit ist Stadt . Allerdings haben wir ein erstaunliches Widget hier Combo Box für diese Verwendung genannt, weil es die Wahl des Benutzers einschränkt . Die verschiedenen Optionen werden im Benutzerformularcode hinzugefügt. Wir fügen auch ein Etikett mit der Beschriftung Coupon Zeitraum ist Stadt und ein Name Gutscheinperiode ist Stadt Box, die es uns ermöglichen, es leicht in den Code Abschnitt zugreifen. Wir haben jetzt alle Parameter. Lassen Sie uns versuchen, es zu starten, um zu sehen, wie es von der Benutzerseite angezeigt wird. Jetzt werden wir die Ergebnisse Teil unseres Benutzerformulars entwerfen. Der erste Schritt besteht darin, drei Textfelder hinzuzufügen, die den Preis, die Empfindlichkeit und die Konvexität anzeigen . Wir werden dann ein Listenfeld-Widget hinzufügen, das die Liste der Coupons und standardmäßig das Bill Book of the Bond angezeigt wird . Zögern Sie nicht, kopieren und einfügen, um Zeit zu sparen. Kopieren Sie die drei Parameter oben, aber vergessen Sie nicht, die Beschriftung und den Box-Namen zu ändern. Also lassen Sie uns den Namen und die Beschriftung ändern. Wir können nun das Listenfeld hinzufügen und so vorgehen, wie wir es zuvor getan haben. Wählen Sie Listenfeld aus der Toolbox und wir ziehen Sie in das Fenster und wir benennen es in Coupon Listenfeld um . Jetzt ist unser Benutzerformular fertig. Wir können zeigen und sehen, wie es aussehen wird. Okay, lassen Sie uns mit dem V B beginnen. Ein Code hinter dem Benutzerformular, der es uns ermöglicht, nicht nur die Benutzereingaben zu erhalten, sondern auch die Ergebnisse auf dem Benutzerformular anzuzeigen. Also, indem wir dies tun, werden wir mit der rechten Maustaste hier im Projekt-Explorer auf dem Benutzerformular Project and View Code klicken. Der erste Schritt besteht darin, die Funktion zu implementieren, die das Benutzerformular initialisiert und in das Benutzerformular die Werte standardmäßig unserer Parameter in V B A einfügt. Die Initialisierungsfunktionen des Benutzerformulars müssen geschrieben werden mit diesem Format, so dass jedes Mal, wenn wir das Benutzerformular ausführen, diese Funktion ausgeführt wird, bevor das Benutzerformular verschoben wird. Wir können einen schnellen Test machen. Ich verwende die Funktion Debug-Punktdruck, der eine Nachricht ausführt und anzeigt, und dann kann ich das Benutzerformular starten. Ich öffne das unmittelbare Fenster, um zu überprüfen, ob die Nachricht fertig angezeigt wird, was bedeutet, dass unsere Initialisierungsfunktion erfolgreich ausgeführt wurde. So können wir jetzt die Parameter initialisieren. Der erste Schritt besteht darin, einen Standardwert der vier Parameter festzulegen, die in das Textfeld eingegeben werden sollen . Wir können hier die direkte Beziehung zwischen dem Eigenschaftsnamen und der Variablen sehen, auf die wir im Code zugreifen. Dann müssen wir die verschiedenen Optionen hinzufügen, die drei Benutzer in Bezug auf die Gutscheinperiode Stadt haben . Wir haben die Wahl ist kein Gutschein monatlich, vierteljährlich, halbjährlich oder jährlich. Wir haben jetzt die Initialisierungsfunktion, auf der wir einen schnellen Test durchführen können. Das funktioniert. Wie Sie sehen können, haben wir hier die Standardwerte. Wenn wir das Benutzerformular geöffnet und im Kombinationsfeld, die verschiedenen Optionen der Gutscheinperiode ist Stadt. Dies ist das Ende der Klasse, bevor Sie zum nächsten springen. Vergewissern Sie sich, dass Sie das Quiz machen. Vielen Dank für Ihre Aufmerksamkeit. 3. Verwalten des Manage: Hallo, Leute. Willkommen zurück in der Anleihe-Preisklasse von VB a finance dot com. Heute müssen wir uns nach der Speicherung der Daten, die wir aus dem Textfeld erhalten, fragen . Wie werden wir die Daten an unseren Preis selbst oder an die Preisfunktionen senden? Eine Lösung, die wir haben, wäre, Preisfunktionen dieser Art mit Parametern nebeneinander zu tun . Also hätten wir Nennwert, Jahresrabatt usw., und wir würden verschiedene Funktionen mit diesem langen Prototyp haben. Aber es ist nicht die beste Option in unserem Fall. Eine andere Lösung wäre, alle diese Parameter und nur eine Variable zu speichern, die wir in den verschiedenen Preisfunktionen auf einfache Weise aufrufen könnten. Die Parametervariable würde dann alle Parameter enthalten und wird in allen Funktionen verwendet werden . Dies ist in VB möglich, ein durch Klasse Modulklassenmodul sind Module, deren Rolle es ist, Parameter und Funktionen zu speichern . Wir werden dann in der Lage sein, sie als Variablen zu verwenden, um ein Klassenmodul zu erstellen. Wir klicken mit der rechten Maustaste auf das Projekt im Projekt und klicken auf Klassenmodul. Wir werden unsere Klassenmodul-Anleihe nennen, weil es eine Bindung ist und sie unterschiedliche Eigenschaften hat. Der erste Schritt ist also der Teilewert. Hier ist, was wir die variable Sichtbarkeit nennen, die öffentlich oder privat sein könnte. Privat bedeutet, dass es nur in diesem Modul zugänglich ist, wohingegen öffentlich überall in der Anwendung verwendet werden kann. Wir werden es an die Öffentlichkeit senden, weil Sie Zugriff auf unsere Variable aus dem Benutzerformular haben möchten , so dass wir in der Lage sind, es direkt aus Textfeld-Werten zu füllen, die vom Benutzer geschrieben wurden. Und wir werden für jeden Parameter ein Attribut erstellen. Also die Gutscheinperiode ist Stadt hat vier verschiedene Werte. Wenn wir zum Benutzerformular zurückkehren, haben wir in der Initialisierungsfunktion definiert, dass der Zeitraum Isett E fünf verschiedene Werte annehmen kann . Kein Gutschein monatlich, vierteljährlich, halbjährlich und jährlich. Um diese fünf Werte zu speichern, werden wir eine Integer-Typ Variable verwenden. Wir werden Null für keinen Coupon setzen, 12 für monatliche Bedeutung gibt es 12 Coupons pro Jahr, vier für vierteljährliche, vier Coupons pro Jahr, zwei für halbjährliche und eine für jährliche könnte man es in V. B. A ist, Option explizit auf der Oberseite jedes Moduls hinzuzufügen Wir können es auch dem Benutzerformular hinzufügen. Diese Option bedeutet, dass wir alle Variablen deklarieren müssen. Es wird Verwirrungen vermeiden, wenn wir versuchen, die Anwendung zwischen den Variablen zu debuggen, die wir nicht gesetzt haben, und denen, die wir dachten, wir setzen, die tatsächlich einen etwas anderen Namen hatte. Es sieht wie eine Einschränkung im Code aus. Aber in der Tat sparen wir so viel Zeit, indem wir dies verwenden, wenn wir die App debuggen. Jetzt haben wir ein Objekt, in dem Store-Parameter schwächen. Wir sind jetzt in der Lage, den Teil zu codieren, der unsere Benutzerformularinformationen erhält und ihn in diesen Parametern speichern wird. Wir sagten, wir könnten unser Klassenmodul wie eine Variable manipulieren, und das ist hier der Fall, weil unsere Klassenmodulbindung zum Beispiel zu einem Typ wird wie int Variante oder double, int Variante oder double, und wir werden in der Lage sein eine Variable dieses Typs. Wir werden es als globale Variable unseres Moduls setzen, und es wird die Bindung, die diesem Benutzerformular zugewiesen wird. Der Bond-Typ wird in der Auswahlliste angezeigt. Diese Anleihe entspricht unserem Klassenmodul. Wir werden ein Benennungsproblem haben, normalerweise für die Modulklasse. Es ist besser, CLS vor dem Namen hinzuzufügen. Es wird die Verwirrung mit den Variablen vermeiden. Also werden wir es auf diese Weise umbenennen. Los geht's. Also CLS unterstrichen Bond ist die Klasse eines Typs und binden ein Objekt, das Instanz sein muss. Was bedeutet das? Es bedeutet, dass wir den Speicher erstellen müssen, der einen CLS-Unterstrichen-Bond-Objekttyp enthält . Und wir werden ein Objekt erstellen, das die fünf Parameter enthält. Dies ist das Ende dieser Klasse, bevor Sie zum nächsten springen. Vergewissern Sie sich, dass Sie das Quiz machen. Vielen Dank für Ihre Aufmerksamkeit. 4. Instantiate des Objekts: in dieser Klasse werden wir den Speicher erstellen, der Ah CLS Unterstrich Bindung Objekttyp enthalten wird, und wir werden ein Objekt erstellen, das die fünf Parameter enthält. Wie können wir damit vorgehen? Wir sagten, Anleihe entspricht einer neuen CLS Unterstrich Anleihe. Und während der Initialisierung sagen wir der Anwendung an, unseren Speicherplatz zu erstellen, auf den unsere Bond-Variable zeigt, und jetzt sind wir bereit, diese Variable zu füllen. Da diese Variable global ist, bleibt sie so lange eingestellt, wie das Benutzerformular auf dem Bildschirm angezeigt wird. Was wir also wollen, ist, dass die Ergebnisse in Echtzeit angezeigt werden, wenn wir den Wert der verschiedenen Parameter ändern . Dafür können wir ein VB-Ereignis verwenden. Was ist eine Veranstaltung? Es ist ein Signal, das jedes Mal ausgegeben wird, wenn eine bestimmte Aktion ausgeführt wird. Wie, wenn der Benutzer eine Zelle ändert. Dieses Signal wird im Code abgerufen und von dort wird auf Grundlage dieses Ereignisses Maßnahmen ergriffen . So sind die Ereignisse, die einer Änderung in einer Zelle entsprechen, die auf geänderte Ereignisse und schwächen. Fangen Sie sie einfach, indem Sie Funktionen dieses Typs private Sub-Par Value Box geändert und diese Funktion wird ausgeführt Jedes Mal, wenn die Teilewert-Box geändert wird, können wir die gleiche Weise testen, wie wir mit dem Initialisierungsdebug Dot Print getan haben. So haben wir hier die Anzeige der Nennwert-Änderung. - Warum? Denn wenn wir das Benutzerformular öffnen, haben wir einen Standardwert definiert, der das Nennwert-Feld geändert hat. Sophie änderte den Wert ein zweites Mal. Wir werden wieder sehen, die Nachricht par value Änderung, Das bedeutet, unsere Funktion wird jedes Mal ausgeführt, wenn wir Textfeld-Werte ändern. Jetzt werden wir einfach den Bindteilwert ändern, der in der Objektbindung gespeichert ist, jedes Mal, wenn diese Funktion aufgerufen wird. Jedes Mal, wenn wir den Wert ändern, wird der variable Nennwert db der Bondklasse modifiziert. Wir müssen auch den Fall verwalten, wenn wir den Textfeld-Wert löschen. Wir haben hier einen Fehler, aber warum? Einfach, weil der variable Nennwert db des CLS-Bond-Typobjekts eine doppelte Variable erwartet wird . jedoch Wir habenjedochein leeres Textfeld. Es wird ein leeres Feld sein, das ein Zeichenfolgenwert ist. Also müssen wir diesen Fall leeres Textfeld verwalten. Wir werden einfach eine Bedingung wegen des Initialisierungscodes setzen. Auf diese Weise ist unsere Anwendung vor diesem Fehlertyp geschützt, und wir können jetzt das Textfeld für den Teilewert leeren, ohne dass ein Fehler auftritt. Jetzt müssen wir das gleiche tun für die verschiedenen Umfänge für die Periode ist Stadt Umfang. Es ist ein bisschen anders, weil dies kein Textfeld, sondern ein Kombinationsfeld ist. So haben wir verschiedene mögliche Werte. Also werden wir die Übersetzung zwischen dem Benutzereingabewert machen und sind int Typ Variable in der Klassenbindung. Um dies zu tun, werden wir eine bedingte Struktur vom Typ select case verwenden, die genau das tut, was wir wollen. Das heißt, verschiedene Aktionen in Abhängigkeit von dem Variablenwert. So werden wir eine Syntax wie diesen Select Case haben, abhängig vom Wert unserer Periode. Isett e Gutschein Combo-Box Dollar. Wir werden Fall für die verschiedenen Fälle haben. Der erste Fall wird kein Coupon sein, daher setzen wir den Wert für den zweiten Fall monatlich auf Null. Wir werden die Periode ist Stadt auf 12 einstellen. Weil wir 12 Coupons im Jahr Fall vierteljährlich haben. Wir werden den Zeitraum der Stadt auf vier für vier Coupons pro Jahr festlegen. Fall halbjährlich zu zwei für zwei Coupons pro Jahr und Fall jährlich ein Coupon pro Jahr. Schließlich wir im ausgewählten Fall mit einem Ende Fall aus. So scheint alles bisher gut zu funktionieren, um zu überprüfen, ob unser Bond-Objekt korrekt ausgeführt wird . Wir werden einfach einen Sub-Test durchführen, der die Variable unserer Anleihe anzeigt. Und wir werden diese Funktion von jeder Funktionsänderung aufrufen. Also werden wir versuchen, einen dieser Werte zu ändern. Wir können sehen, dass unser Anleiheobjekt erfolgreich modifiziert wird. Wie Sie sehen können, haben wir 345 für den Nennwert. Das funktioniert also gut. Wir werden diese Testfunktion vorerst in unserem Code behalten. Wir werden es später verwenden, um weitere Tests durchzuführen. So haben wir jetzt sind Benutzer Form unserer Benutzeroberfläche, ein Prozess, der die Dateneingabe durch den Benutzer an eine Variable überträgt, die diese Informationen und eine Variable von CLS-Bond-Typ speichert , die wir erstellt haben. Jetzt können wir die Preisfunktionen codieren, um nicht nur den Anleihepreis, sondern auch die Konvexitätsempfindlichkeit und die Coupons Liste zu senden . Also werden wir diese Funktionen in unsere CLS-Bond-Klasse setzen, eine Klasse, die Variablen und auch Funktionen enthalten kann. Es ist logisch, es dort zu speichern, da die Daten, die zurückgegeben werden, mit einer Bindung verknüpft sind . Dies ist das Ende dieser Klasse, bevor Sie zum nächsten springen. Vergewissern Sie sich, dass Sie das Quiz machen. Vielen Dank für Ihre Aufmerksamkeit. 5. Die Formel implementieren: Hallo, Leute. Willkommen zurück zur Anleihe-Preisklasse von VB a finance dot com In dieser Klasse werden wir die Formeln der einzelnen Funktionseigenschaften implementieren. Um also den Preis einer Anleihe zu berechnen, benötigen wir die Coupons Liste als schnelle Erinnerung. Der Wert einer Anleihe ist die Summe der diskontierten Cashflows zuzüglich des endgültigen Cashflows. So werden wir auch eine Funktion implementieren, die die Coupons Liste zurückgibt. Wir werden dies durch eine Tabelle für jeden der Coupons tun. Wir müssten drei Bits von Informationen speichern, die wir später im Benutzerformular anzeigen werden . Wir möchten die Couponperiode, den Couponpreis und den Coupon-Barwert. Um diese drei Bits von Informationen zu speichern, können wir eine neue Klasse erstellen, die CLS Unterstrich Coupon aufrufen wird. Also werden wir genauso tun wie mit einer Klasse CLS Unterstrich Bund. Wir werden drei Parameter im CLS-Unterstrich Coupon erstellen, so dass wir jetzt beginnen können, die Funktion zu implementieren, die die Coupons Liste generiert. Wir können mit der Deklaration einer Variablen beginnen, die die Coupons Nummer zu erstellen definiert. So wird die Coupons Nummer einfach definiert als die Fälligkeit in Jahren multipliziert mit der Kuponperiode . ISS ity Das ist eine ganze Zahl Lassen Sie uns ein kurzes Beispiel nehmen. Wenn die Anleihe Fälligkeit zwei Jahre mit vierteljährlicher Periode ist Stadt. Wir definieren es hier für die vierteljährliche Periode ist Stadt. Wir werden unsere Periode ist t Variable gleich vier und eine Reife gleich zwei haben. Also werden wir acht Coupons haben, die mit der Realität übereinstimmen. Also jetzt werden wir einen Zähler deklarieren, der es uns ermöglicht, eine Vier-Schleife zu machen, die von einer zu unseren Coupons Nummer reichen wird und bei jeder Schleife es Belüftung werden wir einen Gutschein erstellen. Jeder dieser Coupons würde in einer Tabelle gespeichert werden, die wir initialisieren werden. Wir legen die Tabellendimension fest. Wir kennen die Tabellendimension, weil es die Tabelle ist, die darauf abzielt, unsere Coupons zu speichern. Also haben wir eine Dimension, die gleich der Coupons Nummer ist, die wir in jeder Zeile der Tabelle speichern möchten . Wir werden einen Gutscheinobjekttyp speichern. Also was? Bei jeder Schleife richten wir unsere Coupon-Variable ein, wie wir es mit der Bond-Variable im Benutzerformular getan haben. Wir müssen auch die Coupon-Variable einrichten. Wir setzen die Coupon-Variable so, dass die Anwendung auf Speicher im Speicher eingestellt. Dann können wir den Gutschein ausfüllen, so dass die Periodennummer einfach der Zählerwert ist. Was ich hier mache, ist der direkte Zugriff auf einen der Klassenparameter in der Klassenfunktion. Es ist also nutzlos, hier ein Präfix zu verwenden, weil wir in der gleichen Klasse sind. Wenn ich also den Variablennamen eintippe, erkennt die Anwendung, dass ich über einen Parameter dieser Klasse spreche. Hier ist also der jährliche Zinssatz multipliziert mit dem Nennwert und dann ist der Barwert einfach der Couponbetrag geteilt durch den diskontierten Wert. Also eins plus der jährliche Diskontsatz auf den Zeitraum erhöht. Da wir eine Rate in Jahren haben, wollen wir auch den Zeitraum in Jahren, also werden wir sie durch die Reife dividieren, um den Zeitraum in Jahren zu erhalten. Also der letzte Schritt jetzt haben wir die Coupon-Variable gefüllt. Wir werden diesen variablen Coupon in unserer Coupon-Tabelle hinzufügen, damit wir zum Zählerindex gehen. Es wird der Gutschein sein, den wir gerade bevölkert haben. Dann wird diese Funktion einfach am Ende der Schleife die Coupontabelle zurückgeben. Also haben wir jetzt die Funktion, die die Coupons Liste zurückgibt. Und um es zu testen, werden wir zur Preisfunktion gehen, weil wir die Gutscheinliste im Funktionspreis wollen und wir eine Coupon-Variablenlistenleiste deklarieren, die die Coupon-Liste speichert. Diese Funktion wird zurückkehren und wir werden hier einen Stopp hinzufügen, so dass wir in der Lage sein zu sehen, wenn wir den Variablenwert debuggen. Um diesen Code auszuführen, müssen wir die Preisfunktion in der Haupt aufrufen. Also werden wir den Testcode hinzufügen, wir werden die Preisfunktion aufrufen. Lassen Sie uns die Anwendung starten. Oh, wir haben hier einen Fehler. Um also eine Klasse zu debuggen, müssen wir Schritt für Schritt gehen, da VB A Ihnen nicht zeigt, wo genau Sie einen Fehler gemacht haben. Klicken Sie also auf F acht und gehen Sie durch die Funktion Schritt für Schritt Drücken Sie F acht, um nach unten zu gehen. Wir haben einen Fehler in dieser Zeile. Lasst uns diese Linie stoppen. Lassen Sie uns die Anwendung erneut starten. Hier haben wir ein Problem, weil unser Code versucht, eine Tabelle der Größe Null zu bemaßen, was unmöglich ist . Die Tabelle geht von 1 bis 0, was völlig verboten ist. Dies geschieht, weil wir vergessen haben, einen Fall zu verwalten, in dem der Zeitraum ist. Stadt ist bei Null, so dass die Gutscheinnummer gleich Null ist, also müssen wir eine Bedingung hinzufügen. Wenn die Gutscheinnummer ungleich Null ist, führen wir diesen Code aus. Andernfalls wird es unsere Variantenvariable zurückgeben, die leer sein wird. Lassen Sie uns also die Anwendung erneut starten. Wir kommen an der Haltestelle an, die wir gesetzt haben. Wir werden eine Uhr hinzufügen, indem wir richtig machen. Klicken Sie und klicken Sie auf Uhr hinzufügen und sehen Sie sich den Wert der Gutscheinliste an. Es ist leer, wie erwartet, weil wir auf einer Null-Coupon Anleihe sind. Wie wir hier sehen können, ist die Gutscheinperiode Stadt leer. Lassen Sie uns jetzt für eine halbjährliche Periode überprüfen. Ist die Stadt. Diesmal haben wir die Gutscheinliste, die die Periode, den Barwert und den Wert enthält . So können wir uns jetzt auf die Umsetzung der Preisfunktion, Sensibilität und Konvexität konzentrieren . Die Anleihepreisformel ist also einfach die Summe der annualisierten Cashflows plus des endgültigen Cashflows, der dem Käufer ausgezahlt wird. Also müssen wir nur die verschiedenen Coupons anschliffen und ihren Gegenwartswert hinzufügen. Also lassen Sie uns den ersten variablen Schleifenzähler bestimmen. Lassen Sie uns auch erklären, dies eine Variable, die die Summe des reduzierten Wertes ist. Dann lassen Sie uns eine Schleife und verwenden Sie die Bond-Funktion, die es uns ermöglicht, die überlegene Linie einer Variante zu erhalten . Dadurch werden wir in der Lage sein, auf alle Coupons zu schleifen. Wir setzen den Summit Null und wir haben die einige Unterstrich LG gleich. Einige unterstreichen LG plus Gutscheinliste unserer Also für eine schnelle Erinnerung in dieser Tabelle, haben wir einen Coupon Typ Objekt für jede Zeile auf Objekt, die drei Parameter enthält die Periode, den Wert und den reduzierten Wert. Was uns interessiert, ist der Gegenwartswert. Also müssen wir nur den Barwert DB und die Anwendung auf den verbundenen Barwert darauf zugreifen , einige wir fügen den Barwert bei Teilwertlaufzeit hinzu, der den einigen entspricht , die bei Fälligkeit vom Anleihekäufer gesammelt wird, ähnlich der Funktion, die die Gutscheinnummer berechnet. Wir haben die diskontierte Formel verwendet, um den endgültigen diskontierten Cashflow zu berechnen, und wir haben den Wert zurückgegeben . Dies ist das Ende dieser Klasse, bevor Sie zum nächsten springen. Stellen Sie sicher, dass Sie das Quiz machen. Vielen Dank für Ihre Aufmerksamkeit. 6. Das Userform Von Excel zu VBA: -Formular in Excel. Hallo, Leute. Willkommen zurück in der Anleihe-Preisklasse von VB a finance dot com Am Ende der vorherigen haben wir unsere Preisfunktion geschrieben. Lassen Sie uns nun versuchen, es in unserem Benutzerformular anzuzeigen. Um dies zu tun, werden wir die Testfunktion wieder ändern, die wir nennen es berechnen. Da wir den Funktionstest bei jeder Änderung des Benutzerformulars aufrufen, berechnet die Anwendung den Anleihepreis jedes Mal, wenn sich die Parameter ändern . Beginnen wir mit dem Benutzerformular. Wir haben jetzt den Preis mit Dezimalstellen. Die Formel für die Sensibilitätsfunktion ist der Preisfunktion sehr ähnlich, so dass wir den Code kopieren und einfügen und ändern können. Die erste Änderung besteht darin, jeden Cashflow als Erinnerung mit der Periode zu multiplizieren. Da die Periode nicht annualisiert wird, teilen wir sie durch die Fälligkeit, um die Periode zu geben. In Jahren tun wir dasselbe für den endgültigen Cashflow, und wir dividieren durch den Preis multipliziert mit eins plus dem jährlichen Diskontsatz. Diese Empfindlichkeit ist einfach die erste Ableitung des Preises, den wir Ihnen auf dem Power-Punkt gezeigt haben , um diese Formel abzurufen, können Sie auf den theoretischen Teil zurückgehen, wo wir es erklärt haben. Die Konvexitätsformel ist ebenfalls sehr ähnlich. Also wieder können wir den Code kopieren und einfügen und einfach diesen Wert plus eins quadrieren, die die Formel ist , die wir bekommen, wenn wir die zweite Ableitung des Preises durch den Zinssatz tun. Also hier machen wir das Gleiche. Also war die Reife im Quadrat. Und schließlich brauchen wir auch diesen Begriff quadriert. Wir haben jetzt die Formel für Preis, Konvexität und Sensibilität. Wir müssen immer noch die Konvexität und Sensibilität mit ihrem jeweiligen Textfeld verbinden. Wir tun dies in der Sub-Berechnung, die jedes Mal ausgeführt wird. Es gibt eine Änderung in den Parametern. Also, jetzt bestreiten wir und es funktioniert perfekt. Wir haben jetzt die Sensibilität und die Konvexitätsmaßnahmen. Wir können sehen, dass es zusammen mit der Reife, die normal ist, zunimmt. Wir müssen nun die Coupons Liste anzeigen. Um das zu tun. Gehen wir zurück zum Benutzerformularcode und in der Berechnungsfunktion, werden wir die Coupons Liste erhalten und sie mit unserem Widget Listenfeld füllen. Wir deklarieren eine variable kubanische Liste, in der die Coupons Liste gespeichert werden, die wir von unserer Anleihe erhalten . Wir müssen auf die Bindung schleifen. Also müssen wir einen Zähler hinzufügen und wir werden unser Listenfeld füllen. Auf diese Weise. Fügen Sie Element hier wir an einem Objekt in der Listenbox, die einer Zeile hier und in dieser Zeile entspricht , werden wir hinzufügen, sind drei Elemente. Zwei Dinge, die wir vorher tun müssen, werden wir die Spaltennummer unseres Listenfeldes definieren , wie wir gesagt haben, wie wir gesagt haben, drei für die Anleihenmerkmale jedes Mal, wenn wir berechnen. Wir werden auch das Gutscheinlistenfeld löschen, um zu vermeiden, dass Zeilen in unserer Tabelle bei jedem Neustart der Berechnung angesammelt werden. Also sind wir bereit, Artikel hinzuzufügen. Ändern Sie die drei Spaltenmerkmale für jedes Element. So greifen wir auf die Gutscheinlisteneigenschaft des Listenfelds zu, das die Widgetzeilenliste enthält, und wir müssen angeben, welchen Index wir ändern möchten. In unserem Fall ist es die letzte Zeile, weil es die Zeile ist, die wir hinzugefügt haben, damit wir nicht die letzte Zeile erhalten, die wir Coupons Listenfeld Punktliste minus eins tun. Warum minus eins? Weil die Zeilen nummeriert sind. Beginnend von Null. Wir setzen den Wert eins hier genau auf den Wert, der in der ersten Spalte angezeigt wird , und wir greifen auf den Indexzähler der Gutscheinliste zu, und die erste Gutscheineigenschaft, die wir anzeigen werden, ist der Zeitraum. So haben wir einfach richtig Punkt Periode LG. Wir tun die gleichen Dinge für die beiden anderen Spalten, ohne zu vergessen, den Index zu ändern, um anzugeben, welche Spalte wir jetzt ändern wir bestreiten. Oh, wir haben hier einen Fehler. Es liegt daran, dass unsere Gutscheinliste eine ganze Zahl ist, also müssen wir diesen Fall verwalten. Hier sind Par. Der Wert wird nicht korrekt angezeigt. Lassen Sie uns versuchen zu verstehen, warum es liegt daran, dass der Index bei Null beginnt. Also müssen wir das ändern. Es ist alles gut. Jetzt haben wir unsere Couponliste mit der Periodennummer, dem Kuponwert und dem Barwert, unsere Anleihe Pricer ist nun fertig. Es ermöglicht dem Benutzer, die verschiedenen eingegebenen Parameter einzugeben und den Preis, die Risikomaßnahmen und die Coupons Liste zu kennen . Dies ist das Ende dieser Klasse. Vergewissern Sie sich, dass Sie das letzte Quiz machen. Bitte zögern Sie nicht, uns für alle Fragen zu kontaktieren, die Sie haben könnten. Wir sehen uns in der nächsten Klasse wieder. Vielen Dank für Ihre Aufmerksamkeit.