Análise da influência dos ciclos solares e lunares sobre os preços das moedas
Imagine um trader experiente, com trinta anos de mercado, que todas as manhãs consulta não apenas os gráficos, mas também o calendário lunar. Ele jamais admitiria isso aos colegas, por medo de ser ridicularizado. Mas suas estatísticas de trading revelam um padrão curioso: em determinadas fases da Lua, a precisão de suas previsões aumenta em vinte por cento. Coincidência? Pode ser. Ou talvez não.
A Lua, o Sol e a psicologia do mercado
A análise técnica ficou presa ao passado: RSI, MACD, médias móveis, tudo igual ao que já se usava há 40 anos. Até o machine learning trabalha com os mesmos candles e barras. Estamos olhando para um mapa antigo com um microscópio novo.
Enquanto isso, estudos indicam que a Lua e o Sol influenciam não apenas a natureza, mas também as pessoas e, portanto, os mercados.
A Lua controla as marés, e o corpo humano é composto por 70% de água. Estudos registram aumento na procura por atendimento psiquiátrico e piora na qualidade do sono durante a lua cheia. Nesse período, o nível de melatonina cai e a ansiedade aumenta, o que torna os traders mais impulsivos. A lua nova, por outro lado, os deixa mais tranquilos.
Os ciclos solares exercem influência de outra forma. A falta de luz no inverno provoca apatia e reduz a propensão ao risco; na primavera e no verão, o humor e o otimismo aumentam, e os mercados sobem juntos. Estudos apontam correlação entre a duração do dia e o retorno das ações. Tempestades geomagnéticas intensificam o estresse, os erros e a volatilidade.
Essa influência ocorre em camadas: bioquímica → humor → comportamento → movimentos do mercado. Uma única pessoa pode não perceber o efeito, mas milhões de reações sincronizadas criam ondas nos preços.
Até o lendário trader W. D. Gann levava ciclos astrológicos em consideração em suas operações. Seus métodos são complexos e difíceis de formalizar, mas seus resultados impressionavam.
Será que é justamente nesses ritmos que se encontra a variável que falta ao mercado?
Quando Python encontra o Zodíaco
E se pegássemos conceitos astrológicos e os traduzíssemos para a linguagem da ciência de dados moderna? Foi exatamente essa ideia que me empolgou alguns meses atrás. O mês sinódico dura 29,530588 dias, e o ano tropical, 365,25636 dias. Esses ciclos existiam muito antes do surgimento do Bitcoin e continuarão existindo por milhões de anos. São estáveis, previsíveis e podem ser descritos matematicamente com precisão.
Ao desenvolver o sistema, comecei definindo as constantes astronômicas no código:
class UniversalForexAstro: def __init__(self, pair_name="USDCAD"): self.pair_name = pair_name # Astronomical cycles self.lunar_cycle = 29.530588 # Synodic month self.solar_cycle = 365.25636 # Tropical year # Base dates for different currencies self.birth_dates = { 'USD': datetime(1792, 4, 2), # US Dollar 'EUR': datetime(1999, 1, 1), # Euro 'GBP': datetime(1694, 7, 27), # British Pound 'JPY': datetime(1871, 5, 10), # Japanese Yen 'CHF': datetime(1850, 5, 7), # Swiss Franc 'CAD': datetime(1858, 8, 2), # Canadian Dollar 'AUD': datetime(1966, 2, 14), # Australian Dollar 'NZD': datetime(1967, 7, 10), # New Zealand Dollar }
Cada moeda recebe sua própria "data de nascimento", correspondente ao momento em que foi oficialmente colocada em circulação. O dólar dos Estados Unidos nasceu em 2 de abril de 1792. O euro surgiu em 1º de janeiro de 1999. Não são apenas fatos históricos: essas datas se tornam o ponto de referência para todos os cálculos cíclicos.
Arquitetura da inteligência celestial
Moedas diferentes têm características diferentes. O dólar australiano e o dólar neozelandês são moedas ligadas a commodities, fortemente relacionadas aos preços de metais e produtos agrícolas. O iene japonês e o franco suíço são moedas de refúgio, para as quais os investidores recorrem em momentos de pânico. Codifiquei essas características na forma de coeficientes numéricos:
self.currency_characteristics = {
'USD': {'risk_appetite': 0.0, 'commodity_correlation': 0.0, 'seasonal_strength': 0.5},
'EUR': {'risk_appetite': 0.3, 'commodity_correlation': 0.2, 'seasonal_strength': 0.6},
'GBP': {'risk_appetite': 0.4, 'commodity_correlation': 0.1, 'seasonal_strength': 0.7},
'JPY': {'risk_appetite': -0.8, 'commodity_correlation': -0.3, 'seasonal_strength': 0.3},
'CHF': {'risk_appetite': -0.6, 'commodity_correlation': -0.1, 'seasonal_strength': 0.4},
'CAD': {'risk_appetite': 0.6, 'commodity_correlation': 0.8, 'seasonal_strength': 0.8},
'AUD': {'risk_appetite': 0.8, 'commodity_correlation': 0.9, 'seasonal_strength': 0.9},
'NZD': {'risk_appetite': 0.7, 'commodity_correlation': 0.7, 'seasonal_strength': 0.8},
} Agora imagine que a Lua entra na fase de lua nova. Para o par AUD/JPY, isso significa uma coisa; para EUR/USD, algo completamente diferente. O dólar australiano é uma moeda de risco, com coeficiente 0,8, enquanto o iene é uma moeda de refúgio, com coeficiente -0,8. Uma diferença de um ponto e meio! O sistema incorpora essas relações por meio da diferença entre as características das moedas.
Cálculo da fase lunar: a matemática do céu
O núcleo do sistema é o método que calcula o ângulo da fase lunar. O código é elegante em sua simplicidade:
def get_moon_phase_angle(self, date): """Moon phase angle""" days_since_birth = (date - self.birth_date).days lunar_position = (days_since_birth % self.lunar_cycle) / self.lunar_cycle * 360 solar_position = (days_since_birth % self.solar_cycle) / self.solar_cycle * 360 phase_angle = (lunar_position - solar_position) % 360 return phase_angle
Pegamos o número de dias desde a data de nascimento da moeda, calculamos o resto da divisão pelo ciclo lunar para obter a posição dentro do ciclo e multiplicamos o resultado por trezentos e sessenta graus. Fazemos o mesmo para o ciclo solar. A diferença entre os dois fornece o ângulo de fase. Zero grau corresponde à lua nova; cento e oitenta graus, à lua cheia. Nada de magia, apenas trigonometria.
A dança dos harmônicos
Mas determinar apenas a fase da Lua não é suficiente. As influências celestes atuam por meio de harmônicos, oscilações periódicas de diferentes frequências que se sobrepõem. Calculo não apenas a fase lunar fundamental, mas também seus harmônicos:
# Lunar features features['moon_phase_angle'] = moon_phase_angle features['moon_phase_sin'] = math.sin(math.radians(moon_phase_angle)) features['moon_phase_cos'] = math.cos(math.radians(moon_phase_angle)) features['moon_phase_sin2'] = math.sin(math.radians(moon_phase_angle * 2)) features['moon_phase_cos2'] = math.cos(math.radians(moon_phase_angle * 2)) features['moon_phase_sin4'] = math.sin(math.radians(moon_phase_angle * 4)) features['moon_phase_cos4'] = math.cos(math.radians(moon_phase_angle * 4))
Cada harmônico carrega informações próprias. O primeiro representa o ciclo principal de alta e baixa. O segundo captura os efeitos trimestrais. O quarto representa as oscilações semanais dentro do mês lunar. Seis números descrevem por completo o estado atual do ciclo lunar.
Efeitos lunares sobre os pares de moedas
A parte mais interessante está no método que calcula a influência lunar sobre um par específico:
def calculate_lunar_effect(self, date): """Lunar effects for currency pair""" moon_phase_angle = self.get_moon_phase_angle(date) phase_name = self.get_moon_phase_name(moon_phase_angle) effect = 0 # Base and quote currencies react differently base_char = self.currency_characteristics.get(self.base_currency, {'risk_appetite': 0, 'commodity_correlation': 0}) quote_char = self.currency_characteristics.get(self.quote_currency, {'risk_appetite': 0, 'commodity_correlation': 0}) # Difference in characteristics determines effect strength risk_diff = base_char['risk_appetite'] - quote_char['risk_appetite'] commodity_diff = base_char['commodity_correlation'] - quote_char['commodity_correlation'] # Phase effects if phase_name in ['new_moon', 'full_moon']: # Critical phases - high volatility effect += np.random.choice([-0.015, 0.015]) * (1 + abs(risk_diff)) elif phase_name in ['waxing_crescent', 'first_quarter', 'waxing_gibbous']: # Waxing moon is favorable for risk and commodity currencies effect += 0.003 * risk_diff + 0.002 * commodity_diff elif phase_name in ['waning_gibbous', 'last_quarter', 'waning_crescent']: # Waning moon is negative for risk currencies effect -= 0.003 * risk_diff + 0.002 * commodity_diff # Harmonics effect += math.sin(math.radians(moon_phase_angle)) * 0.001 * risk_diff effect += math.sin(math.radians(moon_phase_angle * 2)) * 0.0005 * commodity_diff return effect
O código traduz a lógica astrológica em matemática. Nas fases críticas, como lua nova e lua cheia, a volatilidade aumenta proporcionalmente à diferença de propensão ao risco entre as moedas. A Lua crescente favorece moedas de risco e moedas ligadas a commodities. A Lua minguante produz o efeito oposto. Os harmônicos acrescentam oscilações mais sutis, associadas às características específicas de cada par.
Memória temporal por meio de defasagens
Os mercados têm memória. O que aconteceu uma semana atrás influencia o presente. Por isso, o sistema também incorpora atributos defasados:
self.lag_periods = [1, 2, 4, 8, 13] # Lag features for lag in self.lag_periods: if i >= lag: lag_date = df.iloc[i - lag]['date'] lag_moon = self.get_moon_phase_angle(lag_date) lag_day = lag_date.timetuple().tm_yday features[f'lag_{lag}_moon_angle'] = lag_moon features[f'lag_{lag}_moon_sin'] = math.sin(math.radians(lag_moon)) features[f'lag_{lag}_moon_cos'] = math.cos(math.radians(lag_moon)) features[f'lag_{lag}_is_waxing'] = 1 if 15 < lag_moon < 165 else 0 features[f'lag_{lag}_is_critical'] = 1 if (lag_moon <= 15 or lag_moon >= 345 or 165 <= lag_moon <= 195) else 0 # Price lags features[f'lag_{lag}_return'] = df.iloc[i - lag]['return'] features[f'lag_{lag}_volatility'] = df.iloc[i - lag]['volatility']
Onde estava a Lua uma semana atrás? Duas semanas? Quatro, oito, treze semanas? O sistema cria oitenta e oito atributos para cada instante, formando um retrato multidimensional daquele momento, no qual o passado e o presente do céu se entrelaçam com as características das moedas.
Classificação binária: simplificando o problema
Prever o preço exato é uma tarefa ingrata. Mas responder à pergunta "haverá um forte movimento de alta ou não?" é algo muito mais viável:
def create_binary_target(self, df, threshold_percentile=60): """Binary target variable""" returns = df['return'].values # Adaptive threshold based on percentile threshold = np.percentile(np.abs(returns), threshold_percentile) binary_target = [] for ret in returns: if ret > threshold: binary_target.append(1) # Growth else: binary_target.append(0) # Decline/stagnation return binary_target, threshold
O limiar de movimento significativo é definido pelo percentil 60 do retorno absoluto. Essa abordagem produz uma amostra equilibrada e concentra o modelo nos movimentos realmente relevantes.
CatBoost olha para as estrelas
Para a classificação, utilizo o CatBoost, um algoritmo de gradient boosting com suporte a atributos categóricos:
def train_binary_model(self, features_df, binary_target): """Train binary model""" print(f"\n=== TRAINING BINARY MODEL FOR {self.pair_name} ===") # Categorical features cat_features = [col for col in features_df.columns if col.startswith('is_')] # Time-based split split_idx = int(len(features_df) * 0.7) X_train = features_df.iloc[:split_idx] X_test = features_df.iloc[split_idx:] y_train = binary_target[:split_idx] y_test = binary_target[split_idx:] if CATBOOST_AVAILABLE: model = CatBoostClassifier( iterations=600, learning_rate=0.08, depth=13, cat_features=cat_features, random_seed=42, verbose=100, early_stopping_rounds=150, eval_metric='AUC' ) model.fit(X_train, y_train, eval_set=(X_test, y_test))
Os dados são divididos cronologicamente: os primeiros setenta por cento são usados para treinamento, e os trinta por cento finais, para teste. Isso é fundamental: não podemos treinar com dados do futuro, apenas com dados do passado.
Resultados no EUR/USD: primeiras descobertas
O sistema se conecta ao terminal MetaTrader 5 e carrega cotações históricas reais do EUR/USD referentes a quinze anos. As barras semanais contêm os preços de abertura, máxima, mínima e fechamento, oferecendo um panorama completo do movimento da moeda entre 2010 e 2025.
Executamos a análise do par EUR/USD, especificando o período e o timeframe semanal. O sistema retorna o resultado da conexão: MetaTrader 5 inicializado com sucesso, 782 barras semanais carregadas, de 4 de janeiro de 2010 a 30 de dezembro de 2024. Após o processamento dos dados, foram criados oitenta e oito atributos astrológicos e técnicos para cada semana.
O limiar de alta significativa foi definido em 0,78 por cento: apenas os movimentos semanais de alta mais fortes entram na classe de alta. Isso corresponde a apenas vinte e três por cento de toda a amostra, criando um bom equilíbrio para o treinamento do modelo. Setecentas e oitenta e três semanas de dados reais de mercado estão prontas para análise.
Treinamento: o detector de sobreajuste em ação
O CatBoost é treinado com os primeiros setenta por cento dos dados, ou seja, quinhentas e quarenta e oito semanas, e testado nos trinta por cento restantes, correspondentes a duzentas e trinta e cinco semanas. O modelo atinge rapidamente seu pico de desempenho na iteração 201, com AUC de 0,907. Em seguida, o detector de sobreajuste acompanha a deterioração do desempenho e interrompe o treinamento na iteração 150. O modelo final é composto por duzentas e duas árvores de decisão, uma arquitetura minimalista que evitou o sobreajuste.
Métricas de desempenho: o que dizem os números
Para entender até que ponto o modelo aprendeu a prever movimentos fortes do EUR/USD, analisamos as métricas da amostra de teste.
Shrink model to first 202 iterations. Accuracy: 0.851 AUC Score: 0.907 Classification Report: precision recall f1-score support Decline/Stagnation 0.90 0.92 0.91 197 Growth 0.55 0.47 0.51 38 accuracy 0.85 235 macro avg 0.72 0.70 0.71 235 weighted avg 0.84 0.85 0.85 235
As métricas finais na amostra de teste superam todas as expectativas.
A acurácia foi de oitenta e cinco vírgula um por cento. O AUC Score chegou a 0,907. Isso já não é mero acaso: trata-se de um modelo preditivo que funciona! O relatório de classificação mostra uma melhora expressiva.
Para a classe de queda e estagnação, o precision é 0,90, o recall é 0,92 e o support corresponde a cento e noventa e sete semanas. O modelo identifica muito bem os períodos de movimento fraco. Para a classe de alta, o precision chegou a 0,55, o recall a 0,47 e o support corresponde a trinta e oito semanas. Isso já está bem acima dos dezenove por cento obtidos nos testes iniciais: o modelo aprendeu a detectar movimentos fortes de alta com uma precisão bastante razoável!
A acurácia geral é de oitenta e cinco por cento, e a média ponderada de todas as métricas também fica em oitenta e cinco por cento. As médias macro mostram equilíbrio: precision de 0,72, recall de 0,70 e f1-score de 0,71.
Um AUC de 0,907 fala por si só: o modelo identificou padrões consistentes nos dados. Ele não apenas memorizou a amostra de treinamento, mas aprendeu a distinguir padrões que se generalizam para dados novos, nunca vistos anteriormente.
Uma acurácia de oitenta e cinco por cento significa que, a cada cem semanas, o modelo classifica corretamente oitenta e cinco. Para a classe de crescimento, um precision de 0,55 significa que, quando o modelo prevê um forte movimento de alta, ele acerta em cinquenta e cinco por cento dos casos.
O recall de 0,47 para a classe de crescimento mostra que o modelo identifica quase metade de todas as semanas que realmente apresentam movimentos fortes. Ele deixa passar parte das oportunidades, mas os sinais que gera são suficientemente confiáveis para uso prático.
O que mudou? Agora vamos analisar a importância dos atributos para entender quais fatores o modelo considera mais informativos.
Top 15 Important Features: feature importance 32 body 28.818274 82 lag_13_price_range 3.715878 60 lag_4_return 2.789399 50 lag_2_return 2.721862 23 solar_cos2 2.481633 22 solar_sin2 2.240648 70 lag_8_return 2.063927 61 lag_4_volatility 1.895090 51 lag_2_volatility 1.852277 80 lag_13_return 1.788907 81 lag_13_volatility 1.662764 6 moon_phase_cos4 1.629020 53 lag_4_moon_angle 1.571409 40 lag_1_return 1.570028 41 lag_1_volatility 1.560117
Importância dos atributos: o que o modelo enxerga
A tabela de importância dos atributos traz uma surpresa.
O atributo mais importante é body, com peso de vinte e nove por cento! Trata-se do tamanho do corpo do candle, isto é, da razão entre a diferença absoluta dos preços de abertura e fechamento e o preço de fechamento. Um indicador técnico sem qualquer relação com a astrologia concentrou quase um terço de toda a importância atribuída pelo modelo.
Em segundo lugar aparece lag_13_price_range, com quatro por cento, o intervalo de preços de treze semanas atrás, ou seja, três meses no passado. Em terceiro vem lag_4_return, com três por cento, o retorno de um mês atrás. Na quarta posição está lag_2_return, o retorno de duas semanas atrás.
Curiosamente, os atributos astrológicos não desapareceram por completo. Na quinta e na sexta posições aparecem solar_cos2 e solar_sin2, a segunda harmônica do ciclo solar, com importância de dois vírgula cinco por cento cada. O modelo captou efeitos sazonais semestrais associados ao movimento da Terra ao redor do Sol.
Os atributos lunares também estão presentes, mas não predominam. moon_phase_cos4 ficou na décima segunda posição, com importância de um vírgula cinco por cento. Trata-se do cosseno da quarta harmônica da fase lunar, a mesma classe de atributos que liderava no modelo simplificado, mas que agora foi superada pelos indicadores técnicos.
O modelo combina três tipos de informação: características técnicas dos candles, defasagens dos retornos e da volatilidade, além dos ciclos astronômicos. Mas a hierarquia dos fatores foi inesperada: os fatores técnicos são mais importantes do que os fatores astrológicos, e a memória do mercado pesa mais do que os ritmos celestes.
Ainda assim, a presença de solar_cos2, solar_sin2 e moon_phase_cos4 entre os quinze atributos mais importantes confirma que os ciclos astronômicos contribuem para o poder preditivo do modelo. Eles não são os principais fatores, mas são estatisticamente significativos e melhoram a qualidade das previsões.
Estatísticas da análise: números finais
Vamos resumir os resultados numéricos de todo o período analisado.
Período de análise: setecentas e oitenta e duas semanas de negociações reais do EUR/USD. O retorno médio semanal foi de menos 0,036 por cento, indicando um leve drift negativo ao longo de quinze anos. A volatilidade foi de 1,179 por cento. O limiar de alta significativa foi de 0,0089.
A acurácia do modelo de machine learning foi de 0,851. A melhora em relação ao nível de referência foi de mais 6,3 por cento. Isso significa que o modelo realmente aprendeu algo útil, em vez de simplesmente se basear na frequência das classes.
O nível de referência para uma amostra desbalanceada corresponde à acurácia obtida por uma estratégia que "sempre prevê a classe mais frequente". Se oitenta e quatro por cento das semanas correspondem a queda ou estagnação, uma previsão ingênua alcançaria acurácia de 0,84. O modelo chegou a 0,851, superando a estratégia ingênua em mais de seis por cento.
Uma melhora de seis por cento pode parecer modesta. Mas, no mundo das finanças quantitativas, em que cada décimo de ponto percentual de acurácia pode valer milhões de dólares em lucro potencial, isso é um resultado relevante.
Os números resumem o quadro geral, mas a avaliação visual ajuda a compreender melhor o que está acontecendo.
Interpretação dos resultados
Para entender como o modelo toma suas decisões, é preciso observar a distribuição de suas previsões ao longo do tempo e sua relação com os ciclos astronômicos.

O primeiro gráfico mostra a evolução do preço do EUR/USD ao longo de quinze anos. Nele aparecem todos os grandes movimentos: o fortalecimento do euro até 2014, a queda acentuada após a crise da dívida e a estabilização nos últimos anos. O gráfico de preços serve como base para compreender o contexto de todas as análises seguintes.
O segundo gráfico mostra o ângulo da fase lunar, de zero a trezentos e sessenta graus. A linha tracejada vermelha em zero marca a lua nova, e a linha tracejada azul em cento e oitenta, a lua cheia. O gráfico apresenta oscilações sinusoidais regulares com período de aproximadamente trinta dias, correspondente ao mês sinódico.
O terceiro gráfico compara os movimentos fortes reais com as previsões do modelo durante o período de teste. A linha azul contínua mostra as semanas reais de alta: um significa forte movimento ascendente, enquanto zero indica queda ou estagnação. A linha vermelha tracejada representa as previsões do algoritmo.
É possível observar uma correspondência significativa entre as linhas azul e vermelha. O modelo não é perfeito: deixa passar alguns picos e, às vezes, gera sinais falsos. Ainda assim, a correlação geral é evidente. Quando surge um grupo de semanas realmente fortes, o modelo frequentemente consegue identificá-las. Quando o mercado entra em um período de calmaria, o modelo acerta ao não prever movimentos de alta.
O preenchimento azul sob o gráfico dos movimentos reais facilita a avaliação visual da concentração de semanas fortes em diferentes períodos. É possível perceber clusters de atividade, momentos em que o mercado produz uma sequência de movimentos intensos, alternados com longos períodos tranquilos em que nada relevante acontece.
Assim, o modelo realmente aprendeu a reconhecer padrões que antecedem movimentos fortes do EUR/USD. A combinação de indicadores técnicos, memória do mercado por meio de defasagens e ciclos astronômicos resultou em um sistema com capacidade preditiva efetiva, com acurácia de oitenta e cinco por cento e AUC superior a nove décimos.
Análise do retorno e da volatilidade por fase da Lua
Para entender com mais profundidade como os ciclos lunares influenciam o comportamento do EUR/USD, vamos construir estatísticas agregadas para as oito principais fases da Lua ao longo de todo o período de quinze anos.

O primeiro gráfico mostra o retorno médio semanal para cada fase da Lua. O padrão é claramente visível a olho nu.
As fases da Lua crescente apresentam retorno positivo. Waxing gibbous, a fase anterior à lua cheia, registra o maior retorno médio, em torno de 0,0007, ou seja, sete centésimos por cento por semana. Full moon, a própria lua cheia, apresenta resultado semelhante, também em torno de 0,0007. First quarter, o quarto crescente, também permanece em território positivo, perto de 0,00035.
A lua nova, new moon, fica próxima da marca zero, sem uma direção definida. É um ponto de equilíbrio, um momento de incerteza antes do início de um novo ciclo lunar.
As fases da Lua minguante apresentam um quadro misto. Waning gibbous, a fase logo após a lua cheia, ainda mantém um pequeno retorno positivo em torno de 0,00035. Last quarter cai para 0,0005, mas continua em território positivo.
Já waning crescent, a lua minguante antes da lua nova, apresenta um retorno claramente negativo, em torno de menos 0,0005, ou seja, menos cinco centésimos por cento por semana. É a fase mais negativa para o EUR/USD em todo o ciclo.
First quarter, no início da Lua crescente, apresenta retorno negativo em torno de menos 0,00035. Trata-se de uma anomalia em relação ao padrão geral, possivelmente relacionada a ruído estatístico ou às particularidades de determinados períodos históricos.

O segundo gráfico mostra a volatilidade média, isto é, o valor absoluto do retorno, em cada fase da Lua. Aqui, o padrão é menos pronunciado, mas ainda pode ser identificado.
A volatilidade máxima ocorre em quatro fases: new moon, em torno de 0,042; waxing gibbous, em torno de 0,045; full moon, em torno de 0,043; e waning crescent, em torno de 0,041. São pontos críticos do ciclo lunar: lua nova, lua cheia e as fases imediatamente anteriores a elas. Nesses momentos, o mercado fica mais ativo, e os movimentos se tornam mais bruscos e imprevisíveis.
A volatilidade mínima foi registrada na fase last quarter, o quarto minguante, em torno de 0,031. É a fase mais tranquila do ciclo, quando o mercado parece ficar em compasso de espera. A diferença entre o valor máximo e o mínimo é de aproximadamente trinta por cento, um efeito estatisticamente significativo.
Waxing crescent e first quarter apresentam valores intermediários, em torno de 0,036-0,039. Waning gibbous também fica em uma faixa intermediária, perto de 0,038.
Esses gráficos confirmam a hipótese inicial sobre a influência comportamental da Lua. A lua cheia realmente coincide com períodos de maior volatilidade e retorno médio positivo para o EUR/USD. Isso está de acordo com estudos que apontam aumento da impulsividade e da atividade das pessoas durante a lua cheia: os traders se tornam mais agressivos, os volumes de negociação aumentam e os movimentos se intensificam.
O crescente minguante antes da lua nova, waning crescent, apresenta tanto alta volatilidade quanto retorno negativo. Uma possível explicação é que, nesse período, a ansiedade aumenta devido à menor quantidade de luz lunar durante a noite, a qualidade do sono piora e os traders se tornam mais cautelosos e pessimistas. O resultado é uma saída de capital das posições de risco e a queda do euro em relação ao dólar.
O quarto minguante, last quarter, é a fase mais tranquila, com a menor volatilidade. É um período de estabilização após a turbulência da lua cheia, quando o mercado se recupera e entra em consolidação antes do próximo ciclo.
É importante destacar que, em termos absolutos, esses efeitos são pequenos. A diferença entre a melhor e a pior fase é de aproximadamente 0,0012, ou seja, doze centésimos por cento por semana. Diante de uma volatilidade média de 1,179 por cento, isso representa apenas um por cento de um movimento semanal típico. Mas, ao longo de um ano, o efeito acumulado pode chegar a vários pontos percentuais de retorno, uma magnitude relevante para um investidor de longo prazo.
Esses gráficos explicam por que o modelo de machine learning identificou os harmônicos lunares, mas não os tornou atributos dominantes. O sinal existe, é sistemático e reproduzível, mas é sutil. Indicadores técnicos, como o tamanho do corpo do candle, fornecem um sinal mais forte e confiável. As fases da Lua atuam como um fator auxiliar, acrescentando alguns pontos percentuais de acurácia ao modelo técnico de referência.
Além disso, vale lembrar a hipótese inicial sobre pares contrastantes. EUR/USD reúne duas moedas de reserva estáveis. Se, mesmo em um par tão equilibrado, os ciclos lunares produzem um efeito mensurável sobre o retorno e a volatilidade, o que acontecerá em pares exóticos como AUD/JPY? Nesse caso, o contraste entre uma moeda de risco e uma moeda de refúgio deve intensificar os padrões comportamentais, e os gráficos por fase da Lua deverão apresentar uma amplitude de oscilação muito mais acentuada.
Assim, o quadro começa a ficar mais claro. Os ciclos lunares realmente influenciam o EUR/USD, mas sua contribuição é limitada pela própria natureza do par. Ainda assim, até esse sinal fraco foi suficiente para que o modelo alcançasse resultados impressionantes.
O papel da astrologia no modelo
Os resultados colocam as variáveis astrológicas em seu devido lugar na hierarquia dos fatores preditivos. Os principais fatores responsáveis pelos movimentos do EUR/USD são as características técnicas dos candles e a memória de curto prazo do mercado.
O atributo body, com peso de 29%, mostra que a dinâmica atual é mais importante do que os ciclos celestes. Ainda assim, os atributos astronômicos são estatisticamente significativos. Os atributos solar_cos2 e solar_sin2, que representam a segunda harmônica do ciclo solar, ocupam a quinta e a sexta posições, com importância de aproximadamente 2,5% cada.
A quarta harmônica da fase lunar, moon_phase_cos4, aparece na décima segunda posição, com importância de 1,5%. Ela representa as oscilações semanais dentro do mês lunar.
Significância estatística dos fatores astronômicos
Se a astrologia fosse completamente irrelevante, o CatBoost teria ignorado esses atributos. Mas o modelo selecionou várias variáveis astronômicas de uma só vez, justamente os harmônicos que, em teoria, deveriam apresentar sinal preditivo. A contribuição conjunta dos atributos astrológicos entre os quinze mais importantes é de aproximadamente 6%. Não é zero, mas também não chega a 30-50%. É uma contribuição perceptível ao poder preditivo, que ajuda a levar o modelo a um AUC de 0,907 e a uma acurácia de 85%. Os ciclos astronômicos são como os temperos na receita do modelo de machine learning. Não constituem a base, mas são um complemento importante.
Os gráficos por fase da Lua mostraram efeitos fracos, com diferença de aproximadamente 0,12% por semana. Mas o modelo não analisa as fases isoladamente. Ele combina os harmônicos lunares com o tamanho do corpo do candle, as defasagens do intervalo de preços, o momentum dos retornos e os ciclos solares. Cada atributo isoladamente fornece um sinal fraco, mas, em conjunto, eles criam um forte efeito sinérgico. É justamente por isso que o modelo alcançou 85% de acurácia.
Lembre-se da hipótese inicial sobre pares de moedas contrastantes. EUR/USD reúne duas moedas de reserva estáveis, com diferença mínima de propensão ao risco, de apenas 0,3. Se, mesmo em um par tão equilibrado, os efeitos astrológicos representam 6% da importância, o que acontecerá em pares exóticos como AUD/JPY, com um contraste de um ponto e meio? Nesse caso, os ciclos solares e lunares podem rivalizar de forma muito mais significativa com os indicadores técnicos.
A principal conclusão é que, para testar plenamente a hipótese astrológica, precisamos analisar pares com o maior contraste psicológico possível.
O experimento continua
Os ciclos astronômicos encontraram seu lugar na hierarquia dos fatores, não no topo, mas com um papel estatisticamente significativo. Os harmônicos solares e as fases da Lua contribuem em cerca de 6% para o poder preditivo do modelo. O código é estável, e a integração com o MetaTrader 5 funciona perfeitamente. Qualquer pessoa pode reproduzir o experimento. A metodologia é aberta, e os resultados são reproduzíveis. Quais caminhos seguir nas próximas pesquisas?
A primeira linha de pesquisa é testar pares de moedas contrastantes, como AUD/JPY, CAD/JPY e NZD/CHF, nos quais os efeitos astronômicos devem se manifestar com mais intensidade.
A segunda é ampliar o modelo astronômico. Podemos acrescentar o ciclo de Júpiter, de 12 anos, que coincide com ciclos econômicos; de Saturno, de 29 anos, associado a um ciclo geracional; e de Vênus, de 8 anos.
Também é possível tornar o modelo mais complexo adicionando o cálculo dos aspectos entre os planetas. A terceira direção é otimizar a estratégia de trading. O modelo prevê a probabilidade de um movimento, mas não fornece sinais diretos. É preciso desenvolver regras de entrada e stop-loss e considerar os custos de transação. Sejamos claros: isso não é o Santo Graal do trading. Mas é uma ferramenta de pesquisa que demonstrou sua viabilidade em 15 anos de dados reais.
Uma última palavra aos céticos
Entendo que muitos receberão este artigo com ceticismo. E essa é a reação correta. Mas o verdadeiro ceticismo não significa rejeitar automaticamente ideias incomuns.
Significa exigir evidências convincentes, experimentos reproduzíveis e uma metodologia transparente. Proponho um teste matematicamente rigoroso da hipótese de que os ciclos astronômicos influenciam os mercados cambiais. Um teste baseado em 15 anos de dados reais e com código-fonte aberto.
A Lua continua sua dança ao redor da Terra. A Terra gira em torno do Sol. Os planetas traçam suas órbitas segundo as equações de Kepler e Newton. E, nas telas de milhões de traders, os candles japoneses desenham sua própria dança de preços, a dança das emoções humanas, dos medos e das esperanças.
Será que essas duas danças, a celeste e a terrestre, estão ligadas por fios sutis de causalidade? Será que os antigos astrólogos perceberam intuitivamente um padrão real? Será que chegou a hora de testar essa hipótese com métodos rigorosos de análise de dados, sem preconceitos nem dogmas?
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/19530
Aviso: Todos os direitos sobre esses materiais pertencem à MetaQuotes Ltd. É proibida a reimpressão total ou parcial.
Esse artigo foi escrito por um usuário do site e reflete seu ponto de vista pessoal. A MetaQuotes Ltd. não se responsabiliza pela precisão das informações apresentadas nem pelas possíveis consequências decorrentes do uso das soluções, estratégias ou recomendações descritas.
Caminhe em novos trilhos: Personalize indicadores no MQL5
Redes neurais em trading: abordagem semântica baseada em spikes para identificação espaço-temporal (Componentes principais)
Está chegando o novo MetaTrader 5 e MQL5
Algoritmo de sistema artificial de circulação coronariana (Artificial Coronary Circulation System, ACCS)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
я начал с определения астрономических констант в коде
Não se trata de constantes astronômicas, mas sim astrológicas. Perceba a diferença!