Indicadores de múltiplos períodos de tempo - página 1127

 
Jeaa:

Caros Todos... Espero que vocês estejam muito bem...

Aprendi a programar e fiz uma simples EA para determinar o baixo valor no 3 último barr e abrir um pedido de compra... mas tenho um problema, não fiz o pedido... Alguém pode me ajudar? O programa obteve o preço baixo e mostrou o Alerta, mas não colocou a ordem de compra...


Obrigado em adiantado...

//--------------------------------------------------------------------
// NewBar_jeaa_Rev 2.mq4
//--------------------------------------------------------------------
#propriedade copyright "Jeaa

extern int GV_CantidadBarras=3; // Cantidad de barras
dígitos int externos=5;
//--------------------------------------------------------------------
Lotes duplos externos = 0,01;
StopLoss duplo externo = 100;
Duplo TakeProfit externo = 100;
Externo int Slippage = 3;


//--------------------------------------------------------------------
bool GV_Flag_NuevaBarra=false; // Flag de una nueva barra
//======================================================================

int start() // Diversão especial start()
{
double Precio; // variável que registra el precio minimo y Máximo
//--------------------------------------------------------------------
Fun_NuevaBarra(); // Chamada de função
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra...
retornar; // ...retornar
//=========================================================================

//int IndMax =ArrayMaximum(High,GV_CantidadBarras,1);// Indice de la barra del precio maximo
int IndMin =ArrayMinimum(Low, GV_CantidadBarras,1);// Indice de la barra del precio minimo

Precio=Low[IndMin];

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,StopLoss,TakeProfit, "My orderrr",16384,0,Blue);

Alerta(Símbolo(),": Barras= ",GV_CantidadBarras, // Mostrar mensaje de precios max y min
", Min= ",DoubleToString(Precio,digitos));

retornar;
}

void Fun_NuevaBarra() // Descripción de la Funcion que detecta ...
{ // ... una nueva barra
datatempo estático NewTime=0; // variável que almacena fecha y hora
GV_Flag_NuevaBarra=falso; // Inicializa nueva barra a falso (no hay nueva barra)
if(NewTime!=Time[0]) // Si existe nueva barra el dato es distinto de cero.
{
NewTime=Time[0]; //... y en ese caso se registra el hora y fecha de la...
GV_Flag_NuevaBarra=true; //nueva barra y se ativa el flag que señaliza la...
//existencia de una nueva barra
}
}

Que erro você recebe nos especialistas ou na guia do diário do terminal?
 
mladen:
Que erro você recebe nos especialistas ou na guia do diário do terminal?

Oi mladen... Obrigado por sua resposta...

2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1: Alerta: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: Alerta: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: operações comerciais não permitidas por configurações
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1: inicializado
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 entradas: GV_CantidadBarras=3; dígitos=5; Lots=0,01; StopLoss=100,0; TakeProfit=100,0; Slippage=3;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1: carregado com sucesso


2016.09.06 12:57:08.587 '502630': ordem de compra 0.01 USDJPY abertura no mercado sl: 50.000 tp: 50.000 falharam [Inválido S/L ou T/P]
2016.09.06 12:57:08.268 '502630': mercado de compra de pedidos 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:07.224 '502630': pedido de compra 0.01 USDJPY abertura no mercado sl: 50.000 tp: 50.000 falharam [Inválido S/L ou T/P]
2016.09.06 12:56:06.921 '502630': mercado de compra de pedidos 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:04.221 Comércio automatizado habilitado

 
Jeaa:

Oi mladen... Obrigado por sua resposta...

2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1: Alerta: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: Alerta: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: operações comerciais não permitidas por configurações
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1: inicializado
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 entradas: GV_CantidadBarras=3; dígitos=5; Lots=0,01; StopLoss=100,0; TakeProfit=100,0; Slippage=3;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1: carregado com sucesso


2016.09.06 12:57:08.587 '502630': ordem de compra 0.01 USDJPY abertura no mercado sl: 50.000 tp: 50.000 falhou [Invalid S/L or T/P]
2016.09.06 12:57:08.268 '502630': ordem de compra no mercado 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:07.224 '502630': ordem de compra 0,01 USDJPY abertura no mercado sl: 50.000 tp: 50.000 falhou [Invalid S/L ou T/P]
2016.09.06 12:56:06.921 '502630': ordem de compra no mercado 0,01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:04.221 Negociação automatizada ativada

Como você pode ver seu stop loss e ter lucro estão errados

Você está calculando aqueles errados: stop loss e take profit são calculados como preço de ordem aberta +- stop loss e/ou take profit (o + ou - depende do tipo de ordem) mas não como 50 (como no seu caso) mas seria preço de ordem aberta +- 50*_Point (para pontos) ou 50*_Point*MathPow(10,MathMod(_Digits,2)) para distância de pips do preço de ordem aberta

 
mladen:

Como você pode ver seu stop loss e ter lucro estão errados

Você está calculando errado: o stop loss e take profit são calculados como preço de ordem aberta +- stop loss e/ou take profit (o + ou - depende do tipo de ordem) mas não como 50 (como no seu caso) mas seria preço de ordem aberta +- 50*_Point (para pontos) ou 50*_Point*MathPow(10,MathMod(_Digits,2)) para distância de pips do preço de ordem aberta

Prezado mladen...


Obrigado por sua ajuda... Eu mudei para..:


duplo SL=NormalizeDouble(Precio - StopLoss*Point,Dígitos);
double TP=NormalizeDouble(Precio + TakeProfit*Point,Dígitos);

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue);


E trabalhar como deve ser.


Com os melhores cumprimentos.


Jesús

 
Jeaa:

Prezado mladen...


Obrigado por sua ajuda... Eu mudei para..:


double SL=NormalizeDouble(Precio - StopLoss*Point,Digits);
double TP=NormalizeDouble(Precio + TakeProfit*Point,Dígitos);

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue);


E trabalhar como deve ser.


Com os melhores cumprimentos.


Jesús

Bom. Feliz negociação :)
 

Oi, pessoal,

Você pode adicionar o prazo na mensagem de alerta no arquivo anexo, por favor?

muito obrigado :)

Arquivos anexados:
 

Prezado Mladen,

Peço desculpas por enviar este pedido aqui, pois não tenho conhecimento do lugar certo.

É possível adicionar uma opção de Símbolo Atual Somente no indicador anexo.

Se você pudesse, isso realmente ajudaria muito :)

Saúde.

Sameer

Arquivos anexados:
 
DRADIS33:

Oi, pessoal,

Você pode adicionar o prazo na mensagem de alerta no arquivo anexo, por favor?

muito obrigado :)

Aqui está uma versão com essa adição


Arquivos anexados:
 
sameermehta74:

Prezado Mladen,

Peço desculpas por enviar este pedido aqui, pois não tenho conhecimento do lugar certo.

É possível adicionar uma opção de Símbolo Atual Somente no indicador anexo.

Se você pudesse, isso realmente ajudaria muito :)

Saúde.

Sameer

Você tem uma solução muito fácil. Adicione esta linha :

      StringReplace(Symbols,"current",_Symbol);

antes da linha 64, e depois na lista de símbolos digite "corrente" em qualquer lugar da cadeia (sem o ""), e ela será substituída pelo símbolo corrente. Ou use o anexo :) (as mesmas regras para o símbolo atual aplicadas: para ter somente o símbolo atual exibido, digite somente "corrente" na lista de símbolos)

Arquivos anexados:
 
mladen:

Você tem uma solução muito fácil. Adicione esta linha :

antes da linha 64, e depois na lista de símbolos digite "corrente" em qualquer lugar da cadeia (sem o ""), e ela será substituída pelo símbolo corrente. Ou use o anexo :) (as mesmas regras para o símbolo atual aplicadas : para ter somente o símbolo atual exibido, digite somente "corrente" na lista de símbolos)

Obrigado :) Muito apreciado.