[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 99
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Boa tarde! Por favor, ajude-me com a função ArrayMo (ela retorna o máximo da curva de densidade).
As seguintes questões foram levantadas:
1.Qual é o propósito de criar uma matriz temporária
Não está claro de onde os valores da matriz temporária serão retirados e, portanto, não está claro como esta matriz pode ser pesquisada:
3. e então geralmente para mim a verdade é profundamente escondida))))) Uma vez constatado que não há valor, começamos a determinar o tamanho do conjunto de "valores pouco claros".
Eu ficaria muito grato por um raio de luz nesta história))))Afinal, acho que a função não está escrita muito corretamente. A principal razão é que, após o anúncio.
é necessário
caso contrário(cito)
Nota: um array declarado localmente em qualquer função, que foi redimensionado, permanecerá inalterado após a função ser executada. Quando a função for chamada novamente, tal array terá um tamanho diferente do tamanho declarado!!!!
E assim com múltiplas chamadas a função "cairá no passado")
Sobre como o algoritmo funciona. A matriz m[][2] em si é uma representação direta da distribuição empírica do número de acertos da variável x[i] por seus diferentes valores. Ou seja, cada elemento da matriz consiste em dois números - o número de acertos em algum valor (o primeiro campo) e o próprio valor. O loop procura o mesmo valor no array m para cada x[i], e se for encontrado, o campo numérico é adicionado, caso contrário um novo elemento é criado usando o ArrayResize() e nosso x[i] é escrito lá.
Em seguida, uma vez povoada a matriz, basta encontrar o elemento com o número máximo de acessos, ou seja, por definição, o módulo de distribuição x.
Isto é feito por cordas
Embora me pareça (não tenho certeza sobre a matriz multidimensional), você poderia ter apenas
Em suma, posso dizer (com o devido respeito ao autor do código) que mesmo ao corrigir todos os defeitos, este algoritmo é extremamente ineficiente e pode muitas vezes dar resultados errados. A razão é que estamos trabalhando com o dobro do tipo, o que significa que a probabilidade de os valores x[i] estarem próximos, mas ainda assim distinguíveis, é bastante alta. Isto pode não ser tão perceptível quando o tamanho da amostra é muito maior (centenas de vezes ou mais) do que o número total de intervalos nos quais x[i] é definido. Entretanto, nos muitos casos em que esta restrição não for cumprida, haverá muitos cálculos errados.
A maneira mais correta de calcular a modalidade é esta: uma função de distribuição empírica (não confundir com a distribuição de freqüência) é construída, depois é interpolada de linear por partes para suave, e finalmente o ponto de máxima derivada é procurado. Tal algoritmo está livre dos inconvenientes listados acima e funciona de forma bastante eficaz mesmo com amostras de tamanho pequeno. Pelo menos, eu tinha que resolver apenas a tarefa de procurar modos em amostras de 50-100 elementos com um número comparável de intervalos usando MQL - e tudo estava bem. A única desvantagem é que as interpolações geralmente causam uma queda significativa na velocidade de cálculo, é claro, se quisermos suavizar qualitativamente.
aqui: https://www.mql5.com/ru/job
Obrigado. Talvez haja mais opções.
Obrigado. Talvez haja mais opções.
Tente digitar "martingale" em uma busca no site e você ficará surpreso
Já olhou! Mas o que eu quero está faltando(
Dê uma olhada aqui
https://www.mql5.com/ru/forum/136747
Olá. Comecei agora na MQL4.
Por favor, informe sobre a função OrderModify. Os manuais e exemplos mostram que esta função é utilizada para arrasto, ou seja, mudança de stop loss. Preciso mudar apenas para ter lucro em uma ordem aberta. O stop loss não é definido quando a ordem é aberta e também deve permanecer em 0 durante a modificação .
Como deve ser o cálculo e a seleção dos pedidos?
O alvo final deve ser algo parecido com isto
se (OrderType()==OP_BUY && OrderOpenPrice()-Bid>kof*Point) // houver uma compra, mas ela foi reduzida por kof
{
OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+tpnew*Point,0,CLR_NONE);// nós movemos TP mais baixo do que o anteriormente colocado
O mesmo para venda.
Obrigado por qualquer resposta.
Olá novamente :)
Como eu pensava, surgiram problemas. Aqui está o código. A questão é que as ordens no testador são fechadas pelo TP, e pela função TP é removida quando a ordem é modificada durante a Trailing Stop.
O que significa que a parada móvel não é executada, e não houve erros com TP e SL errados no registro do testador. Então, o que está errado?Caros profissionais, por favor, me aconselhem sobre esta questão:
Tenho uma matriz de cordas unidimensional previamente escrita em um arquivo de texto
EURUSD 1654.31
GBPUSD -1654.61
USDCAD 110.98
USDJPY 1180.17
Suponha que o lucro total do USDCAD tenha mudado e eu precise substituir a 3ª linha por "USDCAD 115,64".
Li estes dados como uma matriz de cordas unidimensional, mas não posso substituir apenas este elemento no arquivo de texto (alguém pode escrever uma função?)
Ou é melhor não incomodar e sobrescrever todo o conjunto?
Eu só tenho dados que vêm de EAs em pares diferentes - cada par tem uma corda diferente - é claro que seria melhor mudar apenas 1 elemento provavelmente.