OANDA 1080108910871086108311001079109110771090 10921072108110831099 Cookie 10951090108610731099 1089107610771083107210901100 1085107210961080 10891072108110901099 10871088108610891090109910841080 1074 1080108910871086108311001079108610741072108510801080 1080 108510721089109010881086108010901100 10801093 10891086107510831072108910851086 108710861090108810771073108510861089109011031084 10851072109610801093 10871086108910771090108010901077108310771081. 10601072108110831099 Cookie 10851077 10841086107510911090 1073109910901100 108010891087108610831100107910861074107210851099 107610831103 109110891090107210851086107410831077108510801103 10741072109610771081 10831080109510851086108910901080. 1055108610891077109710721103 108510721096 1089107210811090, 10741099 108910861075108310721096107210771090107710891100 1089 10801089108710861083110010791086107410721085108010771084 OANDA8217 109210721081108310861074 cookie 1074 108910861086109010741077109010891090107410801080 1089 10851072109610771081 105510861083108010901080108210861081 108210861085109210801076107710851094108010721083110010851086108910901080. 1048108510891090108810911082109410801080 10871086 107310831086108210801088108610741072108510801102 1080 10911076107210831077108510801102 109210721081108310861074 Cookie, 1072 10901072108210781077 1091108710881072107410831077108510801102 108010841080 108710881080107410771076107710851099 10851072 10891072108110901077 aboutcookies. org. 1042 108910831091109510721077 10861075108810721085108010951077108510801103 1080108910871086108311001079108610741072108510801103 109210721081108310861074 Cookie 108610871088107710761077108310771085108510991077 1092109110851082109410801080 108510721096107710751086 10891072108110901072 10731091107610911090 1085107710761086108910901091108710851099. 104710721075108810911079108010901100 108410861073108010831100108510991077 1087108810801083108610781077108510801103 1042109310861076 1042109910731088107210901100 1089109510771090: ampltiframe src4489469.fls. doubleclick. netactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 mcesrc4489469.fls. doubleclick. netactivityisrc4489469typenewsi0catoanda0u1fxtradeiddclatdcrdidtagforchilddirectedtreatmentord1num1 breite1 height1 frameborder0 Styledisplay: keine mcestyledisplay: noneampgtampltiframeampgt 1055108610871088108610731091108110901077 1085107210961080 1087108810801079108510721085108510991077 10901086108810751086107410991077 108710831072109010921086108810841099 10481089108210831102109510801090107710831100108510861077 1080108910871086108310851077108510801077 104110991089109010881086 1080 1085107210761077107810851086. 104210891077 10861087107710881072109410801080 1089 10741072108311021090107210841080 108710861083108510861089109011001102 1072107410901086108410721090108010791080108810861074107210851099. 106910901086 107910851072109510801090, 109510901086 1074107210961080 108910761077108310821080 10801089108710861083108511031102109010891103 107310771079 107410891103108210801093 108710861089108310771076108510801093 1087108810861089108410861090108810861074, 1086109010821072107910861074 1080 1087107710881077108210861090108010881086107410861082. 1055108810861079108810721095108510861077 109410771085108610861073108810721079108610741072108510801077 1053108010821072108210801093 10821086108410801089108910801081 10861090 108910761077108310861082 1089 10741072108311021090107210841080 1080 10821086108510901088107210821090107210841080 10851072 1088107210791085108010941091 1080 1085108010821072108210801093 10841080108510801084107210831100108510991093 107610771087108610791080109010861074. 105510881080 1101109010861084 10741099 108710861083109110951072107710901077 1087108810861079108810721095108510911102 108410861076107710831100 109410771085108610861073108810721079108610741072108510801103 1080 107410991089108610821086108210861085108210911088107710851090108510991077 108910871088107710761099. 1060109110851082109410801080 1080 10801085108910901088109110841077108510901099 1087108610891090108810861077108510801103 10881072108910961080108810771085108510991093 10751088107210921080108210861074 10421086108910871086108311001079109110811090107710891100 10801085108510861074107210941080108610851085109910841080 1080108510891090108810911084107710851090107210841080, 1074108210831102109510721103 1087108610891090108810861077108510801077 10881072108910961080108810771085108510991093 10751088107210921080108210861074, 107210741090108610841072109010801079108010881086107410721085108510991081 10901077109310851080109510771089108210801081 107210851072108310801079, 10821086108410841077108510901072108810801080 1086 108910861089109010861103108510801080 108810991085108210861074 1080 10851072108910901088108610771085108011031093 109010881077108110761077108810861074. 10481089108210831102109510801090107710831100108510861077 1080108910871086108310851077108510801077 1055108810861079108810721095108510861077 109410771085108610861073108810721079108610741072108510801077 1060109110851082109410801080 1080 10801085108910901088109110841077108510901099 1087108610891090108810861077108510801103 10881072108910961080108810771085108510991093 10751088107210921080108210861074 105710821080107610821080 10871086 108610731098107710841091 1053108010821072108210801093 10841080108510801084107210831100108510991093 1086107310981077108410861074 108910761077108310821080 1053108010821072108210801093 10841080108510801084107210831100108510991093 107610771087108610791080109010861074 10501088109110751083108610891091109010861095108510721103 108710861076107610771088107810821072 6 1076108510771081 1074 108510771076107710831102 10581054105610431054104210401071 105510511040105810601054105610521040 104410511071 1053104010571058105410511068105310671061 10501054105210551068107010581045105610541042 105210861097108510991077 10801085108910901088109110841077108510901099 1087108610891090108810861077108510801103 10881072108910961080108810771085108510991093 10751088107210921080108210861074. 1055108810861089109010721103 1074 10871086108311001079108610741072108510801080, 1085107210891090108810721080107410721077108410721103 108710831072109010921086108810841072. 10581054105610431054104210401071 105510511040105810601054105610521040 104410511071 105210541041104810511068105310671061 105910571058105610541049105710581042 1041108610751072109010991081 10851072107310861088 108010851089109010881091108410771085109010861074 1087108610891090108810861077108510801103 10751088107210921080108210861074 1080 109010771093108510801095107710891082108610751086 1072108510721083108010791072. 105510861089108310771076108510801077 1085108610741086108910901080 1080 Push-10911074107710761086108410831077108510801103 MetaTrader 4 104010741090108610841072109010801079108010881086107410721085108510721103 10901086108810751086107410831103 1080 10871086108310851086109410771085108510721103 108710861076107610771088107810821072 EA. 1053107210891090108810721080107410721077108410991077 1080108510761080108210721090108610881099 1080 10901086108810751086107410831103 10851072 108610891085108610741077 10751088107210921080108210861074 1053104010631053104810581045 10581054105610431054104210511070 10541090108210881086108110901077 1076107710841086-1089109510771090. 106910901086 1087108610841086107810771090 107410721084 10881072107910881072107310861090107210901100 10901086108810751086107410911102 108910901088107210901077107510801102. 10541090108210881086108110901077 10881077107210831100108510991081 1089109510771090 109110781077 108910771081109510721089, 1080 10741099 1089108410861078107710901077 109010861088107510861074107210901100 10951077108810771079 108510771089108210861083110010821086 10841080108510911090. 105910731099109010821080 10841086107510911090 108710881077107410991089108010901100 1080108510741077108910901080109410801080. 1048105310531054104210401062104810541053105310671045 10481053105710581056105910521045105310581067 1055108610871088108610731091108110901077 108510721096 1073108610751072109010991081 10851072107310861088 1080108510851086107410721094108010861085108510991093 1072108510721083108010901080109510771089108210801093 108010851089109010881091108410771085109010861074 1080 1087108810801083108610781077108510801081: 110110901086 1087108610841086107810771090 107410721084 10871088108610751085108610791080108810861074107210901100 10761074108010781077108510801077 108210881080107410861081 108710881080 108610871077108810721094108011031093 1089 10741072108311021090107210841080 1080 10821086108510901088107210821090107210841080 10851072 1088107210791085108010941091. 10501053104810431040 104710401071104210541050 105410791085107210821086108411001090107710891100 1089 1076107210851085109910841080 1086 10851072108910901088108610771085108011031093 10881099108510821072 1074 108810771078108010841077 108810771072108311001085108610751086 1074108810771084107710851080 1080 1087108610891084108610901088108010901077, 109510771084 108910771081109510721089 1090108610881075109111021090 1085107210961080 1082108310801077108510901099. erwarten ECBs Draghi BoringForex Handel eine Mindestspanne ist die niedrigste Ausbreitung zu sein, die auf dem gegebenen Produkt angezeigt. Wenn der zugrunde liegende Markt sich über den Handelstag verbreitet, oder wenn Sie außerhalb der Geschäftszeiten handeln, kann sich die Plattformverbreitung auch verbreitern. Die gezeigten Spreads sind für den ersten Preis für die durchschnittlichen Markt-Tradebet-Größen im jeweiligen Produkt verfügbar. Die Verbreitung wird für größere Tradebet Größen zu erweitern, finden Sie auf unserer Plattform für weitere Informationen. Diese Daten werden nur für allgemeine Informationen bereitgestellt und sind möglicherweise nicht aktuell. Bitte beachten Sie den Produktübersichtbereich unserer Handelsplattform für Echtzeitinformationen zu den Spreads, Margin Rates, Provisionen (sofern zutreffend) und Handelszeiten eines bestimmten Produkts. Bitte beachten Sie, dass die Preisänderung, die zu einer PL-Änderung führt, die Ihrer Anteile entspricht, durch die letzte große Ziffer des Preises angezeigt wird, der auf der Plattform angezeigt wird. Am Ende eines jeden Handelstages (17 Uhr nach New York) können Positionen, die auf Ihrem Konto gehalten werden, einem Beteiligungspreis unterliegen. Die Haltekosten können je nach Ausrichtung der Position und dem jeweiligen Haltedurchgang positiv oder negativ sein. Historische Vergütungssätze, ausgedrückt als Jahreszins, sind auf unserer Plattform im Übersichtsbereich der einzelnen Produkte zu sehen. Weitere Details zu unseren CFD-Handelskosten finden Sie hier. Ausgezeichnet: Bestes Preis-Leistungs-Verhältnis, beste Bildungsmaterialien, bester Kundenservice, bester mobiler Handel und beste Research-Tools, Investitionstrends 2016 Singapur CFD FX-Bericht Die besten Platform-Funktionen und der beste mobile Handel basieren auf der höchsten Kundenzufriedenheit bei den Spreadbettersystemen CFD und FX Trader, Investment Trends 2016 UK Leveraged Trading-Bericht Best Online Trading Platform, Aktien-Auszeichnungen 2016 Best Forex Trading Platform, UK Forex Awards 2016 und Best MobileTablet Anwendung, Online Personal Wealth Awards 2016. Wir bieten wettbewerbsfähige monatliche Cash-Rabatte für Kunden, die den Handel mit hohen Mengen Und wenn Sie unsere monatlichen Nominalwertvorgaben für eine Anlagenklasse erfüllen, qualifizieren Sie sich automatisch für monatliche Rabatte für alle Assetklassenbedingungen. Der Community beitreten CMC Markets Singapore Pte. Ltd (Reg. No. UEN 200605050E) wird von der Monetary Authority of Singapore reguliert und verfügt über eine Kapitalmarkt-Service-Lizenz für den Handel mit Wertpapieren und Fremdwährungen und ist ein freistelliger Finanzberater. Contracts for Difference (CFD) sind gehebelte Produkte und tragen ein hohes Maß an Risiko für Ihr Kapital, da sich die Preise schnell gegen Sie bewegen können. Es ist möglich, mehr als Ihre ursprüngliche Investition zu verlieren und Sie können weitere Zahlungen vornehmen. Binaries und Countdowns tragen ein Niveau des Risikos zu Ihrem Kapital, wie Sie alle Ihre Investition verlieren konnten. Investieren Sie nur, was Sie sich leisten können, zu verlieren. CFDs, Binaries und Countdowns das Risiko erheblicher Verluste und den Handel mit solchen Produkten nicht geeignet für alle Kunden daher stellen Sie sicher verstehen Sie die Risiken und suchen unabhängige Beratung. Bitte lesen Sie unsere Disclaimer, Risiko-Warnhinweise, Geschäftsbedingungen und zugehörige Dokumentation hier. Diese Website verwendet Cookies, um Informationen über Ihre allgemeine Internetnutzung zu erhalten. Die Entfernung von Cookies kann den Betrieb bestimmter Teile dieser Website beeinträchtigen. Weitere Informationen über Cookies und deren Entfernung finden Sie in unseren Cookie-Richtlinien. Die steuerliche Behandlung hängt von den individuellen Umständen des jeweiligen Kunden ab. Das Steuerrecht kann sich je nach Land, in dem Sie ansässig sind, ändern oder sich unterscheiden. Apple, iPad und iPhone sind eingetragene Marken von Apple Inc. in den USA und anderen Ländern. App Store ist eine Dienstleistungsmarke der Apple Inc. 2012 Samsung Telecommunications America, LLC. Samsung und Galaxy S sind beide eingetragene Warenzeichen von Samsung Electronics Co. Ltd. Android ist ein Warenzeichen von Google Inc. Android ist ein Warenzeichen von Google Inc. Teile dieser Seite sind von der durch Google erstellten und von Google verwendeten Seite wiedergegeben und werden nach den beschriebenen Nutzungsbedingungen verwendet In der Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0. Kopie 2016 CMC Märkte
Online Mainburg (Bavaria)
Monday, 27 February 2017
Devisenhandel Roboter Macska
Haben Sie eine Verkaufsfrage oder brauchen Sie Unterstützung Wir bieten Kundenbetreuung absolut kostenlos für alle Kunden. Unser Supportpersonal steht Ihnen zur Verfügung, um Ihre Anfragen von Montag bis Freitag von 8.00 bis 18.00 Uhr außer an den USA zu beantworten. Bitte beachten Sie, dass wir in den Vereinigten Staaten von Amerika in der Pacific Standard Zeitzone sind. Die Anträge werden in der Reihenfolge ihres Eingangs behandelt. Troubleshooter Wenn Sie ein Problem mit Ihrer Software erleben, versuchen Sie es zuerst mit unserer Online-Fehlerbehebung. Wir setzen ständig neue Lösungen und schnelle Lösungen ein, die Ihnen helfen können, Ihre Probleme sofort zu lösen, ohne den Support zu kontaktieren. Software-Manager Sie können Kopien Ihrer gekauften Software herunterladen, neue forex-Account-Nummern lizenzieren und vieles mehr mit unserem neuen Online-Software-Manager. Bitte verwenden Sie die E-Mail-Adresse, die Sie ursprünglich zur Verfügung gestellt, wenn Sie Ihre Software gekauft haben. Unsere Forex Roboter haben über ein Forex Roboter (aka Experte Advisor) gefunden, ist eine Software, die ein Forex-System für Sie handelt. Sie laufen in Ihrem Forex-Terminal und können an jede Währung angehängt werden, die Sie wählen. Mit erweiterten Berechnungen öffnen und verwalten Sie Forex Trades für Sie nach einer Forex-Strategie. Jeder EA ist anders. Verwenden Sie mehr als eine zur gleichen Zeit für beste Ergebnisse. Keine Erfahrung ist erforderlich und Setup ist einfach. Mit einem Forex-Roboter ist der einzige Weg, um Ihr Trading sofort zu verbessern. Mit einem Experten-Berater können Sie sofort beginnen, ein funktionierendes System unabhängig von Ihrem eigenen Skill-Level. Schwierige Berechnungen und sicheres Geldmanagement werden für Sie erledigt. Sie schlafen nie und können Trades 24 Stunden pro Tag5 Tage pro Woche suchen. Und sie sind der einzige Weg, um mehrere Paare gleichzeitig zu decken. Jeder Fachberater ist vollautomatisch und mit Funktionen ausgestattet, um jedes Diagramm zu beherrschen. Wir Code alles, aber die Küche sinkt in alle unsere Forex-Roboter. Automatische Freisprech-Devisenhandel Yep. Richtiges Geldmanagement Check. Stop-Management und automatische Gewinne nehmen Sie wetten. Jeder Fachberater ist für jedes Währungspaar vollständig optimiert. Und sie können handeln Mikro-, Mini-und Standard-Lose.
Friday, 24 February 2017
Forex Gewinn Launcher Überprüfung
Forex Profit Launcher News und Review Forex Profit Launcher ist ein Forex Trading Signale Software, die seit über einem Jahr entwickelt hat. Handelssignale werden auf Ihrem Bildschirm angezeigt, wenn Sie die Handelssoftware ausführen. Ein Devisenhandel Roboter (Expertenberater) - Version ist auch für beschäftigte Personen, die für eine 24-Stunden-automatisierten Handelssystem zu entscheiden. Benutzer erhalten das manuelle Handelssystem, so dass sie die Algorithmen und Handelsmethoden hinter der Software verstehen können. Im Folgenden sind einige der Trades aus den Charts genommen: 1. 23.100 Gewinn aus nur einem Handel 2. 9.950 Gewinn aus nur einem Handel 3. 32.577 Profit aus 2 Trades 4. 29.199 Profit aus 3 Trades 5. 17.790 Profit aus 2 Trades Die Software Geht am Dienstag, den 2. Februar, an die Börse. Alle News und Rezensionen im Zusammenhang mit Forex Profit Launcher 3. Februar 2010 Die Menschen haben ängstlich darauf gewartet, und die Nachfrage ist riesig. So würde ich wouldn8217t überrascht sein, wenn der Preis steigt ziemlich bald. Jetzt zurück zu, wie Forex Profit Launcher offiziell LIVE Forex-Handel so einfach macht. Es wäre leicht zu sagen, dass der Handel ist ein Kinderspiel, aber ich vermute, Sie8217d wissen, dass8217s eine Lüge. Würde niemand reich sein, wenn es wahr wäre. Aber der Zyniker ließ den Zyniker nicht mehr los, was ich für die größte profitable Gelegenheit halte, die die Welt je gesehen hat. Vergessen Sie die dot-com bubble8230Forex ist legit, und it8217s MASSIVE. Die überraschende Tatsache, die in allen Hype verloren geht, ist, dass Forex-Handel ist so kompliziert, wie die meisten Menschen machen es zu sein. Don8217t mich falsch, it8217s nicht etwas you8217re geboren wissen, wie zu tun. It8217s nicht so einfach wie das Lernen, wie Sie Ihr Öl ändern, oder Balance Ihr Scheckbuch. 30. Januar 2010 Die Software. Forex Profit Launcher nahm einen ersten Kontostand von 10.000 zu einem atemberaubenden 113.250 innerhalb eines Jahres. Und es hörte nicht auf. Es produziert immer noch Gewinner jeden einzelnen Monat. Ich spreche über Trades wie: 23.100 Profit von nur einem Trade 9.950 Profit von nur einem Trade Look, ich weiß, Sie haben über ein kleines Gadget namens Forex Trading Roboter gehört. Sie wissen, die niedliche Software, die Kontrolle über Ihr Konto und handeln für Sie während youre Sonnenbaden, oder Skydiving, oder Golf spielen. Forex Profit Launcher ist besser Uh-huh. Was Sie nicht hören, ist, wie die Software Ihr Konto in den Boden fahren kann. Das ist der hässliche Nachteil. Sie steuern Ihr eigenes Geld 24. Januar 2010 Die Jungs, die Forex Profit Launcher erstellt haben, sind anders Im Art von großen auf Forex Profit Launcher Proof. Wenn jemand, der etwas verkauft, nicht bereit ist, Ihnen zu erklären, wenn es oder nicht funktioniert, sein vermutlich intelligentes weglaufen. Aber die Jungs, die Forex Profit Launcher erstellt haben, sind anders. Sie zeigen Ihnen den Beweis in all seiner Herrlichkeit8230 wegen seiner geradezu schockierenden. Heres der schockierende Beweis dafür, wie gut Forex Profit Launcher arbeitet, unabhängig von Ihrem Forex Erfahrung Ebene: Wenn Sie ihren Beweis sehen, obwohl, ich möchte, dass Sie etwas im Auge behalten. Wenn diese Jungs nur ein Glück auf einem Paar Forex Trades und Cherry ausgewählt haben, um Ihnen zu zeigen, sie wäre schmucks. Theres keine Entschuldigung dafür. Aber das ist nicht das, was sie tun. Sie haben mit Ihrem eigenen Geld getestet 23. Januar 2010 Video enthüllt eine neue revolutionäre Handelssoftware. Forex Profit Launcher Killer Profits Das ist alles, was ich für jetzt sagen kann, aber dieses kurze Video gibt Ihnen mehr von der Geschichte: Vertrauen Sie mir, wenn Sie brandneu zu Forex, das ist, wo Sie starten möchten. Warum wanderen in der Dunkelheit Geld verlieren, wenn somebodys bietet Ihnen dabei, dass Schmerzen zu vermeiden Und wenn youre vertraut mit großen Verlusten, warum nicht aufhören, diese Toten in ihren Tracks mit einem bewährten System und handeln nur, wenn es Ihnen sagt, ich wettete Sie Die Antwort auf beide Fragen kennen. Ich bin überzeugt, Forex Profit Launcher ist genau das, was Sie brauchen, egal, was Ihre Forex Trading-Erfahrung ist (sie behaupten, Sie müssen keine Erfahrung haben, und ich glaube, sie). Sobald du es gesehen hast, weiß ich, dass du aufgeregt wirst. Sie müssen geduldig sein, nur ein bisschen länger, though. Ill lassen Sie wissen, wann diese Sache wird auf die Straße treffen. Forex Gewinnstarter. Nehmen Sie Profit forex 100 Profit Forex Trading Signale, Steven Lee Währung Märkte Forex Roboter Forex Pip Profit. Forex Profit-Launcher Forex Profit-Launcher Bewertung. Forex profit system durchschnittliche forex profit. Forex profit beschleuniger rezension forex profit code rezension, forex profit bauernhof revision forex profit hunter bewertung. Forex-Profit-Launcher-Bericht Forex-Profit-Launcher-Review Forex Profit Launcher - das ist Forex ohne Schmerzen Wenn you8217re nicht vertraut mit Forex von jetzt, you8217re wird sehr bald sein. Der Grund ist einfach. Gibt es einfach keinen besseren Weg, um lächerliche Gewinne so schnell wie Forex zu machen. Die Devisenmärkte machen die Börse aussehen wie die Beobachtung Gras wachsen. Und Forex Gewinne können Börsengewinne aussehen wie die Veränderung, die Sie in Ihrer Tasche bekommen haben. Aber there8217s ein Problem für JEDER wer versucht, Geld mit Forex zu machen. Das Problem ist, dass Sie wissen müssen, was Sie tun. Wenn Sie don8217t, wie ein Schaf unter den Wölfen in den Forex-Märkten sind. Ich habe gute Nachrichten. Einige intelligente Jungs haben herausgefunden, wie Amateure wie Profis handeln können, ohne darüber schwitzen zu müssen. Ein kurzes Video gibt Ihnen einen kurzen Blick auf what8217s kommen (it8217s noch nicht öffentlich, aber wenn sie endlich Release it8217s, um Dinge zu schütteln). Bitte besuchen Sie die Website Forex scheint wie die größte Geld-Making-Gelegenheit überhaupt. Alles, was Sie tun müssen, ist herauszufinden, wie die Märkte bewegen, kaufen niedrig und verkaufen High Yeah, und alles, was Sie tun müssen, um ein olympischer Athlet sein, ist ein wenig Arbeit. It8217s verrückt zu denken, dass man Walzer in die Märkte wissen nichts und Art von versehentlich machen Sie sich reich. I8217m nicht sagen, es can8217t jemals passieren, aber Glück ist schwer zu wiederholen. Es doesn8217t geben Ihnen viel Vertrauen, dass Sie Ihre Familie ernähren und stoppen abhängig von der Arbeit für jemand anderes für Ihre Gehaltsscheck. Fazit, Forex-Handel ist nicht einfach. Noch nie. Es braucht Marktkenntnis und felsige Selbstkontrolle. Die meisten Menschen neu zu handeln don8217t haben entweder eine. So dass sie Nase Tauchen und verlieren eine Tonne von ihrem hart verdienten Geld jagen den Traum. Die Mechanik des Handels dauert nur wenige Minuten, um zu lernen. That8217s nicht das Problem. Das eigentliche Problem ist 1) Mit einem System, dass ein normales menschliches Nicht-Genie Tag und Tag nutzen können, um konsistente Forex-Profite zu machen 2) In der Lage, dieses System ohne starrte auf Ihren Computer-Bildschirm den ganzen Tag gut, that8217s, was diese Jungs Werden Sie geben Ja, ich meine beide Dinge. Keine Gimmicks, keine Tricks. Ich gebe Ihnen die Details, aber hier sind die großen Neuigkeiten. Die einzige größte Sache, die in den Weg der meisten Forex-Händler bekommt ist Emotion. It8217s ein Gewinnmörder. Könnte Angst sein, könnte Gier sein. Macht nichts, was es ist. Entweder wird eins dein Schiff versenken. Ich hoffe, I8217m nicht aufdecken zu viel zu früh, aber was diese Jungs getan haben, ist revolutionäre neue Software, die Ihnen sagt, wenn zu handeln, basierend auf ihrem bewährten Handelssystem. Das bedeutet, dass Sie ohne Emotionen überhaupt handeln können. Sie folgen einfach Anweisungen und zählen Sie Ihre Gewinne That8217s alles, was ich für jetzt sagen kann, aber dieses kurze Video gibt Ihnen mehr von der Geschichte. (Überprüfen Sie die Website) Vertrauen Sie mir, wenn you8217re brandneu zu Forex, ist dies, wo Sie starten möchten. Warum wandert man in der Dunkelheit um Geld zu verlieren, wenn irgendjemandes Angebot, um Ihnen zu helfen, diesen Schmerz zu vermeiden und wenn you8217re vertraut mit großen Verlusten, warum nicht stoppen Sie diese toten in ihren Tracks mit einem bewährten System und nur Handel, wenn es Ihnen sagt, ich wettete Sie Die Antwort auf beide Fragen kennen. I8217m überzeugt Forex Profit Launcher ist genau das, was Sie brauchen, egal, was Ihre Forex Trading-Erfahrung ist (sie behaupten, Sie don8217t haben jede Erfahrung und ich glaube, sie). Um dies herauszufinden, für sich. Besuchen Sie bitte die Website. Produktbeschreibung Wurden, um es so einfach wie das Lesen einer E-Mail, auch wenn Sie Zero Experience oder sind so krank, Geld zu verlieren, dass Sie fühlen wie giving up Es kann zu gut klingen, um wahr zu sein, aber in der Nächsten paar Minuten (thats all itll nehmen) gut beweisen, seine alle so einfach wie wir sagen, es ist. Mit unserer revolutionären neuen Software. Sie müssen nie wieder einen guten Handel finden Sie können sicher sein, wenn Sie in Ihrem Handwerk zu bekommen, und wenn Sie raus Sie können Ihr Leben leben und stapeln Sie die Gewinne ohne Verkettung Sie sich auf einen Computer und beobachten Diagramme Farbe Unsere neue Software macht fast Es schwer zu scheitern Verluste sind unvermeidlich, aber es spielt keine Rolle, wenn Ihre Gewinne machen diese Verluste sehen winzig. Sound unmöglich Dann nehmen Sie jedes Wort dieser Seite, wie wir zeigen, wie einfach dies sein kann. Datum: Donnerstag, 15. Dezember 2011 Sehr geehrte Fellow Forex Trader, es sei denn, yoursquove wurde auf einem anderen Planeten, Ihre Frage wahrscheinlich von globalen Devisenmärkten gehört. Dies sind die Märkte, in denen Händler kaufen und verkaufen US-Dollar, Japanische Yen, Britische Pfund, und jede andere Währung aus der ganzen Welt. Itrsquos genannt der Devisenmarkt, kurz für Devisen. Buchstäblich Milliarden von Dollar Handel Hände jeden Tag. Würde Ihnen zeigen, wie Sie Ihre Scheibe von diesem Kuchen nehmen können. Die klein sein könnte im Vergleich zu all dem Geld, das die Hände ändert, kann aber radikal ändern Sie Ihr Leben. Itrsquos schockierend leicht, dies zu tun, wenn eine Sache wahr ist. Sehen Sie das Problem Die meisten Menschen, die neu sind Forex Trading wissen kaum mehr darüber, als wir Ihnen gerade gesagt haben. Die meisten Menschen denken, sie verstehen Forex Trading ziemlich gut in der Regel donrsquot, weshalb ihre Ergebnisse sind schrecklich und theyrsquore verlieren schockierende Mengen an Geld, wie sie versuchen, ihren Weg zum Erfolg stolpern. Jetzt herersquos die schockierende Aussagehellip Wurden zu erklären, wie genau eine Minze in der Forex-Markt zu machen, ohne jahrelang zu studieren, verlieren eine Tonne Geld oder verbringen den Rest Ihres Lebens starrt auf Ihrem Computer-Bildschirm, um Sinn für hundert verschiedene Indikatoren. Wir donrsquot Obacht, wenn Ihrsquore frustriert aus Ihrem Verstand mit forex, oder wenn alles klingt wie Griechisch. Das klingt zu gut, um in dieser Minute wahr zu sein, und thatrsquos okay. Wenn yoursquoll nur hören, was wir zu sagen haben, itrsquoll alle sinnvoll am Ende. Und itrsquos sehr wichtig, dass es Sinn machen wird, weil. Wenn yoursquore nicht greifen mindestens eine kleine Scheibe des riesigen Forex Markt Torte für sich selbst auf einer regelmäßigen Basis, verpassen Ihr Haus auf eine der einzigen größten Gewinn Boni die Welt je gesehen hat, und wahrscheinlich jemals sehen wird. Think yoursquoll Ruhestand auf Ihre Ersparnisse Nicht wenn Inflation macht Ihr Geld Haufen wertlos, und thatrsquos die Art und Weise die Weltwirtschaft geht. Wenn Sie mithalten wollen, müssen Sie in der Lage, Ihr Geld ziemlich tief stapeln. Das ist genau das, was forex können Sie tun. Theresquos wirklich keine bessere Möglichkeit, Geld zu verdienen. Also müssen Sie sich mit Forex. Aber therersquos eine riesige Barriere, die in den Weg der meisten Menschen, die jemals versuchen steht. Sie. Ot ot ot ot ot ot ot. Hören Sie die System-Verkäufer oder Roboter-Verkäufer sprechen über diese sehr viel, denn ehrlich gesagt, macht es ihnen schlecht aussehen. Die Barriere besteht aus drei Teilen. Erstens sind die meisten Trading-Systeme verrückt hart. Yoursquod braucht ein Gehirn die Größe des Mondes haben eine Chance zu verstehen, was los ist, und um ehrlich zu sein, in der Hitze des Handels Schlacht, Sie canrsquot jonglieren etwas kompliziert und machen konsistente Gewinne. Mit anderen Worten, die meisten Trading-Systeme sind unmöglich für echte Menschen zu verwenden, zumindest wenn sie jede Art von Leben wollen. Zweitens, auch wenn Sie diese Systeme nutzen konnten, sind sie arenrsquot rentabel genug. Sie donrsquot finden Sie genug Trades, um Ihnen eine Chance Chance in den ersten Platz. Und sie auch donrsquot geben Ihnen gesunde Gewinne, wenn sie einen Sieger finden. Aber beide dieser Dinge erblassen im Vergleich zum dritten Teil der Forex Barrierhellip Bei den meisten Systemen stinkt das Risikomanagement. Das doesnrsquot bedeuten, dass Sie wonrsquot überhaupt Geld verdienen. Außer wenn ein System völlig nutzlos ist, haben yoursquoll einige Sieger. Aber hey, auch eine gebrochene Uhr ist zweimal am Tag. Das Problem ist, yoursquoll haben große Verluste als auch, die wischt die Gewinne, die Sie auf die Trades, die gut funktioniert. Wenn thatrsquos, wie yoursquore, um zu handeln, Sie shouldnrsquot es tun. Yoursquoll verlieren riesige Mengen an Geld auf diese Weise, am Ende frustriert und leiden in Ihrem Leben für versucht. Therersquos ein schlauerer Weg. Die lustige Sache ist, die meisten Menschen, die versuchen, in Forex schießen sich in den Fuß von Anfang an versuchen. Sie suchen nach einer Art von Lotterie Handel Methode thatrsquos gehen, um sie reich über Nacht. Sie sorgen sich um große Gewinne, und sie donrsquot auch über das Management von Risiken denken. Aber thatrsquos wie gehen Skydiving, ohne auf einen Fallschirm. Itrsquos geisteskrank. Und herersquos, wo die meisten Händler einen großen Fehler machen, nachdem sie eine Menge Geld jagen den Traum verlieren. Die meisten Händler reagieren auf riesige Verluste, indem sie versuchen, schlauer zu werden. Sie suchen die perfekte Handelsmethode, die sie vor aller Gefahr schützt. warte darauf. Kompliziert. Sie stellen die mehr Zeug ihre Methode hat in ihm, ob itrsquos Indikatoren sie schauen oder Schritte, die sie nehmen, desto größer sind ihre Chancen auf Erfolg. Falsch. Katastrophal falsch. Und extrem teuer auf lange Sicht. Es ist so einfach wie die Nase auf Ihrem Gesicht. Und Ihr Trading-Konto Balance Das eigentliche Problem hier ist, dass die Menschen völlig ignorieren die offensichtlich. Die echte Lösung für das Forex Trading Problem ist: Sie benötigen ein System, das Risiko gut verwaltet. Das ist sehr wichtig. Wie ich schon sagte, wenn Sie einen gewinnenden Handel haben und dann verlieren zwei oder drei Mal so viel auf Ihren nächsten Handel, thatrsquos nicht ein Rezept für ein besseres Leben. Thatrsquos ein Plan, zum bankrott zu gehen. Sie benötigen ein komplettes, aber einfaches System. Es ist nicht gut, wenn Sie einige Teile von hier, einige andere Teile von dort zu greifen, und dann klug genug, um sie zusammen in ein System, das irgendwie funktioniert wie Magie zu weben. Sie benötigen ein System, das Sie direkt aus der Box verwenden können. Sie benötigen ein System auf Basis technischer Analysen. Schauen Sie, Fundamentalanalyse ist fein, aber stumpf zu sein, wenn thatrsquos, wie Sie Forex zu handeln versuchen, verlieren yoursquoll Ihr Hemd. Forex ist über Währungsbewegung, die kurzfristig geschieht, und isnrsquot basiert auf vielen Grundlagen überhaupt. Itrsquos meistens basiert auf Trends und Impuls. Ihr System braucht sehr wenig Zeit. Wurden über ein System, das nur wenige Minuten pro Tag reden, und wonrsquot müssen Sie an Ihren Computer gekettet werden jede Minute der Markt geöffnet ist. Nun, es doesnrsquot nehmen ein Genie, um zu sehen, was all das, was bis zu. Waren nicht über Handelsroboter sprechen, die für Sie handeln, das automatisch mdash, obwohl ein Roboter groß sein kann, wenn itrsquos, das auf einem großen System basiert, das auf lange Sicht funktionieren wird. Nein, worüber wir reden, ist Software, die ein Killersystem implementiert, das jetzt funktioniert und auch in Zukunft gut funktioniert. Die Software verwendet das System, um Trades für Sie zu finden. Und sagt Ihnen, wann die Trades zur Verfügung stehen. Dann können Sie handeln, wenn Sie zu wählen, oder bleiben Sie auf der Seitenlinie, wenn Sie wollen. Das war der Grad der Automatisierung reden. Itrsquos lassen Sie ein großes System, ohne zu schwitzen, um es zu benutzen. Stellen Sie sich vor, Mathematik, indem Sie das Problem auf ein Stück Papier mit einem Bleistift, versus mit einem Taschenrechner. Der Rechner implementiert das System, aber es macht es drop-dead einfach für Sie, dieses System zu verwenden, ohne eine Tonne zusätzliche Zeit auf die grunzen Arbeit. Die gute Nachricht ist, dass wersquore wird Ihnen das genaue Werkzeug, das Sie benötigen. Forex Profit Launcher: Die einfache, schmerzlose Weg, um einen Forex Killing seine Software, und auch Ihnen sagen, mehr darüber in einer Minute. Aber was Sie unbedingt verstehen müssen, bevor wir das tun, ist, dass diese Software auf einem System, das wie gangbusters funktioniert basiert. Itrsquos nicht nur ein cooles Spielzeug, das Ihnen schöne Bilder zeigt. Wersquove verwendete dieses System selbst, um eine solide Bilanz von fast 83 profitable Trades über 12 Monate zu bauen. Thatrsquos jaw-dropping, und es sollte Ihnen Vertrauen, dass unsere Software ist die reale Sache, basierend auf einem System, das konsequent rentable Trades produziert und konsequent kleine Verluste. Kein System wird jemals Verluste vollständig beseitigen. Verluste sind nur ein natürlicher Teil des Handels. Aber unser System hält Sie davon ab, ausgelöscht, wenn ein Verlust kommt. Sie leben, um einen anderen Tag zu handeln. Bevor wir in die Details, sollten Sie auch wissen, dass Forex Profit Launcher doesnrsquot Sie benötigen, um ein Genie sein. In der Tat, so verrückt wie dies klingen könnte, haben Sie donrsquot sogar zu viel über Forex wissen. Wenn yoursquove zusammen mit uns so weit gefolgt, wissen Sie bereits so viel über Forex, wie Sie wissen müssen. Warum weil. Weve gebaut alle das Lernen in den Code Ja, itrsquos basierend auf einem System, das funktioniert, aber Sie können mit der Verwendung von Forex Profit Launcher ohne auch nur das System kennen. Wenn das dich nervös macht, kein Problem. Probieren Sie es auf einem Demo-Konto zuerst und beweisen, dass das System für Sie arbeitet. Dann haben Sie das Vertrauen, dass Sie donrsquot müssen alle tiefen Details wissen, wenn Sie donrsquot wollen. Okay, letrsquos graben, wie Forex Profit Launcher funktioniert. Es dauert nur ein paar Minuten zu installieren First, dauert es nur ein paar Minuten zu installieren, was Sie brauchen. Yoursquoll benötigen eine freie Handelsplattform, die wersquoll Ihnen zeigen, wie zu erhalten, und dann yoursquoll Installation von Forex Profit Launcher oben. Donrsquot lassen Sie dies erschrecken. Wenn Sie die Kanäle auf Ihrem Fernseher ändern können, können Sie dies tun. Es dauert buchstäblich ein paar Minuten, beginnen zu beenden. Thatrsquos, wie mächtig diese völlig neu, und wir denken revolutionär, Software ist. Sobald Sie die Software installiert haben, wird yoursquore schockiert, wie einfach es zu verwenden ist. Sie wirklich donrsquot haben, um viel zu tun. Sie donrsquot müssen sogar den Markt zu beobachten. Die Software macht das für Sie. Wie wir schon gesagt haben, es doesnrsquot Handel für Sie, aber es findet große Trades für Sie. Itrsquos fast wie mit Ihrem eigenen elektronischen Broker da draußen suchen für große Trades, aber nicht aufladen Sie kein Geld für den Dienst. Wenn es einen Handel, der die Forex Profit Launcher System perfekt findet, findet die Software Ihnen darüber. Yoursquoll erhalten Sie eine Benachrichtigung auf Ihrem Computer-Bildschirm, und in einer E-Mail. Das bedeutet, dass Sie wissen, wann die Software einen Trade findet. Und Sie können diesen Handel tun, wenn Sie wollen. Itrsquos Ihre Wahl, immer unter Ihrer Kontrolle. Es doesnrsquot Materie, wo Sie sind. Solange Sie entweder sehen können Ihren Computer oder eine E-Mail erhalten, yoursquore alle eingestellt. No More Schwitzen über, wie zu handeln, oder ob Youve einen Sieger gefunden haben Sie donrsquot haben, um Gewehrkugeln zu fragen, ob yoursquove fand einen Handel thatrsquos wahrscheinlich, einen saftigen Gewinn zu machen. Die Software hat all diese Arbeit Sie auch donrsquot haben zu fragen, wann man auf diesen Handel setzen. Die Software sagt Ihnen gerade nach oben. Das heißt, Sie können ohne Emotionen handeln. Sie werden nicht schwanken, weil, was der Markt tut, oder von einigen sprechenden Kopf geben Ihnen Ratschläge. Die Software findet nur Trades und erzählt Ihnen davon. Die einzige Entscheidung, die Sie machen müssen, ist, ob Sie den Handel ausführen, wenn die Software Ihnen darüber erzählt. Aber es doesnrsquot dort stoppen. Sobald yoursquore in einem Handel, Sie donrsquot haben, um gedrängt um von Emotionen an diesem Punkt entweder zu kümmern. Thatrsquos, weil Forex Profit Launcher sagt Ihnen genau, wann Sie aus Itrsquoll Uhr Ihr Handel für Sie und senden Sie eine weitere automatische Benachrichtigung, wenn itrsquos Zeit zu verlassen. Schauen Sie, eine der größten Herausforderungen für die meisten Händler ist zu wissen, wie man einen Gewinn zu nehmen. Wir können Ihnen sagen, alle Arten von Geschichten über Menschen, die in verlieren Trades zu lange und graben ein tiefes Loch, oder bleiben in einem profitablen Handel zu lange und beobachten Sie es schwingen, um einen Verlust zu bleiben. Sie donrsquot haben, um etwas davon zu kümmern. Forex Profit Launcher sagt Ihnen genau, wann zu verlassen, ohne Emotionen, ohne Frage. Wenn Sie eine E-Mail lesen können, dann können Sie dies tun. Alles, was Sie tun müssen, ist Anweisungen zu sehen, Gewinne 83 der Zeit zu sehen. Wäre sicher, das klingt zu gut, um wahr zu sein, so lassen Sie mich etwas betonen. Keine Systeme Perfekt. Aber Sie wirklich nicht Pflege Kein System ist perfekt, so yoursquoll definitiv haben einige Verluste. Aber denken Sie über einige einfache Mathematik. Angenommen, Sie machen 10 Trades und machen 2.500. In dort irgendwo war ein Verlust von 250. Ist es egal No way Was zählt, ist der Profit, der übrig bleibt, und wenn Ihre Verluste sind klein und yoursquore macht einen Gewinn 83 der Zeit, die Mathematik funktioniert großartig. Heres, wie gut es sein kann. Forex Profit Launcher sagte uns, den Handel geben. Wir didnrsquot haben, um herauszufinden, dass outmdashthe Software tat es und schickte uns ein Signal. Dann gab Software uns Mitteilung, den Handel zu schließen. Auch hier mussten wir kaum aufpassen. Am Ende haben wir 23.100 Gewinn von nur einem Handel, ohne wirklich etwas zu tun, außer folgen Sie den Anweisungen, die wir automatisch aus unserer Software. Das war auch kein Zufall. Wir didnrsquot nur eine glückliche Pause. Wersquove hatte Hunderte von ähnlichen Trades. Einige machen mehr, manche machen weniger, und es gibt nur wenige Verluste gibt es auch. Aber das Endergebnis ist ein kräftiger Gesamtgewinn. Wie Sie sehen können, ein Handel vermutlich wonrsquot Ihr ganzes Einkommen ersetzen, aber die Mathe ist ziemlich zwingend, isnrsquot es Angenommen, Sie haben ein paar Trades wie das jeden Monat. Das könnte sehr gut bis zu mehr als yoursquore machen von Ihrem Job gerade jetzt. Und es gibt Trades wie die ganze Zeit Nicht jeder Handel wird ein Jackpot wie dieser sein, aber das wirklich doesnrsquot Angelegenheit. Was zählt, ist, dass yoursquore konsequent Gewinne, und diese Gewinne summieren sich im Laufe der Zeit. Wir erwarten, dass du uns glaubst. Wir empfehlen, dass Sie Forex Profit Launcher mit einem Demo-Konto verwenden, um Papierhandel und sehen Sie, welche Art von Ergebnissen erhalten Sie für sich. Wir denken, yoursquoll lieben die Ergebnisse und Juckreiz, um mit echtem Geld zu handeln. Der Grund ist simplehellip, weil Sie Gewinne auf einer konsistenten Basis machen können. Das macht den Handel, aus Mangel an einer besseren Möglichkeit, es zu sagen, Spaß. Können Sie Geld verdienen nur, wenn der Markt geöffnet ist, und itrsquos öffnen eine Menge. Herersquos zwei weitere Trades. Forex Profit Launcher sagte uns, den Handel geben, also folgten wir Anweisungen und tat genau das. Kurz danach, die Software sagte uns zu verkaufen und wir haben. Dann erklärte uns die Software, einen anderen Trade zu betreten und dann eine zweite rentable Zeit zu beenden. Wir haben 17.790 von zwei Trades gemacht, alle ohne sogar einmal einen Schweiß zu brechen. Thatrsquos, wie leistungsfähig diese Software ist. Herersquos andere zwei Trades, die wir taten: Thatrsquos weitere 32.577 von zwei einfachen Trades. Sehen Sie, wie die Gewinne stapeln können Es wird ein wenig albern. Letrsquos sagen, Sie tun fünf Trades wie in einem einzigen Monat. Es wird wahrscheinlich viel mehr als das zur Verfügung, aber Letrsquos sagen, die Software sagt Ihnen, über diese fünf und Sie können nur ein paar Minuten, um diese Trades in einer Weise, die passt, was Ihr Leben Zeitplan passt. Das bedeutet, dass yoursquoll am Ende mit 73.467 Gewinn für den Monat. So tun die Mathe für sich. Nehmen Sie Ihr aktuelles Einkommen, herauszufinden, was Sie in einem Monat machen, dann multiplizieren mit 12. Thatrsquos Ihr jährliches Einkommen. Jetzt vergleichen, dass der Gewinn können Sie in einem Jahr machen fünf Forex Trades jeden Monat, wenn Forex Profit Launcher sagt Ihnen zu machen. Können Sie sich noch im Ruhestand Die meisten erstaunlichen Teil von all dies ist, dass Sie donrsquot müssen überhaupt nichts über Forex wissen, außer dass yoursquore erlaubt es zu handeln. Die Software sagt Ihnen, was zu tun ist, und Sie geben einfach und geben Sie die Trades. Diese mechanischen Schritte sind drop-dead einfach, so therersquos so ziemlich nichts zu befürchten. Können Sie Geld aus der ATM Dann können Sie Forex-Handel. Nur so können Sie das ehrliche Potenzial dieses sehen, herersquos ein kleiner Handel haben wir: Nicht so viel Gewinn dort, aber immer noch ziemlich gut. Wir haben noch 9.950 aus einem Handel gemacht. Denken Sie daran, aber, was zählt, ist, wie die Gewinne summieren sich im Laufe der Zeit. Thatrsquos was kann dein Leben verändern. Sind Sie aufgeregt noch Heres einige sogar bessere Nachrichten. Nun geben Sie mehr als nur die Software Yoursquoll erhalten auch die komplette System-Handbuch, das das genaue System zeigt die Forex Profit Launcher Software verwendet. Die meisten Trading-Software draußen würde dies nie tun. Thatrsquos, weil viele sogenannte Systeme sind nur Rauch und Spiegel hinter den Kulissen. Nicht Forex Profit Launcher Yoursquoll erhalten Sie das komplette System, so dass Sie es manuell handeln können, wenn Sie wollen. Itrsquos das komplette Handelspaket. Also nicht nur geben wir Ihnen Ihre eigene Fischmaschine, aber wersquore auch gehend, Ihnen zu beibringen, wie man für sich selbst fischen. Auf diese Weise können Sie sicher sein, dass yoursquore lernen, wie man Forex handeln auf eigene Faust. Sie müssen nicht auf irgendeine Software oder ldquotipsrdquo von irgendeinem Guru irgendwo abhängig sein. Aber so lange yoursquove bekam die Software, um fast die ganze Arbeit aus dem System zu nehmen, warum die Heck nicht verwenden Nun, da Sie wissen, was wersquore bietet Ihnen, wissen wir genau whatrsquos auf dem Herzen. Sie wollen wissen. Wie viel kostet es Sie zu eigenen Forex Profit Launcher Herersquos wo yoursquore wird angenehm überrascht sein. Diese Software ist solide. Das Handelssystem itrsquos basiert auf ist fantastisch. Wir könnten 147 pro Monat für diese und es wäre noch viel. Thatrsquos wahrscheinlich offensichtlich. Aber wir wissen auch, dass die meisten Menschen entweder canrsquot oder wonrsquot zahlen. Die meisten Menschen winrsquot zahlen 97 pro Monat entweder, obwohl itrsquos deutlich jeden Pfennig wert. So wersquore gehen, um dies unmöglich für Sie zu machen. Yoursquoll erhalten eine Lebensdauer von automatischen Handelsmitteilungen, die Ihren Tagesjob töten können und schließlich geben Ihnen die finanzielle Freiheit yoursquove wollte so lange. Und Sie müssen nicht ein Sklave zu Ihrem Computer sein, während yoursquore es tut. Und yoursquoll erhalten Sie das komplette Systemhandbuch, das Ihnen zeigt, wie Sie es alleine ohne unsere Software tun, wenn Sie wollen. Yoursquoll bekommt das komplette Handelspaket für nur 97 einmal. Keine monatliche Gebühr, keine Spiele oder Tricks. Sie zahlen einmal, Sie Profit für immer. Yoursquore, das ein komplettes Handelssystem erhält, das Sie fast auf Autopilot laufen lassen können. Itrsquos so einfach yoursquoll sein schockiert. Und die Ergebnisse Nun, stellen Sie sich einen Gewinn 83 der Zeit. Nicht zu schlecht, rechts Und wersquore nehmen das ganze Risiko weg mit unserer Garantie. So die Frage, die Sie haben, sich zu fragen, ist dieses mdash es wert weniger als Sie vermutlich auf Lebensmitteln für einen Monat verbringen, um Ihr Leben für immer zu ändern Wir denken die answerrsquos offensichtlich. Heres alles, was Sie tun müssen, um diese Tür für sich selbst jetzt zu öffnen, und erhalten Sie Forex Profit Launcher finden Trades für Sie in ein paar Minuten. P. S. Die größte Sache, die auf dem Weg Ihres Forex-Erfolges steht, ist ein System, das funktioniert, und eine einfache, einfache Möglichkeit, dieses System zu verwenden. Thats, warum Forex Profit Launcher ist der Fund des Jahrzehnts für Sie. Sie können in wenigen Minuten gewinnbringend handeln, sobald die Software einen Handel findet. Aber es kann nicht tun, bis Sie es greifen
Wednesday, 22 February 2017
Raghee Horner Forex Händler
Über Raghee Horner Raghee Horner begann den Handel bei 17, während noch in der High School. Sie setzte ihre Verfolgung des Handels durch Hochschule fort, bis Vollzeit nach dem Graduierung zerrissen zwischen den Diagrammen und der Rechtsschule ging, die Märkte gewannen. Mit einem Grad in Englisch, hat Raghee eine Leidenschaft für die Kommunikation der Botschaft der Märkte sowie Unterricht selbst orientierte Händler, wie man Wahl, Freiheit und einen Vorteil in der Währung und Futures-Märkte zu finden. Horner hat 3 Bücher veröffentlicht: 30 Tage Forex Trading, Forex Trading für maximalen Gewinn und Forex auf fünf Stunden pro Woche, die Sie auf ihrer Website kaufen können Raghee. Horner hat unzählige sprachliche Engagements und Seminare durchgeführt, ist Chief Currency Analyst für IBFX (gekauft von FXCM), war auf zahlreichen Reisen rund um den Globus und teilt alles, was sie tut und hat bei SimplerCurrencies gelernt. Ihre beliebten 34EMA Wave und GRaB Kerzen Indikatoren haben eine ständig wachsende Folge. Raghee bringt die Weisheit der bewährten Trading-Analyse mit dem Vorteil zurück, den die Technologie dem modernen Trader bietet. Spezialitäten: Forex, Währung ETFrsquos und Futures, Markt-Trend-Analyse, Preis Bewegung, Range Volatility Analysis, Trend folgend, amp Intermarket Analyse Jan 19, 2017 von David Starr Eine Reihe von anderen Markt-Interna können helfen, uns Anleitung, ob der Markt ist Extreme nach oben oder unten und daher anfällig für eine Wendung. Weiterlesen. Jan 13, 2017 von Chris McKhann Unsere Händler waren zu Beginn der Woche neutral und das ändert nicht viel in die nächste Woche. Weiterlesen. 10. Januar 2017 von Chris McKhann Option Verkäufer aller Art sollten Regeln über, wenn sie zurück zu kaufen Positionen, die sie verkauft haben, wie zu einem gewissen Punkt das Risiko ist nicht lang wert halten die Position. Hello Fellow Traders, Vielen Dank für Ihren Besuch Raghee. Ich weiß, dass Sie viele nützliche Informationen, Produkte und Dienstleistungen für alle Händlerqualitäten finden werden. Es gibt nichts Wichtigeres als Bildung in allem, was wir tun. Ich denke, es ist mehr als nur ein Mittel zum Zweck. Wissen, mehr Wissen zu suchen, führte mich von Futures zu Daytrading-Aktien und Index-Futures zum Forex-Handel. Die ganze Zeit hob ich die Synergie auf. Ich nahm, was ich über einen Markt wusste und trug es zum nächsten. Dies ermöglichte mir, diese Märkte nicht durch meinen Gesamtansatz zu ersetzen. Es ist etwas, was ich glaube, ich bringe auf den Tisch nicht nur als Händler, sondern als Lehrer. Es gibt keinen Markt, der ohne eine andere beeinflusst wird und es gibt noch wichtigere Märkte, die selten handeln, ohne Einfluss auf eine Reihe von anderen: Das ist der Forex-Markt. Ich benutze, was ich einen Geist nenne, viele Märkte Ansatz oder so viele Händler nennen es I. A.O. T. Sein ganz ein Handel. Wenn Sie mit Synergie Handel, weil Sie ein besseres Gesamtverständnis der Märkte haben, wird der Handel weniger stressig und die Stücke des Puzzles passt zusammen. Und alles beginnt mit Bildung. - Raghee Horner, Trader amp Autor Raghee in den Nachrichten Raghee wurde für Zeitungen, Zeitschriften und sogar Radio-Shows interviewt. Klicken Sie auf die Thumbnails, um die Artikel zu sehen. Forex Trading für maximalen Profit Forex Trading für maximalen Profit ein ehrliches Schritt-für-Schritt-Buch über die Methodik des Devisenhandels. Wenn die Leute fragen mich nach dem Forex-Markt Ich sage ihnen, dass es die besten Eigenschaften aller anderen Märkte mit keinem der Probleme hat. Dieses Buch erklärt alles für Sie und es ist ein großartiger Ort zum Starten. Klicken Sie hier für mehr Informationen. Die Million Dollar etUp-New für 2014 Die Million Dollar etUp - Alle neu für 2014. Raghees brandneues eBook. Features Die Wave, wie die Einrichtung der EMA, alle Zeitrahmen für die Marktbewegungen. Wie zu erkennen und Einstiegspunkt und verwalten Stopps, und vieles mehr Dies ist eindeutig geschrieben und ist mit großen Informationen für den Anfänger und der erfahrene Trader als gut verpackt. Registrieren Sie sich für Prämien REGISTRIEREN heute um Zugang zum Raghees Members Area zu erhalten. Die Registrierung ist absolut kostenlos. Keine Kreditkarte erforderlich. Mit der Mitgliedschaft erhalten Sie E-Mail-Benachrichtigungen über bevorstehende KOSTENLOSE Webinare (Online-Seminare) für Raghee-Mitglieder. CURRENT REGISTERED MEMBERS und WINNER CIRCLE MEMBERS müssen sich auf dieser neuen Website registrieren, um die Vorteile eines Mitglieds zu erhalten. Wenn Sie Hilfe benötigen oder Fragen haben, wenden Sie sich bitte per E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Sie müssen JavaScript aktivieren, damit Sie sie sehen können. Außerdem erhalten Sie: Insider Zugang zu Stunden von Raghee Videos Anleitung zu Charting Forex und Trading Platforms Sonderangebote
Forex Trading Ausbildung In Mumbai Cablenet
Lesen Sie mehr: Wie man Geld abheben kann Innerhalb von 48 Stunden an Werktagen abheben Prozessabhebungen einfach online Viele einfache Abhebungsoptionen Wenn Sie eine Abbuchung von Ihrem Forex4you-Konto tätigen, verarbeitet unsere Abrechnungsabteilung Ihre Anfrage innerhalb von 48 Stunden an Werktagen Um die folgenden Aktivitäten durchzuführen, sind Sie verpflichtet, unseren Verifizierungsprozess zu übergeben: Abheben von USD 1.000 oder mehr gesamt von Ihrem Konto Verwenden Sie eine internationale Banküberweisung zu addwithdraw Fonds Verwenden Sie Moneybookers (Skrill) Zahlungssystem für die Finanzierung Bitte beachten Sie, dass Sie können Verwenden Sie nur solche Zahlungssysteme, die Sie zur Finanzierung Ihres Forex4you-Kontos verwendet haben. Das erste für die Finanzierung eingesetzte Zahlungssystem wird automatisch aktiviert. Alle neu hinzugefügten Zahlungssystem (e) werden für die Abhebung der Gelder innerhalb von 30 Tagen nach Eingang Ihrer Anzahlung zur Verfügung stehen. Um eine Abmeldung zu tätigen, melden Sie sich in Ihrem Trader-Raum an und geben Sie Ihre Anfrage ein, wie in den folgenden Abbildungen dargestellt. Hinweis: Sie können mit mehreren Handelskonten gleichzeitig arbeiten, indem Sie sie in eine einzelne Gruppe stellen. Sie können auch alle Geldmittel in Ihrem Konto sperren, indem Sie das Kästchen in dem in Abbildung 3 gezeigten Formular ankreuzen. Wenn Sie offene Bestellungen auf Ihrem Konto haben, benötigen wir eine E-Mail-Bestätigung, bevor wir dies tun. Fig. 1. § 8220Mit Hilfe von Personal Accounts8221 abheben. Geld abheben Abb. 2. Die Möglichkeiten, von Ihrem persönlichen Konto zurückzutreten. Feige. 3. Abwicklung Ihrer Auszahlung. Internationale Präsenz: Wählen Sie eine Bank bevorzugen Sie 18.01.2017 Update für Cent-Konten: neuer Server und erhöhte maximale Menge für Bestellungen 23.12.2016 Frohe Weihnachten und ein glückliches Neues Jahr 30.11.2016 Neuer Schritt in der Entwicklung unseres Unternehmens - Europäische Lizenz 28.11.2016 Neues Partnerprogramm - Pro STP Markup 25.07.2016 Änderungen der ProSTP-Konten 17.06.2016 Änderungen der Margin-Anforderungen 15.06.2016 Forex4you Contest-Ergebnisse 01.04.2016 Über 20 000 000 Aufträge wurden kopiert Share4you Service 23.03.2016 Willkommen neueste und höchste Leverage - 1: 2000 28.12.2015 Forex4you wünscht Ihnen frohe Weihnachten und ein gutes neues Jahr Daily Forex Video für Partner Über Firma First Floor, Mandar House, Johnsons Ghut, PO (E-Global Trade Finance Group, Inc.) E-Global Trade Finance Group, Inc. ist zugelassen und reguliert Von der FSC nach dem Securities and Investment Business Act, 2010 Lizenz: SIBAL121027. Die Jahresabschlüsse der E-Global Trade Finance Group, Inc. werden jährlich von KPMG (BVI) Limited geprüft. Der Handel auf dem Forex-Markt beinhaltet erhebliche Risiken, einschließlich vollständiger möglicher Verlust von Geldern. Der Handel ist nicht für alle Anleger und Händler geeignet. Durch die Erhöhung des Risikos erhöht sich das Risiko (Hinweis auf Risiko). Der Service ist nicht verfügbar für Einwohner der USA, Großbritannien und Japan. Forex4you ist im Besitz von E-Global Trade Finance Group, Inc, BVI.
Keningau Sabah Forex Führer
Oleh. JAMES KAMIRON 8220SAYA Telah melaburkan sebanyak RM50,000 untuk Haupt 8216Forex8217 (perdagangan mata wang Asing) ke atas Nama Syarikat Zeta Capital Management Yang dikendalikan oleh seorang Yang Bernama Henry Jacob Borubui. Mereka memberi keyakinan kepada sagta bahawa saya akan mendapat keuntungan yang banyak melalui perdagangan ini, 8221 kata seorang pelabur, Paul Ugau. Apolla ada perjumpaan diadakan sama ada von Ranau, Kudat, Keningau, Papar, Kota Marudu, Paul von akan datang untuk melihat von mereka melakukan 8216trading8217. Setiap minggu Für eine grössere Darstellung klicken Sie auf das Bild. Paul mendapat keuntungan berlipat ganda. Ramai Yang menyertai 8216Forex8217 melalui Zeta Capital Management terutama Pesara, guru, kakitangan kerajaan, peniaga dan Petani kerana Melihat pulangan Yang diperolehi adalah besar. Mereka melabur serendah RM3,500 Yang ditukar ke US-Dollar sebelum membuka akaun. Para pelabur Akan diminta untuk memberikan kad pengenalan, Salinan bil elektrik atau Luft dan juga muka depan buku akaun dan juga Salinan bayaran melalui akaun bernombor 0102012005575 atas Nama Syarikat iaitu Zeta Capital Management, di AmBank. Sebaik sahaja pembayaran dilakukan, akaun yang baru dibuka akan dimainkan oleh einzeln yang dilantik oleh syarikat tersebut. Ramai Yang meraih keuntungan walaupun hanya dimainkan sekali seminggu. Namun ada masa tertentu pelabur akan kerugian. Namun, permainan 8216Forex8217 di bawah kendalian Henry Borubui dengan dibantu oleh Orang - orangnya Kini Telah berhenti kerana didapati menyimpang Dari carta perjalanan 8216Forex8217 Yang sebenar. Mereka telah menggubal sistem 8216Forex8217 secara haram yang dikendalikan von mereka sendiri di luar pengetahuan pelabur. Hasil risikan Yang dibuat oleh Sabahkini. net terhadap orang yang Bernama Henry Jacob Borubui mendapati Penama ini menetap di Kampung Bantayan, bersebelahan dengan Kampung Minintod, Penampang. Kekayaan beliau boleh dinilai dengan memiliki beberapa buah Kereta mewah termasuk Ninja König, BMW, Triton, CRV, Kereta Sport dan menjalani kehidupan hidup mewah apatah lagi di usia Muda 30 ein beliau Telah Menjadi kaya Raya. Dari Manakah Henry mendapat duit untuk membeli kemewahan ini untuk memasuki pelaburan 8216Forex8217 Zeta seseorang Harus mempunyai RM3,500 sebagai pra syarat. Es ist dir nicht erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. BB-Code ist an. Smileys sind an. Sie haben noch keine Artikel in Ihrem Warenkorb. Ramai orang kehilangan kawan. Ramai Kehilangan Harga Diri Serta Maruah. Ramai juga kehilangan rumah, tanah, harta benda, kereta disebabkan oleh 8216Forex8217. Perdagangan 8216Forex8217 haram ini Telah menghancurkan masa hadapan Ramai orang terutama pelabur, namun orang seperti Henry Jacob Borubui Terus menerus menipu orang Ramai tanpa sebarang tindakan daripada pihak berkuasa. Boleh dikatakan Heinrich Borubui telah mengumpul wang sehingga berpuluh juta. Jika kerajaan tidak von mengekang dan von memantau von para pemain von 8216Forex8217 seperti von Henry Borubui, von maka lebih von ramai lagi von mangsa von akan tertipu von dan teraniaya. 8216Forex8217.............................................., Kini Heinrich telah memindahkan wang pelabur ke akaun baru yang secara senyap tanpa pengetahuan para pelabur Zeta. Seorang lagi individuellu yang dikatakan menjadi jutawan segera melalui 8216Forex8217 ialah Andy Junis, dari Keningau, Sabah. Belieber berniaga 8216Forex8217 atas nama Edgar International. Sebelum ini beliau bermain komoditi atas nama Zillion yang telah menyebabkan kerugian besar penduduk di Keningau. Meskipun hidup secara sederhana von kampungnya, von Andy memiliki kekayaaan von luar biasa. Latafelakang ibu bapanya hanya sebagai petani. Namun berbekalkan kebijaksanaan dan kecekapan Yang dipelajarinya Dari Henry Borubui, beliau menjadikan 8216Forex8217 sebagai senjata untuk meraih pendapatan luar biasa. Beliau menggalakkan ramai orang kampung menyertai 8216Forex8217 von jika mereka tidak memiliki von wang yang cukup von Andy bersedia menerima von gadaian von geran tanah. Andy juga memiliki Sebuah Syarikat Yang Dinamakan Matanoi Gruppe dan Eastern Rich. Syarikat ini pernah menaja satu acara peringatan Batu Sumpah sempena Hari Malaysia anjuran Pejabat Daerah Keningau Pada tahun 2010 dan sebuah parti komponen Barisan Nasional (BN). Ramai orang kenamaan menyertai pelaburan 8216Forex8217 ini kerana orang Kuat Andy Junis ialah seorang ahli politik Yang Bernama Rayner Udong Yang Telah membawa Ramai orang melabur 8216Forex8217. Dikatakan beberapa wakil rakyat telah menyertai 8216Forex8217 melalui Rayner. Melalui orang kanannya, Albert Henry, yang juga memiliki kemewahan luar biasa, mereka singen ke luar negeri als memiliki beberapa perniagaan di Sabah. Ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial ial. Melalui Matanoi Gruppe juga, kedua einzeln ini menjalankan perniagaan pelancongan, perkapalan von Keningau menyewakan jentera-jentera kepada kontraktor. Dari Manakah Matanoi Gruppe mendapat wang untuk menjalankan perniagaannya Wang Yang digunakan Matanoi Gruppe adalah hasil pengumpulan wang haram Andy dan Albart melalui perdagangan 8216Forex8217 Edgar Internationale Secara penipuan terancang. Para pelabur kebiasaannya Akan merujuk kepada individu-individu (Henry, Andy, Albert) ini sama ada 8216buy8217 atau 8216sell8217 semasa bermain 8216Forex8217. Oleh kerana sistem (Anzeige) Yang digunakan adalah dikawal oleh individu menggunakan sistem sendiri Yang di 8216upload8217kan ke komputer pelabur maka dengan mudah para pelabur Akan ditipu oleh kelicikan permainan Mereka. 8220Dia Akan suruh 8216buy8217 tetapi kalau mengikut Indikator Antarabangsa sebenar ialah 8216sell8217, namun kedudukan Mereka tidak goncang Sebab wang itu tidak Kemana-mana, wang itu hanya beralih kepada Mereka ini, penipuan ini sememangnya Telah dirancang. Perdagangan itu dijalankan Secara im Haus, 8221 kata Matthew, seorang pelabur Yang Geram disebabkan seorang Dari 8216Penyamun Tarbus8217 ini tidak menjawab Telefon bagi beliau mendapatkan maklumat terkini pelaburan 8216Forex8217 Yang dibuatnya. Malahan beliau reda dengan kehilangan RM7,000 yang telah verdreifachen meskipun tidak tahu ke mana lagi untuk mengesan para penyamun ini. 8220Mereka Akan Katakan kepada pelabur, bahawa Mereka SILAP membuat analisis terhadap pelaburan, tetapi sebenarnya itulah permainan Mereka untuk mendapatkan duit orang Secara haram, 8221 kata Matthew Yang menggesa Bank Negara Malaysia dan Polis Diraja Malaysia bertindak Segera Telah Ramai mangsa Telah membuat laporan polis. Apakah kerajaan Terus menerus menghalalkan perbuatan para penyamun ini Yang Terus berterusan menipu dengan pelbagai cara termasuklah mengubah Nama Syarikat 8216Forex8217 tanpa pengetahuan pelabur, atau kononnya berlaku gempa Bumi, Perang di luar negara Yang sebenarnya langsung tidak bersangkut paut Adakah kerajaan Terus menghalalkan penipuan terancang ini Bagaimana dengan orang yang Telah ditangkap pertengahan tahun yang dikaitkan dengan pelaburan 8216Forex8217 Adakah kerajaan tidak mempunyai cukup Bukti untuk membawa para penyambun ini ke Penjara Kerajaan Harus menyita harta Mereka ini kerana cara harta itu diperoleh Dari hasil penipuan terancang. Atau benarkah individu-individu ini mempunyai hubungan di dalam sehingga Mereka Sukar ditangkap dan masih bebas ke sana sini berterusan menipu Laporan Daily Express mengenai individu berkaitan 8216Forex8217 juga Telah senyap sehingga Kini Adakah James Sarda Telah dibeli oleh para penyamun ini Untuk makluman kepada mangsa, laporan polis Boleh dibuat dan siasatan von bawah Seksyen 420 Kanun Keseksaan kerana menipu boleh dijalankan. Dalam Pada itu juga, siasatan juga Akan dijalankan di bawah Seksyen 25 (1) Akta Bank dan Institusi-Institusi Kewangan 1989 (BAFIA) dan Seksyen 4 (1) Akta Pencegahan Pengubahan Wang Haram dan Pembanterasan Pembiayaan Keganasan 2001 (AMLATFA). Bagaimanapun, tanpa adanya laporan daripada mangsa kepada pihak-pihak Yang berwajib seperti pihak Polis dan Aduan kepada Bank Negara Malaysia pihak berkuasa Sukar untuk bertindak menjalankan siasatan. Atah menghantar aduan kepada Bank Negara ke Unternehmen Penyiasatan Khas, Bank Negara Malaysia, Jalan Dato Onn, 50480 Kuala Lumpur. Faksimili: 03-26987467. E-mel: upkinfobnm. gov. my Sila juga hubungi di nombor telefon yang berikut: 03-269150902698 4163 269108242692 6482.Währung von Sabah Die offizielle Währung von Malaysia ist das malaysische Ringgit (RM). Dies ist die einzige im ganzen Land akzeptierte Währung, außer auf einigen Mautstraßen von Borneo, wo der Singapur-Dollar akzeptiert wird. Banknoten werden in Schritten von RM1, 5, 10, 20, 50 und 100 (zusammen mit einer seltenen 2RM Note) ausgegeben. Münzen sind in 5, 10, 20 und 50 Sen-Schritten erhältlich. Schauen Sie sich mehr Reisetipps Malaysia genießt moderne Banken-Infrastruktur und die meisten größeren Geschäfte und Restaurants akzeptieren MasterCard und Visa. Banken und Geldautomaten sind in allen großen Städten im ganzen Land verfügbar, mit der größten Auswahl in Kota Kinabalu. Die Geldwechsler hier in Center Point Mall bieten bessere Wechselkurse als die Banken. Nur Bargeld wird in den ländlicheren Teilen des Staates akzeptiert.
Quadratwurzel Von Ein Matrix In Stata Forex
Willkommen beim Institut für Digitale Forschung und Bildung Stata FAQ Wie kann ich auf gespeicherte Informationen zugreifen, nachdem ich einen Befehl in Stata ausgeführt habe (zurückgegebene Ergebnisse) Zusätzlich zu der Ausgabe, die im Ergebnisfenster angezeigt wird, speichern viele Statas-Befehle Informationen über den Befehl Und seine Ergebnisse in Erinnerung. Dies ermöglicht es dem Benutzer, ebenso wie andere Stata-Befehle, diese Informationen leicht zu nutzen. Stata nennt diese zurückgegebenen Ergebnisse. Zurückgegebene Ergebnisse können sehr nützlich sein, wenn Sie Informationen verwenden möchten, die von einem Stata-Befehl erzeugt werden, um etwas anderes in Stata zu tun. Wenn Sie z. B. eine Variable zentrieren möchten, können Sie mit summarize den Mittelwert berechnen und dann den Mittelwert verwenden, um die Variable zusammenzufassen, um die Variable zu zentrieren. Die Verwendung der zurückgegebenen Ergebnisse eliminiert die Notwendigkeit, den Wert des Mittelwerts erneut einzugeben oder zu schneiden und einzufügen. Ein weiteres Beispiel dafür, wie zurückgegebene Ergebnisse nützlich sein können, ist, wenn Sie die vorhergesagten Werte der Ergebnisvariablen generieren möchten, wenn sich die Vorhersagevariablen auf einem bestimmten Wertsatz befinden. Wiederum können Sie die Koeffizienten erneut eingeben oder ausschneiden und einfügen Machen die Aufgabe viel einfacher. Der beste Weg, um ein Gefühl, wie die Ergebnisse der Arbeit erhalten, ist zu springen rechts in und starten Sie suchen und mit ihnen. Der folgende Code öffnet ein Beispiel-Dataset und verwendet summarize (abgekürzte Summe), um deskriptive Statistiken für die Variable lesen zu erzeugen. Dies erzeugt die erwartete Ausgabe, aber noch wichtiger für unsere Zwecke, hat Stata nun Ergebnisse aus dem zusammengefassten Befehl im Speicher gespeichert. Aber wie Sie wissen, welche Informationen gespeichert worden sind Eine Auflistung der Informationen, die von jedem Befehl gespeichert werden, ist in der Hilfedatei und in der gedruckten Anleitung enthalten, so konnte ich dort aussehen, aber ich kann auch einfach geben Sie return Liste. Die alle zurückgegebenen Ergebnisse im Speicher auflisten wird. Oben ist eine Liste der zurückgegebenen Ergebnisse, wie Sie sehen können, jedes Ergebnis ist von der Form r (.), Wo die Ellipsen (ist ein kurzes Label). Wir konnten die Hilfedatei für den Zusammenfassungsbefehl sehen, um herauszufinden, was jeder Punkt auf der Liste ist, aber es ist oft einfach, herauszufinden, welchen Wert zu welchem Ergebnis, z. B. r (Mittelwert) zugewiesen wird. Nicht überraschend enthält den Mittelwert der gelesen (können Sie dies gegen die Ausgabe), aber andere sind nicht so offensichtlich, zum Beispiel r (sumw). Für diese, müssen Sie das Handbuch zu konsultieren, wenn Sie denken, Sie könnten sie verwenden möchten. Die meisten der Zeit wird der Prozess relativ einfach sein, weil youll wissen, welches Ergebnis Sie zugreifen möchten, werden Sie in der Liste suchen, um herauszufinden, welcher Name es unter gespeichert wird, anstatt auf der Liste und versuchen, herauszufinden, was jeder Element ist. Wie Sie sich vorstellen können, verschiedene Befehle und sogar der gleiche Befehl mit verschiedenen Optionen, speichern Sie verschiedene Ergebnisse. Im Folgenden fassen wir die Variable wieder zusammen, fügen aber die Detailoption hinzu. Dann verwenden wir return Liste, um die Liste der zurückgegebenen Ergebnisse zu erhalten. So wie die Detailoption zusätzliche Informationen zur Ausgabe hinzufügt, führt dies auch zu zusätzlichen Informationen, die in den zurückgegebenen Ergebnissen gespeichert sind. Die neue Liste enthält alle Informationen, die durch den obigen Summen-Befehl zurückgegeben werden, plus Schiefe-Kurtosis und eine Anzahl von Perzentilen, einschließlich der ersten (r (p25)) und dritten (r (p75)) Quarteile und des Medians (r (p50) ). Nun, da wir einen gewissen Sinn dafür haben, welche Ergebnisse durch das zusammengefasste Kommando zurückgegeben werden, können wir die zurückgegebenen Ergebnisse nutzen. Nach dem Durchlaufen eines der oben erwähnten Beispiele werden wir mittig die Variable lesen. Unter der Annahme, dass der letzte Befehl, den wir liefen, der oben zusammengefasste Befehl war, erzeugt der untenstehende Code eine neue Variable, cread, die die mittleren zentrierten Werte von read enthält. Beachten Sie, dass anstatt den tatsächlichen Wert des gelesenen Mittelwerts in diesem Befehl zu verwenden, der Name des zurückgegebenen Ergebnisses (dh r (Mittelwert)) verwendet wird, dann weiß Stata, wann r (Mittelwert) den tatsächlich gespeicherten Wert darstellt Diese Systemvariable. In der nächsten Zeile fassen wir die neue Variable zusammen. Während der Mittelwert nicht genau gleich Null ist, liegt er innerhalb des Rundungsfehlers von Null, so daß wir wissen, daß wir richtig zentriert die Variable gelesen haben. Wie der obige Code vorschlägt, können wir zurückgegebene Ergebnisse ziemlich genau so verwenden, wie wir eine tatsächliche Zahl verwenden würden. Das liegt daran, dass Stata die r (.) Als Platzhalter für einen reellen Wert verwendet. Für ein anderes Beispiel, sagen wir, dass wir die Varianz des Lesens aus seiner Standardabweichung berechnen wollen (ignoriert die Tatsache, dass summarize gibt die Varianz in r (Var)). Wir können dies über den Display-Befehl als Taschenrechner. Die zweite Zeile des Codes unten tut dies. Wir können sogar das Ergebnis überprüfen, indem wir den Wert der Standardabweichung vom Ausgang ausschneiden und einfügen, was im dritten Befehl unten erfolgt. Die Ergebnisse sind grundsätzlich gleich, die geringe Differenz ist Rundungsfehler, da die gespeicherte Schätzung r (sd) mehr Ziffern der Genauigkeit enthält als der Wert der Standardabweichung, der in der Ausgabe angezeigt wird. Arten der zurückgegebenen Ergebnisse, r-Klasse und e-Klasse Nun, da Sie ein wenig über die zurückgegebenen Ergebnisse wissen und wie sie arbeiten, sind Sie bereit für ein wenig mehr Informationen über sie. Zurückgegebene Ergebnisse kommen in zwei Haupttypen, r-Klasse und e-Klasse (es gibt auch s-class und c-class resultsvariables, aber wir werden hier nicht diskutieren). Befehle, die Schätzungen durchführen, zB Regressionen aller Typen, Faktorenanalyse und anova, sind e-class Befehle. Andere Befehle, z. B. Zusammenfassungs-, Korrelations - und Nachschätzbefehle, sind r-class-Befehle. Die Unterscheidung zwischen Befehlen der R-Klasse und der E-Klasse ist wichtig, da Stata Ergebnisse aus Befehlen der e-Klasse und der r-Klasse in verschiedenen quotplaces. quot-Dateien speichert. Dies hat zwei Verzweigungen für Sie als Benutzer. Zuerst müssen Sie wissen, ob die Ergebnisse in r () oder e () (sowie den Namen des Ergebnisses) gespeichert sind, um sie nutzen zu können. Wenn Sie nicht sicher, welche Klasse ein Befehl youve ausgeführt wird, können Sie entweder schauen Sie es in der Hilfedatei oder quotlookquot an einem Ort (mit dem entsprechenden Befehl, um Ergebnisse zu listen), wenn die Ergebnisse nicht dort gespeichert sind sie wahrscheinlich in das andere. Eine potenziell wichtigere Verzweigung des Unterschieds, wie Ergebnisse von r-class - und e-class-Befehlen zurückgegeben werden, besteht darin, dass die zurückgegebenen Ergebnisse nur dann gespeichert werden, wenn ein anderer Befehl derselben Klasse ausgeführt wird. Das heißt, die Ergebnisse der vorherigen Befehle werden durch nachfolgende Befehle derselben Klasse ersetzt. Im Gegensatz dazu wird das Ausführen eines Befehls einer anderen Klasse die zurückgegebenen Ergebnisse nicht beeinflussen. Wenn ich zum Beispiel eine Regression und dann eine zweite Regression ausführe, werden die Ergebnisse der ersten Regression (in e ()) durch diejenigen für die zweite Regression ersetzt (die ebenfalls in e () gespeichert sind). Wenn aber statt einer zweiten Regression ein Nachschätzungsbefehl ausgeführt wurde, würden die Ergebnisse der Regression in e () verbleiben, während die Ergebnisse des Postschätzbefehls in r () platziert werden würden. Zwar gibt es eine Unterscheidung zwischen den beiden, die tatsächliche Verwendung von Ergebnissen aus r-Klasse und e-Klasse Befehle ist sehr ähnlich. Für den Anfang, die Befehle sind parallel, um die r-Klasse Ergebnisse im Speicher zu finden, ist der Befehl Rückkehr Liste. Um das gleiche für E-Klasse Ergebnisse der Befehl ereturn Liste zu tun. Ferner werden mit Ausnahme der Unterschiede in den Benennungskonventionen (r () vs e ()) die Ergebnisse auf die gleiche Weise abgerufen. Das Beispiel unten zeigt dies, zuerst regressieren wir auf weiblich und lesen. Und verwenden Sie dann ereturn Liste, um auf die zurückgegebenen Ergebnisse zu schauen. Die Liste der zurückgegebenen Ergebnisse für regress enthält mehrere Arten von zurückgegebenen Ergebnissen unter den Überschriften Skalaren, Makros, Matrizen und Funktionen. Wir werden die Arten der zurückgegebenen Ergebnisse unten zu diskutieren, aber jetzt werden wir zeigen, wie Sie die skalar zurückgegebene Ergebnisse auf die gleiche Weise, wie wir die zurückgegebenen Ergebnisse von zusammengefasst verwenden können. Eine Möglichkeit zum Berechnen der Varianz der Fehler nach einer Regression besteht beispielsweise darin, die restliche Summe von Quadraten durch die Gesamtfreiheitsgrade (d. h. n-1) zu teilen. Die restliche Summe von Quadraten wird in e (rss) gespeichert, und das n für die Analyse wird in e (N) gespeichert. Im Folgenden verwenden wir den Anzeigebefehl als Taschenrechner zusammen mit den zurückgegebenen Ergebnissen, um die Varianz der Fehler zu berechnen. Die Ergebnisse werden zurückgegeben: Skalare, Zeichenketten, Matrizen und Funktionen Wie oben erwähnt, gibt es sowohl für r - als auch für e-class-Befehle mehrere Typen zurückgegebener Ergebnisse, einschließlich Skalaren, Zeichenketten, Matrizen und Funktionen. In den Listen der zurückgegebenen Ergebnisse ist jeder Typ unter seiner eigenen Position aufgelistet. Die Ergebnisse unter der Überschrift quotscalarsquot sind nur, dass ein einzelner numerischer Wert. Ihre Verwendung wird oben diskutiert, so dass wir nicht mehr über sie in diesem Abschnitt sagen. Zurückgegebene Ergebnisse unter quotmacrosquot sind in der Regel Zeichenfolgen, die Informationen über den Befehl, der ausgeführt wurde, geben. Zum Beispiel enthält e (cmdline) in den zurückgegebenen Ergebnissen für die oben gezeigte Regression den Befehl, den der Benutzer ausgegeben hat (ohne Abkürzungen). Diese werden im Allgemeinen bei der Programmierung von Stata verwendet. Ergebnisse, die unter quotmatricesquot aufgelistet werden, sind, wie Sie erwarten, Matrizen. Während die Liste der Ergebnisse, die von return-Liste und erturn Liste zurückgegeben werden, zeigen Sie die Werte, die von den meisten der zurückgegebenen Ergebnisse, das ist nicht praktisch mit Matrizen, stattdessen die Dimensionen der Matrizen aufgeführt sind. Um den Inhalt von Matrizen zu sehen, müssen Sie sie mit Matrixbefehlen anzeigen lassen. Wir führen dies unten mit der Koeffizientenmatrix (e (b)) unter Verwendung der Befehlsmatrixliste e (b) durch. (Beachten Sie, dass es nach dem Anpassen eines Modells einen anderen Weg zum Zugriff auf Koeffizienten und deren Standardfehler gibt.) Wenn wir Matrixoperationen auf zurückgegebenen Matrizen durchführen oder auf einzelne Elemente der Matrix zugreifen wollen, Verschieben Sie die Matrix als Rückgabewert auf eine normale Matrix. Dies geschieht in der letzten Zeile der Syntax unten. Schließlich werden die Ergebnisse, die unter der Überschrift "Funktionen" wiedergegeben werden, Funktionen enthalten, die in ähnlicher Weise wie andere Stata-Funktionen verwendet werden können. Die am häufigsten von den Stata-Schätzbefehlen zurückgegebene Funktion ist wahrscheinlich e (sample). Diese Funktion markiert das Beispiel, das für die Abschätzung der letzten Analyse verwendet wird. Dies ist nützlich, da Datensätze oft fehlende Werte enthalten, die dazu führen, dass nicht alle Fälle des Datensatzes in einer gegebenen Analyse verwendet werden. Unter der Annahme, dass der letzte Schätzbefehlslauf die Regression des Schreibens auf das Weibchen war, und das Lesen, das oben gezeigt ist, verwendet die erste Codezeile unten e (Stichprobe), um den Mittelwert des Lesens unter den in dem Modell verwendeten Fällen zu finden. Die zweite Codezeile verwendet e (sample), um eine neue Variable namens flag zu erstellen, die für Fälle gleich ist, die in der Analyse verwendet wurden, andernfalls Null. (Anmerkung, da der Beispiel-Dataset keine fehlenden Daten enthält, werden alle Fälle in die Analyse einbezogen, und Flag ist eine Konstante gleich Eins.) Koeffizienten und ihre Standardfehler Wie oben diskutiert, passt ein Modell, Koeffizienten und deren Standard Fehler werden in e () in Matrixform gespeichert. Diese Matrizen ermöglichen dem Benutzer Zugriff auf die Koeffizienten, aber Stata bietet Ihnen einen noch einfacheren Zugriff auf diese Informationen, indem er sie in den Systemvariablen b und se speichert. Um auf den Wert eines Regressionskoeffizienten nach einer Regression zuzugreifen, muss man nur bvarname eingeben, wobei varname der Name der Prädiktorvariablen ist, deren Koeffizient Sie untersuchen möchten. Um auf den Standardfehler zuzugreifen, können Sie einfach sevarname eingeben. Um auf den Koeffizienten und den Standardfehler der Konstante zuzugreifen, verwenden wir Bcons bzw. Sek. Darunter führen wir das gleiche Regressionsmodell, das wir oben liefen (das Auslassen der Ausgabe), mit weiblichen und lesen, um das Schreiben vorherzusagen. Sobald wir das Modell geschätzt haben, verwenden wir den Anzeigebefehl, um zu zeigen, dass die Werte in b gleich unseren Regressionskoeffizienten sind. Schließlich berechnen wir den vorhergesagten Wert des Schreibens, wenn ein weiblicher Student (weiblich 1) eine Leserate von 52 hat. Der Inhalt dieser Website sollte nicht als eine Bestätigung irgendeines bestimmten Webseiten-, Buch - oder Softwareprodukts durch die University of California. An Einführung in Mata Mata ist eine Matrix-Sprache in Stata gebaut, ähnlich in vielerlei Hinsicht zu R, Matlab oder GAUSS. Es hat einige einzigartige und faszinierende Funktionen jedoch. Einer ist, dass es eine kompilierte Sprache anstatt interpretiert wird, was die Leistung verbessert. Es wurde auch in StataMP (verfügbar auf allen SSCC Linux-Servern und Condor) parallelisiert, was die Performance dramatisch verbessert. Auf der anderen Seite Mata ist ziemlich neu und hat noch nicht zitiert onquot an der SSCC, so dass wir keine realen Vergleiche zu bieten haben. Mata ist kein Ersatz für Stata, noch soll es ein eigenständiges statistisches Paket sein. Es ist ein Werkzeug, das am besten als Ergänzung zu Stata (oder SAS oder SPSS) verwendet wird, für diese Dinge tun, macht Stata nicht gut für sich. Insbesondere funktioniert Mata nicht im Rahmen eines einzigen Datensatzes, was ihm zusätzliche Flexibilität bietet. Aber Sie sollten nicht versuchen, Mata zu lernen, es sei denn, Sie sind bereits mit Stata oder einem anderen statistischen Paket vertraut. Mata ist eine relativ flache levelquot-Sprache. Viel von Ihrer Zeit in Stata (oder SAS oder SPSS) wird mit eingebauten Programmen verbracht, finden Sie genau die richtige Kombination von Optionen, um Stata zu tun, was Sie wollen. In Mata werden Sie die direkte Kontrolle übernehmen und Mata sagen, was Sie Schritt für Schritt tun möchten. (Der Mata-Optimierer, auf den wir ausführlich eingehen werden, ist eine bemerkenswerte Ausnahme.) Das bedeutet, dass einfache Dinge in Mata üblicherweise schwerfälliger sind als in Stata, aber Mata hat weniger Einschränkungen. Dieser Artikel ist in erster Linie für Menschen, die erhebliche Erfahrung mit Stata, SAS oder SPSS-Syntax geschrieben haben geschrieben, aber keine anderen Programmiersprachen. So wird es viel Wert auf das Lernen, wie man nützliche Dinge durch die Manipulation von Matrizen zu tun, und viele der Beispiele sind so konzipiert, um Erfahrungen zu machen sowie ein bestimmtes Konzept illustrieren. Können Matlab und GAUSS Veteranen finden, dass sie diese Abschnitte schöpfen können und konzentrieren auf, was zu ihnen neu ist. C-Programmierer finden, dass Mata C imitiert, wann immer es kann, so dass sie wahrscheinlich die Abschnitte auf Standard-Programmierung Konstrukte wie Schleifen. Aber egal, was Ihr Hintergrund, werden Sie lernen, viel mehr, wenn Sie diesen Artikel auf dem Computer lesen, mit Stata laufen, und tatsächlich geben Sie in den Beispielen. Mata läuft innerhalb von Stata, also um Mata zu benutzen, müssen Sie wissen, wie man ein Stata-Programm ausführt, genannt do-Datei. Wenn Sie Stata nie benutzt haben, lesen Sie bitte den Abschnitt über do-Dateien in einer Einführung in Stata. Interaktive Stata (d. H. Starten Sie es und geben Sie in Befehle) ist eine großartige Möglichkeit zu lernen, und das ist, wie youll die Beispiele in diesem Artikel. Aber für echte Arbeit youll wollen alles in do Dateien schreiben. Es gibt mehrere Beispieldateien, die diesem Artikel zugeordnet sind. Es gibt Links zu ihnen im Text, wie sie verwendet werden. Allerdings, wenn youre mit einem SSCC Linux-Server können Sie sie alle vor der Zeit zu kopieren. Geben Sie dazu Folgendes an der Linux-Eingabeaufforderung ein: mkdir mataclass cd mataclass cp usrglobalwebssccpubsfiles4-26. Die meisten der Befehle youll Typ, wie Sie lesen, sind auch in Mataclass. do enthalten. Die beiden wichtigsten Beispiele sind in ex1.do und ex2.do gefunden. Mata Grundlagen Um Mata zu starten, starten Sie zuerst Stata und geben Sie dann das Befehlsfenster ein. Stata schaltet dann auf quotMata mode. quot Seine leicht zu vergessen, welche Modus youre in, aber wenn Sie sorgfältig an der Unterseite des Review-Fenster, wo Sie normalerweise sehen einen Zeitraum youll sehen jetzt einen Doppelpunkt. Natürlich, wenn Sie zum ersten Mal starten Mata theres eine große horizontale Linie, die mata sagt, aber das wird nicht für lange sichtbar sein. Dieser Balken erinnert Sie auch noch an einen anderen nützlichen Befehl: Um aus dem Mata-Modus herauszukommen, während "Stata" um Befehle herum organisiert ist, wird Mata um quotstatements. quot herum organisiert. Zum Beispiel können Sie einfach eingeben und Mata wird zurückgeben, um die Ergebnisse in einer Variablen zu speichern Genauso einfach: Beachten Sie, dass es diesmal keine Ausgabe gab. Wenn Sie den Wert von x sehen wollen, geben Sie einfach: und youll erhalten 4 zurück. Matrix-Operatoren In unseren früheren Beispielen fungierte das Plus-Zeichen als Operator: Mata erkannte es als Sprechen quottake die Sache vor dem Plus-Zeichen und die Sache nach dem Plus-Zeichen und Summe sie. quot Mata definiert auch Matrixoperatoren, die Matrixmanipulationen durchführen. Spalten - und Zeilenverknüpfung Das Komma ist definiert als der Querspalten-Joinquotoperator oder quottake die Sachen vor und nach dem Komma und setzt sie nebeneinander. Das bedeutet, dass Stata als Matrix mit einer Zeile und zwei Spalten interpretiert wird. In der Tat, geben Sie es und die Ausgabe wird: Der Backslash (nicht die Division ist) ist die quotrow joinquot Operator, oder quottake die Sache vor dem Backslash und Stapel es oben auf die Sache nach it. quot So ist eine Matrix mit Zwei Zeilen und eine Spalte: Die zu betreibenden Dinge sind nicht auf Skalare beschränkt, so dass Sie Matrizen konstruieren können. Fehlermeldungen Es gibt Grenzen: ltistmtgt: 3200 Konformitätsfehler r (3200) Sie können nicht eine Matrix, deren erste Zeile hat zwei Spalten, aber deren zweite und dritte Zeile haben eine Spalte. Stata nennt dies einen Konformitätsfehler, eine Klasse, die auch Dinge beinhaltet, die versuchen, Matrizen zu multiplizieren, wobei die Anzahl der Spalten der ersten Matrix von der Anzahl der Zeilen der zweiten unterscheidet. Dies ist auch ein Fehlerquote-Fehler. Wenn Sie Mata eine Anweisung geben, ist das erste, was sie tut, die Anweisung in den Bytecode zu kompilieren. An diesem Punkt Mata nicht Blick auf die spezifischen Mengen manipuliert werden. Alles, was sie sieht, ist Zitat etwas neben etwas anderes, dann stapeln, die auf zwei anderen things. quot Das macht Sinn, so dass die Anweisung erfolgreich kompiliert. Erst wenn der Code läuft, merkt Mata, dass die zu stapelnden Dinge unterschiedliche Spaltenzahlen haben. Ein Kompilierungszeitfehler wird generiert, wenn die Anweisung keinen Sinn macht, egal in welcher Menge Sie es anschließen. Beispielsweise sind ungültiger Ausdruck r (3000) Kompilierzeitfehler immer Fehlercode 3000 und enthalten nicht ltistmtgt. Beachten Sie, ob ein Fehler ein Kompilierfehler ist oder ein Laufzeitfehler kann Ihnen bei der Suche des Problems helfen. Wenn es Laufzeit war, wissen Sie, Mata zumindest verstanden Ihren Code (obwohl theres keine Garantie es verstanden, dass es bedeutet, dass die gleiche Sache, die Sie verstehen, es bedeuten) und es war etwas über die spezifischen Mengen, mit denen es das Problem verursacht wurde. Wenn seine Kompilierzeit, macht der Code nicht einmal Sinn, Mata. Klammern Als youre Zusammenstellung Matrizen sind Sie willkommen, um Klammern zu helfen, Dinge zu klären. Seine meist zu Ihrem Nutzen: sind alle gleich, Mata, aber wenn einer von ihnen sieht klarer zu Ihnen mit allen Mitteln verwenden, dass Stil in allen Programmen. (Ich bin zufällig ein Fan des dritten.) Range Operators Eine weitere Reihe von praktischen Tools für die Erstellung von Matrizen sind die Bereich Operatoren. Das. Erzeugt eine Reihe beginnend von der Zahl auf der linken Seite bis zur Zahl auf der rechten Seite und macht sie zu einem Zeilenvektor. Das. Operator tut dasselbe, setzt sie aber in einen Spaltenvektor. Sein nicht begrenzt auf Ganzzahlen, jedoch: Beachten Sie, dass die Zahl auf der rechten Seite ist nicht garantiert Teil der resultierenden Serie sein. Die Ergebnisse von Matrix-Anweisungen können natürlich ebenso wie andere Anweisungen in Variablen gespeichert werden. Zum Beispiel: Beachten Sie, wie die Definition von z sieht viel wie die Aussage, die wir früher versucht, gab einen Laufzeitfehler. Es läuft jetzt, weil x und y beide haben zwei Spalten. Deshalb war es ein Laufzeitfehler und kein Kompilierzeitfehler: Angesichts der richtigen Eingaben kann die Anweisung funktionieren. Arithmetische Operatoren Die arithmetischen Standardoperatoren erkennen, wann eines oder beide ihrer Argumente eine Matrix ist, und handeln entsprechend. Dazu gehören Addition und Subtraktion, skalare Zeiten Matrix, und vollständige Matrix-Multiplikation. Es gibt jedoch auch quotcolonquot-Operatoren, die elementweise arbeiten. Für Addition und Subtraktion macht es keinen Unterschied, da sie Element von Element sowieso. Aber es macht einen großen Unterschied mit der Multiplikation. Beachten Sie Folgendes: Logische Operatoren Logische Operatoren wie z. B. größer als, kleiner und gleich sind auch in Matrix - und Doppelpunkt-Versionen definiert (beachten Sie, dass der Operator equals im Gegensatz zur Zuweisung ist). Mata verfügt jedoch nicht über einen booleschen Variablentyp. Somit geben logische Operatoren (wie in Stata) eine für true und null für false zurück. Wenn Sie zwei Matrizen mit Standard größer als, kleiner oder gleich vergleichen, gibt Mata genau dann eine Zahl zurück, wenn die Bedingung für alle Elemente der beiden Matrizen zutrifft. Andernfalls gibt sie Null zurück Diese Operatoren können nur auf Matrizen derselben Größe arbeiten. In ihrer Kolonform ist das Ergebnis eine Matrix, die alle Element-für-Element-Vergleiche enthält. Die Kolonform ermöglicht mehr Flexibilität hinsichtlich der Größen der zu vergleichenden Matrizen. Wenn ein Argument ein Skalar-, Zeilenvektor oder Spaltenvektor ist, wird es nach Bedarf dupliziert, so dass es mit der anderen Matrix übereinstimmt. Der transpose-Operator ist das richtige einfache Anführungszeichen (). Es funktioniert auf nur einem Objekt, das eine auf der linken Seite, und gibt seine Transponierung zurück: Es gibt jedoch keinen inversen Operator. Die Inversion erfolgt durch Funktionen. Subscripts Um ein bestimmtes Element einer Matrix zu verweisen, setzen Sie die Zeile und Spaltennummer in eckige Klammern nach dem Matrixnamen. Bei der oben definierten Matrix x ist x1,1 1. x1,2 ist 2. usw. Subscripts können auf jeder Seite eines Gleichheitszeichens verwendet werden: Wenn eine Matrix ein Zeilen - oder Spaltenvektor ist, können Sie nur einen Index verwenden. Mißbrauchsquot für die Zeilen - oder Spaltennummer bedeutet alle Zeilen oder Spalten. Sie können entweder den Standard-Zeitraum für fehlende oder einfach verlassen Sie die Nummer aus. So können Sie auch jede Zahl durch einen Zeilen - oder Spaltenvektor ersetzen (und Stata kümmert sich nicht um die von Ihnen verwendete). Allerdings sind diesmal Klammern erforderlich, damit Mata weiß, wo die Liste der Zeilen endet und die Spalten beginnen. Sie können Zeilen oder Spalten wiederholen, die Reihenfolge verarbeiten, oder sogar Matrizen erzeugen, die größer als das Original sind. Vordefinierte Vektoren sind ebenfalls gut: Beachten Sie, dass die Verwendung von Vektor-Indizes wie diese schneller ist als das Multiplizieren mit einer Permutationsmatrix. Subskriptionsbereiche Mata bezieht sich auf die Subscripts, die wir bisher als quotlistquot-Indizes verwendet haben. Jedes Element, das wir wollten, wurde explizit aufgelistet (mit Ausnahme der fehlenden Bedeutung quotallquot). Aber youll wollen oft einen Bereich von Zeilen und Spalten angeben. Theres nicht viel Bedarf für Bereiche mit kleinen Matrizen, so beginnen mit der Schaffung einer größeren Matrix: Nehmen Sie sich einen Moment Zeit, um herauszufinden, wie dies funktioniert, bevor Sie weiter lesen. Die erste Zeile definiert x1 als Zeilenvektor mit dem Bereichsoperator. Der zweite definiert einen x2-Spaltenvektor, der wiederum den Bereichsoperator verwendet, aber das Ergebnis mit zehn multipliziert. Der dritte definiert dann x als zehn Kopien von x1, die übereinander gestapelt sind, plus zehn Kopien von x2, die nebeneinander angeordnet sind. Das Ergebnis ist eine zehn mal zehn Matrix, die von 11 bis 110 geht, was es leicht macht, zu ermitteln, welche Zeilen und Spalten in den nächsten Beispielen extrahiert wurden. (Ja, es gibt einfachere Möglichkeiten, dies zu tun mit Funktionen andor Schleifen, aber wir havent bedeckt sie noch.) Eine Methode für das Extrahieren einer Reihe von Zeilen und Spalten aus x ist die Bereichsoperatoren in der Liste Indizes verwenden. Damit Sie die Zeilen 3-7 und die Spalten 4-8 erhalten, können Sie Folgendes tun: Dies entspricht genau dem Tippen: True-Range-Indizes sind jedoch unterschiedlich. Zum einen sind sie in eckigen Klammern und dem Pipe-Character (shift-backslash) enthalten. Es gibt zwei Elemente, die durch einen Backslash getrennt sind: die Zeile und Spalte der oberen linken Ecke des gewünschten Bereichs und die untere rechte Ecke des gewünschten Bereichs. So ist das Äquivalent zu Denken davon als Ersatz für vier bis sieben und Spalten drei bis achtzig mit quoteverything zwischen Zeile vier, Spalte drei und Zeile sieben, Spalte acht, inclusive. quot Fehlen kann mehrere Dinge in Bereich Indizes bedeuten. Bei der Angabe der oberen linken Ecke bedeutet dies entweder die erste Zeile oder die erste Spalte. Wenn sie in der unteren rechten Ecke verwendet wird, bedeutet dies entweder die letzte Zeile oder die letzte Spalte. Also ist einfach alle x. Theres auch keine Regel, die besagt, dass die oberen linken und unteren rechten Ecken nicht auf der gleichen Zeile oder Spalte sein können. Dies bedeutet, drei Drittel, von der dritten Spalte bis zum Ende. quot Ihre Daten von Stata zu Mata Die meiste Zeit werden Sie nicht die Schaffung von Matrizen von Hand. Stattdessen wollen Sie Matrizen mit den Daten, die Sie bereits in Stata zu machen. Youre auch wahrscheinlich, um Ihre Mata Ergebnisse zu nehmen und sie zu Ihrem Stata-Datensatz zu kopieren. Die erste Frage, die Sie beantworten müssen, ist, ob Sie eine neue Kopie Ihrer Daten erstellen wollen oder ob Sie Mata direkt mit den Stata-Daten arbeiten möchten. Mata kann Matrizen definieren, die eigentlich quotationsquot Ihrer Stata-Daten sind. Denken Sie an eine Ansicht als nur geben Sie Ihre Stata-Daten einen Namen, den Mata verwenden kann. Ansichten verwenden eine triviale Menge an Speicher, auch wenn Ihre Daten sehr groß sind. Wenn Sie die Tabellen einer View-Matrix ändern, werden auch die Stata-Daten geändert. Wenn Sie eine Kopie der Daten statt, können Sie Änderungen vornehmen und halten Sie die ursprüngliche intakt, aber youll verwenden doppelt so viel Speicher. Um Kopien Ihrer Daten zu erstellen, verwenden Sie die Funktion stdata. Die einfachste und die schnellste ist stdata. Es wird verwendet, um eine einzelne Zahl aus Ihrem Datensatz zu erhalten. Es braucht zwei Argumente: eine Beobachtungsnummer und eine variable Zahl. Denken Sie an Ihren Datensatz als Matrix bereits, und die Variable Nummer ist einfach die Spaltennummer der Variablen, die Sie wollen. Um dies in Aktion sehen, erste Ende Mata durch Eingabe Ende. Laden Sie den Auto-Beispiel-Datensatz, Liste Beobachtung ein, und gehen Sie zurück in Mata: Ende sysuse auto l in 1 mata Jetzt erhalten Sie den Preis für das erste Auto durch Eingabe: Das Ergebnis wird 4099, was entspricht, was Sie gerade aufgeführt. Versuchen Sie einige andere Variablen, um sicherzustellen, dass Sie die Idee bekommen haben. Beachten Sie, dass, wenn Sie versuchen, die erste Spalte youll erhalten einen fehlenden Wert zu erhalten. Das ist, weil stdata nur für numerische Daten ist. Für Strings verwenden Sie stsdata, die in ziemlich viel die gleiche Weise funktioniert. Mata kann die Spaltennummern für Sie mit der Funktion stvarindex nachschlagen. Er nimmt den Namen der Variablen an und gibt den Index zurück. Allerdings wird dieser Prozess verlangsamt die Dinge ein wenig. Beachten Sie, dass Sie die Ausgabe einer Funktion als Argument für eine andere Funktion verwenden können: Wenn Sie mehr als einen Wert verwenden möchten, verwenden Sie stdata. Stdata kann wie stdata verwendet werden (obwohl in diesem Fall stdata schneller ist). Stdata ist jedoch flexibler über die Argumente, die es akzeptieren wird. Die Zeilennummer kann fehlen, in diesem Fall werden alle Beobachtungen zurückgegeben. Es kann auch ein Spaltenvektor sein, wobei nur die angegebenen Beobachtungen zurückgegeben werden. Es kann auch eine Matrix mit zwei Spalten sein. Jede Zeile repräsentiert dann einen Bereich von Beobachtungen. Eine fehlende wird in diesem Fall als letzte Beobachtung interpretiert. Die Spaltennummer kann auch fehlen (alle Variablen) oder ein Vektor mit den gewünschten Variablen. Es kann auch die Namen der Variablen anstatt ihre Zahlen akzeptieren, obwohl dies langsamer sein wird. Es ist nicht erlaubt, Bereiche wie Sie für Zeilen angeben können. Wie stdata. Stdata kann keine Strings verarbeiten. Aber es gibt ein äquivalentes stsdata. Versuchen Sie folgendes: stdata (.) Stdata ((1,3), 2) stdata (1, (2,4)) stdata (1, (quotpricequot, quotrep78quot)) stsdata (., 1) In Matrizen für die zukünftige Verwendung gespeichert. Stdata kann auch ein drittes Argument: eine Selektionsvariable. Dies kann entweder der Index oder der Name einer Variablen sein, und wenn es angegeben ist, werden nur Beobachtungen zurückgegeben, bei denen diese Variable ungleich Null ist. Die Auswahl von 0 als Auswahlvariable hat eine besondere Bedeutung: In diesem Fall werden Beobachtungen ausgeschlossen, wenn sie für jede angegebene Variable einen fehlenden Wert haben. Stview macht Ansichten auf Ihre Daten, anstatt sie zu kopieren, aber Sie können Zeilen und Variablen mit den exakt gleichen Methoden wie stdata auswählen. Stview gibt Ihnen die Ergebnisse jedoch auf eine andere Weise. Mit stdata. Die Matrix, die Sie wollten, war, was die stdata Funktion zurückbrachte. Sie können dann die Ergebnisse speichern oder einfach auf dem Bildschirm anzeigen lassen. Mit Blick. Die Funktion selbst gibt nichts zurück. Stattdessen müssen Sie eine Matrix übergeben, die durch die ausgewählte Ansicht ersetzt wird. Ein Fang ist, dass die Matrix existieren muss, bevor Sie es passieren. Es spielt keine Rolle, wie groß es ist - in der Tat wird es komplett ersetzt werden - aber wenn Sie versuchen, eine Matrix an Stview, die nicht irgendwie youll definiert definiert haben Ein Laufzeitfehler. Eine einfache Möglichkeit ist, einfach die Matrix, die Sie verwenden möchten, auf Null, bevor Sie es in. Sie können sogar tun, dass in Ihrem Funktionsaufruf: x und n sehen jetzt wie eine regelmäßige Matrizen, aber denken Sie daran, dass sie tatsächlich Ansichten sind . Wenn Ihr Ziel bei der Verwendung einer Ansicht ist, Speicher zu speichern, müssen Sie darauf achten, keine Kopien davon zu machen. Erstellt keine neue Ansicht. Es erzeugt eine neue Matrix mit den Werten von x eine Kopie. Subtiler erzeugt eine Kopie der j-ten Spalte von x. Wenn Sie eine bestimmte Spalte von x benötigen, können Sie einfach eine neue Ansicht erstellen: Es gibt keine Begrenzung für die Anzahl der verschiedenen Ansichten, die Sie für dieselben Daten einrichten können. Abrufen von Daten aus Mata nach Stata Wenn Sie nur die Werte der vorhandenen Variablen ändern, eine Ansicht erstellen und beliebig ändern möchten. Aber wenn Sie neue Variablen hinzufügen wollen, brauchen Sie ein paar weitere Funktionen. Staddvar fügt eine neue Variable hinzu. Es braucht zwei Argumente: den Variablentyp und den Variablennamen. Es gibt den Index der Variablen zurück, obwohl die Speicherung für zukünftige Verwendung optional ist. Ermöglicht eine neue Variable: weightmpg (also, Pfund-Meilen pro Gallone, eine Einheit, die nur ein Ingenieur lieben könnte). Beachten Sie, dass die Matrix mpg nun eine Ansicht aller Zeilen der mpg-Variablen ist. Um diese neue Variable mit den Stata-Werkzeugen zu erforschen, die Sie vertraut sind, geben Sie ende ein. Natürlich ist dies ein außerordentlich ungeschicktes Ersatz für lange pmgmpgweight Dies führt zu einem allgemeinen Prinzip: Verwenden Sie Mata für das, was seine gut, und Stata für das, was seine gut. Es gibt eine Vielzahl von Funktionen, die Sie für die Kommunikation zwischen Mata und Stata verwenden können, einschließlich Hinzufügen von Beobachtungen und dem Festlegen lokaler Makros, e () - und r () - Vektoren und vieles mehr. Einzelheiten hierzu finden Sie im Handbuch. Speichern und Laden von Mata-Daten Am häufigsten ist das Ziel eines Mata-Programms, Ihre Stata-Daten zu nehmen, ein Ergebnis zu finden und dann entweder anzuzeigen oder wieder in Ihre Stata-Daten zu setzen. Allerdings können Sie Mata-Matrizen selbst speichern, wenn Sie müssen. Um eine Matrix zu speichern, geben Sie mata matsave ein. Filename matrixlist Ersetzen Sie den Dateinamen durch den Namen der Datei, die Sie erstellen möchten. Stata wird. mmat zum Dateinamen automatisch hinzufügen. Ersetzen Sie die Matrixliste durch eine oder mehrere Matrizen, die Sie speichern möchten (Trennung mit Leerzeichen) oder mit einem Sternchen (), um alle derzeit im Speicher befindlichen Matrizen zu speichern. Um die zuvor gespeicherten Matrizen zu laden, geben Sie mata matuse filename ein. Dadurch werden alle im Dateinamen gespeicherten Matrizen geladen. Beide Befehle akzeptieren die Ersetzungsoption. Für matsave. Dadurch kann Mata die vorhandene Datei auf der Festplatte überschreiben. Für matuse. Dadurch kann Mata bestehende Matrizen im Speicher mit denselben Namen wie die Matrizen in der Datei überschreiben. Diese Befehle sind für den interaktiven Gebrauch vorgesehen und können nicht in Funktionen verwendet werden. Wenn Sie Matrizen innerhalb einer Funktion speichern müssen, schauen Sie sich fopen an. Fputmatrix. Fgetmatrix. Und fclose. Hierarchical Data Hierarchical data has always been a bit awkward to work with in Stata, or any other statistical program that uses a single data matrix. A typical example would be individuals living in households: should each household be one observation, or each individual Either way there are inefficiencies. In Mata you can have it both ways: one matrix of individuals and one matrix of households. The key is linking them together, but subscripts make that easy. As an example, take a look at the hh Stata data set. which is in Stata format. It consists of six individuals living in three households. hh is the household ID, hhType is the type of household, and hhInc is the household income. age and female are individual variables. This data is in the long form, with one observation for each individual, which means that the household variables must be duplicated. end use hh, replace l Now enter mata and load the hh Mata data set . mata mata matuse hh hh ind It contains two matrices, ind and hh. hh contains the household level variables ( hhType and hhInc ). ind contains the individual variables ( age and female ) plus the household ID. Note however, that hh does not contain an ID: the row number is an implicit ID. For example, if you wanted to know what type of household person number two lives in, youd use: ind2,3 is the household ID of the second person, or the row in the hh matrix. Column one of hh is the household type. Of course a regression model may need a single matrix just like Stata does. You can easily recreate the matrix as Stata views it with: Here ind.,3 is a column vector listing which row we want from hh for each row of ind. The resulting rows from hh are then placed next to ind to create x . Matrix Functions Mata has a very large number of matrix functions built into it. This section will hit some of the most useful. Creating Matrices The I function can take one or two arguments. If it is given one argument, it will return an identity matrix of size equal to the argument it was given. If it is given two arguments, it will return a matrix with that number of rows and columns which is full of zeroes except for ones along the principal diagonal. The J function creates a matrix of constants. It takes three arguments: the number of rows of the matrix to be created, the number of columns, and what to put in the matrix. The last argument can be of any type. The e function creates unit vectors: row vectors with a one in one column and zeroes everywhere else. It takes two arguments: the location of the one, and the size of the row vector. Thus you could create an identity matrix by combining e s, though the I function would of course be much easier. The uniform function returns a matrix filled with random numbers distributed uniform(0,1). The size is specified in the same way as with the J function. If youre putting together a matrix which will be symmetric, the makesymmetric function can take care of half the work for you. You put together the lower triangle, and makesymmetric will copy it to the upper triangle (replacing what was there before). It takes one argument, a matrix, and returns the symmetric version. x(1,2)(3,4) ymakesymmetric(x) y Theres a second version, makesymmetric which returns nothing but changes the input matrix instead: The sort function returns a sorted matrix. It takes two arguments: the matrix to sort, and the column(s) to sort by. Note that sort is not a quotstablequot sort. If there are any ties, they will be resolved randomly. Repeat sort(x,1) enough times and you should see some cases when the original second row becomes the first row and others where it stays the second row. If the second argument is a row vector, the matrix will be sorted by the first column listed, then ties resolved by the second column, etc. sort does not change the matrix it is given--it returns a copy. If youd prefer to sort the original matrix without making a copy, use sort . jumble and jumble are the opposite of sort and sort. They take just one argument, a matrix, and put its rows in a random order. Sizes of Matrices rows. cols. and length all take one argument, a matrix. They return the number of rows, the number of columns, and the total number of elements (rowscolumns) in that matrix respectively. rows(x) cols(x) length(x) These can be very useful in for loops where you want to loop over your entire matrix but dont know ahead of time what size it will be. Of course matrices can have missing values just like ordinary Stata data sets. If you need to know the number of missing values in the whole matrix, a row, or a column, use missing. rowmissing or colmissing respectively. missing returns a scalar, rowmissing returns a column vector (one value for each row in the matrix), and colmissing returns a row vector (one value for each column in the matrix). y(1,2,.)(4. 6)(7,8,.) missing(y) rowmissing (y) colmissing(y) To get the number of non-missing values, using nonmissing. rownonmissing. or colnonmissing . Descriptive Statistics Mata has a set of functions for calculating descriptive statistics, though by design its not as rich as Statas. In their simplest and most commonly used forms, all these functions take a single matrix as their argument. Sums may be stretching the definition of quotdescriptive statisticquot but they are very useful. There are three main sum functions: sum. rowsum. and colsum. sum adds up the whole matrix, returning a single number. rowsum adds up each row, returning a column vector. colsum adds up each column, returning a row vector. sum(x) rowsum(x) colsum(x) max and min simply return the largest or smallest element of the matrix. rowmax and rowmin return a column vector containing the largest or smallest element of each row. Likewise, colmax and colmin return a row vector. You can get the largest and smallest elements with the minmax functions, including minmax. rowminmax. and colminmax. They return both the min and the max in either two columns or, in the case of colminmax. two rows. Sometimes youre more interested in where the min or max is than what it is. If so, check out minindex and maxindex. The mean function returns a row vector containing the column means of the matrix. If you need row means, youll need to construct them yourself: You can also get the variance matrix of your matrix with variance, and the correlation matrix with correlation. Matrix Characteristics Mata has functions for finding the most common matrix characteristics. diagonal returns the principal diagonal of a matrix as a row vector. trace returns the sum of the diagonal elements. det returns the determinant (with some round-off error). rank returns the rank of the matrix. As a general rule, using rank to check that a matrix is full rank because a subsequent calculation requires it is redundant--better to let the subsequent calculation fail and handle the failure. Also, when determining the rank of a matrix on a computer a certain tolerance is required for round-off error. Different functions can use different tolerances, so they may disagree with the rank function. Solvers, Inverters and Decomposition Matrix solvers are functions designed to solve the equation AXB for X. Since inverting a matrix A can be done by solving the equation AXI, inverters and solvers are closely related. In addition, the solvers and inverters generally work by doing some sort of decomposition, and the decomposition methods can also be accessed directly. Thus there are several families of three related functions. Which family youll choose depends on the properties of your matrix. Well focus on Cholesky methods, but the others work in a very similar way. The Cholesky Decomposition decomposes a symmetric, positive definite matrix into a lower triangular matrix times its transpose. The results can be used to solve matrix equations and find inverses much more quickly than more general methods. To get an example matrix we can work with, we can take advantage of the fact that if x is of full rank, xx is symmetric and positive definite--and random matrices are all but certain to be full rank. So: The cholesky function takes one argument, a matrix, and returns a lower triangular matrix which is its Cholesky Decomposition. To verify that it works, note that is the same as a. To illustrate solving a matrix equation, we need a right-hand side. The cholsolve function takes two arguments, both matrices. It them sets up and solves the equation AXB where A is the first matrix and B is the second, returning X. To verify that it worked, note that The cholinv function takes one argument, a matrix, and returns its inverse: Again, to verify it worked try The result should be an identity matrix. Youll notice that round-off error makes some of the zeroes not quite zeroes, but its as close as you can get using a computer. If your matrix is square but not symmetric, LU Decomposition can do similar things (though its slower than Cholesky). The lud function is equivalent to cholesky. but more complex because it has to give back three results. Thus the matrices to store the results have to be passed in, similar to stview . LU Decomposition breaks a matrix into a lower triangular matrix L, an upper triangular matrix U, and a permutation matrix P. But Mata, instead of using a matrix P, gives a column vector p which can be used with subscripting to do the same thing. Take look at L. U. and p. To verify that it worked, see that is a. Note how were using subscripts to pull rows from a result, not an existing matrix, and yet it works just fine. lusolve and luinv are much simpler--in fact the usage is identical to cholsolv and cholinv. Try Similar functions exist for QR decomposition ( qrd. qrsolve. qrinv ). Singular value decomposition has svd and svsolve. but the related inverter is pinv (which returns the Moore-Penrose pseudoinverse). invsym. for inverting symmetric matrices, has no related decomposition or solver functions. It is, however, what Stata suggests for linear regression. Example: Linear Regression Youre now prepared to do the most common matrix manipulation of all, at least at the SSCC. Since we have the automobile data set loaded, lets regress price on mpg, rep78, foreign and weight to see which characteristics American consumers were willing to pay for in 1978. One complication is that rep78 is missing for some observations, so youll need to drop them from your regression. Of course you could just drop them from the data set entirely, but lets assume that you want to keep them for later use. The first step is to mark the observations you can actually use. Exit Mata by typing end. then create a new variable touse which is one if all the variables are non-missing and zero otherwise. gen touse(price. amp mpg. amp rep78. amp weight. amp foreign.) Of course in reality the only variable that is ever missing is rep78. but well pretend we didnt know that ahead of time. If you wanted to run a regression on a subpopulation (say, just the foreign cars) you could add a condition to mark the subsample too. Now go back into Mata by typing mata. Next make x a view onto all the independant variables and y a view onto the dependant variable. touse is the selection variable for both views: observations will only be included if it is equal to one. stview(x0. (quotmpgquot, quotrep78quot, quotweightquot, quotforeignquot), quottousequot) stview(y0. (quotpricequot), quottousequot) To include a constant term in the regression you need to add a column of ones to x. Use the J function to create it, then add it to x with the comma (column join) operator. Now you can find the betas: Of course they dont mean anything without standard errors. Start by finding the residuals: Then the variance-covariance matrix is The standard errors for each beta can be extracted using the diagonal function, along with sqrt. which takes the (element by element) square root. The t-statistic is the beta divided by the standard error, but this is an element by element division so you need to use the colon operator. To find the p-values requires the ttail function, which takes as arguments the degrees of freedom and the t-statistic and returns the probability. It is a single-tailed test however, so you need to multiply by two. To put your results together in a readable form, try: Now exit Mata again, and check your results against reg price mpg rep78 weight foreign They should be identical. In regular Stata, if is almost always used to define which observations a command should act on. Its the equivalent to SQLs where clause. In Mata, if is only used to control program flow. (Though Stata can use if in this way as well--see the appropriate section of Programming in Stata .) The most basic form of if is simply if ( condition ) statement If condition is true, then statement is executed. Otherwise it is skipped entirely. Note that the condition must be in parentheses. If you want to do more than one thing if the condition is true, use the following syntax: if ( condition ) statements You can also use else to specify things that should happen if the condition is not true. Thus you can create fairly elaborate structures: if ( condition1 ) statements1 else if ( condition2 ) statements2 else statements3 Keep in mind that each condition has a single result, either true or false. For example, If x is a matrix you cant write if (xgt5) and then list things you want done for those elements of x which are greater than 5. You can write if (x1,1gt5) followed by if (x1,2gt5) etc. but of course the easy way to do that is using a loop. Mata has while. do - while. and for loops available (plus goto for easier conversion of FORTRAN code, but we dont want to endorse spaghetti logic). while looks very similar to if: while ( condition ) statements The difference is that the statements will be executed over and over as long as the condition is true. Thus your first concern should be to make sure that at some point the condition will become false, or the loop will run forever. Note that x is shorthand for xx1. Even though we said xlt5, the final value of x is six. Thats because the loop only decides to end when x becomes six. You can also put a while loop with a single statement in a single line. This loop is perfectly legal, but it didnt do anything. The reason is that the condition started out false, so the loop never executed at all. Sometimes you need to make sure that a loop runs at least once, and thats a job for do-while. A do-while loop starts with do and ends with the while condition. The statements are always executed at least once. If the condition is true, the loop starts over again from the top. Note that x is increased to seven even though it started out greater than five. One typical use for do-while loops is to do something until it converges: do complex mathematical stuff while (abs(newvalue-oldvalue)gttolerance) But unless youre absolutely certain your process will actually converge, youd better put in an escape clause that tells it to stop after a while whether it converges or not: do complex mathematical stuff while (abs(newValue-oldValue)gttolerance amp iterationltmaxIterations) Recall our first while loop: This is such a common structure that programmers wanted a quicker way to construct it. The answer was for loops. The for loop equivalent to this while loop is Note the three components: an initialization step, a rule for when the loop should end, and some sort of progression towards that ending. Strictly speaking you can skip the initialization and the progression--just leave the semi-colons as placeholders. All this really means though is that youre promising to take care of those steps yourself. In particular x must already be defined and you need to make sure the loop will in fact end. By far the most common use of for loops is to loop over the elements of a matrix. Writing Your Own Functions Mata allows you to write your own functions--in fact many of the standard functions weve used are written in Mata. As youve seen, calling a function is a matter of typing the function name and then giving a list of arguments in parentheses. Defining a function follows the same structure: first the word function to tell Mata what youre doing, then a name, and then a list of arguments in parentheses. The body of the function follows in curly brackets. If you want your function to return a result, one of the statements in the body needs to be return. followed by the thing to return in parentheses. function myfunction(x, y) statements return(z) As an example, consider the following (not terribly useful) function. function doubleAndSum(x) xx2 return(sum(x)) This function takes a matrix, multiplies it by the scalar two, and returns the sum of all the elements in the matrix. To test it, try the following: mI(3) doubleAndSum(m) m Note that you passed in a matrix called m even though the function calls it x. Thats fine: the doubleAndSum function refers to whatever it is given as x. In fact the input doesnt even have to have a name. In the first case, the argument passed in is the result of the I function. In the second, it is a row vector defined on the spot. On the other hand, in these cases we cant see how the input matrix was doubled as they arent stored anywhere. Function arguments in Mata are quotpassed by reference. quot If a function changes one of the arguments it is given, that change persists even after the function is completed. Example: Loops and Functions Our next example comes from basic physics, but the real point is using loops and functions to get useful results. The classic equation for the motion of a body under uniform acceleration is simply Depending on the level of mathematics used in your last physics course, you may or may not have worked with that as a vector equation, where x, x0,v0 and a are vectors with one number for each dimension. The vector component makes this a good problem for Mata. Lets track and plot the movement of a falling object for ten seconds. Begin by defining a function x which takes x0,v0,a and t as arguments and returns the position of the body at time t. This is a good point to pause and test what weve done so far before moving on. Try: This represents a body just moving at 10 meterssecond (not that Mata cares about the units) in the positive x direction, so it will be easy to tell if your function works properly or not. should give 100,0,0. But that doesnt guarantee our acceleration term is right, so try This should give 0,0,50. Now well set up the actual values we want to examine: This is an object starting 500 meters up, moving to the right at 100 meters per second, and falling under normal earth gravity (about 9.8 meters per second squared). Note how we suddenly switched from three dimensions to two. Your function wont care in the slightest since theyre all still matrices, but its a lot easier to plot on a two dimensional graph. Now you need somewhere to put the results. Mata doesnt do graphs, so youll have to use Stata to plot them. But first we have to think about what the results will be. Your function provides a snapshot of the object at any given time, so well take a thousand snapshots spread across the ten second span. Each snapshot will have two numbers, an x coordinate and a y coordinate, so those will be your variables (though to Mata theyre just column one and column two of the x row vector). Get out of Mata, then use standard Stata commands to set up the observations and variables youll need. Now get back into Mata, and set up a view of these variables. Call it r (as in results): Now youre ready to loop over your 1000 snapshots and get the results of the x function for each one: Note how the time for each snapshot, i100, spreads them evenly across 10 seconds as i goes from 1 to 1000. Finally exit Mata again, and create the graph. end scatter y x Its the classic parabola of projectile motion as you no doubt expected, but of course the real point was to practice using functions and loops to generate and work with data. As soon as we defined the x() function, Mata compiled it into quotobject code. quot This is not quite the same as machine-language code that can be run all by itself. But it is something Mata can understand and run very quickly. If you were planning to use this function in the future you could save the object code. Then future programs wouldnt need to spend time compiling it. If this is something youre interested in, see the mlib and mata mosave commands. This example is contained in ex1.do. A pointer is a variable which contains the memory address of another variable or matrix. Thus it quotpointsquot to that other variable. In principle a pointer is just a number, but youll never work with the number directly. Instead, youll use two operators, amp and . Computer scientists call these the quotreferencequot and quotdereferencequot operators, but I like to think of them as quotthe address ofquot and quotthe thing at. quot Consider the following: First we define a matrix x so we have something to work with. Then p is defined as quotthe address of x. quot Thus p or quotthe thing at p quot is just another name for x. You can use subscripts with p just like you would with x. but note how you have to put p in parenthesis first. (p)2,2 means quotfind the thing at the address contained in p and get the value at row two, column two. quot p2,2 would mean quotget the value at row two, column two of p. and then find the thing at that addressquot which wont work because p is a scalar. Note that the matrix you are pointing to doesnt need to have a name. For example: makes p point to a 5x5 matrix of zeroes (since thats what J returns) even though theres no direct name for that matrix. Its only accessible as p. One use for pointers is to construct data structures Mata doesnt handle automatically. For example, you can construct a three dimensional matrix by making a two dimensional matrix of pointers, each of which points to a column vector. The first step is to define the matrix that will contain the pointers. Matrices cant switch between containing numbers and containing pointers, so you need to make sure that the matrix is defined as containing pointers. On the other hand, we dont have any actual pointers to store yet. Thus well set the initial values of the matrix to NULL. a special pointer that doesnt point to anything. Now loop over all the elements of x, and make each one a pointer to a new (and unique) column vector. To work with an element i, j,k of your three dimensional matrix youd use the following: Yes, the parentheses are essential. Its rather awkward though, so if you were going to work with such matrices a lot consider defining the following functions: function put(val, x,i, j,k) Usage: value to put, matrix to put it in, i, j, k to put it at. ((xi, j))k,1val function get(x, i,j, k) Usage: matrix to get from, i, j, k of value to get. return(((xi, j))k,1) Then you can do things like: The fact that you cant mix pointers and regular data within a matrix does limit your flexibility. You cant, for example, have a matrix of individual data including pointers to other data relevant to the individual. You can, however, have two parallel matrices, one containing numbers and the other containing pointers. If row i represents the same individual in both matrices, you can pull information from either or both as needed. Its also possible to create a pointer to a function. Given your existing function doubleAndSum() try: Note how Mata distinguishes between x() the function and x the variable by the parentheses, even though youre not passing in any arguments when you define a pointer. The main reason youd want to create a pointer to a function is so that you can use that pointer as the argument of a function. For example, Matas optimizer functions have you pass in a pointer to the function which is to be optimized. The Mata Optimizer Many statistical operations involve maximizing or minimizing some quantity--maximum likelihood estimation being the obvious example. Mata includes an optimizer for these operations. Matas optimizer is actually a family of functions which define and then solve an optimization problem. Evaluator functions The first function must be written by you: the function to be maximized or minimized. This function can do whatever you want, it may be very complex or very simple, but it must accept a certain set of arguments and return the proper result in order for the optimizer to use it. You can name the arguments whatever you like, but there must be the right number and each must have the proper meaning. Optimization problems are described using a variety of notations, but if we consider the problem of maximizing yf(x), the Mata version of f() must take the following arguments: a number indicating whether the function is supposed to calculate (0) just f(x), (1) yf(x) and f(x) or (2) f(x), f(x) and f(x) x (the thing that changes as the optimizer looks for the max) y (where f(x) will be stored) A variable to store f(x) if calculated A variable to store f(x) if calculated (often H since it is the hessian in multivariate problems) If you can find an analytic solution for f(x) and f(x) and code them in, Matas optimizer will be much faster and more accurate. This is often impractical though, and Mata is perfectly willing to find numeric approximations to the derivatives it needs. Note, however, that even if your function never calculates derivatives it must still accept variables where they can be stored. So lets try a very simple function: y-x4. If youre willing to let Mata find all the derivatives for you, you can code this as the following: Note that todo (the number telling the function whether to calculate derivatives or not), g. and H are completely unused, but must still be accepted. Note also that we could change all the names. We could call x Fred and y George as long as Georgef(Fred). If were not quite so lazy we can also code the derivatives for this function quite easily: In this case, both x and y were scalars, but youre not limited to scalars. Consider y-x14 - x24 The two xs are stored in a row vector x, so x1 is x1 and x2 is x2. Making sure the optimizer sends in the right size of x is one of the steps in setting it up. In many cases the quantity youll want to maximize will be the sum of a column. For example, in maximum likelihood you will probably create a column where each row gives an observations contribution to the likelihood function. Matas optimizer will do this automatically with the proper settings, so the previous function could be recast as: Note how the function had to define y as a column vector of the proper size--otherwise it is a scalar. In statistical applications the quantity to be maximized will depend not just on parameters that can vary (x in our problems thus far) but on data that do not vary. Matas optimizer can be set up to pass up to nine additional arguments to your evaluator function, which can contain the data. They go after the first two arguments (and before the final three). This calls for a change of variable names. Consider maximizing sf(b). Well now use x for the data matrix. Then the function definition would be: function f(todo, b, x, s, g, H) x can contain both the independent and dependant variables, but if its easier to work with a separate matrix y, then the definition becomes: function f(todo, b, x, y, s, g, H) Well do an example using this kind of evaluator shortly. Setting Up and Running an Optimization Problem Once youve got your evaluator function defined, youre ready to set up the optimization problem. The first step is to call the optimizeinit function. optimizeinit takes no arguments and returns a variable containing a description of your optimization problem. Youll never look at this description, but you will pass it in to all the other optimization functions. Next tell it where to find the evaluator: The first argument is the problem description, and the second is a pointer to the evaluator function you already defined. Now give it a starting value for x--remember the f() function is in the form yf(x). Of course the correct answer is zero, but we want it to do some work Now youre ready to actually run the optimizer: This returns the value of x which maximizes f(x). You may want to store this in a variable: If we want to use the g(x) function instead, theres one additional step. Recall that in g(x) we coded the first and second derivatives ourselves so Mata doesnt have to approximate them. Mata refers to this as a quotd2quot evaluator. A quotd1quot evaluator codes just the first derivative, and a quotd0quot evaluator codes no derivatives at all (the f(x) function is a d0 evaluator). Mata will assume functions are d0 unless we say otherwise, so you need to add: Note that the optimizer doesnt care what order all the initialization functions are called in, as long as theyre before the actual optimize(). What about h(x1, x2) Its identical to f(x), except that we need to set an initial value for both variables: In doing so we also tell Mata that future xs must have two columns. Finally, i(x1,x2), where the function to be maximized is the column sum of y, is what Mata calls a quotv0quot evaluator. The quotvquot is for vector, and the quot0quot again means that we didnt code any derivatives. Thus we need To see the complete code to run the optimizer with each evaluator, see the the last parts of mataclass. do. There is one setup function we havent needed to call but you should know: changes the problem from maximizing the function (the default) to minimizing it. Example: Ranking Teams As a final, extended example, consider a problem familiar to any sports fan: determining how good a team is based on its wonloss record. Well assume that a team can be characterized by a single quotstrengthquot variable s. If team i plays team j, well assume that the probability of team i winning is given by exp(si-sj)(1exp(si-sj)), better known to Stata as invlogit(si-sj). Then, given a record of games played and who won, we can find a set of values for s that maximizes the probability of the given outcome. Well do a Monte Carlo study by first creating data which fits our assumptions, and then seeing how well the method works. Creating the Data The first step is to create the data. This is an exercise in matrix manipulation, so if you want to focus on the optimization part of the problem feel free to skip ahead. On the other hand, most readers will benefit from some practice in this area. First create a row vector str containing the real strengths of each team. For simplicity, use the uniform function, giving strengths distributed uniform(0,1). For our example well make 50 teams: Note that the column number within the str vector acts as a sort of team ID. Next we need a way to keep track of who played who. Well create a two-column matrix, where each row is a game and the two columns will contain the IDs of the two teams who played in that game. For brevity well call the team in column one the quothomequot team and the team in column two the quotvisitingquot team. Well assume that each team plays 20 games, 10 as the home team and 10 as the visiting team. Begin by creating a column vector teams containing the 50 teams using the range operator: Now create a column vector season which is just ten copies of teams stacked on top of each other: seasonteams for(i1ilt10i) seasonseasonteams This represents the home teams. Next assign the visiting teams by taking the same vector, putting it in a random order, and column joining it to the original: The only trouble is, its entirely possible for a team to be randomly assigned to play itself. This wouldnt really bother our estimator, but it does offend any claims that this represents the real world. More importantly, fixing it is good practice. Create a column vector same with the same number of rows as season which contains a 1 if the home and visiting teams are the same and a 0 if they are not: If a game has the a team playing itself, we will swap the visiting team with the visiting team of a randomly chosen game. Since its possible we might get the same team yet again, well keep checking and swapping until there are no more games between the same team. Heres the code: while (max(same)1) for(i1 iltrows(season) i) if (samei) swaptrunc(uniform(1,1)rows(season))1 tempseasonswap,2 seasonswap,2seasoni,2 seasoni,2temp same(season.,1:season.,2) Note how max(same) will be zero if there are no longer any games where the home and visiting teams are the same, so thats how we know when were done. We then loop over the rows, stopping to change those where samei is one (or true). In those cases, we pick a random row and swap visiting teams with it, using a temp variable to store its visiting teams ID as we do. We then recalculate same based on the new version of season before the while condition is reevaluated. Now we need to decide who won each game. Well create a column vector winner, which will contain a 1 if the home team won and a zero if the visiting team won. winnerJ(rows(season),1,.) for(i1 iltrows(season) i) winneriuniform(1,1):ltinvlogit(strseasoni,1-strseasoni,2) Note how indexing is used to pull up the strength ( str ) of the appropriate team--well be doing that a lot. The Maximum Likelihood Estimator Now were ready to construct the (log) likelihood function to be maximized. Well start with a version thats easy to understand, and try to make it efficient later. function llf(todo, strhat, season, winner, llf, g,H) llfJ(rows(season),1,.) for(i1iltrows(season)i) if (winneri) llfilog(invlogit(strhatseasoni,1-strhatseasoni,2)) else llfilog(invlogit(strhatseasoni,2-strhatseasoni,1)) This will be a v0 evaluator which takes season and winner as additional arguments. The estimated strengths are stored in strhat, and the column of log likelihoods (which will be summed automatically by virtue of being v0) is stored in llf . We have two possible outcomes, and the formula for finding the log likelihood is different in each outcome. For now well handle the two possibilities with an ifelse structure, but there are more efficient ways. Now to set up the optimization problem: soptimizeinit() optimizeinitevaluator(s, ampllf()) optimizeinitevaluatortype(s, quotv0quot) strhat0J(1,rows(teams),.5) optimizeinitparams(s, strhat0) optimizeinitargument(s,1,season) optimizeinitargument(s,2,winner) strhat1optimize(s) Most of these youve seen before. Note that strhat0 is the vector of starting values for our estimate of str. Since the actual strengths are distributed uniform(0,1) well start by setting them all to 0.5. What is new is optimizeinitarguments. This is where you tell the optimizer to pass in season and winner to your evaluator. As you see optimizeinitarguments takes three arguments: the optimization problem, the number of the argument youre setting, and what to pass in. Run the code. It will take a while but it should work. Efficiency So how can we make it faster It would be nice if we didnt have to figure out which formula to use for the likelihood. So lets rearrange the data a bit: instead of column one being the quothomequot team and column two the quotvisitingquot team, terms which have no real meaning in our model, lets make column one the winner and column two the loser. Create a new matrix season2 with the new arrangement: season2J(rows(season),2,.) for(i1iltrows(season)i) if (winneri) season2i,.seasoni,. else season2i,.seasoni,(2,1) Of course this loop takes time to run, but it only runs once. Its the evaluator that must be run over and over, so taking a bit more time to set things up so that the evaluator runs faster is well worth it. One general principle when it comes to writing fast Mata code is that matrix operations are faster than loops you write out. Theres no matrix operation that would allow you to look in one matrix for the estimated strength of a team identified in another matrix, but you can take calculating the log and invlogit functions out of the loop. Heres a second and more efficient version of the evaluator function: function llf2(todo, strhat, season, llf, g,H) xJ(rows(season),1,.) for(i1iltrows(season)i) xistrhatseasoni,1-strhatseasoni,2 llflog(invlogit(x)) Note how it doesnt need to have the winner matrix passed in anymore--it expects a version of season ( season2 ) that conveys that information by which team is in column one. Heres the setup needed to run this version: soptimizeinit() optimizeinitevaluator(s, ampllf2()) optimizeinitevaluatortype(s, quotv0quot) strhat0J(1,rows(teams),.5) optimizeinitparams(s, strhat0) optimizeinitargument(s,1,season2) strhat2optimize(s) Youll see that this runs in about half the time of the original. Most of the gain comes from moving the calculation of log and invlogit out of the loop. For those looking for the absolute best performance, consider turning on matastrict ( mata set matastrict on ). Matastrict requires that you declare the names and types of all variables before using them rather than letting Mata choose. Mata has more variable types than most languages, and they can be confusing. On the other hand, declaring your variables can help you avoid errors. More importantly, Matas compiler can use the additional information to create slightly more efficient object code. If you are interested in using matastrict, see the manuals and especially the section on declarations. Constraints One characteristic of this model is that only the difference between teams is identified. You could add 100 or -1,000,000 to all the strengths and the probability of each outcome would remain the same. Thus two different runs on the same data could give very different numbers and both be right. However, if we constrain just one strength to be a given number, then all the strengths are identified. Matas optimizer accepts constraints on the parameters in the form of two matrices C and c. The parameters p are then constrained such that Cpc . Lets constrain the strength of team one to be zero. To implement this, the C matrix needs to be a row vector with a column for each team. It will have a one in the first column and a zero in all other columns, which makes it a unit vector. c will be simply the scalar zero. You then pass in this constraint using the optimizeinitconstraints function. It takes two arguments: the problem s. as usual, and then a matrix which is the row join of C and c. Im not sure why it doesnt just take them as two separate arguments, but its easy to join them. Since youve made no other changes to the problem, you can simply run it again by calling optimize. This version will actually run significantly faster. As an exercise, consider constructing some sort of metric for how well your estimator does. (One easy one would be how often it correctly identifies the best team.) Then vary the number of games per season and see how many it takes to get reasonable accuracy. However, dont do this if you want to continue to take the ranking systems of actual sports seriously. This example (with additional commands for timing each method) is found in ex2.do. Learning More This article has just scratched the surface of whats possible in Mata. Theres obviously much more to learn, and even more to be looked up when you need it. As usual, Stata Corp. has included most of the Mata documentation in the online help. There is one trick though: to get help for Mata you need to type help mata topic rather than just help topic. This is especially important for functions and such that exist in both Mata and Stata. For example, compare the results of the following: help abs help mata abs A couple useful starting places: help mata help mata functions The Mata manuals are available in the CDE Library and the 4218 lab. There are two books, but they should be thought of as two volumes of the same manual. You are also welcome to ask the Help Desk for assistance. Mata is new to us as well, but well try to figure things out together. Last Revised: 10242007