Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 419
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
Dois anos - em testador :) Está a decorrer há um ano na demonstração... Muitos insectos lá, quando tive de o ligar por causa de classes externas. E agora há um tal insecto, que não sei como corrigir - vou apenas aumentar o tamanho da matriz em um dígito, por agora. Porque não existe um tamanho automático, como para um buffer gráfico, ou existe?
Experimente desta forma.
Inicializar a matriz OrderBU[1].
Primeiro aumentar o tamanho da matriz ( ArrayResize(OrderBU,NorderBU+1) ), depois OrderBU[NorderBU]=OrderTicket();NorderBU++;
Experimente desta forma.
Inicializar a matriz OrderBU[1].
Primeiro aumentar o tamanho da matriz ( ArrayResize(OrderBU,NorderBU+1) ), depois OrderBU[NorderBU]=OrderTicket();NorderBU++;
Pode por favor aconselhar-nos sobre este ponto?
Por exemplo, temos um indicador Williams Percent Range (%R) numa carta e arrastamos o indicador On Balance Volume (OBV) para a sua janela a partir do navegador.
https://charts.mql5.com/8/675/xauusd-h4-metaquotes-software-corp.png
A %R funciona no intervalo 0 -100%, o OBV não tem uma ligação específica.
Quando o OBV está na janela %R, vemos visualmente que vai além de -20 ou -80%.
Como podemos obter OBV acima de -20% ou abaixo de -80% na nossa EA?
Como ligar o OBV no indicador personalizado ao intervalo de 0 -100%? Normalizá-lo a ele (alcance)? Como é que isto pode ser feito?
Compreendo que não é necessário normalizar o OBV para %R (a imagem será diferente).
Talvez seja elementar, apenas ainda não o encontrei.
if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)
Faço-o desta forma,
Preciso de um parâmetro de lote flutuante, o primeiro lote é definido pelo utilizador, depois este parâmetro não é mais tratado, e a EA funciona por si mesma e em caso de perda é aumentada pelo lote máximo especificado no programa (ou uma variável externa), em caso de lucro é reduzida pelo montante especificado .
Se eu escrever o parâmetro no "Init", a EA deixará de aceder ao lote de variáveis externas ?
ou como é que o faço ?
esta é uma expressão aproximada .
if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)
Faço-o desta forma,
Não é conveniente, especialmente com um grande número de parâmetros...
A solução via array é interessante. Especialmente interessante como encontrar o valor mais próximo de uma variável quando se faz a média do número total de valores.
Boa noite. Tentar escrever uma simples EA em tenkan e kinjun crossing. Aqui está o código:
nulo OnTick()
nulo OnTick()
{
TradeSignal_20();
}
int TradeSignal_20()
{
int sig=0;
if(h_ich==INVALID_HANDLE)
{
h_ich=iIchimoku(Símbolo(),Período(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb);
return(0);
}
senão
{
if (CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0); // TENKANSEN_LINE
if (CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0); // KIJUNSEN_LINE
if (!ArraySetAsSeries(ich1_buffer,true)) return(0);
if (!ArraySetAsSeries(ich2_buffer,true)) return(0);
}
//--- verificar condição e valor definido para sig
if(ich1_buffer[1]>ich2_buffer[1]) sig=1;
senão se(ich1_buffer[1]<ich2_buffer[1]) sig=-1;
senão sig=0;
if (ich1_buffer[1]>ich2_buffer[1])
if (ich1_buffer[2]<ich2_buffer[2])
Alerta(Símbolo()+": compra");
if (ich1_buffer[1]<ich2_buffer[1])
if (ich1_buffer[2]>ich2_buffer[2])
Alerta(Símbolo()+": venda");
//--- devolver sinal comercial
devolução (sig);
}
//+------------------------------------------------------------------+
Como posso fazer com que o alerta seja chamado apenas uma vez e não constantemente?
Não correr nem todas as carraças, mas conforme necessário.