Русский
preview
Mineração de dados dos balanços dos bancos centrais e obtenção de um panorama da liquidez global

Mineração de dados dos balanços dos bancos centrais e obtenção de um panorama da liquidez global

MetaTrader 5Sistemas de negociação |
39 1
Yevgeniy Koshtenko
Yevgeniy Koshtenko

As crises financeiras do século XXI, desde o colapso hipotecário de 2008 até os choques pandêmicos da década de 2020, mudaram radicalmente as regras do jogo. Os bancos centrais não se limitam mais ao papel modesto de reguladores das taxas de juros. Seu arsenal foi ampliado com instrumentos exóticos, como a recompra de títulos corporativos, o crédito direto aos bancos, swaps cambiais e até mesmo o financiamento de gastos governamentais. Essas medidas, como bombas poderosas, injetam ou retiram liquidez da economia global, refletindo-se nos balanços dos bancos centrais, que funcionam como verdadeiros espelhos de sua política monetária.

Este artigo não é apenas um guia para a análise dos balanços dos bancos centrais. Trata-se de um mergulho profundo na criação de um sistema que, como um caldeirão alquímico, transforma dados brutos de liquidez em previsões valiosas dos movimentos dos pares de moedas. Nós reuniremos informações do Federal Reserve dos Estados Unidos (Fed), do Banco Central Europeu (BCE), do Banco do Japão (BOJ) e do Banco Popular da China (PBoC) para criar um índice composto de liquidez global. Vamos destrinchar como o aprendizado de máquina e a análise técnica podem trabalhar em conjunto para captar padrões ocultos, inacessíveis aos métodos tradicionais. Além disso, mostraremos como integrar esse sistema ao trading real, transformando dados abstratos em decisões concretas de trading.

A análise técnica tradicional, com seus gráficos e indicadores, muitas vezes se assemelha a uma tentativa de prever o clima observando apenas as nuvens. A análise fundamentalista, por outro lado, exige um mergulho profundo na macroeconomia, o que nem sempre é adequado para decisões rápidas no trading. Nossa abordagem é uma ponte entre esses dois mundos, em que os dados de liquidez se tornam a chave para compreender tanto os movimentos de curto prazo quanto as tendências de longo prazo. 


Fundamentos teóricos: liquidez como o pulso da economia global

A liquidez global não é apenas a soma do dinheiro em circulação. Ela é a força vital da economia mundial, um sistema complexo que integra agregados monetários, instrumentos financeiros e mecanismos que garantem o fluxo livre de capital. Em um sentido mais restrito, liquidez é a capacidade de um ativo se converter rapidamente em dinheiro sem perda de valor. Mas, em escala global, ela reflete o quão facilmente o capital se move entre países, mercados e setores. O próprio movimento do capital é a criação de tendências de longo prazo extremamente poderosas.

Os bancos centrais, Fed, BCE, BOJ e PBoC, atuam como os principais maestros dessa orquestra. Seus balanços não são meros relatórios contábeis, mas indicadores de quanto dinheiro foi injetado na economia por meio da compra de ativos, do crédito ou de outras medidas. Quando o Fed compra títulos do governo, ele cria nova liquidez, ampliando seu balanço. Quando o BCE eleva os requisitos de reserva, ele retira liquidez, estreitando os fluxos monetários.

O aumento do balanço de um banco central por meio de afrouxamento quantitativo ou recompra de ativos geralmente enfraquece a moeda nacional. Isso ocorre por dois motivos. Primeiro, o crescimento da massa monetária reduz o valor da moeda pelas leis de oferta e demanda. Segundo, essas medidas frequentemente são acompanhadas pela redução das taxas de juros, o que torna a moeda menos atraente para investidores em busca de rentabilidade.

No entanto, essa relação não é tão simples. Se todos os principais bancos centrais expandem seus balanços simultaneamente, o efeito sobre os pares de moedas pode ser mínimo, pois todas as moedas se "inflam" de forma sincronizada. O fator-chave passa a ser a dinâmica relativa, se o BOJ aumenta o balanço mais rapidamente do que o Fed, o iene provavelmente se enfraquecerá em relação ao dólar.

Compreender como a liquidez é transmitida pelo sistema financeiro é de importância crítica para a previsão. Existem vários canais:

  • Canal de juros: a redução das taxas pelo banco central aumenta a massa monetária, o que diminui a rentabilidade dos ativos em moeda e enfraquece a moeda.
  • Canal de portfólio: as compras em massa de ativos pelos bancos centrais alteram a estrutura dos portfólios dos investidores, forçando-os a buscar investimentos alternativos.
  • Canal de crédito: a melhoria das condições de crédito estimula a atividade econômica e influencia os fluxos cambiais.
  • Canal de expectativas: a comunicação e os sinais antecipados dos bancos centrais formam as expectativas do mercado antes mesmo das ações efetivas. 

As expectativas sobre a política futura geram tendências futuras, agora vamos analisar isso com mais detalhes.

Na era da transparência informacional, os bancos centrais se transformaram em verdadeiros mestres da comunicação. Suas declarações, coletivas de imprensa e projeções não são apenas palavras, mas instrumentos poderosos que moldam as expectativas do mercado. Quando o presidente do Fed sugere um aperto da política, os mercados podem começar a vender o dólar antes mesmo da decisão oficial. A análise de liquidez deve considerar não apenas os números dos balanços, mas também a retórica das autoridades, que pode ser tão importante quanto as ações efetivas.


Arquitetura do sistema: engenharia do futuro financeiro

Nosso sistema não é um monólito, mas uma mosaico cuidadosamente estruturado, em que cada módulo cumpre uma função claramente definida. GlobalLiquidityMiner coleta e processa dados sobre os balanços dos bancos centrais, transformando fluxos caóticos de informação em séries temporais organizadas. ForexLiquidityForecaster utiliza esses dados, enriquecendo-os com indicadores técnicos e processando-os por meio de algoritmos de aprendizado de máquina para criar previsões precisas. Essa abordagem permite atualizar componentes individuais sem comprometer todo o sistema e adaptá-lo a novas fontes de dados ou às condições de mercado.

Os mercados financeiros são sistemas adaptativos complexos, em que o sentimento de curto prazo dos traders se entrelaça com tendências macroeconômicas de longo prazo. Nossa arquitetura reflete essa dualidade, combinando sinais técnicos rápidos com fatores fundamentais profundos.

O módulo GlobalLiquidityMiner é o coração do sistema de coleta de dados. Ele trabalha com fontes heterogêneas, desde a API FRED para o Fed até os formatos complexos de dados do BOJ e as informações limitadas do PBoC. A principal tarefa não é apenas carregar os dados, mas convertê-los a um padrão único, adequado para análise. Diferentes bancos publicam dados com periodicidades distintas (relatórios semanais do Fed contra dados trimestrais do PBoC) e em moedas diferentes. O módulo interpola valores ausentes, normaliza os indicadores e sincroniza as séries temporais.

import pandas as pd
import logging
from typing import Dict
from fredapi import Fred
import yfinance as yf
import requests
from io import StringIO

logger = logging.getLogger(__name__)

class GlobalLiquidityMiner:
    def __init__(self, fred_api_key: str, start_date: str, end_date: str):
        self.fred = Fred(api_key=fred_api_key) if fred_api_key else None
        self.start_date = start_date
        self.end_date = end_date
        self.data_cache = {}

    def fetch_central_bank_balance_sheets(self) -> Dict[str, pd.DataFrame]:
        """Получение данных балансов центральных банков."""
        balance_sheets = {}
        
        if self.fred:
            logger.info("Загрузка данных ФРС...")
            try:
                fed_total_assets = self.fred.get_series('WALCL', start=self.start_date, end=self.end_date)
                fed_securities = self.fred.get_series('WSHOSHO', start=self.start_date, end=self.end_date)
                fed_loans = self.fred.get_series('WLRRAL', start=self.start_date, end=self.end_date)
                
                balance_sheets['FED'] = pd.DataFrame({
                    'date': fed_total_assets.index,
                    'total_assets': fed_total_assets.values,
                    'securities_held': fed_securities.reindex(fed_total_assets.index, method='ffill').values,
                    'loans_and_repos': fed_loans.reindex(fed_total_assets.index, method='ffill').values,
                    'currency': 'USD'
                })
                
                balance_sheets['FED']['assets_growth_rate'] = balance_sheets['FED']['total_assets'].pct_change(periods=52)
                balance_sheets['FED']['securities_share'] = balance_sheets['FED']['securities_held'] / balance_sheets['FED']['total_assets']
                
                logger.info(f"Загружено {len(fed_total_assets)} записей данных ФРС")
            except Exception as e:
                logger.error(f"Ошибка при загрузке данных ФРС: {e}")
        
        self.data_cache['balance_sheets'] = balance_sheets
        return balance_sheets

O módulo combina os dados de liquidez com indicadores técnicos, criando características para os modelos de aprendizado de máquina. O uso de janelas deslizantes permite considerar efeitos de curto e longo prazo das mudanças na liquidez.

from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import r2_score, mean_squared_error
import numpy as np

class ForexLiquidityForecaster:
    def __init__(self, liquidity_miner: GlobalLiquidityMiner):
        self.liquidity_miner = liquidity_miner
        self.models = {}
        self.scalers = {}
        
    def build_prediction_model(self, symbol: str, feature_df: pd.DataFrame):
        """Обучение модели прогнозирования."""
        targets = {
            f'return_{h}d': feature_df['close'].shift(-h) / feature_df['close'] - 1
            for h in [1, 5]
        }
        
        feature_columns = [col for col in feature_df.columns if not col.startswith(('return_', 'volatility_', 'direction_'))]
        X = feature_df[feature_columns].dropna()
        
        train_size = int(len(X) * 0.8)
        X_train, X_test = X.iloc[:train_size], X.iloc[train_size:]
        
        models = {}
        for target_name, target_series in targets.items():
            y = target_series.dropna()
            common_idx = X.index.intersection(y.index)
            X_aligned, y_aligned = X.loc[common_idx], y.loc[common_idx]
            
            scaler = StandardScaler()
            X_train_scaled = scaler.fit_transform(X_aligned.iloc[:train_size])
            X_test_scaled = scaler.transform(X_aligned.iloc[train_size:])
            
            model = RandomForestRegressor(n_estimators=100, max_depth=10, random_state=42)
            model.fit(X_train_scaled, y_aligned.iloc[:train_size])
            
            test_pred = model.predict(X_test_scaled)
            test_r2 = r2_score(y_aligned.iloc[train_size:], test_pred)
            
            models[target_name] = {'model': model, 'scaler': scaler, 'r2': test_r2}
        
        self.models[symbol] = models
        self.scalers[symbol] = scaler

O módulo ForexLiquidityForecaster é o cérebro do sistema, onde os dados de liquidez encontram os indicadores de mercado. Ele utiliza Random Forest para identificar dependências não lineares entre os balanços dos bancos centrais, os indicadores técnicos (RSI, MACD, médias móveis) e o movimento dos pares de moedas. As características são criadas levando em conta defasagens temporais para capturar tanto efeitos imediatos quanto retardados das mudanças na liquidez.

from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import r2_score
import numpy as np
import pandas as pd

class ForexLiquidityForecaster:
    def __init__(self, liquidity_miner: GlobalLiquidityMiner):
        self.liquidity_miner = liquidity_miner
        self.models = {}
        self.scalers = {}
        self.forecasts = {}

    def prepare_features(self, symbol: str, historical_data: pd.DataFrame) -> pd.DataFrame:
        """Создание признаков для прогнозирования."""
        df = historical_data.copy()
        
        # Технические индикаторы
        df['rsi_14'] = self.calculate_rsi(df['close'], 14)
        df['ema_50'] = df['close'].ewm(span=50).mean()
        df['volatility_20d'] = df['close'].pct_change().rolling(20).std()
        
        # Присоединение данных ликвидности
        if 'balance_sheets' in self.liquidity_miner.data_cache:
            for bank, bs_data in self.liquidity_miner.data_cache['balance_sheets'].items():
                df = df.join(bs_data[['total_assets']].rename(columns={'total_assets': f'{bank}_balance'}), how='left')
                df[f'{bank}_balance'].fillna(method='ffill', inplace=True)
        
        return df.dropna()

    def calculate_rsi(self, series: pd.Series, period: int = 14) -> pd.Series:
        """Расчет RSI."""
        delta = series.diff()
        gain = delta.where(delta > 0, 0).rolling(window=period).mean()
        loss = -delta.where(delta < 0, 0).rolling(window=period).mean()
        rs = gain / loss
        return 100 - (100 / (1 + rs))

    def build_prediction_model(self, symbol: str, feature_df: pd.DataFrame):
        """Обучение модели прогнозирования."""
        targets = {
            f'return_{h}d': feature_df['close'].shift(-h) / feature_df['close'] - 1
            for h in [1, 3, 5, 8]
        }
        
        feature_columns = [col for col in feature_df.columns if not col.startswith('return_')]
        X = feature_df[feature_columns].dropna()
        
        train_size = int(len(X) * 0.8)
        X_train, X_test = X.iloc[:train_size], X.iloc[train_size:]
        
        models = {}
        for target_name, target_series in targets.items():
            y = target_series.dropna()
            common_idx = X.index.intersection(y.index)
            X_aligned, y_aligned = X.loc[common_idx], y.loc[common_idx]
            
            scaler = StandardScaler()
            X_train_scaled = scaler.fit_transform(X_aligned.iloc[:train_size])
            X_test_scaled = scaler.transform(X_aligned.iloc[train_size:])
            
            model = RandomForestRegressor(n_estimators=200, max_depth=15, random_state=42)
            model.fit(X_train_scaled, y_aligned.iloc[:train_size])
            
            test_pred = model.predict(X_test_scaled)
            test_r2 = r2_score(y_aligned.iloc[train_size:], test_pred)
            
            models[target_name] = {'model': model, 'scaler': scaler, 'r2': test_r2}
        
        self.models[symbol] = models
        self.scalers[symbol] = scaler


Implementação prática: dos dados às ações

A API FRED é um verdadeiro tesouro de dados sobre o balanço do Fed, incluindo ativos totais, títulos financeiros e créditos. O código lida com as limitações da API, como limites de requisições, e sincroniza dados com diferentes periodicidades.

def fetch_fed_data(self):
    """Получение данных ФРС через API FRED."""
    try:
        fed_data = self.fred.get_series('WALCL', start=self.start_date, end=self.end_date)
        return pd.DataFrame({
            'date': fed_data.index,
            'total_assets': fed_data.values,
            'currency': 'USD'
        }).set_index('date')
    except Exception as e:
        logger.error(f"Ошибка загрузки данных ФРС: {e}")
        return pd.DataFrame()

Para o BCE, os dados são extraídos por meio do Statistical Data Warehouse e, em caso de falhas, utilizam-se indicadores proxy, como EURUSD e Euro Stoxx 50. Para o BOJ e o PBoC, onde o acesso aos dados é limitado, aplicam-se indicadores de mercado, como Nikkei 225, USDJPY e títulos chineses.

def fetch_boj_proxy_data(self):
    """Получение прокси-данных BOJ."""
    try:
        usdjpy = yf.download('USDJPY=X', start=self.start_date, end=self.end_date, progress=False)
        nikkei = yf.download('^N225', start=self.start_date, end=self.end_date, progress=False)
        
        proxy_balance = pd.DataFrame(index=usdjpy.index)
        proxy_balance['jpy_strength'] = 1 / usdjpy['Close']
        proxy_balance['equity_liquidity'] = nikkei['Close'] / nikkei['Close'].rolling(252).mean()
        proxy_balance['synthetic_balance'] = proxy_balance['jpy_strength'].rolling(30).mean() * proxy_balance['equity_liquidity'] * 1000000
        
        return proxy_balance
    except Exception as e:
        logger.error(f"Ошибка загрузки данных BOJ: {e}")
        return pd.DataFrame()


Índice de liquidez: criação de uma bússola financeira

O índice composto de liquidez unifica os dados normalizados dos balanços dos bancos centrais com pesos que refletem sua influência: Fed (35%), BCE (25%), BOJ (15%), PBoC (20%), outros (5%). O ajuste dinâmico leva em consideração a volatilidade e a confiabilidade dos dados.

def calculate_liquidity_index(self) -> pd.DataFrame:
    """Расчет композитного индекса ликвидности."""
    all_series = {}
    weights = {'FED_balance': 0.35, 'ECB_balance': 0.25, 'BOJ_balance': 0.15, 'PBOC_balance': 0.20}
    
    for bank, df in self.data_cache.get('balance_sheets', {}).items():
        series_name = f'{bank}_balance'
        normalized = (df['total_assets'] - df['total_assets'].rolling(252).mean()) / df['total_assets'].rolling(252).std()
        all_series[series_name] = normalized
    
    combined_df = pd.DataFrame(all_series).fillna(method='ffill')
    liquidity_index = combined_df.dot(pd.Series(weights))
    
    return pd.DataFrame({'liquidity_index': liquidity_index}, index=combined_df.index)

Além do índice principal, o sistema cria subíndices: curto prazo (30 dias), longo prazo (252 dias), índice de aceleração e volatilidade da liquidez. Esses indicadores ajudam a adaptar as previsões a diferentes condições de mercado.

def enhance_liquidity_index(self, base_index: pd.Series) -> pd.DataFrame:
    """Создание расширенных индикаторов ликвидности."""
    enhanced_df = pd.DataFrame(index=base_index.index)
    enhanced_df['base_liquidity_index'] = base_index
    enhanced_df['short_term_liquidity'] = base_index.rolling(window=30).mean()
    enhanced_df['long_term_trend'] = base_index.rolling(window=252).mean()
    enhanced_df['liquidity_acceleration'] = base_index.diff().diff()
    enhanced_df['liquidity_volatility'] = base_index.rolling(window=60).std()
    
    return enhanced_df


Integração com o MetaTrader 5: uma ponte para o trading real

O sistema se integra ao MetaTrader 5 para obter dados de mercado e gerar sinais de trading. As características incluem tanto indicadores técnicos quanto métricas de liquidez, formando um conjunto de dados exclusivo para previsão.

import MetaTrader5 as mt5
from datetime import datetime, timedelta

class TradingIntegration:
    def __init__(self, forecaster: ForexLiquidityForecaster):
        self.forecaster = forecaster
        mt5.initialize()
    
    def fetch_forex_data(self, symbol: str, days: int = 1460) -> pd.DataFrame:
        """Получение данных с MetaTrader 5."""
        utc_from = datetime.now() - timedelta(days=days)
        rates = mt5.copy_rates_from(symbol, mt5.TIMEFRAME_D1, utc_from, days)
        
        if rates is None:
            return pd.DataFrame()
        
        df = pd.DataFrame(rates)
        df['date'] = pd.to_datetime(df['time'], unit='s')
        df.set_index('date', inplace=True)
        return df
    
    def generate_trading_signals(self, symbol: str, forecasts: dict) -> dict:
        """Генерация торговых сигналов."""
        signals = {}
        short_term_returns = [f['return'] for h, f in forecasts['forecasts'].items() if h in ['1d', '2d', '3d']]
        avg_return = np.mean(short_term_returns) if short_term_returns else 0
        
        signals['short_term'] = {
            'signal': 'BUY' if avg_return > 0.005 else 'SELL' if avg_return < -0.005 else 'HOLD',
            'strength': min(abs(avg_return) * 100, 100)
        }
        
        return signals


Visualização: o panorama do mundo em gráficos

O sistema cria visualizações interativas que ajudam os traders a enxergar as relações entre liquidez e preços. Os gráficos incluem previsões de preços, a dinâmica do índice de liquidez e a importância das características.

import matplotlib.pyplot as plt
import numpy as np

def create_comprehensive_visualization(self, symbol: str):
    """Создание набора визуализаций."""
    forecasts = self.forecaster.forecasts.get(symbol, {})
    historical_data = self.fetch_forex_data(symbol, days=180)
    
    plt.figure(figsize=(15, 8))
    plt.plot(historical_data.index[-60:], historical_data['close'].iloc[-60:], label='Исторические цены', linewidth=2)
    
    forecast_dates = [datetime.strptime(f['date'], '%Y-%m-%d') for f in forecasts.get('forecasts', {}).values()]
    forecast_prices = [f['price'] for f in forecasts.get('forecasts', {}).values()]
    
    if forecast_dates:
        plt.plot(forecast_dates, forecast_prices, 'r--', label='Прогноз', linewidth=2)
    
    plt.title(f'{symbol}: Прогноз цен с учетом ликвидности', fontsize=14, fontweight='bold')
    plt.xlabel('Дата', fontsize=12)
    plt.ylabel('Цена', fontsize=12)
    plt.legend()
    plt.grid(True, alpha=0.3)
    plt.savefig(f'forecast_{symbol}.png', dpi=300)
    plt.close()

Como resultado, obtemos um panorama da liquidez global:

Assim como previsões baseadas nela:

E a matriz de correlações:


Considerações finais

O sistema desenvolvido representa uma ferramenta poderosa que combina a análise dos balanços dos bancos centrais com métodos avançados de aprendizado de máquina e análise técnica, garantindo uma abordagem abrangente para a previsão das taxas de câmbio. A arquitetura modular do sistema, que inclui GlobalLiquidityMiner e ForexLiquidityForecaster, assegura flexibilidade, escalabilidade e a capacidade de adaptação às condições de mercado em constante mudança.

A integração com o MetaTrader 5 permite que os traders apliquem as previsões no trading real, transformando dados complexos em decisões concretas de trading. As visualizações interativas e os resultados de backtesting aumentam a transparência e a confiabilidade do sistema, oferecendo aos traders a possibilidade de tomar decisões fundamentadas com um alto grau de confiança.

Esse sistema vai além da análise tradicional, propondo uma abordagem holística que considera tanto fatores fundamentalistas quanto técnicos. Ele permite que os traders não apenas reajam às mudanças do mercado, mas também as antecipem, utilizando a liquidez global como uma bússola no mar turbulento do mercado cambial. Em um cenário de crescente volatilidade e incerteza da economia mundial, tal abordagem deixa de ser apenas uma vantagem e se torna uma necessidade para o trading bem-sucedido.

O sistema não está isento de limitações. O acesso restrito aos dados de alguns bancos centrais, como o PBoC, exige o uso de indicadores proxy, o que pode reduzir a precisão. Além disso, o aprendizado de máquina, apesar de seu grande poder, não garante precisão absoluta nas previsões, especialmente em condições de choques geopolíticos ou econômicos inesperados. Ainda assim, o aprimoramento contínuo dos algoritmos, a ampliação das fontes de dados e a incorporação de novos fatores de mercado permitirão que o sistema permaneça relevante e eficaz.

No futuro, o desenvolvimento do sistema pode incluir a integração com modelos de redes neurais para o processamento de grandes volumes de dados não estruturados, como notícias e mídias sociais, o que ampliará o poder preditivo. Também é possível a implementação de mecanismos adaptativos que ajustem automaticamente os pesos do índice de liquidez de acordo com as condições econômicas atuais. Isso abre caminho para a criação de uma nova geração de sistemas de trading, ainda mais resistentes à incerteza e capazes de fornecer resultados estáveis em quaisquer condições de mercado.

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/18355

Arquivos anexados |
FREED_Predict.py (27.15 KB)
Últimos Comentários | Ir para discussão (1)
Denis Kirichenko
Denis Kirichenko | 6 jun. 2025 em 06:27

A imagem é simplesmente incrível, perfeita para memes da Internet.

Mineração de dados da CFTC em Python e modelo de IA com base neles Mineração de dados da CFTC em Python e modelo de IA com base neles
Vamos tentar minerar dados da CFTC, carregar os relatórios COT e TFF via Python, conectar isso às cotações do MetaTrader 5 e a um modelo de IA e obter previsões. O que são os relatórios COT no mercado Forex? Como usar os relatórios COT e TFF para previsão?
Desenvolvendo um EA multimoeda (Parte 27): Componente para exibição de texto multilinha Desenvolvendo um EA multimoeda (Parte 27): Componente para exibição de texto multilinha
Quando surge a necessidade de exibir informações textuais no gráfico, podemos utilizar a função Comment(). Porém, suas possibilidades são bastante limitadas. Por isso, no âmbito deste artigo, criaremos nosso próprio componente, uma janela de diálogo em tela cheia, capaz de exibir texto multilinha com configurações flexíveis de fonte e suporte a rolagem.
Está chegando o novo MetaTrader 5 e MQL5 Está chegando o novo MetaTrader 5 e MQL5
Esta é apenas uma breve resenha do MetaTrader 5. Eu não posso descrever todos os novos recursos do sistema por um período tão curto de tempo - os testes começaram em 09.09.2009. Esta é uma data simbólica, e tenho certeza que será um número de sorte. Alguns dias passaram-se desde que eu obtive a versão beta do terminal MetaTrader 5 e MQL5. Eu ainda não consegui testar todos os seus recursos, mas já estou impressionado.
Indicador do modelo CAPM no mercado Forex Indicador do modelo CAPM no mercado Forex
Adaptação do modelo clássico CAPM para o mercado cambial Forex em MQL5. O indicador calcula a rentabilidade esperada e o prêmio de risco com base na volatilidade histórica. Os indicadores aumentam nos picos e nas depressões, refletindo os princípios fundamentais de precificação. Aplicação prática para estratégias contra a tendência e de seguimento de tendência, levando em conta a dinâmica da relação entre risco e rentabilidade em tempo real. Inclui o aparato matemático e a implementação técnica.