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
Tenha em mente que você pode precisar armazenar continuamente a propagação também ... dependendo do tipo de EA que você está escrevendo. caso contrário, inútil
é ALTA [0] -- barra de corrente que apenas INICIA
para baixo , eu não sei , talvez baixo[1]
Ordem certa para colocar OrderSend(),OrderModify()
Dia atrás eu li tópico no fórum sobre função OrderSend() e OrderModify()
e este tópico me dá uma pista de porque alguns trabalhos da EA e outros não, e eu me pergunto como verificar se a função OrderSend() e OrderModify() está devidamente escrita. Algum exemplo?
olá a todos...
Por favor, me diga como codificar para obter a lista de todos os pares no MT4?
obrigado ...
Charles
Hi,
Não é correto escrever Ask[1], mas como posso obter o Ask-Price do último tick?
Obrigado!Você tem que salvar os ticks em tempo real, e depois acessá-los de seu EA ou indicador. Eu poderia tentar codificar um exemplo para você se você ainda estiver interessado.
olá a todos...
Por favor me diga como codificar para obter a lista de todos os pares no MT4?
obrigado
CharlesLeve seu tempo homem, eu acredito que é mais fácil de fazer em Mql5, então é só esperar que as coisas se resolvam.
obtendo valores de tendência mágica em uma variável.
oi!!
estou trabalhando em uma EA e estou me perguntando como posso obter valores indicadores de tendência mágica em uma variável. obviamente não há função nativa para a tendência mágica, como o iMA faz para as médias móveis e assim....
até agora parece que tenho que codificá-la do zero. mas não encontro nenhuma informação sobre a matemática!
alguém poderia ajudar?
muito obrigado!!!
oi!!
estou trabalhando em uma EA e estou me perguntando como posso obter valores indicadores de tendência mágica em uma variável. obviamente não há função nativa para a tendência mágica, como o iMA faz para as médias móveis e assim....
até agora parece que tenho que codificá-la do zero. mas não encontro nenhuma informação sobre a matemática!
alguém poderia ajudar?
muito obrigado!!!!Procure informações sobre como usar a função ICustom na MQL4 . Com esta função, você pode chamar indicadores externos em seu EA
-guyver
Robô - Automat EA cerca de 2 MA em média móvel rápido e lento
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
número interno externo MagicNumber = 0;
sinal externo boolMail = Falso;
bool externo EachTickMode = Verdadeiro;
double Lots externo = 0,2;
Exterior int Slippage = 3;
bool externo UseStopLoss = Verdadeiro;
stopLoss int externo = 15;
extern bool UseTakeProfit = Verdadeiro;
extern int TakeProfit = 30;
extern bool UseTrailingStop = Verdadeiro; extern bool UseTakeProfit = Verdadeiro;
Exterior int TrailingStop = 20;
int BarCount;
int Current;
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 Var1 = iMA("EURUSD", PERÍODO_M5, 14, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo Var2 = iMA("EURUSD", PERÍODO_M5, 7, 0, MODE_SMA, PREÇO_MEDIAN, Corrente + 1);
duplo Compra1_1 = iMA("EURUSD", PERÍODO_M5, 14, 0, MODE_SMA, PREÇO_MEDIAN, Corrente + 1);
duplo Buy1_2 = iMA("EURUSD", PERÍODO_M5, 7, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo Sell1_1 = iMA("EURUSD", PERÍODO_M5, 7, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo Sell1_2 = iMA("EURUSD", PERÍODO_M5, 14, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo CloseBuy1_1 = iMA("EURUSD", PERÍODO_M5, 14, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo CloseBuy1_2 = iMA("EURUSD", PERÍODO_M5, 7, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo CloseSell1_1 = iMA("EURUSD", PERÍODO_M5, 7, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
duplo CloseSell1_2 = iMA("GBPUSD", PERÍODO_M5, 14, 0, MODE_SMA, PREÇO_MEDIAN, Atual + 1);
//+------------------------------------------------------------------+
//| 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) |
//+------------------------------------------------------------------+
if (CloseBuy1_1 > CloseBuy1_2 && False) Ordem = SINAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| 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(UseTrailingStop && 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) |
//+------------------------------------------------------------------+
if (CloseSell1_1 > CloseSell1_2False) Ordem = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| 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(UseTrailingStop && 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) |
//+------------------------------------------------------------------+
se (Buy1_1 < Buy1_2 && False) Order = SIGNAL_BUY;
se (Vender1_1 < Vender1_2 && Falso) Ordem = SINAL_SELL;
//+------------------------------------------------------------------+
//| 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 (UseStopLoss) StopLossLevel = Perguntar - StopLoss * Ponto; caso contrário, StopLossLevel = 0,0;
if (UseTakeProfitLevel) 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 (UseStopLoss) StopLossLevel = Bid + StopLoss * Ponto; caso contrário, StopLossLevel = 0,0;
if (UseTakeProfitLevel) TakeProfitLevel = Bid - TakeProfit * 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);
}
//+------------------------------------------------------------------+
// onde há erro, beacuse eu não sei, me ajude. obrigado
que erro você comete?