Pergunte! - página 51

 
pawang:
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...

Obrigado

Tente 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

Arquivos anexados:
chart.jpg  11 kb
 
pawang:
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...

Obrigado

if(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

 
dxx:
É 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.

dh

Sim, isto é possível.

 
dxx:
É 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.

dh

Aqui 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

Arquivos anexados:
 

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.