Eu já entendi que a matriz é preferível aqui)))) E nessa variante, que descrevi acima, não é exata... (puramente por interesse. Acho que tudo já está claro)
Algo assim era o que eu tinha em mente. Então... a direção para pensar...
int i_magic=123;
int OrdersMassive[7];
//+----------------------------------------------------------------------------+int start() {
FindOrders(OrdersMassive);
int i, num=0;
for (i=0; i<=7; i++) {
Print("Количество "+GetNameOP(i)+" = "+OrdersMassive[i]);
num+=OrdersMassive[i];
}
Print("Всего ордеров = "+(num-OrdersMassive[6]));
return(0);
}
//+----------------------------------------------------------------------------+void FindOrders(int &mass[]) {
int i, t, k=OrdersTotal()-1;
ArrayInitialize(mass,0);
for (i=k; i>=0; i--) {
if (!OrderSelect(i,SELECT_BY_POS)) continue;
if (OrderMagicNumber()!=i_magic) continue;
if (OrderSymbol()!=Symbol()) continue;
t=OrderType();
mass[t]=mass[t]+1;
}
}
//+----------------------------------------------------------------------------+string GetNameOP(int op) {
switch (op) {
case OP_BUY : return("Buy");
case OP_SELL : return("Sell");
case OP_BUYLIMIT : return("Buy Limit");
case OP_SELLLIMIT: return("Sell Limit");
case OP_BUYSTOP : return("Buy Stop");
case OP_SELLSTOP : return("Sell Stop");
case6 : return("Неторговое изменение баланса");
default : return("Не знаю, чё за тип такой...");
}
}
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+void FindOrders(int &mass[]) {
int i, t, k=OrdersTotal()-1;
ArrayInitialize(mass,0);
for (i=k; i>=0; i--) {
if (!OrderSelect(i,SELECT_BY_POS)) continue;
if (OrderMagicNumber()!=i_magic) continue;
if (OrderSymbol()!=Symbol()) continue;
t=OrderType();
mass[t]=mass[t]+1;
}
}
//+----------------------------------------------------------------------------+
Também não está funcionando. Tive uma falha lá. É assim que as coisas são agora:
Quando não há ordens no mercado, os balcões não chegam a zero. Isso é uma besteira. O que está errado aqui, eu não sei. Vou ver o que a Artem escreveu.
Certo. (risos) Bem, o que aconteceu comigo. Alguns erros bobos. Estive cavando em C++ por um mês. E agora eu tenho erros tão bobos em µl. Meu cérebro deve estar queimado :(
Em geral, é possível procurar por pedidos em cada carrapato? Ou é melhor executar em todos os bares? Ainda não tenho isso na minha cabeça, o que é melhor em um caso e no outro.
hoz: Em geral, é possível procurar por pedidos em cada carrapato? Ou é melhor executar em todos os bares? Eu ainda não sei o que é melhor em um caso e o que é melhor em outro.
Se uma posição for fechada dentro de um bar durante o monitoramento pela abertura do bar, o Conselheiro Especialista não saberá das mudanças no número de posições até que o próximo bar abra.
é verdade, então tanto t como p são incrementados, já que qualquer ordem do tipo 2 a 5 é tanto uma ordem pendente como uma ordem. Isto significa que devemos incrementar os dois balcões. E se a condição for verdadeira:
Então não há nenhuma ordem pendente, mas há uma ordem de mercado. Isso significa que vamos aumentar o contador t, ou seja, o contador do número total de pedidos.
E se não houver nada, então imprimiremos que não há pedidos
Eu já entendi que a matriz é preferível aqui)))) E nessa variante, que descrevi acima, não é exata... (puramente por interesse. Acho que tudo já está claro)
Algo assim era o que eu tinha em mente. Então... a direção para pensar...
E o que você tem aí, eu realmente não olhei ...
Que tal isso?
Minha versão da função é mais curta ... :)
Talvez sim.
Também não funciona. Tive uma falha lá. É assim agora:
Quando não há ordens no mercado, os balcões não vão a zero. Isso é uma besteira. O que está errado aqui? Vou ver o que a Artem escreveu.
Também não está funcionando. Tive uma falha lá. É assim que as coisas são agora:
Quando não há ordens no mercado, os balcões não chegam a zero. Isso é uma besteira. O que está errado aqui, eu não sei. Vou ver o que a Artem escreveu.
Presumo que esta é a saída da informação.Tire isto do laço.
Presumo que esta é a saída da informação.Tirar isto do laço
Certo. (risos) Bem, o que aconteceu comigo. Alguns erros bobos. Estive cavando em C++ por um mês. E agora eu tenho erros tão bobos em µl. Meu cérebro deve estar queimado :(
Em geral, é possível procurar por pedidos em cada carrapato? Ou é melhor executar em todos os bares? Eu ainda não sei o que é melhor em um caso e o que é melhor em outro.
t é o número de todos os pedidos.
p é o número de ordens pendentes
Se a condição for verdadeira:
é verdade, então tanto t como p são incrementados, já que qualquer ordem do tipo 2 a 5 é tanto uma ordem pendente como uma ordem. Isto significa que devemos incrementar os dois balcões. E se a condição for verdadeira:
Então não há nenhuma ordem pendente, mas há uma ordem de mercado. Isso significa que vamos aumentar o contador t, ou seja, o contador do número total de pedidos.
E se não houver nada, então imprimiremos que não há pedidos
t = OrderTotal();
por que contar???? contou???
Olá! à procura de erros nesta função.
A idéia é que as ordens pendentes que não tenham sido abertas devem ser apagadas dois dias após terem sido colocadas.
min=1440;
Obrigado, pako.