English Русский Español 日本語 Português
preview
Integration von Computer Vision in den Handel in MQL5 (Teil 1): Erstellen von Grundfunktionen

Integration von Computer Vision in den Handel in MQL5 (Teil 1): Erstellen von Grundfunktionen

MetaTrader 5Handelssysteme |
28 0
Yevgeniy Koshtenko
Yevgeniy Koshtenko

Einführung

Im stillen Schein der Monitore, wo Kerzen-Charts die verschlungenen Pfade der Finanzströme nachzeichnen, wird eine neue Ära des Handels geboren. Haben Sie sich jemals gefragt, was ein neuronales Netzwerk fühlt, wenn es den EURUSD-Markt betrachtet? Wie nimmt sie jede Volatilitätsspitze, jede Trendumkehr, jede schwer fassbare Musterbildung wahr?

Stellen Sie sich einen Computer vor, der nicht nur gedankenlos vorprogrammierte Regeln anwendet, sondern den Markt wirklich wahrnimmt und subtile Nuancen von Kursbewegungen erfasst, die für das menschliche Auge unsichtbar sind. Künstliche Intelligenz, die den EURUSD-Chart wie ein erfahrener Kapitän den Meereshorizont betrachtet und einen herannahenden Sturm erkennt, lange bevor die ersten Anzeichen für schlechtes Wetter auftreten.

Heute lade ich Sie auf eine Reise zur Spitze der Finanztechnologie ein, wo Computer Vision auf Marktanalysen trifft. Wir werden ein System schaffen, das den Markt nicht einfach nur analysiert, sondern ihn visuell versteht und komplexe Preismuster so selbstverständlich erkennt, wie Sie das Gesicht eines Freundes in einer Menschenmenge erkennen.

In einer Welt, in der Millisekunden über das Schicksal von Millionen von Menschen entscheiden, eröffnet unser Modell auf der Grundlage von Faltungsneuronalen Netzen eine neue Dimension der technischen Analyse. Es verwendet keine Standardindikatoren, sondern lernt, Signale direkt aus den OHLC-Rohdaten zu finden und zu interpretieren. Und das Erstaunlichste ist, dass wir in sein „Bewusstsein“ blicken und sehen können, welche Chart-Ausschnitte seine Aufmerksamkeit erregen, bevor er eine Entscheidung trifft.


Geschichte und Anwendungen von Computer-Vision-Modellen

Computer Vision wurde in den 1960er Jahren am Massachusetts Institute of Technology (MIT) geboren, als Forscher erstmals versuchten, Maschinen die Interpretation visueller Informationen beizubringen. Die Entwicklung verlief zunächst langsam: Die ersten Systeme konnten nur einfache Formen und Konturen erkennen.

Der wirkliche Durchbruch kam 2012 mit dem Aufkommen der tiefen Faltungsneuronalen Netze (CNN), die die Branche revolutionierten. Die AlexNet-Architektur hat beim ImageNet-Wettbewerb eine noch nie dagewesene Bilderkennungsgenauigkeit bewiesen und damit die Ära des Deep Learning eingeläutet.

Heute verändert die Computer Vision viele Branchen. In der Medizin analysieren Algorithmen Röntgenbilder und MRTs mit einer Genauigkeit, die mit der von erfahrenen Radiologen vergleichbar ist. In der Automobilindustrie nutzen Fahrerassistenzsysteme und Autopiloten CV zur Erkennung von Straßenobjekten. Smartphones nutzen diese Technologie, um Fotos zu verbessern und die Gesichtserkennung zu ermöglichen. Sicherheitssysteme nutzen die Gesichtserkennung für die Zugangskontrolle.

Die Anwendung von Computer Vision in der Finanzanalyse ist ein neuer und vielversprechender Bereich. CV-Algorithmen sind in der Lage, komplexe Chartmuster und -formationen zu erkennen, die traditionelle technische Indikatoren nicht erkennen können, und eröffnen damit neue Horizonte für den algorithmischen Handel.


Technologische Grundlage: Verbindung zu Marktdaten

Unsere Reise beginnt damit, eine lebendige Verbindung zum Markt herzustellen. Wie Nervenenden, die sich am Puls der Finanzströme orientieren, verbindet sich unser Code mit dem MetaTrader 5-Terminal, einem klassischen Trader-Tool, das inzwischen zu einem Portal für künstliche Intelligenz geworden ist:

import MetaTrader5 as mt5
import matplotlib
matplotlib.use('Agg')  # Using Agg backend for running without GUI
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Dense, Conv1D, MaxPooling1D, Flatten, Dropout, BatchNormalization, Input

# Connecting to MetaTrader5 terminal
def connect_to_mt5():
    if not mt5.initialize():
        print("Error initializing MetaTrader5")
        mt5.shutdown()
        return False
    return True

Die ersten Zeilen des Codes sind ein Handschlag zwischen der Welt der Algorithmen und der Welt der Finanzen. Es mag wie ein einfacher Funktionsaufruf erscheinen, aber dahinter verbirgt sich die Schaffung eines Kanals, durch den Gigabytes von Marktdaten fließen werden, Kurse, die sich aus dem Schnittpunkt der Entscheidungen von Millionen von Händlern aus der ganzen Welt ergeben.

Unser System wird das Agg-Backend zur Visualisierung ohne GUI verwenden. Es ist ein kleines, aber wichtiges Detail, das es ermöglicht, im Hintergrund auf entfernten Servern zu laufen, ohne die wachsame Überwachung des Marktes auch nur für eine Sekunde zu unterbrechen.


Eintauchen in die Geschichte: Datenerhebung und -aufbereitung

Jede künstliche Intelligenz beginnt mit Daten. Für unser System sind dies Tausende von EURUSD-Stundenkerzen, die stumme Zeugen vergangener Preiskämpfe sind und Muster enthalten, die wir aufdecken wollen:

def get_historical_data(symbol="EURUSD", timeframe=mt5.TIMEFRAME_H1, num_bars=1000):
    now = datetime.now()
    from_date = now - timedelta(days=num_bars/24)  # Approximate for hourly bars
    
    rates = mt5.copy_rates_range(symbol, timeframe, from_date, now)
    if rates is None or len(rates) == 0:
        print("Error loading historical quotes")
        return None
    
    # Convert to pandas DataFrame
    rates_frame = pd.DataFrame(rates)
    rates_frame['time'] = pd.to_datetime(rates_frame['time'], unit='s')
    rates_frame.set_index('time', inplace=True)
    
    return rates_frame

Bei dieser Funktion geschieht der erste Zauber: Rohbytes werden in einen geordneten Datenstrom umgewandelt. Jede Kerze, jede Kursschwankung wird zu einem Punkt in einem mehrdimensionalen Raum, den unser neuronales Netz erkunden wird. Wir laden die Historie von 2.000 Kerzen. Es reicht aus, dass das Modell eine Vielzahl von Marktbedingungen erfassen kann, von ruhigen Trends bis hin zu chaotischen Perioden hoher Volatilität.

Für die Computer Vision werden jedoch nicht nur Zahlen, sondern auch Bilder benötigt. Der nächste Schritt ist die Umwandlung von Zeitreihen in „Bilder“, die unser Faltungsnetzwerk analysieren kann:

def create_images(data, window_size=48, prediction_window=24):
    images = []
    targets = []
    
    # Using OHLC data to create images
    for i in range(len(data) - window_size - prediction_window):
        window_data = data.iloc[i:i+window_size]
        target_data = data.iloc[i+window_size:i+window_size+prediction_window]
        
        # Normalize data in the window
        scaler = MinMaxScaler(feature_range=(0, 1))
        window_scaled = scaler.fit_transform(window_data[['open', 'high', 'low', 'close']])
        
        # Predict price direction (up/down) for the forecast period
        price_direction = 1 if target_data['close'].iloc[-1] > window_data['close'].iloc[-1] else 0
        
        images.append(window_scaled)
        targets.append(price_direction)
    
    return np.array(images), np.array(targets)

Dies ist Datenalchemie in ihrer reinsten Form. Wir nehmen ein Fenster von 48 aufeinanderfolgenden Kursbalken, normalisieren ihre Werte auf einen Bereich zwischen 0 und 1 und wandeln sie in ein Mehrkanalbild um, wobei jeder Kanal einer der OHLC-Komponenten entspricht. Für jeden solchen „Rahmen“ der Marktgeschichte bestimmen wir einen Zielwert – die Richtung der Preisbewegung 24 Balken in die Zukunft.

Ein gleitendes Fenster bewegt sich sequentiell durch den gesamten Datensatz und erzeugt so Tausende von Beispielen für das Training. Es ist wie ein erfahrener Händler, der historische Charts durchblättert, Marktmuster aufnimmt und lernt, Situationen zu erkennen, die bedeutenden Bewegungen vorausgehen.


Entwurf eines neuronalen „Auges“: Modell der Architektur

Lassen Sie uns nun mit der Erstellung des richtigen neuronalen Netzes fortfahren. Es ist ein künstliches Auge, das in das Chaos der Marktdaten hineinschaut, um eine versteckte Ordnung zu finden. Unsere Architektur ist von den jüngsten Fortschritten im Bereich der Computer Vision inspiriert, aber an die Besonderheiten von Finanzzeitreihen angepasst:

def train_cv_model(images, targets):
    # Split data into training and validation sets
    X_train, X_val, y_train, y_val = train_test_split(images, targets, test_size=0.2, shuffle=True, random_state=42)
    
    # Create model with improved architecture
    inputs = Input(shape=X_train.shape[1:])
    
    # First convolutional block
    x = Conv1D(filters=64, kernel_size=3, padding='same', activation='relu')(inputs)
    x = BatchNormalization()(x)
    x = Conv1D(filters=64, kernel_size=3, padding='same', activation='relu')(x)
    x = BatchNormalization()(x)
    x = MaxPooling1D(pool_size=2)(x)
    x = Dropout(0.2)(x)
    
    # Second convolutional block
    x = Conv1D(filters=128, kernel_size=3, padding='same', activation='relu')(x)
    x = BatchNormalization()(x)
    x = Conv1D(filters=128, kernel_size=3, padding='same', activation='relu')(x)
    x = BatchNormalization()(x)
    x = MaxPooling1D(pool_size=2)(x)
    feature_maps = x  # Store feature maps for visualization
    x = Dropout(0.2)(x)
    
    # Output block
    x = Flatten()(x)
    x = Dense(128, activation='relu')(x)
    x = BatchNormalization()(x)
    x = Dropout(0.3)(x)
    x = Dense(64, activation='relu')(x)
    x = BatchNormalization()(x)
    x = Dropout(0.3)(x)
    outputs = Dense(1, activation='sigmoid')(x)
    
    # Create the full model
    model = Model(inputs=inputs, outputs=outputs)
    
    # Create a feature extraction model for visualization
    feature_model = Model(inputs=model.input, outputs=feature_maps)

Wir verwenden die funktionale API von Keras anstelle eines sequenziellen Modells. Dies gibt uns die Flexibilität, ein zusätzliches Modell zu erstellen, das Zwischendarstellungen für die Visualisierung extrahiert. Das ist ein Schlüsselelement unseres Ansatzes: Wir schaffen nicht nur ein Vorhersagesystem, sondern auch ein Werkzeug, mit dem wir in das „Bewusstsein“ der künstlichen Intelligenz blicken können.

Die Architektur besteht aus zwei Faltungsblöcken, die jeweils zwei Faltungsschichten mit Stapelnormalisierung enthalten. Der erste Block arbeitet mit 64 Filtern, der zweite mit 128 Filtern, wobei nach und nach immer komplexere Muster sichtbar werden. Nach der Merkmalsextraktion werden die Daten durch mehrere vollständig verknüpfte Schichten geleitet, die die erhaltenen Informationen integrieren, um die endgültige Vorhersage zu erstellen.

Beim Training eines Modells geht es nicht nur darum, eine Verlustfunktion zu minimieren, sondern es ist eine Reise durch die Parameterlandschaft, bei der uns jede Iteration dem Ziel näher bringt:

# Early stopping to prevent overfitting
early_stopping = EarlyStopping(
    monitor='val_loss',
    patience=10,
    restore_best_weights=True,
    verbose=1
)

# Train model
history = model.fit(
    X_train, y_train,
    epochs=50,
    batch_size=32,
    validation_data=(X_val, y_val),
    callbacks=[early_stopping],
    verbose=1
)

Wir verwenden Early Stopping, um eine Überanpassung zu verhindern – das neuronale Netz hört auf zu lernen, wenn es sich im Validierungsset nicht mehr verbessert. Auf diese Weise können wir die goldene Mitte zwischen Underfitting und Overfitting finden, den Punkt der maximalen Generalisierungsfähigkeit.


Ein Blick in das Bewusstsein der künstlichen Intelligenz

Die Einzigartigkeit unseres Ansatzes liegt in der Möglichkeit, zu visualisieren, wie das Modell den Markt „sieht“. Wir haben zwei spezielle Funktionen entwickelt, die es uns ermöglichen, in die Geheimnisse des neuronalen Rechnens einzudringen:

def visualize_model_perception(feature_model, last_window_scaled, window_size=48):
    # Get feature maps for the last window
    feature_maps = feature_model.predict(np.array([last_window_scaled]))[0]
    
    # Plot feature maps
    plt.figure(figsize=(7, 10))
    
    # Plot original data
    plt.subplot(5, 1, 1)
    plt.title("Original Price Data (Normalized)")
    plt.plot(np.arange(window_size), last_window_scaled[:, 0], label='Open', alpha=0.7)
    plt.plot(np.arange(window_size), last_window_scaled[:, 1], label='High', alpha=0.7)
    plt.plot(np.arange(window_size), last_window_scaled[:, 2], label='Low', alpha=0.7)
    plt.plot(np.arange(window_size), last_window_scaled[:, 3], label='Close', color='black', linewidth=2)
    
    # Plot candlestick representation
    plt.subplot(5, 1, 2)
    plt.title("Candlestick Representation")
    
    # Width of the candles
    width = 0.6
    
    for i in range(len(last_window_scaled)):
        # Candle color
        if last_window_scaled[i, 3] >= last_window_scaled[i, 0]:  # close >= open
            color = 'green'
            body_bottom = last_window_scaled[i, 0]  # open
            body_height = last_window_scaled[i, 3] - last_window_scaled[i, 0]  # close - open
        else:
            color = 'red'
            body_bottom = last_window_scaled[i, 3]  # close
            body_height = last_window_scaled[i, 0] - last_window_scaled[i, 3]  # open - close
        
        # Candle body
        plt.bar(i, body_height, bottom=body_bottom, color=color, width=width, alpha=0.5)
        
        # Candle wicks
        plt.plot([i, i], [last_window_scaled[i, 2], last_window_scaled[i, 1]], color='black', linewidth=1)
    
    # Plot feature maps visualization (first 3 channels)
    plt.subplot(5, 1, 3)
    plt.title("Feature Map Channel 1 - Pattern Recognition")
    plt.plot(time_indices, feature_maps[:, 0], color='blue')
    
    plt.subplot(5, 1, 4)
    plt.title("Feature Map Channel 2 - Trend Detection")
    plt.plot(time_indices, feature_maps[:, 1], color='orange')
    
    plt.subplot(5, 1, 5)
    plt.title("Feature Map Channel 3 - Volatility Detection")
    plt.plot(time_indices, feature_maps[:, 2], color='green')

Diese Funktion erstellt eine Visualisierung mit mehreren Feldern, die die Originaldaten, die Kerzen-Darstellung und die Aktivierungen der ersten drei Kanäle der Faltungsfilter zeigt. Jeder Kanal ist auf einen bestimmten Aspekt der Marktdynamik spezialisiert: Ein Kanal erfasst wiederkehrende Muster, ein anderer konzentriert sich auf Trends, und der dritte reagiert auf Volatilität. Es ist so, als würde man die Spezialisierung verschiedener Bereiche des Gehirns eines erfahrenen Händlers aufdecken.

Noch spannendere Ergebnisse liefert die Heatmap der Aufmerksamkeit:

def visualize_attention_heatmap(feature_model, last_window_scaled, window_size=48):
    # Get feature maps for the last window
    feature_maps = feature_model.predict(np.array([last_window_scaled]))[0]
    
    # Average activation across all channels to get a measure of "attention"
    avg_activation = np.mean(np.abs(feature_maps), axis=1)
    
    # Normalize to [0, 1] for visualization
    attention = (avg_activation - np.min(avg_activation)) / (np.max(avg_activation) - np.min(avg_activation))
    
    # Upsample attention to match original window size
    upsampled_attention = np.zeros(window_size)
    ratio = window_size / len(attention)
    
    for i in range(len(attention)):
        start_idx = int(i * ratio)
        end_idx = int((i+1) * ratio)
        upsampled_attention[start_idx:end_idx] = attention[i]
    
    # Plot the heatmap
    plt.figure(figsize=(7, 6))
    
    # Price plot with attention heatmap
    plt.subplot(2, 1, 1)
    plt.title("Model Attention Heatmap")
    
    # Plot close prices
    time_indices = np.arange(window_size)
    plt.plot(time_indices, last_window_scaled[:, 3], color='black', linewidth=2, label='Close Price')
    
    # Add shading based on attention
    plt.fill_between(time_indices, last_window_scaled[:, 3].min(), last_window_scaled[:, 3].max(), 
                     alpha=upsampled_attention * 0.5, color='red')
                     
    # Highlight points with high attention
    high_attention_threshold = 0.7
    high_attention_indices = np.where(upsampled_attention > high_attention_threshold)[0]
    plt.scatter(high_attention_indices, last_window_scaled[high_attention_indices, 3], 
               color='red', s=50, zorder=5, label='High Attention Points')

Mit dieser Funktion wird eine echte Zuordnungsmodell des Bewusstseins erstellt, aus dem hervorgeht, welchen Bereichen des Charts es bei der Entscheidungsfindung die größte Aufmerksamkeit schenkt. Rote Zonen mit erhöhter Aufmerksamkeit fallen oft mit wichtigen Niveaus und Umkehrpunkten zusammen, was bestätigt, dass unser Modell tatsächlich gelernt hat, bedeutende Preisformationen zu erkennen.


Von der Prognose zum Gewinn: Praktische Anwendung

Der Schlussakkord unseres Systems ist die Visualisierung der Prognose und ihre Darstellung in einer für den Händler verständlichen Form:

def plot_prediction(data, window_size=48, prediction_window=24, direction="UP ▲"):
    plt.figure(figsize=(7, 4.2))
    
    # Get the last window of data for visualization
    last_window = data.iloc[-window_size:]
    
    # Create time index for prediction
    last_date = last_window.index[-1]
    future_dates = pd.date_range(start=last_date, periods=prediction_window+1, freq=data.index.to_series().diff().mode()[0])[1:]
    
    # Plot closing prices
    plt.plot(last_window.index, last_window['close'], label='Historical Data')
    
    # Add marker for current price
    current_price = last_window['close'].iloc[-1]
    plt.scatter(last_window.index[-1], current_price, color='blue', s=100, zorder=5)
    plt.annotate(f'Current price: {current_price:.5f}', 
                 xy=(last_window.index[-1], current_price),
                 xytext=(10, -30),
                 textcoords='offset points',
                 fontsize=10,
                 arrowprops=dict(arrowstyle='->', color='black'))
    
    # Visualize the predicted direction
    arrow_start = (last_window.index[-1], current_price)
    
    # Calculate range for the arrow (approximately 10% of price range)
    price_range = last_window['high'].max() - last_window['low'].min()
    arrow_length = price_range * 0.1
    
    # Up or down prediction
    if direction == "UP ▲":
        arrow_end = (future_dates[-1], current_price + arrow_length)
        arrow_color = 'green'
    else:
        arrow_end = (future_dates[-1], current_price - arrow_length)
        arrow_color = 'red'
    
    # Direction arrow
    plt.annotate('', 
                 xy=arrow_end,
                 xytext=arrow_start,
                 arrowprops=dict(arrowstyle='->', lw=2, color=arrow_color))
    
    plt.title(f'EURUSD - Forecast for {prediction_window} periods: {direction}')

Diese Visualisierung verwandelt eine abstrakte Prognose in ein klares Handelssignal. Der grüne Pfeil steht für ein erwartetes Wachstum, der rote für einen Rückgang. Ein Händler kann die aktuelle Situation sofort einschätzen und mit Hilfe der Analyse künstlicher Intelligenz eine Entscheidung treffen.

Aber unser System geht über eine einfache Richtungsvorhersage hinaus. Sie liefert eine quantitative Bewertung des Vertrauens in die Prognose:

# Predict on the last available window
def make_prediction(model, data, window_size=48):
    # Get the last window of data
    last_window = data.iloc[-window_size:][['open', 'high', 'low', 'close']]
    
    # Normalize data
    scaler = MinMaxScaler(feature_range=(0, 1))
    last_window_scaled = scaler.fit_transform(last_window)
    
    # Prepare data for the model
    last_window_reshaped = np.array([last_window_scaled])
    
    # Get prediction
    prediction = model.predict(last_window_reshaped)[0][0]
    
    # Interpret result
    direction = "UP ▲" if prediction > 0.5 else "DOWN ▼"
    confidence = prediction if prediction > 0.5 else 1 - prediction
    
    return direction, confidence * 100, last_window_scaled

Der Ausgangswert des neuronalen Netzes wird nicht nur als binäre Antwort interpretiert, sondern als Wahrscheinlichkeit einer Aufwärtsbewegung. Dies ermöglicht dem Händler, fundierte Entscheidungen zu treffen, wobei er nicht nur die Richtung, sondern auch das Vertrauen des Systems in seine Vorhersage berücksichtigt. Eine Vorhersage mit einer Wahrscheinlichkeit von 95 % kann eine aggressivere Position rechtfertigen als eine Vorhersage mit einer Wahrscheinlichkeit von 55 %.


Orchestrierung des Prozesses: Die Hauptfunktion

Alle Systemelemente sind in der Hauptfunktion zusammengefasst, die den gesamten Prozess von der Verbindung mit den Daten bis zur Visualisierung der Ergebnisse koordiniert:

def main():
    print("Starting EURUSD prediction system with computer vision")
    
    # Connect to MT5
    if not connect_to_mt5():
        return
    
    print("Successfully connected to MetaTrader5")
    
    # Load historical data
    bars_to_load = 2000  # Load more than needed for training
    data = get_historical_data(num_bars=bars_to_load)
    if data is None:
        mt5.shutdown()
        return
    
    print(f"Loaded {len(data)} bars of EURUSD history")
    
    # Convert data to image format
    print("Converting data for computer vision processing...")
    images, targets = create_images(data)
    print(f"Created {len(images)} images for training")
    
    # Train model
    print("Training computer vision model...")
    model, history, feature_model = train_cv_model(images, targets)
    
    # Visualize training process
    plot_learning_history(history)
    
    # Prediction
    direction, confidence, last_window_scaled = make_prediction(model, data)
    print(f"Forecast for the next 24 periods: {direction} (confidence: {confidence:.2f}%)")
    
    # Visualize prediction
    plot_prediction(data, direction=direction)
    
    # Visualize how the model "sees" the market
    visualize_model_perception(feature_model, last_window_scaled)
    
    # Visualize attention heatmap
    visualize_attention_heatmap(feature_model, last_window_scaled)
    
    # Disconnect from MT5
    mt5.shutdown()
    print("Work completed")

Diese Funktion ist wie ein Dirigent, der eine komplexe Sinfonie von Daten und Algorithmen leitet. Er führt uns Schritt für Schritt durch den gesamten Prozess, von der ersten Verbindung zum Terminal bis zu den endgültigen Visualisierungen, die die innere Welt der künstlichen Intelligenz offenbaren.


Schlussfolgerung: Eine neue Ära des algorithmischen Handels

Wir haben etwas geschaffen, das mehr ist als nur ein weiterer technischer Indikator oder ein Handelssystem. Unser Computer-Vision-Modell ist eine neue Art der Marktwahrnehmung, ein Werkzeug, das es uns ermöglicht, über das menschliche Sehen hinauszuschauen und Muster zu entdecken, die im Rauschen der Kursbewegungen verborgen sind.

Es ist nicht nur eine Blackbox, das Signale unbekannter Herkunft aussendet. Dank der Visualisierungen können wir sehen, wie das Modell den Markt wahrnimmt, welche Merkmale der Preisbewegung es beachtet und wie seine Prognosen gebildet werden. Dies schafft eine neue Ebene des Vertrauens und des Verständnisses zwischen dem Händler und dem Algorithmus.

In einer Zeit, in der Hochfrequenz-Algorithmen Millionen von Handelsgeschäften pro Sekunde ausführen, stellt unser System einen anderen, tiefgreifenderen Ansatz für den algorithmischen Handel dar, einen Ansatz, der nicht auf der Ausführungsgeschwindigkeit basiert, sondern auf einem tiefen Verständnis der Marktdynamik durch die Linse der Computer Vision.

Der Code ist offen, die Technologie ist zugänglich, die Ergebnisse sind beeindruckend. Ihre Reise in die Welt der Computer Vision für den Handel hat gerade erst begonnen. Und wer weiß, vielleicht ermöglicht Ihnen gerade diese Perspektive – durch das algorithmische Prisma neuronaler Netze – zu sehen, was bisher unsichtbar blieb, und den Schlüssel zum Verständnis des sich ständig verändernden Tanzes der Devisennotierungen zu finden.

Stellen Sie sich eine Handelssitzung der Zukunft vor: Auf Ihrem Bildschirm erscheinen nicht nur die traditionellen Kerzen-Charts und Indikatorlinien, sondern auch eine Live-Visualisierung dessen, wie die künstliche Intelligenz die aktuelle Marktsituation wahrnimmt, welche Muster sie hervorhebt und welchen Kursniveaus sie besondere Aufmerksamkeit schenkt. Dies ist keine Science-Fiction. Es handelt sich um eine heute verfügbare Technologie. Es bleibt nur noch, einen Schritt in Richtung einer neuen Ära des algorithmischen Handels zu tun.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/17981

Beigefügte Dateien |
CV_Model.py (15.71 KB)
Die Übertragung der Trading-Signale in einem universalen Expert Advisor. Die Übertragung der Trading-Signale in einem universalen Expert Advisor.
In diesem Artikel wurden die verschiedenen Möglichkeiten beschrieben, um die Trading-Signale von einem Signalmodul des universalen EAs zum Steuermodul der Positionen und Orders zu übertragen. Es wurden die seriellen und parallelen Interfaces betrachtet.
Visualisierung von Strategien in MQL5: Verteilung der Optimierungsergebnisse auf die Kriteriendiagramme Visualisierung von Strategien in MQL5: Verteilung der Optimierungsergebnisse auf die Kriteriendiagramme
In diesem Artikel schreiben wir ein Beispiel für die Visualisierung des Optimierungsprozesses und zeigen die drei besten Durchgänge für die vier Optimierungskriterien. Wir werden auch die Möglichkeit bieten, einen der drei besten Durchgänge für die Darstellung der Daten in Tabellen und Charts auszuwählen.
Eine alternative Log-datei mit der Verwendung der HTML und CSS Eine alternative Log-datei mit der Verwendung der HTML und CSS
In diesem Artikel werden wir eine sehr einfache, aber leistungsfähige Bibliothek zur Erstellung der HTML-Dateien schreiben, dabei lernen wir auch, wie man eine ihre Darstellung einstellen kann (nach seinem Geschmack) und sehen wir, wie man es leicht in seinem Expert Advisor oder Skript hinzufügen oder verwenden kann.
Erstellung einer Strategie der Rückkehr zum Mittelwert auf der Grundlage von maschinellem Lernen Erstellung einer Strategie der Rückkehr zum Mittelwert auf der Grundlage von maschinellem Lernen
In diesem Artikel wird ein weiterer, origineller Ansatz für die Entwicklung von Handelssystemen auf der Grundlage von maschinellem Lernen vorgeschlagen, bei dem Clustering und Trade Labeling für die Strategien der Rückkehr zum Mittelwert eingesetzt werden.