[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

 
Aleksander:

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 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)?
 
gawrik:
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

 
Aleksander:

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

Arquivos anexados:
close_all.mqh  3 kb
open_ord.mqh  3 kb
trade.mqh  3 kb
 

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

Razão: