Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 914

 
Top2n:

Muito obrigado. Tudo isso funciona. Vou ver o que você escreveu...
 
Top2n:

Alguma outra sugestão?

Eu conecto um script a um gráfico offline, o terminal fica pendurado. Talvez seja possível montar código em robô, então o que fazer com#importar "user32.dll"

O roteiro foi apenas um exemplo, ninguém disse que ele deveria ser colocado na tabela off-line. É normalmente executado em um gráfico normal e especifica o TF do gráfico offline na linha

 int whdl=WindowHandle (Symbol(), period_renko);  

E #importar "user32.dll" não é necessário, ele é chamado em WinUser32.mqh

Na verdade, existe um indicador "6MTH_Renko_Chart_Builder_Indi_Ver_02.mq4" que pode emular carrapatos no gráfico Renko criado. Ele funciona assim, o indicador é executado em um gráfico regular, depois abre o gráfico Renko que é atualizado em tempo real.


 
evillive:

O roteiro foi apenas um exemplo, ninguém disse que ele deveria ser colocado em um gráfico offline. É normalmente executado em um gráfico normal e especifica o TF do gráfico off-line na linha

E #importar "user32.dll" não é necessário, ele é chamado em WinUser32.mqh

Na verdade, existe um indicador "6MTH_Renko_Chart_Builder_Indi_Ver_02.mq4" que pode emular carrapatos no gráfico Renko criado. Ele funciona assim, o indicador é executado em um gráfico regular, depois abre o gráfico Renko que é atualizado em tempo real.


Obrigado!)
 

Olá, você pode me dizer como fazer isso?

Há um código como este e ele funciona. Estes são sinais ao se aproximar dos níveis comerciais. Buy1_line é um nível no gráfico, buy1 é a distância do preço em pips do nível correspondente. A questão é que o código tem a capacidade de desativar níveis que você não precisa. Neste caso, o valor de nível de compra1_linha (0,00000) e distância - é exibido como um número de 6 dígitos, o que, em princípio, não faz sentido. (O nível está desativado, você não precisa saber a distância) Pergunta! Como anular a distância até o nível - comprar1, se o nível correspondente for desativado? (ou em vez deste número escreva OFF ?)

string buy1_line=DoubleToStr(Price_Line,Digits);
string buy2_line=DoubleToStr(Price_Line2,Digits);
string buy1=     DoubleToStr((Price_Line-Bid)/Point,0);
string buy2=     DoubleToStr((Price_Line2-Bid)/Point,0);       

message=
 "buy_1 ("+buy1_line+"):"+(buy1>"0"?"+":"")+buy1+"   \n"+
 "buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";

SendNotification(message);
 

Olá, você poderia me dizer se há alguma maneira de receber um bilhete de um pedido acabado de enviar?

bilhete = OrderSend(Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

então eu verifico se o ticket < 1, e agora eu quero obter o número do OrderTicket() sem passar por todas as ordens abertas novamente, pois pode haver muitas, e eu espero um problema se eu enviar duas ordens quase idênticas com paradas diferentes ao mesmo tempo

Obrigado!

 
danik:

Olá, você poderia me dizer se há alguma maneira de receber um bilhete de um pedido acabado de enviar?

bilhete = OrderSend(Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

então eu verifico se o ticket < 1, e agora eu quero obter o número do OrderTicket() sem passar por todas as ordens abertas novamente, pois pode haver muitas, e eu espero um problema se eu enviar duas ordens quase idênticas com paradas diferentes ao mesmo tempo

Obrigado!

E você não precisa OrderSend(), para conhecer o bilhete de um pedido que já está aberto, você deve selecioná-lo usando OrderSelect().

No loop, você deve percorrer todas as ordens do mercado, selecionar cada uma delas e, se seu tipo, símbolo e mágico corresponderem, escrever o ingresso na matriz.

Em seguida, ordenar a matriz em ordem ascendente. O valor mais alto do bilhete é o pedido mais recente.

 
Sim, acho que teremos que fazer isso. Eu estava me perguntando se existe um truque ou método para obter um bilhete para um pedido que acabou de ser enviado. Bem, não existe, eu terei que fazer da maneira antiga, que pena. obrigado!
 
danik:
Pensei que talvez houvesse uma maneira de conseguir um bilhete que acabou de ser enviado. Se não, terei que fazê-lo à moda antiga e isso é uma pena. Obrigado!

Somente o bilhete aberto será como você escreveu -bilhete = OrderSend(Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

Mas, desde que o pedido tenha sido executado sem erros, e tal bilhete seja rapidamente sobregravado.

 
danik:

Olá, você poderia me dizer se há alguma maneira de receber um bilhete de um pedido acabado de enviar?

bilhete = OrderSend(Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

então eu verifico se o ticket < 1, e agora eu quero obter o número do OrderTicket() sem passar por todas as ordens abertas novamente, pois pode haver muitas, e eu espero um problema se eu enviar duas ordens quase idênticas com paradas diferentes ao mesmo tempo

Obrigado!

Por que você não gosta de declarar os ingressos em nível variável global?
 

O problema é que estes bilhetes são mais de um. talvez 4, ainda não sei exatamente. por isso criei uma classe com número de bilhete e outras informações que não são armazenadas por ordem de seleção. por isso quis ter acesso ao bilhete. mas até agora só posso criar objetos de classe e colocá-los no CarrayObj e depois obter o índice, comparar o bilhete e analisar mais a fundo. Mas eu resolvi isso, obrigado. Eu me culpo em outro lugar. SenhoresmalvadosAlexeyVik - obrigado por suas respostas rápidas!