Como codificar? - página 180

 

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.

 
 
pietra`:
......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

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

 
williamcope:
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();