Perguntas de um "boneco" - página 64

 
Europa:
Pode dizer-me porque é que o alerta está a dar ordens_Total=1, quando na realidade há uma posição e uma ordem, ou seja, em teoria deve dar 2, e não 1

Tente fazer o ciclo andar para trás, a partir do fim.

string Symb="EURUSD";
  for(i=OrdersTotal()+PositionsTotal()-1;i>=0;i--)
     {
      if(Symb==PositionGetSymbol(i)) Orders_Total++;
     }
     Alert(Orders_Total);
 
tol64:

Tente fazer o ciclo andar para trás, a partir do fim.

Não ajudou;(
 
Europa:
Não funcionou;(

Ah, só tem uma verificação de posição:

if(Symb==PositionGetSymbol(i)) Orders_Total++;
É aí que apenas são contadas as posições.
 
tol64:

Ah, só tem uma verificação de posição:

É aí que só contam as posições.
SO!!!! Muito obrigado!!!!
 
tol64:

A referência diz isso:

A data (ano, mês, data) ou a hora (horas, minutos, segundos) ou todos juntos podem ser omitidos. O intervalo de valores é de 1 de Janeiro de 1970 a 31 de Dezembro de 3000.

Exemplos:

D'2004.01.01.01 00:00' // Ano Novo
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //novo ano d'1980.07.19 12:00:00'
D'01.01.2004' //equivalente D'01.01.2004 00:00:00'
D'12:30:27' //equivalente a D'[data de compilação] 12:30:27'
D' '//equivalente a D'[data de compilação] 00:00:00''.

...

Ou será que estou a interpretar isto mal?

A ajuda será emendada para que tais questões não surjam no futuro. Obrigado.
 
Europa:
Não ajudou;(

Porque está a adicionar moscas e costeletas e depois a determinar a quantidade de costeletas que existem?

As encomendas contam separadamente, as posições separadamente. PositionGetSymbol() retorna apenas a presença de uma posição por símbolo, e não diz nada sobre ordens. Uma vez que só há uma posição, dá 1. E ainda tem sorte, uma vez que o parâmetro de laço vai além dos valores aceitáveis (PositionsTotal), pode obter tudo o que quiser.

P.S. Já respondeu, estou atrasado.

 
Não consegui encontrar nenhuma função ou propriedade interna para dar a propriedade seleccionável a um objecto gráfico (por defeito, o objecto é desenhado programmaticamente sem a possibilidade de o seleccionar com o rato). Obviamente, a questão é: é possível dar a um objecto gráfico uma tal propriedade normalmente, sem bibliotecas adicionais e outras feitiçarias?
 
x100intraday:
Não consegui encontrar nenhuma função ou propriedade interna para dar a propriedade seleccionável ao objecto gráfico (por defeito o objecto é desenhado programmaticamente sem o seleccionar com o rato), encontrei-o apenas na biblioteca gráfica incluída. Obviamente, a questão é: é possível dar a um objecto gráfico uma tal propriedade normalmente, sem bibliotecas adicionais e outras feitiçarias?

ObjectSetInteger

com prop_id=OBJPROP_SELECTABLE

 
Valmars:

ObjectSetInteger

com prop_id=OBJPROP_SELECTABLE

Muito obrigado.
 
bool ExtFunc (string str, int P, int i)
  {
   if (high[i] < high[i-1]) return(false);
   return(true);   
  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i=0;
   if ExtFunc("s",60,i) == 1)
     Buffer[i] = high[i];
  }

NaOnCalculate posso facilmente utilizar elementos de matriz como alta por índice. É também possível aceder aos elementos de índice desta matriz em ExtFunc? Ao chamar a minha função, devo passar o array-argument por referência, através do ponteiro ou outra coisa? Até agora consegui minimizar as mensagens de erro para: "'alto' - a conversão de parâmetros não é permitida" e "'alto' - variável constante não pode ser passada como referência" em relação à mesma linha da minha chamada de função com o argumento de matriz da OnCalculate. É inútil ou existe uma solução?

Até agora, na OnCalculate, recorri à cópia em alta para outra matriz:

ArrayCopy(CopyOfHigh,high,0,0,WHOLE_ARRAY);
e depois utilizando CopyOfHigh em ExtFunc, em vez de utilizar directamente a alta radiação.