[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 993
Olá. Tenho uma pergunta: existe alguma maneira de otimizar uma EA no MT4 para vários pares de moedas ao mesmo tempo? ou talvez exista um programa especial para isso? ou pelo menos para acelerar a otimização (para carregar totalmente a CPU)?
Preciso escrever cada spread seguinte em um array, e dividi-lo pelo número de spreads no array, e assim que o número de registros chegar a N, preciso remover o primeiro do array
if (Bid<=Low&&Ask<High -1*delta ) // Abertura de Srll
Imprimir (" Vender= ",21);
retornar (20);}
retornar; // se o tempo não for bom, não abrir algo; apenas sair.
As seguintes variáveis Alta e Baixa são conhecidas (verifiquei com uma impressão) e o preço mostra as seguintes condições
1.se comprar > Alta, então enviamos um comando 10 (compra fechada)
2. se a compra < baixa e asc é inferior a alta por 1 ponto, então feche-a com retorno 11
se variável Tempo === 1 então:
3. Se Bid for menor ou igual a Low e Ask for menor que High em pelo menos um ponto, então abra a Buy
4. Se a Licitação for maior ou igual a Alta, então abrimos Sell?
Quero lembrar que este programa é totalmente do tutorial, eu mudo apenas os critérios de negociação, respectivamente, o comando 10, 20 todos os padrões, eu anexarei todas as funções que são abordadas apenas no caso de
Preciso escrever um intervalo de tempo na função de indicador allert. tipo, uma janela aparece quando um sinal aparece e podemos ver lá de qual gráfico esse sinal. M15, por exemplo.
Procurei no site, mas não encontrei nada parecido.
Preciso escrever um intervalo de tempo na função de indicador allert. tipo, uma janela aparece quando um sinal aparece e podemos ver lá de qual gráfico esse sinal. M15, por exemplo.
Procurei no site, mas não encontrei nada parecido.
Então exiba-a no lado esquerdo da tela - qual é a diferença? - A linha à direita terá o preço - à esquerda o texto da mensagem...
ou a viga - mas então tudo está do lado esquerdo...
Este é o pedido do cliente :) Outros indicadores são utilizados à esquerda para que um não se sobreponha ao outro.
Bem, eu vou resolver o problema, obrigado a todos por sua participação!
Olá. Tenho uma pergunta: existe alguma forma de otimizar um assessor em vários pares de moedas simultaneamente no MT4?
Você pode executar vários MT4 ao mesmo tempo com a otimização de um EA em pares diferentes.
Se for proibido, então diga-lhe que eu o permito
tente atribuir o delta
delta = 1; se (dígitos = 5) {delta = 10;}
e no texto acrescentar
se (Lance <=Baixo&&Pedido <Alto - 10*Ponto*delta)
Isto provavelmente não é muito certo, mas o significado é claro
delta = Ponto; se(dígitos = 5) {delta = 10* Ponto;}
se (Bid <=Baixo&& Pergunte <Alto - 10*delta) embora não haja diferença, mas... e quanto a mim?
e a seguinte pergunta sobre spreads dinâmicos faz com que seja necessário calcular o spread médio sobre N ticks,
Eu desenhei o seguinte, mas não tenho certeza se está correto:
int TicSpred=100;
duplo Spread[10000];
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
para (int q=TicSpred;q>0;q--){
se (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
para (q=TicSpred;q>0;q--) {Spread[p]=Spread[p-1];}
Spread[0]=(Ask-Bid)/delta;
duplo CountedSpred;
para (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}
duplo Aversired=CountedSpred/TicSpred; mas não tenho certeza se isto está correto, e não parece contar corretamente para cinco dígitos
Não, isso não está certo de forma alguma.
Preciso escrever cada spread seguinte em um array, e dividi-lo pelo número de spreads no array, e assim que o número de registros chegar a N, preciso remover o primeiro do array
pode ser feito algo mais simples?
Há também um erro aqui
se (Lance >=Alto ) // Fechar baía
retornar (11);
se (Bid <=Baixo && Pergunte <Alto - 1*delta )
retornar (21); // Fechar Venda
se (comércio === 1){
se ( Bid <=Low ) // Baía aberta
Imprimir ( " Baía = ",11);
retornar (10);}
se (Tempo == 1){
if (Bid<=Low&&Ask<High -1*delta ) // Abertura de Srll
Imprimir (" Vender= ",21);
retornar (20);}
retornar; // se o tempo não for bom, não abrir algo; apenas sair.
As seguintes variáveis Alta e Baixa são conhecidas (verifiquei com uma impressão) e o preço mostra as seguintes condições
1.se comprar > Alta, então enviamos um comando 10 (compra fechada)
2. se a compra < baixa e asc é inferior a alta por 1 ponto, então feche-a com retorno 11
se variável Tempo === 1 então:
3. Se Bid for menor ou igual a Low e Ask for menor que High em pelo menos um ponto, então abra a Buy
4. Se a Licitação for maior ou igual a Alta, então abrimos Sell?
Quero lembrar que este programa é totalmente do tutorial, eu mudo apenas os critérios de negociação, respectivamente, o comando 10, 20 todos os padrões, eu anexarei todas as funções que são abordadas apenas no caso de
Gente! Olá a todos! Socorro!
Preciso escrever um intervalo de tempo na função de indicador allert. tipo, uma janela aparece quando um sinal aparece e podemos ver lá de qual gráfico esse sinal. M15, por exemplo.
Procurei no site, mas não encontrei nada parecido.
Gente! Olá a todos! Socorro!
Preciso escrever um intervalo de tempo na função de indicador allert. tipo, uma janela aparece quando um sinal aparece e podemos ver lá de qual gráfico esse sinal. M15, por exemplo.
Procurei no site, mas não encontrei nada parecido.
De qualquer forma, esta função
//--------------------------------------------------------------------
// Critério.mqh
// Destinado a ser usado como um exemplo no tutorial MQL4.
//--------------------------------------------------------------- 1 --
// Função para o cálculo de critérios comerciais.
// Valores devolvidos:
// 10 - abertura Comprar
// 20 - Abertura da venda
// 11 - fechamento Compra
// 21 - Fechamento da venda
// 0 - nenhum critério significativo
// -1 - outro instrumento financeiro é utilizado
//--------------------------------------------------------------- 2 --
// Variáveis externas:
//--------------------------------------------------------------- 3 --
int Critério() // Função do usuário
{
//----------------------------------------------------------------4----
string Sym="________";
se (Sym!=Symbol()) // Se não for nossa barbatana.
{
Informar(16); // mensagem.
retorno(-1);} // ...e saída
delta = Ponto;
if (Dígitos == 5 ||| (Dígitos == 3 && StringFind(Símbolo(), "JPY", 0) != -1)))
delta= Ponto *10;
int Digital=MarketInfo(Symbol(),12);
//--------------------------------------------------------------- 5 --
// Parâmetros para o indicador técnico:
comércio de bobinas;
if (Begin>End && (Hour()>Begin-1 || Hour()<End)){trade=1;}
if (Begin<End && (Hora()>Begin-1 && Hora()<End)){trade=1;}
{if (trade==0 && mag!=Mag) return(0);}
// --------------------------Calcule o spread médio-----------------------
se (!IsTesting() ||| IsVisualMode() || !IsOptimization())
{
int TicSpred=100;
duplo Spread[10000];
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
para (int q=TicSpred;q>0;q--){
se (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
para (q=TicSpred;q>0;q--){Spread[q]=Spread[q-1];}
Spread[0]=(Ask-Bid)/delta;
duplo CountedSpred;
para (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}
dupla Média=CountedSpred/TicSpred;
}
//--------------------------------------------------------------- 5 --
// Cálculo de critérios comerciais
se (Lance >=Alto ) // Fechar baía
retornar (11);
se (Licitação <=baixa )
retornar (21); // Fechar Venda
se (comércio === 1){
se ( Bid <=Baixo & &&Ask<Alto -0,5*MeuPoint ) // Baía aberta
Imprimir ( " Baía = ",11);
retornar (10);}
se (comércio === 1){
if (Bid>=High ) // Abertura do Srll
Imprimir (" Vender = ",21);
retornar (20);}
retornar; // se o tempo for ruim, não abrir nada; apenas sair.
//--------------------------------------------------------------- 6 --
retornar(0); //sair da função do usuário
}
//--------------------------------------------------------------- 7 --
assume-se que as variáveis Baixa e Alta já foram definidas e estão corretas