Bill Williams Strategie mit und ohne andere Indikatoren und Vorhersagen
Einführung
Bill Williams ist ein anerkannter Händler, Autor und Psychologe aus den USA, der für seine Beiträge zum Handel und zur Finanzanalyse Anerkennung erhalten hat. Im Laufe seines Handelslebens hat er Indikatoren und verschiedene Handelsstrategien entwickelt, die von vielen Händlern verwendet wurden.
Bill Williams hat einen Doktortitel in Psychologie, was wichtig ist, weil einige Händler die Stimmung der Märkte nutzen. Dies wird sehr häufig verwendet und kann mit einem Sentiment-Skript mit einer IA durchgeführt werden, um die Stimmung der Händler Gefühle mit Web-Märkten Scrapping in einem sozialen Web zum Beispiel zu bewerten. Am Ende des Artikels finden Sie ein Beispiel für die Sentiment-Analyse von Marktnachrichten.
Bill Williams Psychologieausbildung half ihm, psychologische Konzepte auf den Handel zu übertragen. Er untersuchte den Markt aus der menschlichen Perspektive und wie Emotionen mit Händlern und ihrem Handel umgehen. Er hatte eine ganzheitliche Sicht auf den Markt, und er war der Meinung, dass der Markt chaotisch ist und die Märkte unter Berücksichtigung dieser Tatsache zu unserem Nutzen untersucht und gehandelt werden müssen. Dies wird mit den Indikatoren erörtert werden.
Dies ist ein Bild des EA mit den Indikatoren und Oszillatoren, die wir verwenden werden:
Auf dem Bild sehen wir drei Indikatoren: den Alligator-Indikator, den Awesome Oscillator (AO) und die Fraktale. Alle diese Indikatoren zusammen spiegeln das menschliche Verhalten und den chaotischen Markt wider.
Der Alligator-Indikator
Der Alligator-Indikator besteht aus drei MAs, dem Kiefer (Jaw, blaue Linie), den Zähnen (Teeth, rote Linie) und den Lippen (Lips, grüne Linie). Dieser Indikator wurde entwickelt, um Phasen der Schläfrigkeit und des Aufwachens zu identifizieren. Er spiegelt das menschliche Verhalten wider, da der Markt Phasen hat, in denen der Markt schläft (geringe Aktivität), gefolgt von einer Phase, in der er aufwacht (intensive Aktivität). Märkte haben Konsolidierungsphasen, gefolgt von Trendphasen. Alligator hilft zu erkennen, wann der Markt eine Ruhephase ist, in der man nicht handeln sollte, weil Händler eher von einer hohen Volatilität des Marktes profitieren.
In der Phase geringer Aktivität sind die Linien des Alligator-Indikators sehr nahe beieinander und ineinander verschlungen.
In der Hochaktivitätsphase sind die Linien des Alligator-Indikators weit von einander getrennt, was anzeigt, dass er aufgewacht ist und ein Trend vorliegt.
Hinweis: Wie Sie in der Abbildung sehen können, versucht die Strategie, eine Verkaufsposition in einem Aufwärtstrend zu erwischen, um diesem zu folgen. Es gibt auch mehr Möglichkeiten, die Strategie anzupassen. Sie können den Auftrag erteilen, wenn der Alligator-Indikator kreuzt und wenn der AO von < auf >0 geht, um einen längeren Lauf zu erhalten.
In der Schlafphase scheinen die Händler nicht handeln zu wollen, sie warten auf neue Daten oder etwas, das den Markt in einen Trend bringt. In der Schlafphase sollten Händler keine Entscheidungen treffen, bis sie klar erkennen können, wohin der Markt tendiert, und sie sollten sich der Bewegungen des Marktes (wenn er aufwacht) bis zum nächsten Trend bewusst sein.
In der Schlafphase neigen die Linien also dazu, sich nicht zu trennen und in entgegengesetzte Richtungen zu bewegen, und der Indikator sagt Ihnen, dass es keine Tendenz gibt und dass es besser ist, sich aus den Geschäften herauszuhalten.
Wenn die Linien beginnen, sich in eine Richtung zu trennen (grün über rot über blau), bedeutet dies einen Aufwärtstrend, (grün unter rot unter blau) bedeutet einen Abwärtstrend, d.h. es ist der perfekte Zeitpunkt für einen Einstieg in den Markt.
Grün == Lippen (Lips),
Rot == Zähne (Teeth),
Blau == Kiefer (Jaw).
Was hat der Alligator-Indikator mit Psychologie zu tun?
Die MAs sind der Durchschnitt der mittleren Preise (z.B.: 2+3 / 2 = 2,5), aber die Schwankungen der Preise werden geglättet und die letzten Preise werden stärker berücksichtigt, sodass die Schwankungen weniger Gewicht haben und man einen besseren Überblick über die Tendenz erhält. Es ist sehr wichtig, mit Klarheit das Rauchen des Marktes zu erkennen.
Der Awesome Oscillator (AO)
Er zeigt die Differenz zwischen dem SMA von 5 Perioden und einem SMA von 34 Perioden unter Verwendung des Medialwertes ((High + Low )/ 2)
Die Differenz zwischen zwei SMAs mit zwei unterschiedlichen Periodenlängen gibt den Impuls des Marktes an, der kurze SMA misst die Impulse oder schnellen Veränderungen des Marktes, und der lange SMA misst die Tendenzen, dies ist ähnlich wie beim Menschen, wo sie kurze Impulse haben und langfristig eine Tendenz.
Der Impuls: Der AO misst die Stärke des Impulses des Marktes, ein positiver AO bedeutet einen positiven Impuls und ein Durchbruch ins Negative das Gegenteil.
Die Fraktale
Bei den von Bill Williams definierten Fraktalen handelt es sich um eine Reihe von fünf Kerzen, die bestimmte Anforderungen erfüllen müssen, um entweder als Auf- oder Abwärts-Fraktaletals eingestuft zu werden.
Ein Aufwärts-Fraktal ist ein Fraktal, dessen Tief niedriger ist als die Tiefs der beiden vorangegangenen und der beiden nachfolgenden Balken.
Ein Abwärts-Fraktal ist das Gegenteil; es hat ein Hoch, das höher ist als die Hochs der beiden vorangegangenen und der beiden nachfolgenden Balken.
Fraktale zeigen mögliche Punkte auf, an denen der Markt seine Richtung ändern könnte. Die Psychologie hinter den Fraktalen besteht darin, dass sie wichtige Punkte der Unterstützung und des Widerstands widerspiegeln. Händler identifizieren diese Punkte, um Richtungsänderungen auf der Grundlage des kollektiven Verhaltens der Marktteilnehmer zu antizipieren.
Williams war der Meinung, dass die Finanzmärkte chaotische Systeme sind, die durch menschliches Verhalten beeinflusst werden. Er ging davon aus, dass die Marktteilnehmer aufgrund von Emotionen und psychologischen Verhaltensweisen handeln, die zu Mustern führen, die zufällig aussehen, aber darunter liegende strukturelle Grundlagen haben, die identifizierbar sind.
Die Anwendung der Psychologie auf seine Indikatoren half den Händlern, menschliche Emotionen wie Hoffnung, Angst, Geiz ... zu verstehen, die sich auf die Entscheidungen beim Handel auswirken. Trends und Konsolidierungen spiegeln die menschliche Psychologie der Aktivitäts- und Entspannungsphasen wider.
Bleiben wir bei der angewandten Strategie: Im ersten Code werden wir Fraktale, AO und den Alligator-Indikator verwenden.
Die Bedingungen, um einen Kauf zu tätigen, sind (sehr klar im Code) diese (denken Sie daran, die [0] ist die aktuelle Position zu diesem Zeitpunkt, und [1] eine Position vorher ist):
alligatorLips[1] > alligatorTeeth[1] && alligatorTeeth[1] > alligatorJaw[1] && ao[1] > 0 && ao[1] > ao[2] && fractalsUp[1] != 0 && PositionsTotal()==0
Für einen Verkauf gilt:
alligatorLips[1] < alligatorTeeth[1] && alligatorTeeth[1] < alligatorJaw[1] && ao[1] < 0 && ao[1] < ao[2] && fractalsDown[1] != 0 && PositionsTotal()==0
Einige Strategien von Bill Williams verwendet das Kreuzen von AO mit Null von positiv zu negativ und umgekehrt. Sie können mehr Möglichkeiten ausprobieren. Bitte verfassen Sie einen Kommentar in dem Forum des Artikels, wenn Sie es geschafft, viel bessere Ergebnisse über die gleichen Zeiträume in der Strategie-Tester von MT5 zu bekommen.
Die Bedingungen für das Eröffnen von Aufträgen sind
für einen Kauf:
ao[0] < 0 || (alligatorLips[1] < alligatorTeeth[1] && alligatorTeeth[1] < alligatorJaw[1])
und für einen Verkauf:
ao[0] > 0 || (alligatorLips[1] > alligatorTeeth[1] && alligatorTeeth[1] > alligatorJaw[1])
Der Rest des Codes ist als Bill Williams Strategy.mq5 beigefügt.
Die Ergebnisse sehen wie folgt aus:
Für diese Eingaben und Einstellungen
Ok, diese Ergebnisse sehen nicht sehr gut aus, aber diese Strategie scheint in anderen Zeiträumen zu funktionieren, also werden wir diese Strategie beibehalten und versuchen, bessere Ergebnisse zu erzielen, indem wir andere Indikatoren oder/und Vorhersagen hinzufügen.
Wie würde sich diese Strategie entwickeln, wenn wir ADX mit ihr verwenden würden? Der ADX sollte besser Trend-Muster „sehen“ können, so können wir sehen, was wir zu ändern haben:
ADXHandle = iADX(Symbol(), Period(), 14); if(ADXHandle == INVALID_HANDLE) { Print("Error initializing ADX indicator: ", GetLastError()); return INIT_FAILED; }
CopyBuffer(ADXHandle, 0, 0, 3, adx);
if(alligatorLips[1] > alligatorTeeth[1] && alligatorTeeth[1] > alligatorJaw[1] && ao[1] > 0 && ao[1] > ao[2] && fractalsUp[1] != 0 && adx[1] > ADXThreshold && PositionsTotal() == 0)
und das sind die Ergebnisse:
Immer noch schlecht, aber mal sehen, wenn wir Stops verwenden und für diese ATR verwenden
Ok das scheint besser zu sein, aber was ist, wenn wir jetzt Deep Learning und Vorhersagen verwenden, lassen Sie uns die Ergebnisse sehen:
Berücksichtigen Sie, dass das Modell 120 Werte als Schritte verwendet, also würde ich das Modell zumindest alle 120 Tage neu erstellen. So können die Ergebnisse besser sein und das Modell mit den letzten Tagen aktualisiert werden.
Die Strategie verwendet einen 8-Stunden-Zeitrahmen, und das ONNX-Modell ist für 1-Tages-Werte eingestellt, so denken Sie daran, wenn Sie das Skript ändern, um 1D Perioden, was benötigt wird, anzuwenden.
Mit Optimierungen bei der Anwendung von Deep-Learning-Vorhersagen erkennen wir die Gesamtergebnisse, und fast alle scheinen ziemlich gut zu sein:
Wie Sie in diesem Diagramm sehen können, haben fast alle Optimierungen eine positive Form, was bedeutet, dass die Strategie sehr zuverlässig ist und eine gute Performance aufweist.
Bei den Vorhersagen wurde ein Zeitraum von 8 Stunden für alle Tests und Simulationen, aber ein Zeitraum von einem Tag für die Vorhersagen verwendet, um eine Vorhersage zu erhalten, die nicht zu weit weg und nicht zu früh ist, damit wir Trends erkennen können. (Wenn Sie Vorhersagen verwenden, die zu weit entfernt sind, werden Sie immer noch in Trends einsteigen, aber Sie werden nicht in kurze Trends einsteigen, also werden Sie weniger Aufträge im Test haben, und das ist nicht nützlich, um zu wissen, ob die gesamte Strategie gut ist oder nicht). Für Stop-Loss verwenden wir ATR, und wir haben ADX in die Strategie aufgenommen.
Was können wir von dieser optimierten Version des EA sehen:
- Die Strategie ist profitabel mit einem Gesamtnettogewinn von 847,70 $ und einem hohen Gewinnfaktor von 3,85, was darauf hinweist, dass die Strategie deutlich mehr Geld bei gewinnbringenden Geschäften verdient als sie bei Verlustgeschäften verliert.
- Der Erholungsfaktor von 4,59 deutet darauf hin, dass sich die Strategie relativ schnell von Verlusten erholen kann.
- Sowohl AHPR als auch GHPR liegen bei 1,0000, was bedeutet, dass es keine signifikante Abweichung bei den durchschnittlichen und geometrischen Renditen gibt.
- Die Sharpe Ratio von 3,52 ist recht hoch und deutet auf gute risikobereinigte Erträge hin.
- Die Prozentsätze des Drawdowns vom Saldo und Kapital sind sehr niedrig, was bedeutet, dass das Risiko erheblicher Verluste minimal ist.
Was werden wir für die Erstellung der ONNX-Modelle verwenden?
Wir werden das wiederkehrende Skript von Python verwenden (das ich immer für diese Artikel verwende), das am Ende des Artikels angehängt ist. Wir müssen nur das Symbol ändern, und wenn wir wissen, was wir tun, können wir den Zeitraum oder andere „Dinge“ ändern.
Ich werde auch das verwendete Modell beifügen, damit Sie meine Ergebnisse nachvollziehen können.
Ich werde auch ein weiteres .py-Skript anhängen, um ONNX-Modelle mit Korrelationen und Metriken zu erstellen, um zu wissen, ob das Modell richtig ist, um es zu verwenden. Die Ergebnisse dieses Skripts werden wie folgt angezeigt:
train_mse=0.000 test_mse=0.000 train_r2=0.994 test_r2=0.970 train_corr=0.997 test_corr=0.989
Mit einem R2 von 97 % und einer Testkorrelation von 98,9 % wissen wir nun, dass wir dieses Modell für den EA verwenden können.
Diese Statistik bedeutet, dass z. B. bei einer Korrelation von 98,9 % das Modell eine Vorhersagegenauigkeit von 1 Fehler gegenüber 99 guten Vorhersagen hat, und das R2 von 97 % ist als Bestimmtheitsmaß bekannt, es ist die statistische Messung des Anteils der Varianz der abhängigen Variablen (in diesem Fall die Schlusskurse), die durch die unabhängige Variable (das Modell) erklärt wird. Mit anderen Worten: R2 drückt aus, wie gut die Werte der Modellvorhersage im Vergleich zu den realen Preiswerten angepasst sind.
Ein gutes Ergebnis für R2 ist 85 %, und ein gutes Ergebnis für die Korrelation ist 95 %, alles darüber sind bessere Ergebnisse, aber achten Sie darauf, dass Sie sich nicht zu sehr anpassen.
Wenn Sie mehr über Bill Williams wissen wollen, empfehle ich Ihnen, einige seiner besten Bücher zu lesen, z. B:
- „Trading Chaos“ (1995): Dies ist eines seiner besten und bekanntesten Bücher, in dem er die Theorie des Chaos auf den Finanzmärkten vorstellt und die Indikatoren erklärt, die wir in diesem Artikel verwendet haben, und wie sie als Möglichkeiten genutzt werden können, um zu wissen, wo man beim Handel investieren sollte.
- „New Trading Dimensions: How to Profit from Chaos in Stocks, Bonds, and Commodities“ (1998): Dieses Buch vertieft seine Methoden und erklärt neuere, komplexere und fortgeschrittenere Strategien. Er stellt seine Indikatoren vor und zeigt, wie man sie verwendet und kombiniert, um einen besseren Zugang zu den Handelssignalen zu erhalten.
- „Trading Chaos: Maximize Profits with Proven Technical Techniques“ (Second edition, 2004): Dies ist eine Aktualisierung seines ursprünglichen Buches und enthält neue Strategien und neue Schwerpunkte, die auf seiner Erfahrung und zusätzlichem Feedback von Händlern basieren, die seine Techniken verwendet haben.
Er gibt auch Seminare und Kurse, die Sie im Internet finden können.
Beispiel für die Stimmungsanalyse von Marktnachrichten
Hier ist ein Beispiel in Python.
Sie müssen diese Bibliotheken zunächst in Python installieren:
pip install requests beautifulsoup4 textblob
Erstellen Sie ein neues Python-Skript, und fügen Sie diesen Code ein:
import requests from bs4 import BeautifulSoup from textblob import TextBlob def get_eurusd_news(): url = 'https://www.investing.com/currencies/eur-usd-news' headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') # Encontrar todos los elementos <li> que contienen artículos de noticias articles = soup.find_all('li', class_='border-b') news = [] for article in articles: title_tag = article.find('a', class_='mb-2 inline-block text-sm font-bold leading-5 hover:underline sm:text-base sm:leading-6 md:text-lg md:leading-7') if title_tag: title = title_tag.get_text(strip=True) news.append(title) return news def analyze_sentiment(news): sentiment_results = [] for article in news: analysis = TextBlob(article) sentiment = analysis.sentiment.polarity sentiment_results.append((article, sentiment)) return sentiment_results def summarize_sentiment(sentiments): positive = sum(1 for _, sentiment in sentiments if sentiment > 0) negative = sum(1 for _, sentiment in sentiments if sentiment < 0) neutral = len(sentiments) - positive - negative total = len(sentiments) summary = { 'total': total, 'positive': positive, 'negative': negative, 'neutral': neutral } return summary news = get_eurusd_news() if news: sentiments = analyze_sentiment(news) summary = summarize_sentiment(sentiments) for i, (article, sentiment) in enumerate(sentiments, 1): sentiment_type = 'Positive' if sentiment > 0 else 'Negative' if sentiment < 0 else 'Neutral' print(f"{i}. {article}\n Sentiment: {sentiment_type} (Polarity: {sentiment})\n") print(f"Sentiment Summary: {summary}") print(f"Total articles: {summary['total']}, Positive: {summary['positive']}, Negative: {summary['negative']}, Neutral: {summary['neutral']}") else: print("No news articles found for EUR/USD.")
Dieses Programm liest die Nachrichten von Investing.com, analysiert die Titel und gibt ihnen eine Bewertung. Alle Nachrichten summieren sich und ergeben am Ende eine Gesamtbewertung der Artikel. So können Sie sehen, wie der Markt über ein Symbol denkt, und das kann Ihnen eine Vorstellung davon geben, ob es schläft, sich in einem Trend befindet oder aufgewacht ist.
Die Ergebnisse sehen so aus:
1. Dollar edges lower, but on track for hefty weekly gains Sentiment: Neutral (Polarity: 0.0) 2. European stocks hit by weak global sentiment; UK retail sales slump Sentiment: Negative (Polarity: -0.125) 3. Dollar higher on US business activity boost Sentiment: Positive (Polarity: 0.25) 4. Dollar steadies after sharp gains post Fed minutes; sterling retains strength Sentiment: Negative (Polarity: -0.125) 5. European stocks largely higher; Nvidia earnings, PMI data in focus Sentiment: Positive (Polarity: 0.125) 6. Dollar higher against euro as Fed minutes support Sentiment: Positive (Polarity: 0.25) 7. Dollar steady ahead of Fed minutes, sterling gains on CPI release Sentiment: Positive (Polarity: 0.16666666666666666) 8. EUR/USD rally expected to persist, says BofA Sentiment: Negative (Polarity: -0.1) 9. Dollar firm as Fed officials urge patience on rate cuts Sentiment: Negative (Polarity: -0.2) 10. Dollar steady; Fed speakers could provide impetus Sentiment: Positive (Polarity: 0.16666666666666666) Sentiment Summary: {'total': 10, 'positive': 5, 'negative': 4, 'neutral': 1} Total articles: 10, Positive: 5, Negative: 4, Neutral: 1
Schlussfolgerung
Obwohl die Strategie von Bill-Williams dafür bekannt ist, dass sie profitabler ist als das, was wir in diesem Test sehen können, ist es uns gelungen, mit einigen Änderungen und dem Hinzufügen von Deep-Learning-Vorhersagen mit einer weiteren Periode bessere Ergebnisse zu erzielen. Durch das Hinzufügen von Vorhersagen zur Strategie, haben wir es geschafft, die Strategie stabiler und mit weniger Fehlern zu machen, wenn wir versuchen zu wissen, ob es sich auf- oder abwärts bewegt. Mit dem hinzugefügten ADX, helfen wir dem EA bei der Entscheidungsfindung von langfristigen Trends, und durch das Hinzufügen von ATR haben wir es geschafft, bessere Entscheidungen mit dem Risiken der Losgröße zu treffen.
Dies ist kein vollständig eingerichteter EA, wenn Sie also damit handeln wollen oder müssen, müssen Sie ihn fertigstellen oder jemanden bitten, ihnen als Freiberuflicher die Aufgaben fertigzustellen.
Von nun an werde ich Strategien studieren und versuchen, sie auf die nächste Stufe zu bringen, wenn möglich mit Hilfe anderer Indikatoren oder sogar Deep Learning. Wenn Sie all dies interessant finden, lassen Sie mich bitte wissen und geben Sie mir Feedback zu diesem Artikel oder zu anderen, über die Sie etwas erfahren möchten.
Ich werde wahrscheinlich einen weiteren Artikel mit Bill Williams Indikatoren verfassen und dabei die Strategien aus seinem zweiten Buch verwenden: „New Trading Dimensions: How to Profit from Chaos in Stocks, Bonds, and Commodities“ (1998). Bitte lassen Sie mich wissen, ob Sie dies interessant finden oder ob Sie andere „Dinge“ wie einen besser gemachten EA oder andere Strategien wünschen.
Wenn Sie einen Artikel über eine bestimmte Strategie wünschen, schreiben Sie mir oder hinterlassen Sie einen Kommentar im Artikelforum, und früher oder später werde ich diesen Artikel schreiben (wenn die Herausgeber ihn auch interessant finden).
Ich hoffe, dieser Artikel hat Ihnen gefallen.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/14975
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.