Maxim, conte-nos mais sobre como você agrupa a trajetória de preço de um par de moedas pelo coeficiente de assimetria.
Ele é calculado em uma janela deslizante como uma característica e adicionado ao conjunto de dados. O agrupamento é realizado de acordo com esse recurso e os rótulos de agrupamento são atribuídos a todo o conjunto de dados. Em seguida, as linhas que pertencem a um dos clusters são selecionadas. Os preços e todos os outros atributos permanecem lá. Isso é tudo.
Provavelmente, jogar alguns vértices para fora da linha ZZ teria o mesmo efeito.
import pandas as pd
from scipy.signal import find_peaks
@njit
def calculate_labels_zigzag(peaks, troughs, len_close):
"""
Generates labels based on the occurrence of peaks and troughs in the data.
Args:
peaks (np.array): Indices of the peaks in the data.
troughs (np.array): Indices of the troughs in the data.
len_close (int): The length of the close prices.
Returns:
np.array: An array of labels.
"""
labels = np.empty(len_close, dtype=np.float64)
labels.fill(2.0) # Inicialize todos os rótulos para 2,0 (sem sinal)for i inrange(len_close):
if i in peaks:
labels[i] = 1.0# Sinal de venda nos picoselif i in troughs:
labels[i] = 0.0# Sinal de compra em pontos baixosreturn labels
def get_labels_filter_ZZ(dataset, peak_prominence=0.1) -> pd.DataFrame:
"""
Generates labels for a financial dataset based on zigzag peaks and troughs.
This function identifies peaks and troughs in the closing prices using the 'find_peaks'
function from scipy.signal. It generates buy signals at troughs and sell signals at peaks.
Args:
dataset (pd.DataFrame): DataFrame containing financial data with a 'close' column.
peak_prominence (float, optional): Minimum prominence of peaks and troughs,
used to filter out insignificant fluctuations.
Defaults to 0.1.
Returns:
pd.DataFrame: The original DataFrame with a new 'labels' column and filtered rows:
- 'labels' column:
- 0: Buy
- 1: Sell
- Rows where 'labels' is 2 (no signal) are removed.
- Rows with missing values (NaN) are removed.
"""# Encontre picos e depressões nos preços de fechamento
peaks, _ = find_peaks(dataset['close'], prominence=peak_prominence)
troughs, _ = find_peaks(-dataset['close'], prominence=peak_prominence)
# Calcular rótulos de compra/venda usando a nova função de rotulagem baseada em ziguezague
labels = calculate_labels_zigzag(peaks, troughs, len(dataset))
# Adicione os rótulos calculados como uma nova coluna "rótulos" ao DataFrame
dataset['labels'] = labels
# Remova as linhas em que a coluna "labels" tenha um valor de 2,0 (sem sinal)
dataset = dataset.drop(dataset[dataset.labels == 2.0].index)
# Retorna o DataFrame modificado return dataset
É possível combinar modelos no MT5? Digamos que eu tenha selecionado os 20 melhores, portanto, apareceram 40 arquivos onnx. O que devo fazer nesse caso?
É possível combinar modelos no MT5? Digamos que eu tenha selecionado os 20 melhores, portanto, apareceram 40 arquivos onnx. O que devo fazer nesse caso?
Este artigo não trata desse tópico. Não há nenhuma disposição para a montagem.
Evgeni Gavrilovi #: É claro que seria possível adicionar drawdowns, pois as linhas suaves são confusas, sinto que ali o dreno era de até -80% ou até mais).
Não aceito sugestões para aprimoramento do artigo, apenas discussões sobre o artigo/questões existentes.
Window# instances are returned by calls: and . instances are returned by calls: and . instances are returned by calls: and . Rolling window functions# Weighted window functions# Expanding window functions# Exponentially-weighted window functions...
Ele é calculado em uma janela deslizante como uma característica e adicionado ao conjunto de dados. O agrupamento é realizado de acordo com esse recurso e os rótulos de agrupamento são atribuídos a todo o conjunto de dados. Em seguida, as linhas que pertencem a um dos clusters são selecionadas. Os preços e todos os outros atributos permanecem lá. Isso é tudo.
Então, por que não o ZZ?
No entanto, encontrei uma pequena explicação.
Provavelmente, jogar alguns vértices para fora da linha ZZ teria o mesmo efeito.Você mesmo pode adicionar esse código à biblioteca de marcação de negócios.
A situação piorou.
A situação piorou.
É possível combinar modelos no MT5? Digamos que eu tenha selecionado os 20 melhores, portanto, apareceram 40 arquivos onnx. O que devo fazer nesse caso?
É possível combinar modelos no MT5? Digamos que eu tenha selecionado os 20 melhores, portanto, apareceram 40 arquivos onnx. O que devo fazer nesse caso?
É claro que seria possível adicionar drawdowns, pois as linhas suaves são confusas, sinto que ali o dreno era de até -80% ou até mais).
Adicionados todos os atributos básicos do módulo pandas.
https://pandas.pydata.org/docs/reference/window.html
Como resultado, obtive este gráfico. Maxim, obrigado por seu trabalho.