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
Hi
Lamento muito se minha pergunta é muito básica.
Estou aprendendo mql4.
Por favor, ajude-me a expressar estas condições matemáticas em mql4:
IF( (A>B) AND (|X| <1) AND (Y<Z) ) então... ... ... ... ...
|X| é absouluto; significa (X 1)
Recebi uma mensagem do MetaEditor
" SE A EXPRESSÃO FOR MUITO COMPLEXA".
Depois de muitas tentativas,... Eu não tenho mais idéia... Então, por favor, me diga como...
ObrigadoTente isto:
if((a>b && MathAbs(x)<1) && y<z)
{
//escreva aqui o que deve acontecer
}
Pergunta para o oráculo...
Existe, de qualquer forma, para que seu EA execute uma Otimização e ajuste automaticamente as configurações todos os dias.
Eu gostaria de executar uma otimização do fator de lucro de 30 dias para 16 parâmetros. e fazer com que ela apenas aplique as configurações antes de começar a operar novamente. Ela se desliga automaticamente todos os dias por cerca de 8 horas. este seria o momento perfeito para executá-la...
qualquer um sabe como codificá-lo... Ele o traria do nível da Grande EA para o nível da IA rentável Insanley...
Este também poderia ser um bom código para que todos pudessem usar nos mercados de EA ajustar-se constantemente, por que razão nossos EA's deveriam ficar mais inteligentes.
Eu também coloquei isto no EA fourm, dident sabe sobre este até agora...
Obrigado por sua ajuda.
conselho, por favor
É possível criar indicadores de barra em janelas separadas como o indicador na foto que afixei [não sei como eles são oficialmente chamados] para dizer uma barra vermelha se o MACD cruzar negativo e permanecer vermelho se em zonas negativas e verde se cruzar positivo etc. etc. Também é possível criar as mesmas janelas indicadoras de barra para dizer se o preço vai abaixo de uma média móvel.
se esta parece uma pergunta idiota, por favor, tenha paciência. Quando olho para os indicadores em um gráfico, tendo a tentar antecipar o que o preço vai fazer, procuro ter indicadores de janela separados que, quando todos mostram a mesma cor, vou negociar. [Razões psicológicas]. É a criação desses indicadores separados do tipo barra algo que eu poderia aprender a criar, estou longe de ser um programador em qualquer língua.
Qualquer conselho seria muito apreciado.
dh
Hi
Lamento muito se minha pergunta é muito básica.
Estou aprendendo mql4.
Por favor, ajude-me a expressar estas condições matemáticas em mql4:
IF( (A>B) AND (|X| <1) AND (Y<Z) ) então... ... ... ... ...
|X| é absouluto; significa (X 1)
Recebi uma mensagem do MetaEditor
" SE A EXPRESSÃO FOR MUITO COMPLEXA".
Depois de muitas tentativas,... Eu não tenho mais idéia... Então, por favor, me diga como...
Obrigadoif(a>b && (x 1) && y<z){
;seu código
}
ou talvez x === 0 em vez de (x 1) porque somente de maneira MathAbs(x) < 1 é verdadeiro quando x=0
http://docs.mql4.com/basis/operations/bool
no outro pensamento, talvez você simplesmente precise disto:
if(a>b && x<1 &&& y<z)
ou isto
if(a>b && x<-1 &&& y<z)
já que x nunca é 0 ou -1 de acordo com sua definição
Estou confuso com a sua definição de valor absoluto
É possível criar indicadores de barra em janelas separadas como o indicador na figura que afixei [não sei como são chamados oficialmente] para dizer uma barra vermelha se o MACD cruzar negativo e permanecer vermelho se em zonas negativas e verde se cruzar positivo, etc., etc. Também é possível criar as mesmas janelas indicadoras de barra para dizer se o preço vai abaixo de uma média móvel.
se esta parece uma pergunta idiota, por favor, tenha paciência comigo. Quando olho para os indicadores em um gráfico, tendo a tentar antecipar o que o preço vai fazer, procuro ter indicadores de janela separados que, quando todos mostram a mesma cor, vou negociar. [Razões psicológicas]. É a criação desses indicadores separados do tipo barra algo que eu poderia aprender a criar, estou longe de ser um programador em qualquer língua.
Qualquer conselho seria muito apreciado.
dhSim, isto é possível.
É possível criar indicadores de barra em janelas separadas como o indicador na figura que afixei [não sei como são chamados oficialmente] para dizer uma barra vermelha se o MACD cruzar negativo e permanecer vermelho se em zonas negativas e verde se cruzar positivo, etc., etc. Também é possível criar as mesmas janelas indicadoras de barra para dizer se o preço vai abaixo de uma média móvel.
se esta parece uma pergunta idiota, por favor, tenha paciência comigo. Quando olho para os indicadores em um gráfico, tendo a tentar antecipar o que o preço vai fazer, procuro ter indicadores de janela separados que, quando todos mostram a mesma cor, vou negociar. [Razões psicológicas]. É a criação desses indicadores separados do tipo barra algo que eu poderia aprender a criar, estou longe de ser um programador em qualquer língua.
Qualquer conselho seria muito apreciado.
dhAqui você é exatamente o que deseja, carregue todos os 4 do mesmo indicador em um único gráfico, todos com configurações diferentes como mostrado abaixo, quando todos vermelhos vendem, quando todos azuis compram.
configurações
programado primeiro por 15 minutos
segundos 30 mins
terceiro 60 mins
adiante 140 mins
obrigado
Rapazes, obrigado eu vou explorar os indicadores postados#
muito apreciado
Seria possível escrever algum tipo de indicador que traça gráficos de seleção constante ou barras de variação constante em outra janela? Estas são diferentes formas de gráficos que não são baseados no tempo. Por exemplo, uma barra de 100 carrapatos é formada sempre que o preço se move 100 carrapatos. Portanto, em pouco volume, nenhuma barra é formada. Uma barra de intervalo constante é formada sempre que o preço se move um determinado número de carrapatos em um intervalo. Por exemplo, uma barra de intervalo definida em 20 formas sempre que o preço preenche um intervalo de 20 pip. Então, a próxima barra é iniciada. Como estas não são baseadas no tempo, não tenho certeza se isso seria possível nesta plataforma.
adicionar alerta simples à EA
Olá, espero encontrar aqui a pequena ajuda de que preciso! você pode me mostrar como acrescentar um alerta para esta EA, por exemplo? justamente quando as condições para a compra são cumpridas, ela também me alerta.
Obrigado,
Leo
número interno externo MagicNumber = 0;
sinal externo boolMail = Falso;
bool externo EachTickMode = Falso;
double Lots externo = 1.0;
Exterior int Slippage = 3;
bool StopLossMode externo = Verdadeiro;
StopLoss int externo = 30;
bool TakeProfitMode externo = Verdadeiro;
extern int TakeProfit = 60;
bool TrailingStopMode = Verdadeiro; bool StopLossMode = Verdadeiro;
Exterior int TrailingStop = 30;
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
no BarCount;
int Corrente;
bool TickCheck = Falso;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init() {
BarCount = Barras;
se (CadaTickMode) Corrente = 0; caso contrário Corrente = 1;
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização especializada |
//+------------------------------------------------------------------+
int deinit() {
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start() {
int Ordem = SIGNAL_NONE;
int Total, Bilhete;
nível duplo StopLossLevel, TakeProfitLevel;
if (CadaTickMode && Bars != BarCount) TickCheck = False;
Total = EncomendasTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Início variável |
//+------------------------------------------------------------------+
duplo Buy1_1 = iMA(NULL, 0, 89, 0, MODE_SMA, PRICE_CLOSE, Atual + 0);
duplo Buy1_2 = iClose(NULL, 0, Atual + 0);
duplo Buy2_1 = iMA(NULL, 0, 445, 0, MODE_EMA, PRICE_CLOSE, Corrente + 0);
duplo Buy2_2 = iClose(NULL, 0, Atual + 0);
//+------------------------------------------------------------------+
//| Fim variável |
//+------------------------------------------------------------------+
//Cheque posição
bool IsTrade = Falso;
para (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = Verdadeiro;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Início do Sinal (Compra de Saída) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Fim do sinal (Compra de Saída) |
//+------------------------------------------------------------------+
if (Order === SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
se (!EachTickMode) BarCount = Bars;
IsTrade = Falso;
continuar;
}
// Parada de trilha
if(TrailingStopMode && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Ponto * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
se (!EachTickMode) BarCount = Bars;
continuar;
}
}
}
{} else {
//Close
//+------------------------------------------------------------------+
//| Início do Sinal (Sair de Venda) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Fim do sinal (Sair de Venda) |
//+------------------------------------------------------------------+
if (Order === SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
se (!EachTickMode) BarCount = Bars;
IsTrade = Falso;
continuar;
}
// Parada de trilha
if(TrailingStopMode && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Ponto * TrailingStop)) {
if((OrderStopLoss() > (Pergunte + Ponto * TrailingStop)) ||| (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
se (!EachTickMode) BarCount = Bars;
continuar;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Início do sinal (Entrada) |
//+------------------------------------------------------------------+
if (Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY;
//+------------------------------------------------------------------+
//| Fim do sinal |
//+------------------------------------------------------------------+
//Compra
if (Order === SIGNAL_BUY && ((EachTickMode && !TickCheck) ||| (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Cheque margem livre
if (AccountFreeMargin() < (1000 * Lotes)) {
Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());
devolução(0);
}
se (StopLossMode) StopLossLevel = Perguntar - StopLoss * Ponto; caso contrário, StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfitLevel * Ponto; caso contrário TakeProfitLevel = 0,0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Imprimir("Pedido de compra aberto : ", Preço Aberto());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Imprimir("Erro na abertura do pedido de compra : ", GetLastError());
}
}
se (EachTickMode) TickCheck = Verdadeiro;
se (!EachTickMode) BarCount = Bars;
return(0);
}
}
//vender
if (Order === SIGNAL_SELL && ((EachTickMode && !TickCheck) ||| (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Cheque margem livre
if (AccountFreeMargin() < (1000 * Lotes)) {
Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());
devolução(0);
}
se (StopLossMode) StopLossLevel = Bid + StopLoss * Ponto; caso contrário, StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfitLevel * Ponto; caso contrário TakeProfitLevel = 0,0;
Ticket = OrderSend(Symbol(), OP_SELLL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Imprimir("ordem de venda aberta : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Imprimir("Erro na abertura do pedido de VENDA : ", GetLastError());
}
}
se (EachTickMode) TickCheck = Verdadeiro;
se (!EachTickMode) BarCount = Bars;
return(0);
}
}
se (!EachTickMode) BarCount = Bars;
retorno(0);
}
//+------------------------------------------------------------------+
Obrigado & outras missões
Obrigado por responder à minha pergunta.
newdigital, Kalenzo,asmdev
E obrigado a todos
É a minha próxima pergunta.
1.) Como comparar um valor de algo que acontece e aconteceu
por exemplo, se "n" é agora, a variável do tempo, n-a = "a" tempo antes de agora.
como comparar o valor do RSI quando aconteceu em (n-a) e RSIn(now).
ou como comparar MA50 para três barras antes de agora e última barra?
2.) De acordo com o ponto 1.) o caso real é... como criar uma divergência de alta/baixa?
Quando as condições: Há um preço mais alto e o RSI mais alto de prazo definido. E depois do tempo decorrido... encontramos um novo preço mais alto, mas não seguido por um novo RSI (RSI não consegue fazer um novo alto).
Todos nós sabemos que esta situação é um sinal de venda de alta realibilidade, e o sinal de compra é o inverso, então eu quero que minha EA saiba disso.
Mais uma vez, obrigado.