[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 620

 
lottamer:

MISTIC!!!

este aqui

-----------------------------------------------------------------------------


pp_sell=(-(PriceOpenLastClosePos()-PriceCloseLastPos())*100000); // para moedas com dimensão EUR


Imprimir (pp_sell);

------------------------------------------------------------------------------------

Impressão -10, como deve ser, desde a última venda tem um lucro de 10

mas se você inserir vários TEMPOS DIFÍCEIS ENTRE IMPRESSÃO E VARIABILIDADE, por exemplo

----------------------------------------------------------------------------


pp_sell=(-(PriceOpenLastClosePos()-PriceCloseLastPos())*100000); // para moedas com dimensão EUR


se ( Hora()>=10 && Hora()<20)

{

if ( Stoch_1>Stoch_2) return(0);

senão {

se (OrderTotal()==0)

{ PlaySound("ok.wav");

if ( GetTypeLastClosePos()==1) Imprimir (pp_sell);

}

Imprimir("___");

}

}

retorno(0);

}

------------------------------------------------------------------------------------

funciona, mas imprime -9 !!!!

qual é o segredo?


Nesses casos, as imprecisões de cálculo se acumulam e podem eventualmente se tornar significativas. Você acha que insereCONDIÇÕES DE MUDANÇA, na verdade você força o computador a fazer cálculos desnecessários e suas condiçõesNÃO MUDANÇAMENTO.

E você tem certeza de quePriceOpenLastClosePos() e PriceCloseLastPos() estão definindo valores para a mesma posição?

 
rigonich:


int fLastClosetPoz()

{
int Tot=OrdensHistóriaTotal(),Ticket=-1; data/hora=0;
if(Tot>0)
{
for(int i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==verdadeiro)
{
if(OrderSymbol()==Symbol())
{
if(OrderCloseTime()>time)
{
time=OrderCloseTime();Ticket=OrderTicket();
}
}
}
caso contrário, continuar;
}
}
devolução(bilhete);
}


começando com if(OrderCloseTime()>time)... então não está claro de onde vem... bem, não importa...

Ele imprime um bilhete, mas apenas o último. E o que fazer com o penúltimo? Não consigo ver como o segundo bilhete pode ser impresso?

primeiro eu apenas escrevo Print LastClosetPoz()

tomar o 2º (i) ? OrderSelect(2,SELECT_BY_POS,MODE_HISTORY)....?

Imprimir LastClosetPoz(2) ?? erro óbvio, mas seria lógico :))))

Eu tento colocar outros parâmetros de uma posição fechada(preços fechados de uma posição de parada) em vez de OrderTicket no Ticket=OrderTicket(); linha - não funciona.

 
rigonich:

Você está trabalhando com valoresnão-normalizados como o dobro. Nesses casos, as imprecisões de cálculo se acumulam e podem eventualmente se tornar significativas.


Não é gordo para um computador acumular até 10% de erro em 4 linhas? :))))))))))) (em grande número menos de 10%)

1) o que há para salvar se a ordem fechada é fixa e todos os seus parâmetros "não flutuam"?

2) As condições não estavam de forma alguma relacionadas com o cálculo do parâmetro de saída. Eles eram apenas uma barreira - não deixar ir...

3) E por que então o resultado não flutua dentro do trabalho de um EA, mas flutua de um para outro?

 
lottamer:


começando com if(OrderCloseTime()>time)... então não está claro de onde vem...mas tudo bem...

Ele imprime um bilhete, mas apenas o último. E o que fazer com o penúltimo? não vejo como fazer com o segundo bilhete?

tomar 2º (i) ? OrderSelect(2,SELECT_BY_POS,MODE_HISTORY)....?

1. Por favor, escreva uma peça com o pedido de ingressos da história.-sua pergunta.

Para encontrar o penúltimo, temos que memorizar o bilhete do último bilhete (por exemplo, na variável A), então ele precisa executar o loop mais uma vez e "pular" esta ordem, ou seja, mudar a linha

if(OrderSymbol()==Symbol()) aif(OrderSymbol()==Symbol()&& OrderTicket()!=A), ou adicionar uma linhaif(Ticket()!=A)continuar;

E já expliquei que o índice de ordens nem sempre coincidirá com o fechado na conta, já que as ordens de mercado e as pendentes são levadas em conta juntas e as últimas não têm preço de fechamento, é por isso que todas as ordens são laçadas para encontrar a última fechada e a ordem com o maior tempo de fechamento é procurada. Esta é a última ordem fechada pode ter índice 3 e a última mas uma - 7.

 
rigonich:

1. Por favor, escreva um artigo solicitando um bilhete para a última semana da história...-sua pergunta.

Para encontrar o penúltimo, devemos memorizar o bilhete do último bilhete (por exemplo, na variável A), então devemos executar o loop mais uma vez e "pular" esta ordem, ou seja, mudar a linha

if(OrderSymbol()==Symbol()) aif(OrderSymbol()==Symbol()&& OrderTicket()!=A), ou adicionar uma linhaif(Ticket()!=A)continuar;


pergunta principal:

para(int i=0;i<OrdensHistóriaTotal();i++) precisamos exatamente de OrdensHistóriaTotal() quando, por exemplo, eu preciso apenas de 2 negócios?

Que tal isto

ou(int i=0;i<2;i++) ? (verificado - bilhete =-1....) nda.....tumano...:))))

 
lottamer:


pergunta principal:

mas por que precisamos da linha para(int i=0;i<OrdersHistoryTotal();i++) precisamos exatamente de OrdensHistóriaTotal() quando, por exemplo, eu preciso apenas de 2 negócios?

Que tal isto

ou(int i=0;i<2;i++) ? (verificado - bilhete =-1....) nda.....tumano...:))))


Eu terminei o comentário anterior, veja. Além disso, escrevi um código procurando o último comércio fechado sobre o instrumento atual.
 
Ajude-me se eu decidir escrever um robô em C/C++, por exemplo. Não é um problema escrever um, mas como posso conectá-lo com o metatrader? Como obter cotações e como enviar um sinal de compra/venda de volta?
 
Desead:
Ajude-me se eu decidir escrever um robô em C/C++, por exemplo. Não é um problema escrever um, mas como posso conectá-lo com o metatrader? Como obter cotações e como enviar um sinal de compra/venda de volta?

Eu não conheço nenhum outro idioma, mas pode ser possível escrever seu código como DLL e então pode ser possível ligar de programas MQL.
 
rigonich:

Eu terminei o comentário anterior, veja.


Sim, entendo agora porque há uma comparação de tempo no loop, e tempo em geral....

Eu também entendo o LOGIC - marca "A", depois exclui "A", mas primeiro, todas as opções ONDE este "A" pode ser colocado - e ainda assim o conselheiro me devolve o último bilhete, não o penúltimo.

.

Introduzi 2 laços (2 funções) - primeiro seu original, segundo com exceção de "A"... correr um após o outro.

Imprime zero....

----------------------------------------------------------------------------------------------------

se ( Hora()>=10 && Hora()<20)

{

LastClosetPoz();Sec_LastClosetPoz();

Imprimir ( ticket2,ticket);

}

retorno(0);

}

//--------------------------------------------+

na LastClosetPoz()

{

int Tot=OrdensHistóriaTotal(),Ticket=-1; data/hora=0;

if(Tot>0)

{

for(int i=0;i<OrdersHistoryTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==verdadeiro)

{

if(OrderSymbol()==Symbol())

{

if(OrderCloseTime()>time)

{

time=OrderCloseTime(); Ticket=OrderTicket(); A=Ticket;

}

}

}

caso contrário, continuar;

}

}

devolução(bilhete);

}


//--------------------------------------------

int Sec_LastClosetPoz()

{

int Tott=OrdensHistóriaTotal(),Ticket2=-1; data/hora2=0;

if(Tott>0)

{

for(int i=0;i<OrdersHistoryTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==verdadeiro)

{

if(OrderSymbol()==Symbol()&&OrderTicket()!=A)

{

if(OrderCloseTime()>time2)

{

time2=OrderCloseTime();Ticket2=OrderTicket();

}

}

}

caso contrário, continuar;

}

}

retorno(Ticket2);

}

 
Desead:
Ajude-me se eu decidir escrever um robô em C/C++, por exemplo. Não é um problema escrever um, mas como posso conectá-lo com o metatrader? Como obter cotações e como enviar um sinal de compra/venda de volta?

DLL - ver exemplos. É possível que um programador, que sabe escrever em C/C++, não seja capaz de lidar com exemplos padrão da entrega de МТ e isto apesar da presença de muitos materiais no fórum?
Razão: