[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 340

 
Obrigado a todos vocês. Acho que já resolvemos tudo.
 
smogsam >> :

Olá.

Como posso saber se o SL ou TP é acionado. Por exemplo, se um pedido for encerrado em

SL ou TP, executar so-and-so. Eu não encontrei tal função.

Não há funções padrão, mas você pode adicionar sinais na janela do terminal (som, arquivo, correio).

Se utilizar um EA, você pode adicionar tanto um sinal como um alerta e .....

 
E daí? Eu preciso de um especialista.
 

Uma pergunta a mais. Se(OrdersTotal()==0) isto... se o número de ordens abertas for igual a zero. então como será... se o número de pedidos abertos PARA DIÁRIO for zero.

Não existe algo como OrderDayTotal?

 
smogsam >> :
E daí? Preciso estar em um especialista.

Bem, como o que

"Se você usar um EA você pode adicionar tanto um sinal como um alerta e .....".

"..." Pode ser qualquer coisa para desligar o PC.

 
future >> :

Uma pergunta a mais. Se (OrdersTotal()==0) isto... se o número de ordens abertas for igual a zero. Se o número de pedidos abertos PARA O DIA for igual a zero, o que aconteceria?

Não há algo como OrderDayTotal?

Suponha que uma ordem de compra seja aberta, então fechamos uma ordem de compra em um sinal de venda, ou uma ordem de compra é aberta, então escalamos em um sinal de compra

Tipo de pedido()

Ver Ajuda

Referência MQL4 - Funções comerciais - OrderType

OrderOpenTime( )
 

Aparentemente, nenhum dos profissionais trabalha com a dd.

Talvez alguém saiba como entrar em contato com mamadu? ele é o autor do artigo,

sobre as quais tenho feito perguntas em toda a Internet (sem sucesso). Ele é Dmitriy.

 
smogsam >> :

Olá.

Como posso saber se o SL ou TP é acionado. Por exemplo, se um pedido for fechado em

SL ou TP, executar isto ou aquilo. Eu não encontrei esta função.

Eu utilizo o seguinte esquema.

//Determinar se o comércio anterior terminou com lucro ou prejuízo
//------------------------------------------------------------------------------------------------------------------------------------------------
se (OrderSelect(Tic_Verh,SELECT_BY_TICKET)==verdadeiro)
{
if (OrderComment()=="[sl]")_SL[0]=-1;
if (OrderComment()=="[tp]")_SL[0]=1;
}
se (OrderSelect(Tic_Niz,SELECT_BY_TICKET)==verdadeiro)
{
if (OrderComment()=="[sl]")_SL[0]=-1;
if (OrderComment()=="[tp]")_SL[0]=1;
}
Variáveis do tipo INT são marcadas em vermelho, elas contêm números de TICs ao abrir uma posição

A variável _SL[0] é declarada como uma matriz unidimensional de um elemento, ou seja, int _SL[1]

 

Aconselho como escrever um EA e não consigo fazer isso. Abro uma ordem de compra em um determinado momento, se o preço se desviar 10 pips mais baixo uma ordem de venda deve abrir.
A primeira ordem abre para compra e quando o preço se desvia para o nível baixo a ordem de venda não é aberta. Se o mercado sobe 10 pips a função de fechamento de ordem não é iniciada.
aqui é uma parte do código




bool opb1=true;
bool ops1=true;
int start()
{

int Cur_Hour=Hour(); // Tempo do servidor em horas
double Time_Cls=9.25;
double Cur_Min=Minute();
double Cur_time=Cur_Hour + Cur_Min*0.01; // Hora atual


if (Cur_time>=Time_Cls)

{
if (opb1===verdadeiro){

double bid =MarketInfo("EURUSD",MODE_BID);
double ask =MarketInfo("EURUSD",MODE_ASK);
double point =MarketInfo("EURUSD",MODE_POINT);
double bid1 =bid+50*Point;
double ask1=ask-50*Point;
double bid2=bid;
double ask2=ask-100*Point;


OrderSend(Symbol(),OP_BUY,0.1,Ask,50,Bid-400*Point,Bid+200*Point);
Alerta (GetLastError());

opb1=false;}

if(MarketInfo("EURUSD",MODE_BID)>= bid1)


{
Close_All(0); //close buy function
return(0);
}
if(MarketInfo("EURUSD",MODE_ASK)<=ask1)

{
ask =MarketInfo("EURUSD",MODE_ASK); //
bid =MarketInfo("EURUSD",MODE_BID); //
point =MarketInfo("EURUSD",MODE_POINT);//
if (ops1===true){
OrderSend(Symbol(),OP_SELLL,0.3,Bid,50,Ask+400*Point,Ask-200*Point);
Alerta (GetLastError());
ops1=false;}
if(MarketInfo("EURUSD",MODE_ASK)<=ask2)
{
Close_All(1);// função fechar venda
Close_All(0);
return(0);
}
ou talvez eu esteja colocando a condição de aberto errado?

 

Aconselho como escrever um EA e não consigo fazer isso. Abro uma ordem de compra em um determinado momento, se o preço se desviar 10 pips mais baixo uma ordem de venda deve abrir.
A primeira ordem abre para compra e quando o preço se desvia para o nível baixo a ordem de venda não é aberta. Se o mercado sobe 10 pips a função de fechamento de ordem não é iniciada.
aqui é uma parte do código




bool opb1=true;
bool ops1=true;
int start()
{

int Cur_Hour=Hour(); // Tempo do servidor em horas
double Time_Cls=9.25;
double Cur_Min=Minute();
double Cur_time=Cur_Hour + Cur_Min*0.01; // Hora atual


if (Cur_time>=Time_Cls)

{
if (opb1===verdadeiro){

double bid =MarketInfo("EURUSD",MODE_BID);
double ask =MarketInfo("EURUSD",MODE_ASK);
double point =MarketInfo("EURUSD",MODE_POINT);
double bid1 =bid+50*Point;
double ask1=ask-50*Point;
double bid2=bid;
double ask2=ask-100*Point;


OrderSend(Symbol(),OP_BUY,0.1,Ask,50,Bid-400*Point,Bid+200*Point);
Alerta (GetLastError());

opb1=false;}

if(MarketInfo("EURUSD",MODE_BID)>= bid1)


{
Close_All(0); //close buy function
return(0);
}
if(MarketInfo("EURUSD",MODE_ASK)<=ask1)

{
ask =MarketInfo("EURUSD",MODE_ASK); //
bid =MarketInfo("EURUSD",MODE_BID); //
point =MarketInfo("EURUSD",MODE_POINT);//
if (ops1===true){
OrderSend(Symbol(),OP_SELLL,0.3,Bid,50,Ask+400*Point,Ask-200*Point);
Alerta (GetLastError());
ops1=false;}
if(MarketInfo("EURUSD",MODE_ASK)<=ask2)
{
Close_All(1);// função fechar venda
Close_All(0);
return(0);
}
ou talvez eu esteja colocando a condição de aberto errado?

Razão: