![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
problema com a posição próxima
......
dupla cena=0;
estática int isCrossed = 0;
isCrossed = Crossed (k,d);
if(OrderSelect(ticket, SELECT_BY_POS))
{
c=OrdemOpenPrice();
retorno(0);
}
se (isCrossed>0)
{
cena=((c-Ask)*10000);
return(0);
}
total = EncomendasTotal();
if(total < 1)
{
if(isCrossed == 1)
{
bilhete = OrderSend(Symbol(), OP_BUY, Lots, Ask, 1000, cena,
cena , "EMA_CROSS", 12345, 0, Verde);
}
....
if(isCrossed == 2)
{
bilhete = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1000, cena,
cena, "EMA_CROSS", 12345, 0, Vermelho);
......
geral a EA fecha a posição quando a EMA cruza e, ao mesmo tempo, abre a outra posição
as posições abertas, mas eles não querem fechar ;/
por favor, ajude
É possível fechar uma posição e abrir uma nova posição ao mesmo tempo?
(...)
if(OrdersTotal()!=0) {
(...)
OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }
if(OrdersTotal()==0) {
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green); }
(...)
Nesta amostra de código, a posição curta será fechada no primeiro tick, mas a posição longa não será aberta instantaneamente. É necessário outro tick para abrir a posição longa.
Obrigado de antemão :-)
Sim, é possível. Basta colocar a função RefreshRates() entre os operadores.
......please ajuda
Parece que sim: Eu sou Pietra. Qual é o meu segundo nome?
É impossível ajudá-lo sem o código completo. Desculpe.
Precisa de ajuda na codificação
Qualquer pessoa pode me ajudar sobre a codificação MT4 para saber os preços máximos e mínimos abertos para a EA? Há algumas aberturas por parte de um EA.
Encontrei um código como este, mas é para conhecer a primeira/última abertura de transação.
duplo GetLastBuyPrice(int Magic)
{
int total=OrdensTotal()-1;
para (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
devolução(OrderOpenPrice());
}
}
retorno(10000);
}
Como codificar para saber a maior/mais baixa abertura de transação?
Código
Qualquer pessoa pode me ajudar sobre a codificação MT4 para saber os preços máximos e mínimos abertos para EA? Há algumas aberturas por parte de um EA.
Encontrei um código como este, mas é para conhecer a abertura da primeira/última transação.
Dupla abertura[1000] = {0};
abertura máxima dupla = 0 ;
double minopen = 1000000 ;
// duplo GetLastBuyPrice(int Magic)
{
int total=OrdensTotal()-1;
para (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
opens[cnt] = OrderOpenPrice() ;
}
}
para ( cnt = 0 ; cnt <= total ; cnt ++ )
{
se ( abre[cnt] > maxopen ) maxopen = abre[cnt] ;
se ( abre[cnt] < minopen ) minopen = abre[cnt] ;
}
}
Como codificar para saber a maior/mais baixa abertura de transação?oi,
alterar o código como acima,
não é um procedimento para ligar de outros
coloque-o onde você quiser em seu código EA .
OTR
Precisa de ajuda para fazer código para abrir mais de um pedido
Não tive sucesso em acrescentar código para abrir uma segunda encomenda.
Estou tentando abrir 2 pedidos com base no mesmo sinal com diferentes níveis de TP.
Abaixo está meu código para abrir a primeira ordem:
qualquer ajuda é apreciada.
if(SlowSell<0 && FastSell<0 && PrevFastSell==0)
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("SellStop order opened : ",OrderOpenPrice());
}
else Print("Erro na abertura do pedido SellStop : ",GetLastError());
retornar(0);
ticket=OrderSend(Symbol(),OP_SELLL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("SellStop order opened : ",OrderOpenPrice());
}
else Print("Erro na abertura do pedido SellStop : ",GetLastError());
retornar(0);
}
Olá
Preciso de alguma ajuda simples de codificação,
1) Abrigar um comércio a um certo número de pips
2) Então desativa/suspende qualquer outra negociação..........
Certificando-se de que não se cobre novamente, pois eu fecharei manualmente o comércio coberto.
Não tive sucesso em adicionar código para abrir uma segunda ordem.
Estou tentando abrir 2 pedidos com base no mesmo sinal com diferentes níveis de TP.
Abaixo está meu código para abrir a primeira ordem:
qualquer ajuda é apreciada.
if(SlowSell<0 && FastSell<0 && PrevFastSell==0)
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("SellStop order opened : ",OrderOpenPrice());
}
else Print("Erro na abertura do pedido SellStop : ",GetLastError());
retornar(0);
ticket=OrderSend(Symbol(),OP_SELLL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("SellStop order opened : ",OrderOpenPrice());
}
else Print("Erro na abertura do pedido SellStop : ",GetLastError());
retornar(0);
}Substituir primeiro
retorno(0);
para
RefreshRates();