Oddball SampP System von Mark Brown Oddball SampP System von Mark Brown Trading die Dynamik der Marktbreite Eine der besten Möglichkeiten, um die Märkte wahren Dynamik zu verfolgen ist es, seine fortschreitenden und rückläufigen Fragen zu überwachen. Heres eine Strategie, die den Impuls von Fortschreiten Fragen auf Zeit kurzfristige Trades verwendet. Von Mark Brown Der SampP-Tracking-Bestand (SPY) und der SampP 500-Futures-Kontrakt gehören wohl zu den schwierigsten Märkten für den Handel. Statistiken würden höchstwahrscheinlich zeigen, die Futures-Vertrag in Richtung der Spitze einer Gruppe von Märkten für die schnellste Erschöpfung der Kunden-Trading-Konten verantwortlich. Die meisten kurzfristigen Händler tauschen die SampP 500-Märkte mit Zeitrahmen von einem einzigen Tick bis zu einer Stunde. Wenn der Handel in diesen kürzeren Zeitrahmen, es ist leicht zu desorientiert und verlieren die Spur der wahren Marktdynamik. Ein Werkzeug, das viele Händler nutzen, um die Marktstärke des Binnenmarkts zu verfolgen, ist ein Breitenindikator wie die Vorabschlepplinie (die laufende Summe der fortschreitenden NYSE-Bestände abzüglich der sinkenden Bestände). Die Veränderungen in der Anzahl der fortschreitenden oder rückläufigen Emissionen können einen Einblick in die Marktdynamik bieten, die nicht sofort durch Preisaktionen aufgedeckt wird. Beispielsweise kann, auch wenn der Markt ansteigt, eine rückläufige Voreilungslinie darauf hindeuten, dass diese Gewinne durch eine zunehmend kleinere Anzahl von Beständen angeheizt werden, wobei dann eine Korrektur oder Umkehr bevorstehen kann. Während Breitenindikatoren häufig verwendet werden, um eine längerfristige Richtungsstärke zu messen, kann eine intraday-Analyse von vorrückenden oder rückläufigen Emissionen verwendet werden, um kurzfristigere Handelsstrategien zu entwickeln. Hier werden wir untersuchen, wie die Messung der Dynamik der fortschreitenden NYSE-Aktien auf einer stündlichen Basis kann verwendet werden, um Zeit-Trades. Breite der frischen Luft Es ist bekannt, dass die kombinierte Richtungsvorspannung der NYSE fortschreitenden, fallenden und unveränderten Problemlisten bei der Bestimmung der Gesamtrichtung des SampP 500 Index und SampP Futures hilfreich sind. Herkömmlicherweise basieren Studien entweder auf einer Kombination der fortschreitenden und rückläufigen Probleme (wie die vorher beschriebene Vorabzugslinie) oder die fortschreitenden, sinkenden und unveränderten Probleme. Allerdings schlägt die Forschung, dass Sie den gleichen Nutzen (und vereinfachen Sie Ihre Analyse in den Prozess), indem Sie nur die Fortschritte Statistiken Statistik. Und genau so viele kurzfristige Händler nutzen Preisimpuls in ihren Handelsentscheidungen, die Breite Impuls kann verwendet werden, um Trades auslösen. In der Tat bietet die Dynamik der vorrückenden Fragen genug Informationen, um eine rentable Handelsstrategie zu entwickeln, die Ihnen erlaubt, die tatsächlichen Marktpreise zu umgehen. Ein einfaches Handelsmodell, das auf diesem Ansatz basiert, ist das Oddball SampP System, das stündliche Messwerte von der NYSE vorrückenden Ausgabenliste verwendet. Dieses Timing-Modell basiert auf der Theorie, dass kurzfristig die SampP-Futures (und sogar der eigentliche SampP-Index) und die Marktbreite von Zeit zu Zeit abweichen können, doch werden sie sich dennoch ausrichten, wenn große Bewegungen gemacht werden. Der ursprüngliche Zweck hinter dieser Strategie war, fortschreitende / fallende / unveränderte Zahlen zu verwenden, um Hochvolatilitätssituationen zu identifizieren, die die höchste Wahrscheinlichkeit zeigten, eine Richtungsvorspannung zu haben. Forschung und Erprobung zeigten jedoch, dass es ausreicht, die Fortschritte allein nicht nur als Filter, sondern auch als eigenständige Handelsstrategie zu nutzen. Darüber hinaus, wie bereits erwähnt, mit nur die Fortschritte Ausgaben Nummern macht den Ansatz weniger kompliziert. Als ein sehr einfacher Trading-Ansatz fungiert diese Strategie auch als ein ausgezeichneter Benchmark, mit dem andere Systeme vergleichbar sind. Die Strategie basiert auf der Berechnung der Änderungsrate (ROC) der stündlich fortschreitenden Ausgabenummer. ROC, das ein Oszillator-Indikator ist, ist die Differenz (oder alternativ das Verhältnis) zwischen dem aktuellen Preis und dem Preis n Perioden in der Vergangenheit. Zum Beispiel, die Fünftage ROC wäre der Unterschied zwischen heute s Preis und den Preis vor fünf Tagen. Auf einem Stunden-Chart wäre die Fünf-Perioden-ROC die Differenz zwischen dem aktuellen Preis und dem Preis fünf Bars (Stunden) vor. (Für eine ausführlichere Erläuterung des ROC-Indikators siehe Indicator Insight: Momentum und Änderungsrate, Active Trader, Oktober, S. 82). Da es sieben Stunden am Handelstag gibt, wurde in dieser Strategie ein Sieben-Perioden-ROC der fortschreitenden Emissionsnummer verwendet. Eine Möglichkeit, ein oszillatorbasiertes System zu konstruieren, besteht darin, Trades auszulösen, wenn der Indikator oberhalb und unterhalb der Nulllinie kreuzt (die mittlere Linie, die neutrale Impulse repräsentiert, wenn der aktuelle Preis gleich dem Preis n Perioden ist). Aber eine bessere Alternative ist es, zwei separate Indikatorstufen oder Zonen eins zu verwenden, um lange Trades einzuleiten und eine andere, um alle Short Trades einzuleiten. Eine gute Ausgangskonfiguration besteht darin, das Kaufniveau auf 3 Prozent und das Verkaufsniveau auf 1 Prozent zu setzen. Das heißt, Sie kaufen, sobald die Rate der Veränderung der vorrückenden Fragen um 3 Prozent höher ist als vor sieben Perioden und verkauft, sobald sie unter 1 Prozent höher als vor sieben Perioden fällt. (Siehe Strategie-Snapshot unten für die genaue Formel für den Indikator.) Das bedeutet, dass das System immer auf dem Markt ist, entweder mit einer langen oder kurzen Position. Die hier verwendeten Indikatoreinstellungen wurden gewählt, um die Strategie so einfach wie möglich zu halten. Händler können natürlich mit anderen Indikatoreinstellungen experimentieren, um zu sehen, ob sie bessere Ergebnisse liefern. Ähnlich könnte ein anderer Oszillator-Indikator für den ROC ersetzt werden. Das zugrundeliegende Systemlogik - und Handelskonzept würde das gleiche bleiben. Kurz gesagt, das SampP-System funktioniert wie folgt: Wenn die Rate der Veränderung der vorrückenden Fragen größer ist als die Buy-Trigger-Ebene, kaufen Sie den Markt. Wenn die Rate der Änderung der vorrückenden Ausgaben kleiner ist als das Verkaufstriggerniveau, verkaufen Sie den Markt. Jede Stunde, auf der Stunde Da dieses System jede Stunde um die Stunde, bis einschließlich des Börsenschlusses um 16.00 Uhr EST, neu berechnet, können Sie den letzten Messwert des Tages nicht verwenden, wenn Sie den SampP handeln 500 Spurhaltungsbestand (SPY). Wenn Sie jedoch die SampP-Futures handeln, können Sie trotzdem einen Trade basierend auf der letzten Lektüre eingeben, da der Futures-Markt den Handel bis 4:15 Uhr EST fortsetzt. Für jeden Markt bedeutet dies auch, dass Sie warten müssen, bis die erste Lesung um 10 Uhr EST am Morgen zu handeln. Aber das ist wirklich vorteilhaft, denn wie so viele professionelle Händler darauf hinweisen, sollten Sie vermeiden, sofort nach dem offenen wegen der direktionalen Volatilität, die oft vor dem Markt findet seine Richtung und Tempo für den Tag. Diese Art der Handelsstrategie wird durch die Tatsache, dass es einfach zu überwachen und auszuführen ist gestärkt, und es basiert auf einem primären Eingang. Der einstündige Zeitrahmen wurde ausgewählt, weil er außerhalb des typischen Zeithorizonts des kurzfristigen Händlers liegt und auch deshalb, weil die Konsistenz ein Schlüsselfaktor bei der Implementierung eines mechanischen Modells ist. Es ist einfach, Ihre Trades jede Stunde auf die Stunde zu überprüfen, oder Ihren Laptop, Mobiltelefon oder Handheld-Computer zu programmieren, um dies für Sie zu tun. Außerdem erhöht nur die Verwendung eines Datenpunkts pro Stunde auch die Zuverlässigkeit des Modells. Warum Weil, wenn Sie ein intraday Diagramm sehen und einen schlechten Preisdruck beobachten, ist es höchstwahrscheinlich das hohe oder das Tief des gegebenen Stabes. Durch die Beseitigung aller Datenpunkte, aber die Schließung, reduzieren Sie auch die Möglichkeit von Fehlern. Dies ist ein Auszug. Für den vollständigen Artikel, siehe Dezember 2000 Ausgabe des Active Trader Magazins. Strategie: Oddball SampP-System Ansatz: Systematisch, Stop-and-Reverse (immer auf dem Markt) Markt: Index-Tracking-Aktien (SPY, QQQ) und Aktienindex-Futures Indikator-Setup: Erstellen Sie eine Rate-of-Change-Indikator der stündlichen Schlusswerte Der Fortschritte der NYSE. Geben Sie nur den Abschlussdatenpunkt der natürlichen Stunde ein, beginnend um 10 Uhr und endend um 4 Uhr EST. Um das Kennzeichen zu berechnen, verwenden Sie die folgende Formel: Änderungsrate der Fortschritte (RAI) (AI / AIn -1) 100, AI Letzte Zahl AIn Anzahl der vorangehenden Ausgaben vor der Periode Eintrag: Jedes Mal wird ein Kaufsignal ausgegeben Ist größer als 3. Ein Verkaufssignal wird jedes Mal ausgegeben, wenn der Indikator kleiner als 1 ist. Exit: Stop-and-reverse. Positionen werden mit jedem neuen Kauf - und Verkaufssignal umgekehrt, wie oben beschrieben. Risikocontrolling / Geldmanagement: Es gibt keine Geldmanagement-Technik, die anders als die Systemaufenthalte im Markt zu 100 Prozent der Zeit, entweder lang oder kurz, mit einer konstanten Anzahl von Verträgen verwendet wird. (RAI - Änderungsrate bei Fortschreitungsproblemen) gt 50 (OPT) Enter Short / Close Long Fml (RAI - Änderungsrate bei fortschreitenden Problemen) lt - 10 (OPT) OddBall Systems Mark Brown Automatisierte Handelssysteme Shortcut to Discovery Workshop 8211 Trading Modell Entwicklung für jeden, der die Logik, wie eine robuste Handelsmethode zu schaffen verstehen will. Modell-Entwicklung für jeden, der die Logik, wie eine robuste Trading-Methode zu schaffen verstehen will. Zwar nicht für den durchschnittlichen Investor, der einfach nur von den Märkten profitieren möchte. Trader sind in der Regel nie erfüllt, bis sie selbst verstehen, die angewandten Methoden und haben ihre eigenen personalisierten System 8211 Ausbildung und Diskussion von Mark Brown. Seit 1987 ist Brown als unabhängiger Berater für verschiedene institutionelle Rohstoffhändler und Unternehmen tätig. Er ist ein lizenzierter Anbieter des Market Profile Indicators für das Chicago Board of Trade. Herr Brown ist auch der Schöpfer der veröffentlichten Oddball Systems. Seine Werke wurden in Büchern, Zeitschriften und verschiedenen Formen der elektronischen Medien als auch durch Sprechen Engagements. Mark Brown 8211 Autor des veröffentlichten und beliebten Oddball System in Active Trader Magazine. Bekannt als Weltklasse automatisierte Trading-Systeme Entwickler und Mentor. Diskussionsthemen: Automated Trading, Handelssysteme, Handelsgeschäft, Technischer Support, Forex, Finanzmärkte, SP 500, E-Mini-Verträge, Investitionen. Mehr über Oddball SystemsSophisticated Systeme elegant programmiert, aber einfach und nicht über das Verständnis der normalen menschlichen Logik. Entwickelt mit proprietären benutzerdefinierte Analyse-Software und Hardware erstellt, um tiefe Daten Mine für die höchste Wahrscheinlichkeit wiederkehrende Marktanomalien. Der menschliche Intellekt ist in der Lage, die Ergebnisse der tiefen Data-Mining-Marktforschung zu verstehen. Jedoch wäre es für einen menschlichen Geist unmöglich, diese replizierenden Anomalien jemals aus der Beobachtung allein zu entdecken oder zu konzipieren. Kompetenz in der Computer-Modellierung und umfassendes Wissen unterscheidet das typische empirisch abgeleitete System von einem tiefen Data-Mined-Modell. Die quantitative Computeranalyse kombiniert mit der Datenbereinigung ermöglicht es, die wahre Natur des Fachmarktes zu offenbaren. Ein enormes finanzielles Engagement ist erforderlich, ohne dass garantiert werden kann, dass replizierbare, geschweige denn handelbare Marktanomalien gefunden oder ausgenutzt werden können. Dennoch gab es bis heute keine liquiden Märkte, die nicht rentable Modelle in der Menge erbracht haben. Mythen haben Überfluss, dass mechanische Systeme fortwährende Anpassung benötigen, um sich an veränderte Marktbedingungen anzupassen. Richtig entworfene Handelsmodelle genießen viele Jahre, wenn nicht Jahrzehnte der ununterbrochenen Profitabilität. Auch dies ist, was trennt empirisch gestaltete Modelle von überlegene Data-Mining-Modellierung. Ein Großteil des Erfolgs der Entdeckung kann direkt dem Erwerb des Wissens zugeschrieben werden, um die Daten richtig zu filtern. Diese Technik allein kann mit einem bemerkenswerten Prozentsatz der Gewinne aus dieser Methode der Modellierung abgeleitet werden. Experience und Kapital Engagement spielen eine große Rolle in der Langlebigkeit der Modellierung. Diese Arten von Modellen sind die direkten Ergebnisse von unzähligen Mann-Stunden und Millionen von Dollar in Forschung überspannt weit über ein Jahrzehnt verbracht. Doch all diese Anstrengungen hätten leicht verschwendet werden können, wenn der Entwicklungsprozeß nicht mit einer fiebrigen Hartnäckigkeit verfolgt wurde, wie sie heute ist. Große Entdeckungen gibt es manchmal, wenn Forscher beiseite stehen und lassen den Prozess die Wahrheit der endgültigen Analyse zu offenbaren. Data Mining und komplexe Analyse sind schwierig genug, ohne den gesamten Prozess mit menschlichen Vorurteilen und Emotionen. So hat sich menschliches Eingreifen als das am wenigsten wünschenswerte Werkzeug im Modellierungsforschungsinventar erwiesen. Vielen Dank, Mark Brown Über Mark Brown Oddball Systems von Mark Brown OddBall Systems wurde von Mark Brown, und featured in Active Trader Magazin. Es ist ein Handelssystem für den Handel der SP-Index Zukunft (oder das emini Gegenstück). Die Signalerzeugung von Oddball hängt nicht von den Preisdaten selbst ab. Stattdessen basiert es auf den Advance Issues-Daten der NYSE. Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Systemvoraussetzungen / Relative Kraftbänder Juni 2001, Volumengewichteter Durchschnitt August 2001, Ein schlechter Kompromiss Oktober 2001, Beta-Wert November 2001, Harris 3L-R Mustervariante Dezember 2001, Tiefentaschensystem Januar 2002, Paarhandelsystem Februar 2002, Pair-Trade-II-System April 2002, Pair-Trade III-System Mai 2002, Rohstoffschwankungen Juni 2002, Expertise Juli 2002, Umzugsdurchschnitt August 2002, Rückbündel September 2002, Volatilitätsausbruch Oktober 2002, Dezember 2003, Volatilitäts-Benchmark-System Januar 2003, Langfristiges Volatilitäts-Break-System Februar 2003, Dynamisches Breakout-System Mai 2004, Kurzfristiges WMA-Crossover-System Mai 2004, Ein weiteres Oddball-System (Futures Trading System Lab) Juni 2004, QQQ-Crash Juli 2004, Indikatorzeitkombination (ITC) (Futures System Trading Lab) August 2004, RSI-Trendsystem (Futures Trading System Lab) Juni 2006, Channel-Midpoint-Indikator Aktiver Trader ist Arbeiten mit verschiedenen Software-Unternehmen, um Code für Trading System Labs nicht hier gezeigt. Eingänge: Lookback (9), WhereToBuy (0,5) Variablen: Highvalue (0), lowValue (99999), BuyValue (0) lowValue niedrigste (Low, Lookback) Highvalue Höchste (Hoch, Lookback) BuyValue (Highvalue - lowValue) WhereToBuy Wenn Market beginnen 0 Then morgen Kaufen bei BuyValue lowValue Stopp Wenn Schließen lt LowValue1 Dann ExitLong bei Open Wenn BarsSinceEntry 9 und OpenPositionProfit lt 0 Then ExitLong auf Öffnen Oktober 2000 Trade Code: Variablen: RelStr (0), AvgRelStr (0), CalcRelStr (0) , AvgOBV (0), CalcOBV (0), CalcStr (0) RelStr IFF (avgprice 0, 0, avgprice / avgprice Data2) AvgRelStr Average (RelStr, 5) CalcRelStr IFF (RelStr 0, 0, RelStr / AvgRelStr) AvgOBV Average ( OBV, 5) CalcOBV IFF (OBV 0, 0, OBV / AvgOBV) CalcStr CalcRelStr CalcOBV Wenn CalcStr Kreuze über 1,0 und Market 0 Then auf Schließen kaufen Wenn CalcStr Kreuze Unterhalb von 1 Dann ExitLong auf Schließen Wenn Schließen lt EntryPrice 0,96 Dann ExitLong auf Schließen November 2000, TradeStation-Code: Bedingung1 MarketPosition 0 und Close Average (Close, 50) und High High1 und (close1 lt close2 und close2 lt close3) Wenn Condition1 True Dann kaufen morgen bei Market ExitLong (quotStopquot) morgen bei Lowest (Low, 2) Stop TradeStation-Code: Vars: Summs (0), AvgVS (0), DiffVS (0), StdVS (0), SetArr (0), SumArr (0) , DiffArr (0), VSLOW (0), VSMid (0), VSHigh (0), RiskReward (0) Für SetArr 0 bis 4 Begin VSSetArr 4 0 (OpenSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 VSSetArr 4 1 (HighSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 VSSetArr 4 2 (LowSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 VSSetArr 4 3 (CloseSetArr - AvgPriceSetArr 1) / AvgPriceSetArr 1 Für SumArr 0 bis 19 beginnen Wenn SumArr 0 SumVS SumVS VSSumArr Wenn SumArr Dann wurden 19 Dann AvgVS SumVS / 20 Für DiffArr 0 bis 19 beginnen Wenn DiffArr 0 Then DiffVS DiffVS Platz (VSDiffArr - AvgVS) Wenn DiffArr 19 Dann StdVS SquareRoot (DiffVS / 20) VSLOW avgprice (1 (AvgVS - StdVS 2)) VSMid avgprice (1 AvgVS) VSHigh avgprice (1 (AvgVS StdVS 2)) Wenn Market 0 Then Begin Kaufen (quotBuyquot) Morgen bei VSLOW Grenze Wenn Market 1 Dann ExitLong (quotPTquot) morgen um VSHigh Grenze Wenn Market 1 Dann ExitLong (quotTSquot) morgen um VSLOW Stopp Wenn Öffnen Morgen gt VSLOW Dann ExitLong (quotSLaquot) Von Eintrag (quotBuyquot) Bei (VSLow - (VSMid-VSLOW)) Stopp Wenn Öffnen Morgen lt VSLOW Dann ExitLong (quotSLbquot) Von Eintrag (quotBuyquot) Am (Open Tomorrow - (VSMid-VSLOW)) Stopp März 2001 Trade Code: Vars: Målen (21), Ratio2 (0), Ratio3 (0), MaRatio2 (0), MaRatio3 (0), DiffMaRatio2 (0), DiffMaRatio3 (0), ProdDiff (0), UpperProdDiff (0), LowerProdDiff (0) Ratio2 C / C Data2 Ratio3 C / C Data3 MaRatio2 Average (Ratio2, Målen) MaRatio3 Average (Ratio3, Målen) DiffMaRatio2 Ratio2 / MaRatio2 DiffMaRatio3 Ratio3 / MaRatio3 ProdDiff DiffMaRatio2 DiffMaRatio3 UpperProdDiff 1 StdDev (ProdDiff, Målen) 1 LowerProdDiff 1 - StdDev (ProdDiff, Målen) 2 Wenn Market 0 und BarsSinceExit (1) gt 1 und ProdDiff gt UpperProdDiff und ProdDiff gt ProdDiff2 Dann kaufen (quotGo Longquot) in der Nähe Wenn Market 1 und ProdDiff lt ProdDiff4 Dann ExitLong (quotEnd Longquot) am Markt ExitLong ( quotTrailing Longquot) morgen um niedrigste (Low, 2) Stop Wenn Market 0 und BarsSinceExit (1) gt 1 und ProdDiff lt LowerProdDiff und ProdDiff lt ProdDiff2 dann verkaufen (quotGo Shortquot) in der Nähe Wenn Market -1 und ProdDiff gt ProdDiff4 Dann ExitShort (quotEnd Shortquot) am Markt ExitShort (quotTrailing Shortquot) morgen um höchste (High, 2) Stop Wenn BarsSinceEntry 8 und OpenPositionProfit lt 0 Then Begin ExitLong am Markt ExitShort am Markt Ende Juni 2001 Trade Code: Eingang: VSStd (1) Vars: SumVS ( DiffArr (0), VSLow (0), VSMid (0), VSHigh (0), RiskReward (0), DiffVS (0), StdVS 0) Array: VS20 (0) Für SetArr 0 bis 4 Begin VSSetArr 4 0 (OSetArr - CSetArr 1) / CSetArr 1 VSSetArr 4 1 (HSetArr - CSetArr 1) / CSetArr 1 VSSetArr 4 2 (LSetArr - CSetArr 1) / CSetArr 1 VSSetArr 4 3 (CSetArr - CSetArr 1) / CSetArr 1 End Für SumArr 0 bis 19 beginnen Wenn SumArr 0 Then 19 SumVS 0 SumVS SumVS VSSumArr Wenn SumArr Dann AvgVS SumVS / 20 Für DiffArr 0 bis 19 Wenn DiffArr 0 Then 0 DiffVS DiffVS Begin DiffVS Platz (VSDiffArr - AvgVS) Wenn DiffArr 19 Dann StdVS SquareRoot (DiffVS / 20) Ende Ende VSLOW C (1 (AvgVS - StdVS VSStd)) VSMid C (1 AvgVS) VSHigh C (1 (AvgVS StdVS VSStd)) Wenn Market 0 und (Schließen Sie, 80) lt Durchschnitt (Schließen Sie, 80) 11 Dann Verkaufen Sie morgen Bei VSHigh End Ende If BarsSinceEntry gt 1 Dann Begin ExitLong bei Schließen ExitShort am Ende Juli 2001, TradeStation-Code: Vars: MaLen (9), AvgVolume (0), Turbo (0), InvTurbo (0), MaWeight (0), TurboMA (0) AvgVolume Average (V, Målen) Turbo (AvgVolume - niedrigste (AvgVolume, Målen)) / (Höchste (AvgVolume, Målen) - niedrigste (AvgVolume, Malen)) InvTurbo 1 - Turbo Wenn Målen gt 2 Dann MaWeight (2 / (1 Målen)) Else MaWeight 0,67 TurboMA TurboMA InvTurbo avgprice Turbo Wenn 1.000.401 Datum lt Wenn Market 0 und C lt TurboMA und TurboMA lt TurboMA 1 Dann kaufen Morgen auf Höchste (Hoch, 2) Stop-End If Market 1 und C lt dann beginnen TurboMA Dann beginnen ExitLong auf Schließen ExitLong Morgen auf EntryPrice 0.96 Stop End If Datum gt 1000401 Dann beginnen, wenn MarketPosition 0 und C gt TurboMA und TurboMA gt TurboMA 1 Dann verkaufen Tomorrow auf Lowest (Low, 2) Stop End Wenn MarketPosition -1 und C gt TurboMA Beginnen Sie dann ExitShort auf Schließen ExitShort Morgen auf EntryPrice 1.04 Stop Ende August 2001, TradeStation-Code: Wenn (Maxliste (High3, Close4) gt High4 oder Maxlist (High3, Close4) gt High2 oder Maxlist (High3, Close4) gt High1) und Close (Min1 (Low3, Close4) lt Low4 oder Minlist (Low3, Close4) lt Low2 oder Minlist (Low3, Schließen4) lt Low1) und Schließen gt Close1 und Open Tomorrow gt LOW3 Verkaufen Dann 1 Vertrags Morgen auf (Minlist (LOW3, Close4) 0,999) Stopp Wenn EntryPrice gt 0 Dann beginnen Wenn Market 1 dann beginnen ExitLong auf EntryPrice 0.96 Stopp ExitLong auf EntryPrice 1.12 Limit-End If Market -1 Dann beginnen ExitShort auf EntryPrice 1.04 Stopp ExitShort auf EntryPrice 0,88 Grenze End End If BarsSinceEntry gt 3 Dann SetExitOnClose ExitLong auf Schließen ExitShort auf Schließen Ende Oktober 2001 Code Trade: Eingänge: DepPrice (in der Nähe von data1), IndPrice (in der Nähe von Daten2 ) Vars: Länge (63), iBeta (1), Ind (0), Dep (0), SumX (0), SumY (0), SumXY (0), SumXsq (0), (DepPrice - DepPrice1) / DepPrice1 Ind (IndPrice - IndPrice1) / IndPrice1 Wenn CurrentBar gt Länge beginnen Dann SUMX Summieren (Ind, Länge) SumXY 0 Sumy Summieren (Dep, Länge) SumXsq 0 für j 0 bis Länge - 1 beginnen SumXY SumXY (Indj Depj ) SumXSq SumXsq Quadrat (Indj) End If SumXY ltgt 0 und SumX ltgt 0 Dann ist iBeta ((Länge SumXY) - (SumX SumY)) / ((Länge SumXsq) - Quadrat (SumX)) Wenn IndPrice gt Durchschnitt (IndPrice, Länge) Und iBeta gt 1 und MarketPosition ltgt 1 Dann kaufen Sie 1 Kontrakt morgen am niedrigsten (niedrig, 5) Limit Wenn IndPrice lt Durchschnitt (IndPrice, Länge) und iBeta lt 1 und MarketPosition ltgt -1 Dann SellShort 1 Kontrakt morgen am höchsten (hoch, 5 Wenn EntryPrice gt 0 Then Wenn Schließen lt EntryPrice 0,96 oder Schließen gt EntryPrice 1.12 Dann Morgen am Markt Wenn Close gt Verkaufen Begin Limit) EntryPrice 1,04 oder Schließen lt EntryPrice 0,88 Dann BuyToCover Morgen am Markt Ende November 2001 Trade Code: Eingänge: pTARGET (12 ), StopL (4) Variablen: ProfitPrice (0), StopPrice (0) Wenn L1 lt L2 und L2 lt L3 und H0 gt H3 Dann kaufen (quot3L-Rquot) Nächste Bar zu Open ProfitPrice EntryPrice (1 pTARGET / 100) StopPrice EntryPrice (1 - PTarget / 100) Wenn MarketPosition 1 dann anfangen zu verkaufen (quot3L-R Exitquot) Nächste Leiste am ProfitPrice Limit Sell (quot3L-R Stopquot) Nächste Leiste am StopPrice Stop Ende Dezember 2001, TradeStation Code: Eingänge: MaxLength (5) Variablen : MARPOS (0), LongLoss (0), ShortLoss (0) Wenn BarsSinceEntry gt (MaxLength - 2) SetExitOnClose Dann Wenn Market 1 und Schließen lt avgprice und avgprice lt AvgPrice5 ltgt Dann Wenn Öffnen Morgen lt Begin avgprice Dann kaufen Begin (quotLongquot) morgen um avgprice Stop-End End If Market ltgt -1 und Schließen gt avgprice und avgprice gt AvgPrice5 Dann beginnen Wenn Öffnen morgen gt avgprice Dann SellShort (quotShortquot) morgen um avgprice Stop-End End MARPOS Market beginnen Wenn MARPOS ltgt MarPos1 und MARPOS 1 Dann LongLoss Low1 Wenn MARPOS ltgt MarPos1 und MARPOS -1 Dann 0 ShortLoss High1 Wenn EntryPrice gt Dann beginnen Wenn BarsSinceEntry gt 1 Dann LongLoss MaxList Begin (LongLoss, Low) ShortLoss MinList (ShortLoss, Hoch) Ende Else LongLoss MaxList Begin (LongLoss, Low) ShortLoss MinList ( ShortLoss, High) End If Market 1 dann verkaufen Begin (quotLSquot) morgen um LongLoss Stop-Sell (quotLTquot) morgen um höchste (High, 5) Limit-End If Market -1 Dann BuyToCover (quotSSquot) morgen um ShortLoss Stopp BuyToCover (quotSTquot Begin) (0), RC1 (0), RC2 (0), RC3 (0), RC4. Das ist der Fall (0), RC5 (0), RC7 (0), RC7 (0), RC10 (0) RC1 RateOfChange (Schließen von Daten1, LenRC) RC2 RateOfChange (Schließen von Daten2, LenRC) RC3 RateOfChange (Close Data3, LenRC) RC4 RateOfChange (Close Data4, LenRC) RC5 RateOfChange (Close Daten5, LenRC) RC6 RateOfChange (Close Daten6, LenRC) RC7 RateOfChange (Close data7, LenRC) RC8 RateOfChange (Close DATA8, LenRC) RC9 RateOfChange ( Schließen DATA9, LenRC) RC10 RateOfChange (Close Daten10, LenRC) Wenn Market 0 und RC1 MinList (RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, RC10) beginnen dann kaufen Weiter Bar at Market RiskCalc AvgTrueRange ( 5) End If Market 0 und RC1 MaxList (RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, RC10) dann verkaufen Start Weiter Bar at Market RiskCalc AvgTrueRange (5) End If BarsSinceEntry gt TradeLenRC Dann ExitLong Begin Nächste Bar am Markt ExitShort Nächste Bar am Markt Ende Februar 2002, TradeStation Code: Vars: Ratio (0), AvgRatio (0), RiskCalc (0) Ratio Schließen Data1 / Close Daten2 AvgRatio XAverage (Ratio, 9) Wenn AvgRatio über AvgRatio9 überquert Dann kaufen beginnen Sie am Markt RiskCalc AvgTrueRange (9) End If AvgRatio Kreuze unter AvgRatio9 dann verkaufen beginnen Sie am Markt RiskCalc AvgTrueRange (9) Ende April 2002 Trade Code: Variablen: LenRC (5), TradeLenRC (5), RiskCalc (0), (0), RC5 (0), RC6 (0), RC7 (0), RC1 (0), RC2 (0) RC10 (0), TrendFilter (0) RC1 RateOfChange (Close Data1, LenRC) RC2 RateOfChange (Close Data2, LenRC) RC3 RateOfChange (Close Data3, LenRC) RC4 RateOfChange (Close Data4, LenRC) RC5 RateOfChange (Close Daten5, LenRC) RC6 RateOfChange (Close Daten6, LenRC) RC7 RateOfChange (Close data7, LenRC) RC8 RateOfChange (Close DATA8, LenRC) RC9 RateOfChange (Close DATA9, LenRC) RC10 RateOfChange (Close Daten10, LenRC) TrendFilter Average (Close DATA11, 80) Wenn TrendFilter gt TrendFilter11 Fangen Sie dann an, wenn MarketPosition 0 und RC1 MinList (RC1, RC2, RC3, RC4, RC5, RC5, RC6, RC7, RC7, RC9, RC10) Dann beginnen Sie die nächste Bar am Markt RiskCalc AvgTrueRange (5) Ende Wenn MarketPosition 0 und RC1 MaxList (5) End End Wenn TrendFilter lt TrendFilter11 Dann beginnen, wenn MarketPosition 0 und RC1 MinList (RC1, RC2, RC1, RC5, RC6, RC7, RC8, RC9, RC10) Dann anfangen zu verkaufen Next Bar am Markt RiskCalc AvgTrueRange (5) Ende Wenn MarketPosition 0 und RC1 MaxList (RC1, RC2, RC3, RC4, RC5, RC6, RC7), dann beginnen Sie zu verkaufen Next Bar am Markt RiskCalc AvgTrueRange (5) , RC8, RC9, RC10) Dann beginnen Sie die nächste Bar am Markt RiskCalc AvgTrueRange (5) End End Wenn BarsSinceEntry gt TradeLenRC Dann Begin ExitLong Nächste Bar am Markt ExitShort Nächste Bar am Markt Ende Mai 2002, TradeStation-Code: Wenn High lt High1 und High 1 lt High2 und High2 lt High3 und Close lt Öffnen und Schließen1 lt Open1 und Close2 lt Open2 Dann kaufen Tomorrow an High Stop ExitLong Tomorrow an Low Stop Wenn MarketPosition ltgt 0 und Open Tomorrow gt High dann ExitLong Morgen bei Open Wenn High GT High1 und Close TradeType (8), ProfitExit (8), LossExit (4) Variablen: LongStop (0), ShortStop (0), LongTarget (0), ShortTarget (0), LimitExit 0), StopExit (0) LimitExit (ProfitExit / 2 0,5) / 100 StopExit (LossExit / 5 0,2) / 100 Wenn MarketPosition 0 dann beginnen, wenn High lt High2 und Close lt Öffnen und öffnen Sie Next Bar lt High dann beginnen Next Bar bei High Stop LongStop 1 - StopExit LongTarget 1 LimitExit Ende Wenn Low gt Low2 und Close gt Öffnen und Öffnen Next Bar gt Low Dann Anfangen Verkaufen Next Bar bei Low Stop ShortStop 1 StopExit ShortTarget 1 - LimitExit End End Wenn MarketPosition 1 Dann ExitLong Next Bar starten EntryPrice Notnagel Stopp ExitLong Nächste Bar bei EntryPrice LongTarget Limit-End If Market -1 Begin Dann ExitShort Nächste Bar bei EntryPrice Shortstop Stopp ExitShort Nächste Bar bei EntryPrice ShortTarget Limit-End If BarsSinceEntry BarsInTrade1 Dann ExitLong Weiter Bar at Market ExitShort Nächste Bar am Markt Ende Juli 2002 beginnen , TradeStation-Code: Wenn MarketPosition ltgt 1 und Durchschnitt (Schließen, 9) Kreuze über Durchschnitt (Schließen, 36) Dann Begin RiskCalc 4 AvgTrueRange (10) Buy Next Bar am Markt Ende Wenn Durchschnitt (Close, 9) 36) Dann ExitLong Nächste Bar am Markt Wenn MarketPosition 1 und EntryPrice gt 0 Dann ExitLong Nächste Bar am EntryPrice - RiskCalc Stop August 2002, TradeStation-Code: Wenn MarketPosition ltgt -1 Dann Sell Next Bar bei Close1 2 AvgTrueRange (5) Limit Wenn MarketPosition ltgt 1 Dann Kaufen Weiter Bar Close1 - 2 AvgTrueRange (5) Grenzwert Wenn Market 1 dann beginnen ExitLong Nächste Bar bei EntryPrice - AvgTrueRange (5) Stopp ExitLong Nächste Bar bei EntryPrice 2 AvgTrueRange (5) Grenzwert End If Market -1 Dann beginnen ExitShort Nächste Bar bei EntryPrice AvgTrueRange (5) Stopp ExitShort Nächste Bar bei EntryPrice - 2 AvgTrueRange (5) Grenzwert September 2002 Code Trade: Variablen: ProfitDistance (0), RiskCalc (0), MMExport (1) Condition1 Bereich MinList (Range, Range1, Range2 , Range3) Bedingung2 niedrig lt Low1 und High lt High2 Bedingung3 Low gt Low1 und High gt High1 Bedingung4 Schließen lt High1 und Close gt Low1 Wenn MarketPosition 0 und Condition1 und Condition2 und Condition4 Then Begin Buy Next Bar auf High Stop ProfitDistance Range 3 End If MarketPosition 0 und Condition1 und Bedingung3 und Condition4 beginnen dann verkaufen Weiter Bar auf High Limit ProfitDistance Bereich 3 End If EntryPrice gt 0 Then ExitLong beginnen Sie an Low Stopp ExitLong bei EntryPrice ProfitDistance Grenze ExitShort bei EntryPrice - ProfitDistance Grenze Ende Oktober 2002 Trade Code: Variablen: EntryAvg (0), ExitAvg (0), EntryVol (0), ExitVol (0), RiskCalc (0) EntryAvg Durchschnitt (Schließen, 60) ExitAvg Durchschnitt (Schließen, 30) EntryVol 2 StdDev (Schließen, 60) ExitVol 1 StdDev (Schließen , 30) RiskCalc (EntryAvg EntryVol) - (ExitAvg - ExitVol) Kaufen NumCont Verträge Weiter Bar bei EntryAvg EntryVol Stop-Sell NumCont Verträge Weiter Bar bei EntryAvg - EntryVol Stopp ExitLong Morgen um ExitAvg - ExitVol Stopp ExitShort Morgen um ExitAvg ExitVol Stopp EntryAvg MA (Schließen , 60) ExitAvg MA (Close, 30) EntryVol 2 StDev (Close, 60) ExitVol 1 StDev (Close, 30) RiskCalc (EntryAvg EntryVol) - (ExitAvg - ExitVol) / Eintrag bei Entryavg EntryVol STOP / BuyStopLevel EntryAvg EntryVol Kaufen High gt BuyStopLevel BuyPrice Max (Open, BuyStopLevel) / und ähnliche Gleichungen für kurze / ShortStopLevel EntryAvg - EntryVol Short Low lt ShortStopLevel ShortPrice Min (Open, ShortStopLevel) SellStopLevel ExitAvg - ExitVol Low Verkaufen lt SellStopLevel SellPrice Min (Open, SellStopLevel) CoverStopLevel ExitAvg ExitVol Abdeckung Hoch gt CoverStopLevel CoverPrice Max (Open, CoverStopLevel) November 2002 Trade Code: Condition1 CloseW (2) gt CloseW (1) und CloseW (1) gt C und C2 gt C1 und C1 gt C Condition2 CloseW (2) lt CloseW (1) und CloseW (1) lt C und C2 lt C1 und C1 lt C Wenn Condition1 True and Market 0 Then Kaufen (quotGo longquot) bei offenem Wenn Condition2 True and Market 0 dann verkaufen (quotGo shortquot) bei offenen Variablen: Trailingstop (True), BarsInTrade (8), ProfitExit (4), LossExit (1.6), Notnagel (0), Shortstop (0), LongTarget (0), ShortTarget (0), Top (0), Grund (0) Wenn Taktnummer 1 Dann ProfitExit Begin ProfitExit / 100 LossExit LossExit / 100 Notnagel 1 - LossExit LongTarget 1 ProfitExit Shortstop 1 LossExit ShortTarget 1 - ProfitExit End Top High-Bottom Low Wenn 0 EntryPrice gt Dann beginnen Wenn Market 1 Dann beginnen Wenn Trailingstop True Then Top MaxList Begin (Top, High) ExitLong (quotL-Trailquot) Next Bar at Top LongStop Stop End Else ExitLong (quotL-Stopquot) Next Bar at EntryPrice LongStop Stop ExitLong (quotL-Trgtquot) Next Bar at EntryPrice LongTarget Limit End If MarketPosition -1 Then Begin If TrailingStop True Then Begin Bottom MinList(Bottom, Low) ExitShort (quotS-Trailquot) Next Bar at Bottom ShortStop Stop End Else ExitShort (quotS-Stopquot) Next Bar at EntryPrice ShortStop Stop ExitShort (quotS-Trgtquot) Next Bar at EntryPrice ShortTarget Limit End If BarsSinceEntry BarsInTrade 1 Then Begin ExitLong (quotL-Timequot) Next Bar at Market ExitShort (quotS-Timequot) Next Bar at Market End End December 2002, TradeStation code: Variables: RandomTrigger(0), ShortVol(0), LongVol(0), ShortLookBack(10) , LongLookBack(63), ShortTrend(0), LongTrend(0), LongTrendDir(0) ShortVol AvgTrueRange(ShortLookBack) LongVol AvgTrueRange(LongLookBack) If ShortVol gt LongVol Then ShortTrend 1 Else ShortTrend -1 LongTrend Average(Close, 80) If LongTrend gt LongTrend20 Then LongTrendDir 1 Else LongTrendDir -1 If MarketPosition 0 and ShortTrend 1 and RandomTrigger 1 Then Begin If Date lt 1000401 Then Buy at Close If Date gt 1000401 Then Sell at Close End If MarketPosition ltgt 0 Then Begin ExitLong at (EntryPrice - ShortVol) Stop ExitLong at (EntryPrice 3 ShortVol) Limit ExitShort at (EntryPrice ShortVol) Stop ExitShort at (EntryPrice - 3 ShortVol) Limit If BarsSinceEntry gt ShortLookBack -1 Then Begin ExitLong on Close ExitShort on Close End End January 2003, TradeStation code: If Close gt (Average(Close, 60) StdDev(Close, 60)) Then Buy at Market If Close lt (Average(Close, 60) - StdDev(Close, 60)) Then Sell at Market February 2003, TradeStation code: Var: HistVol( 0), YestHistVol(0), DeltaHistVol(0), LookBack(0) YestHistVol HistVol HistVol StdDev(C, 30) DeltaHistVol (HistVol - YestHistVol) / HistVol If CurrentBar 1 Then LookBack 20 LookBack LookBack (1 DeltaHistVol) LookBack MaxList(LookBack , 20) LookBack MinList(LookBack, 60) If Close gt Highest(High, LookBack)1 Then Buy at Market If Close lt Lowest(Low, LookBack)1 Then Sell at Market May 2004, MetaStock code: To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. Enter Long: Cross(Mov(C,10,W),Mov(C,7,W)) Close Long: Cross(Mov(C,7,W),Mov(C,10,W)) Enter Short: Cross(Mov(C,7,W),Mov(C,10,W)) Close Short: Cross(Mov(C,10,W),Mov(C,7,W)) MetaStock code for Futures Trading System Lab: To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. June 2004, TradeStation code: inputs: Length( 10 ), NumDevsDn( 1.5 ) variables: LowerBand( 0 ) LowerBand BollingerBand( Low, Length, - NumDevsDn ) value1 TLNew( Date1, Time1, LowerBand1, Date, Time, LowerBand ) if CurrentBar gt 1 and Low crosses under LowerBand then Buy ( quotBBandLEquot ) next bar Market if Close gt EntryPrice then Sell this bar at Close if BarsSinceEntry 20 then sell this bar at Close To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. Buy Order: LltBBandBot(L,10,S,1.5) Sell Order: bc:LltBBandBot(L,10,S,1.5) C gt ValueWhen(1,Ref(bc,-1),O) MetaStock code for Futures Trading System Lab Because this system uses an entry signal that can be true for several bars in a row, MetaStock version prior to 8.0 can not accurately count how long the trade has been active. Therefore, the formulas for this system are only valid in the MetaStock 8.0 and later. To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. Buy Order: hgtref(hhv(h,55),-1) Sell Order: x: Simulation. CurrentPositionAge llt ref(llv(l,55),-1)((0.1ATR(20))x) July 2004, MetaStock code: This system is designed to run on weekly data. To create the system test, open the tester under the Tools menu. Select new test and enter the following formulas in for the specific orders. The formulas below are for version 7.2 and earlier. Enter Long: ADX(14)lt30 AND Cross(Mov(C,30,S),Mov(C,60,S)) Close Long: bc:ADX(14)lt30 AND Cross(Mov(C,30,S),Mov(C,60,S)) If(BarsSince(bc)lt10, LltRef(LLV(L,60),-1), Mov(C,30,S)ltMov(C,60,S) ) Enter Short: ADX(14)lt30 AND Cross(Mov(C,60,S),Mov(C,30,S)) Close Short: sc:ADX(14)lt30 AND Cross(Mov(C,60,S),Mov(C,30,S)) If(BarsSince(sc)lt10, HgtRef(HHV(H,60),-1), Mov(C,30,S)gtMov(C,60,S) ) For versions 8.0 and later, the formulas can be simplified a bit, and at the same time, made for accurate to the intents of the system. Below are the 8.0 formulas. Buy Order: ADX(14)lt30 AND Cross(Mov(C,30,S),Mov(C,60,S)) Sell Order: If(Simulation. CurrentPositionAgelt10, LltRef(LLV(L,60),-1), Mov(C,30,S)ltMov(C,60,S) ) Sell Short Order: ADX(14)lt30 AND Cross(Mov(C,60,S),Mov(C,30,S)) Buy to Cover Order: If(Simulation. CurrentPositionAgelt10, HgtRef(HHV(H,60),-1), Mov(C,30,S)gtMov(C,60,S) ) August 2004, MetaStock code: The following formulas were written for use in an Expert Advisor. To use them, open the expert advisor from the Tools menu. Select New and then move to the symbols tab. For each of the following formulas, click New to make a new symbol. Enter the name and the formula. Then select the graphics tab to set the symbol, color and placement desired. Name: Enter Long Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(bc,1,0), If(sc OR (PREV20),0,PREV1)) trade1 Name: Enter Short Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(sc,1,0), If(bc OR (PREV20),0,PREV1)) trade1 Name: Exit Long Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(bc,1,0), If(sc OR (PREV20),0,PREV1)) Cross(trade0,0.5) Name: Exit Short Formula: r:RSI(14) bc:Cross(r,75) sc:Cross(25,r) trade:If(PREV0,If(sc,1,0), If(bc OR (PREV20),0,PREV1)) Cross(trade0,0.5) The same formulas listed above can be put into the columns of an exploration. Put each one into a separate formula and use the following formula for the filter: cola AND colb AND colc AND cold The formulas can also be used in a system test. No changes are required for this. June 2006, tymoraPRO software code: Program TymoraSampleIndicatorChannelMidPoint //Must have the word quotIndicatorquot in the Program Header const IndName ChnMidP var tmpHi, tmpLo, curHi, curLo, prvMidP, MidP, PS, PV, MM, LS: extended barsToUse, rColor: integer Band1: Integer function init(ChartNo, TF: Integer AssetN: String): integer //this function is called first by tymoraPRO and should initialize all your variables, etc //ChartNo 0..35, TF (timeFrame) 1Day. 71min, AssetN assetname // if this function returns anything but 0 tymoraPRO will ignore indicator for this run var i: integer cfgs: string begin // Initialization code goes here SetName(IndName) Band1 : AddBand(ChartNo) SetBandScale(Band1,0) //set scale to price SetBandStyle(Band1,2,psSolid) tmpHi : 0 tmpLo : 0 curHi : 0 curLo : 0 barsToUse : 50 rColor : clGreen cfgs : GetInitParams(ChartNo, IndName) if (cfgs ltgt ) then Begin try barsToUse : strtoint(cfgs) except barsToUse : 50 end End //if (barsToUse 0) then barsToUse : OptimalCycle(ChartNo, TF)4 //if (barsToUse 0) then barsToUse : 50 ReturnAssetInfo(AssetN, PS, PV, MM, LS) result : 0 end function main(ChartNo, TF: Integer AssetN: String istemp: boolean): integer //this function is called first by tymoraPRO and should initialize all your variables, etc //ChartNo 0..35, TF (timeFrame) 1Day. 71min, AssetN assetname // if (istemp true) this is a temporary newbar (the current uncompleted bar) //indicator can also be customized based on ChartNumber, TimeFrame, and/or AssetName var i, volup, voldn, dt, tm, ok: integer op, hi, lo, cl, pcl, useHi, useLo, useMidP: extended hifirst: boolean begin // main code goes here if (not istemp) then Begin tmpHi : 0 tmpLo : 0 if (curHi ltgt 0) then Begin ok : BarData(ChartNo, barsToUse, dt, tm, op, hi, lo, cl, volup, voldn, hifirst) if (ok -1) or CompPrc(curHi, hi, PS,) or CompPrc(curLo, lo, PS,) then curHi : 0 End if (curHi 0) then Begin curHi : 0 curLo : 0 for i : 0 to barsToUse-1 do begin BarData(ChartNo, i,dt, tm, op, hi, lo, cl, volup, voldn, hifirst) if (curHi 0) or (curHi lt hi) then curHi : hi if (curLo 0) or (curLo gt lo) then curLo : lo end End PrvMidP : MidP MidP : (curHicurLo)/2 if (MidP gt PrvMidP) then rColor : clGreen else if (MidP lt PrvMidP) then rColor : clRed BandAddXY(Band1,NewChartX(ChartNo, istemp),MidP, rColor, istemp) End if istemp then Begin if (tmpHi 0) then Begin for i : 0 to barsToUse-2 do begin BarData(ChartNo, i,dt, tm, op, hi, lo, cl, volup, voldn, hifirst) if (tmpHi 0) or (tmpHi lt hi) then tmpHi : hi if (tmpLo 0) or (tmpLo gt lo) then tmpLo : lo end End useHi : tmpHi useLo : tmpLo BarData(ChartNo,- 1,dt, tm, op, hi, lo, cl, volup, voldn, hifirst) //new temporary bar if (hi gt useHi) then useHi : hi if (lo lt useLo) then useLo : lo if ((useHiuseLo)/2 gt MidP) then rColor : clGreen else if ((useHiuseLo)/2 lt MidP) then rColor : clRed BandAddXY(Band1,NewChartX(ChartNo, istemp),(useHiuseLo)/2,rColor, istemp) End result : 0 end function afterdraw(ChartNo, TF: Integer AssetN: String FirstValueIndex, LastValueIndex: integer): integer //this routine is called in order to add any additional text or drawing on the final chart begin // additional chart annotation goes here result : 0 end function cleanup(ChartNo, TF: Integer AssetN: String): integer // perform any variable cleanup and other stuff here, return 0 if all okay begin // final cleanup code goes here (ie. freeing created bands) FreeBand(Band1) result : 0 end Copyright copy 2000-2008, Active Traderreg Magazine, Chicago, IL
No comments:
Post a Comment