gyfto: O AccountNumber( ) pode ser lido a partir da dll e como? Ao menos me dê uma dica de onde cavar. Quero dizer sem passar o valor da função para a dll, ou seja, a partir da própria biblioteca dinâmica.
Do cabeçalho da janela MT4, mas pode ser facilmente substituída. Tenho que pensar em como rastrear a substituição.
Não entendo por que tem que ser tão complicado. Isso não facilitaria as coisas?
Eh... Se ao menos eu mesmo pudesse decidir como fazê-lo... Se meu cliente precisar recalcular os pontos de todas as posições (além disso, as próximas posições de média podem ser abertas com lotes ainda maiores e a tomada total é recalculada novamente) e fechar exatamente por ordem de parada, em vez de por um Expert Advisor, então é isso que devemos fazer.
A idéia é que a coruja usará o preenchimento da tendência, se o sinal se repetir. Então a questão é: como ensinar a função da fração para saltar o primeiro sinal?
Por exemplo, houve um sinal de compra, a coruja compra e no próximo tick é chamada a função de escalada (porque há uma ordem aberta), o sinal de entrada ainda está em vigor e a função preenche com sucesso (o que está errado).
A função em si só é chamada se houver uma ordem em aberto.
Eu só preciso pular a barra atual. Como implementá-la na MQL?
A idéia é que a coruja usará o preenchimento da tendência, se o sinal se repetir. Então a questão é: como ensinar a função da fração para saltar o primeiro sinal?
Por exemplo, houve um sinal de compra, a coruja compra e no próximo tick é chamada a função de escalada (porque há uma ordem aberta), o sinal de entrada ainda está em vigor e a função preenche com sucesso (o que está errado).
A função em si só é chamada se houver uma ordem em aberto.
Eu só preciso pular a barra atual. Como implementá-la na MQL?
Que diabos você está fumando? De que plantações você colhe os cigarros? A Coruja foi até a loja e comprou alguns... E então apareceu um pouco de funk e arruinou tudo.
Utilize a função que lhe devolverá o número de barras depois que a última posição foi aberta:
//+----------------------------------------------------------------------------+int BarsAfterOpenLastPos(int op, int mn) {
datetime t=0;
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()!=mn) continue;
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
return((TimeCurrent()-t)/60/Period());
}
//+----------------------------------------------------------------------------+
Como verificar uma posição de compra com Magic
if (BarsAfterOpenLastPos(OP_BUY, Magic)>1) {// доливаем}
Merda... o que você está fumando? De onde você tira seus cigarros? A Coruja foi até a loja e comprou alguns... E então apareceu um pouco de funk e arruinou tudo.
É uma pena...
:) De qualquer forma, é assim que as coisas são
if (OrdersCount()==0)
{CheckBuy();
CheckSell();}
if (OrdersCount()==1) DolivkaBuy();
if (OrdersCount()==-1) DolivkaSell();
O que devo escrever no Dolivka...() para que ele salte a barra, na qual foi aberto o primeiro comércio?
Não tenho o código fonte, só estou me lembrando...
artmedia70: Eh... Se ao menos eu mesmo pudesse decidir como fazê-lo... Se o cliente precisar recalcular a tomada de todas as posições (especialmente porque as próximas posições médias podem ser abertas com lotes ainda maiores e a tomada total é recalculada novamente) e fechar exatamente por ordem de parada, e não por Expert Advisor, então é isso que tenho que fazer.
O AccountNumber( ) pode ser lido a partir da dll e como? Ao menos me dê uma dica de onde cavar. Quero dizer sem passar o valor da função para a dll, ou seja, a partir da própria biblioteca dinâmica.
Não entendo por que tem que ser tão complicado.
Isso não facilitaria as coisas?
A partir do cabeçalho da janela MT4, mas pode ser facilmente adulterado. Precisamos pensar em como rastrear o falsificador.
Mas de uma coisa tenho quase certeza: não há nenhum lugar no Windows para ver a última vez que o buffer de janelas foi acessado.
Preciso de ajuda, não consigo entender.
A idéia é que a coruja usará o preenchimento da tendência, se o sinal se repetir. Então a questão é: como ensinar a função da fração para saltar o primeiro sinal?
Por exemplo, houve um sinal de compra, a coruja compra e no próximo tick é chamada a função de escalada (porque há uma ordem aberta), o sinal de entrada ainda está em vigor e a função preenche com sucesso (o que está errado).
A função em si só é chamada se houver uma ordem em aberto.
Eu só preciso pular a barra atual. Como implementá-la na MQL?
Preciso de ajuda, não consigo entender.
A idéia é que a coruja usará o preenchimento da tendência, se o sinal se repetir. Então a questão é: como ensinar a função da fração para saltar o primeiro sinal?
Por exemplo, houve um sinal de compra, a coruja compra e no próximo tick é chamada a função de escalada (porque há uma ordem aberta), o sinal de entrada ainda está em vigor e a função preenche com sucesso (o que está errado).
A função em si só é chamada se houver uma ordem em aberto.
Eu só preciso pular a barra atual. Como implementá-la na MQL?
Que diabos você está fumando? De que plantações você colhe os cigarros? A Coruja foi até a loja e comprou alguns... E então apareceu um pouco de funk e arruinou tudo.
Que chatice...
Utilize a função que lhe devolverá o número de barras depois que a última posição foi aberta:
Como verificar uma posição de compra com Magic
Merda... o que você está fumando? De onde você tira seus cigarros? A Coruja foi até a loja e comprou alguns... E então apareceu um pouco de funk e arruinou tudo.
É uma pena...
:) De qualquer forma, é assim que as coisas são
O que devo escrever no Dolivka...() para que ele salte a barra, na qual foi aberto o primeiro comércio?
Não tenho o código fonte, só estou me lembrando...
Eh... Se ao menos eu mesmo pudesse decidir como fazê-lo... Se o cliente precisar recalcular a tomada de todas as posições (especialmente porque as próximas posições médias podem ser abertas com lotes ainda maiores e a tomada total é recalculada novamente) e fechar exatamente por ordem de parada, e não por Expert Advisor, então é isso que tenho que fazer.
Obter os dados de posição