![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Já resolvi a sincronização. Por favor, informe se há alguma forma de congelar o terminal (pelo que não aceitará citações) enquanto o guião ou o Expert Advisor estiver a funcionar.
Isto é um disparate.
Para que serve isso?
Isto é um disparate.
Porque é que é necessário?
Voltar ao TS não o número do bar, mas a hora de abertura do bar, mas depois é uma complicação para o utilizador
Bem aqui está a primeira andorinha da multimoeda . Devo avisá-lo desde já, não é sequer uma libertação, o código não está optimizado e não está totalmente depurado e é provável que haja bugs nele. Se não for difícil olhar e expressar os seus desejos, cuspir ainda demasiado cedo.
O testador foi concebido para testar uma peça de história seleccionada em várias moedas. Todas as funções de negociação são tomadas de 4 . Instruções detalhadas após a conclusão .
Esqueci-me de acrescentar que devem ser abertos todos os gráficos de interesse nos mesmos prazos
Primeiro lançamento
Bom dia para si, uma aula para escrever um testador de várias moedas dentro de scripts, indicadores ou Expert Advisors .
Métodos de classe
void Initialization() ;// Este método efectua a zeragem das variáveis.
vazio AddSymbol(string Symb) ;// método de adição de um símbolo em teste ao símbolo do testador deve ser carregado e o terminal deve exibir um gráfico sobre o período em teste .
bool SetBeginEnd( int Begined, int Ended) ;// set beginning and end of the history under test . A indexação começa a partir do fim de acordo com a norma. É por isso que a barra inicial do histórico em teste é maior do que a barra final.
void Visualização(true); // Permitindo a visualização de ofícios .
voidPrinting(true) ;// a produção de resultados comerciais para a revista é desactivada por defeito.
bool Start(datetime &IndexInstrum[]) este método verifica o fim do período em teste, e devolve o conjunto de horas de início de barras para os instrumentos em teste . Isto é necessário para sincronizar os testes dos diferentes instrumentos se houver lacunas .
int GetBarsNambe(string GSimb,datetime TimeOpen);// devolve o número do bar pelo símbolo seleccionado e a hora de abertura do bar.
void Vedenie_v() é o método principal onde verificamos todas as ordens definidas para disparar, fechar na paragem ou lucro.
Os testes baseiam-se nas regras Mql4, ou seja, cada ordem tem a sua própria vida, pelo que podemos bloquear e abrir ordens opostas.
Todas as funções de negociação são também retiradas de Mql4. Isto foi feito para permitir uma fácil adaptação dos EAs escritos nesta língua.
Por favor note que o método OrderClose_v fecha completamente a posição seleccionada.
OrderClosePor falta .
double OrderProfit_v( ) calcula o lucro sem alavancagem, a alavancagem pode ser diferente para diferentes símbolos testados .
O resto do código permanece inalterado, ver documentação.
Ordem de aplicação
Primeiro vem a inicialização . Depois seleccionamos a história em teste . Depois adicionamos os instrumentos em teste . Habilitar a visualização, se necessário. Activar a saída do relatório, se necessário .
Os testes propriamente ditos têm lugar dentro do laçoDo -While .
Primeiro vem o método obrigatório
aaa=Test.Start(timeopen) ; Retorna o fim do teste e a gama de tempos de abertura de barras para os instrumentos em teste . A dimensão de timeopen deve coincidir com o número de instrumentos em teste . Se, por exemplo, timeopen[0] < 0, então este é um sinal de falta na história, ver exemplo .
Depois disso o próprio sistema de negociação tem um número ilimitado de barras. nambebars=Test.GetBarsNambe(Symbol(),timeopen[0]); onde está o símbolo do símbolo de negociação e o tempo de abertura da barra. De acordo com este número, é possível calcular os valores dos indicadores e definir o sinal de negociação de acordo com a lógica do TS.
No final, deve seguir-se o método Vedenie_v .
Após o fim dos testes (saída do ciclo), todo o histórico de negociação está disponível para todas as ordens . Ver a descrição e o fórum do Mql4
Também precisa do ficheiro HeadTester.mqh para sobrepor totalmente o formato das funções de negociação Mql4.
Boa sorte e prosperidade .
Primeiro lançamento
...
Boa sorte e prosperidade .
Cavalheiros PLZ. Em algum lugar estou a abrandar muito intensamente. A questão diz respeito à SOM. Se for possível, num exemplo concreto .
Suponha que temos um mapa composto por 50X60 neurónios (células rectangulares). Vamos tomar um vector de treino aleatório, a sua dimensão x1={x1,x2,x3,x4,x5}, vamos assumir que a duração total da amostra de treino é de 5000 vectores. Suponhamos que o neurónio mais próximo do vector de entrada tem índice 25,30 - encontrei-o e o meu filho já está a estudar geometria na escola. E então a minha rede neural já não está optimizada. Na verdade, mais uma série de perguntas.
1 Como calcular os índices de neurónios a serem treinados no passo 1.
2 Como calcular os índices de neurónios a serem treinados na 2ª etapa.
3 Quantas etapas totais de formação devem existir para o vector de entrada X1.
4 Se eu estiver preso à regra da aprendizagem de Kohonen, vou pedir mais.
PS Eu li o artigo, li literatura adicional, olhei para os códigos, a conclusão requer um pingente.
Penso ter resolvido a vizinhança do neurónio vencedor dentro do qual a aprendizagem tem lugar. Agora a questão seguinte é.
Existe um critério de quantas vezes formar neurónios nas proximidades? Esta questão é mal descrita, não consigo compreender se a ensinarmos uma vez e depois tomarmos o próximo vector. Ou treinar até que o erro médio seja reduzido a, digamos, 5%.
É necessário um algoritmo para a coloração do mapa de Kohonen. Há um grande desejo não de pintar todos os mapas, mas de fazer com um, respectivamente, cada aglomerado deve atribuir a sua própria cor. Como fazê-lo não é.Na figura mostra o mapa que tenho. O princípio da coloração é que um vector com maior comprimento é pintado com a cor mais clara. Embora não sejam vectores correctos X1 = (1,1) e X2 = (-1,-1) têm o mesmo comprimento mas pertencem a áreas diferentes.