[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 339

 
future >> :
Cavalheiros, ainda estou agonizando por causa de uma pergunta. Como escrever o seguinte? Se o preço em xx.xx do dia corrente for superior ao preço em yy.yy do mesmo dia....then...eu preciso que estes preços sejam comparados todos os dias. Não sei como evitar mencionar a data. Hora da data de teste 1=D'().().() 12:00 '; mas não funciona no testador. Não escreve erros, mas quando se testa, parece que os dados deste tempo são simplesmente ignorados.

Funciona assim:

int time=iTime(NULL,PERÍODO_D1,0)+60*(60*horas+minutos);

double price=iOpen(NULL,PERIOD_M1,iBarShift(NULL,PERIOD_M1,time))

 


Estou seguindo exatamente este artigo, mas como disse acima,

channel=ddeinit('MT4','BID'); - tudo está bem, canal = 7.2920e-304 - a conexão é estabelecida

mas

rc = ddeadv(canal, 'EURUSD','disp(x)','x',[1 1]); - nada acontece,

apesar de rc = 1.

Embora pareça funcionar no artigo. o que está errado?

 


Hi!

Você poderia me dizer como acompanhar quando um comércio fecha com prejuízo ou lucro cessante no circuito?

Qual função deve ser usada para fazer isso corretamente?

Obrigado.

 
Klinskih писал(а) >>

Hi!

Você poderia me dizer como acompanhar quando um comércio fecha com prejuízo ou lucro cessante no circuito?

Qual função deve ser usada para fazer isso corretamente?

Obrigado.

Não há nenhum evento para fechar ordens em stop loss ou tirar lucro, mas você pode monitorar a disponibilidade de ordens abertas.

int OrdersTotal( )

Devolve o número total de ordens em aberto e pendentes.

bool OrderSelect( int index, int select, int pool= MODE_TRADES) 

A função seleciona um pedido para processamento posterior. Devolve VERDADEIRO se a função for concluída com sucesso. Devolve FALSO se a função falhar. Para obter as informações sobre o erro, você precisa chamar a função GetLastError().
O parâmetro do pool é ignorado se o pedido for selecionado utilizando o número do bilhete. O número do bilhete é um identificador único para o pedido. Para determinar a partir de qual lista um pedido é selecionado, devemos analisar sua hora de encerramento. Se o tempo de fechamento do pedido for 0, então o pedido está aberto ou pendente e é retirado da lista de posições abertas do terminal. Uma posição aberta pode ser distinguida de uma ordem pendente por seu tipo. Se o tempo de fechamento não for igual a 0, então o pedido é fechado ou pendente e foi selecionado a partir do histórico do terminal. A distinção entre uma ordem fechada e uma ordem pendente excluída também pode ser feita por tipo de ordem.

Você também pode encontrar soluções prontas, por exemplo, da KimIV - https://www.mql5.com/ru/forum/107476/page2.

 
xeon >> :

Não há nenhum evento para fechar o pedido em stop ou takeout, mas você pode monitorar a disponibilidade de pedidos em aberto

Devolve a quantidade total de ordens pendentes e em aberto.

Esta função seleciona uma ordem para trabalhar com ela mais tarde. Devolve VERDADEIRO se a função for concluída com sucesso. Ele retorna FALSO se a função falhar. Para obter as informações sobre o erro, você precisa chamar a função GetLastError().
O parâmetro do pool é ignorado se o pedido for selecionado pelo número do bilhete. O número do bilhete é um identificador único para o pedido. Para determinar a partir de qual lista um pedido é selecionado, devemos analisar sua hora de encerramento. Se o tempo de fechamento do pedido for 0, então o pedido está aberto ou pendente e é retirado da lista de posições abertas do terminal. Uma posição aberta pode ser diferenciada de uma ordem pendente por seu tipo. Se o tempo de fechamento não for igual a 0, então o pedido é fechado ou pendente e foi selecionado a partir do histórico do terminal. A diferença entre uma ordem fechada e uma ordem pendente excluída também pode ser feita pelo tipo de ordem.

Você também pode ver implementações prontas, por exemplo, da KimIV - https://www.mql5.com/ru/forum/107476/page2

Muito obrigado pela resposta abrangente!

 
xeon >> :

Não há nenhum evento para fechar o pedido em stop ou takeout, mas você pode monitorar a disponibilidade de pedidos abertos

Devolve a quantidade total de ordens pendentes e em aberto.

Esta função seleciona uma ordem para trabalhar com ela mais tarde. Devolve VERDADEIRO se a função for concluída com sucesso. Ele retorna FALSO se a função falhar. Para obter as informações sobre o erro, você precisa chamar a função GetLastError().
O parâmetro do pool é ignorado se o pedido for selecionado pelo número do bilhete. O número do bilhete é um identificador único para o pedido. Para determinar a partir de qual lista um pedido é selecionado, devemos analisar sua hora de encerramento. Se o tempo de fechamento do pedido for 0, então o pedido está aberto ou pendente e é retirado da lista de posições abertas do terminal. Uma posição aberta pode ser diferenciada de uma ordem pendente por seu tipo. Se o tempo de fechamento não for igual a 0, então o pedido é fechado ou pendente e foi selecionado a partir do histórico do terminal. A diferença entre uma ordem fechada e uma ordem pendente excluída também pode ser feita pelo tipo de ordem.

Você também pode ver implementações prontas, por exemplo, da KimIV - https://www.mql5.com/ru/forum/107476/page2

Muito obrigado pela resposta abrangente!

 
future >> :
Cavalheiros, ainda estou agonizando por causa de uma pergunta. Como escrever o seguinte? Se o preço em xx.xx do dia corrente for superior ao preço em yy.yy do mesmo dia....then...eu preciso que estes preços sejam comparados todos os dias. Não sei como evitar mencionar a data. Hora da data de teste 1=D'().().() 12:00 '; mas não funciona no testador. Não escreve erros, mas quando se testa, parece que os dados deste tempo são simplesmente ignorados.

Para o testador, está tudo bem.

int час=15; час2=20;
int мин=21; мин2=00;

if(Hour()> час-1&&Hour()< час+1&&Minute()> мин-1&&Minute()< мин+1)
double цена_инструмента=Bid;
if(Hour()> час2-1&&Hour()< час2+1&&Minute()> мин2-1&&Minute()< мин2+1)
double цена_инструмента2=Bid;

if( цена_инструмента> цена_инструмента2)....
if( цена_инструмента< цена_инструмента2)....
 

Olá.

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

SL ou TP, depois executar isto e aquilo. Eu não encontrei tal função.

 

Suponha-se que um conjunto de Indicadores fosse salvo no Template e o Template fosse carregado para um par de moedas.

- Depois disso, os Indicadores nesta janela têm alguma relação com os parâmetros salvos no Modelo ou eles se tornam completamente independentes?

 
chief2000 >> :

Suponha-se que um conjunto de Indicadores fosse salvo no Template e o Template fosse carregado para um par de moedas.

- Os Indicadores nesta janela têm alguma relação com os parâmetros salvos no Modelo ou eles se tornam completamente independentes?


Os pares salvos são "inseridos" nos indicadores uma vez na inicialização do modelo, depois "eles se tornam completamente independentes".

Todos os parâmetros indicadores alterados são salvos no modelo, se você tiver alterado os parâmetros indicadores, salve novamente o modelo.