[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 649

 
7sintez:
Muito obrigado a todos vocês por toda sua ajuda! Os códigos que ainda não usei - copiei-os para o bloco de notas! Eu os analisarei quando eu tiver tempo! Obrigado mais uma vez e mais uma e mais vezes Amigos!


Você pode usar as bibliotecas de Igor Kim


//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

 

É um pouco mais complicado do que isso.

 
r772ra:


Você pode usar as bibliotecas de Igor Kim

É um pouco mais complicado do que isso.


Eu já usei seu código! Tudo funciona! Obrigado!

 
Como você remenda os buracos de cotação com Mtqvotes ou como você recalcula as cotações de minutos inteiros para todas as TFs?
 
Qwertee: ok, outra coisa na minha EA é esta ramificação:

if(period=="M15")
{
//check to open buy
Alert(buysell);

if(buysell=="comprar")

Alerta(1);

.............

}

Basicamente, aninhado se. MAS. condição se(period=="M15") for cumprida e Alert der um resultado, e comprar, mas condição se(buysell=="buy") não for cumprida e o comando Alert(1) nem sequer for executado. Droga, mas ambas as condições são mesmo sintáticamente as mesmas, mas por que uma é executada e a outra não?

Tecnicamente é simples: comprar !="comprar" - então o próximo Alerta(1) não é executado.

O que a variável buysel contém naquele momento é descoberto por impressão: Imprimir (buysell); após o primeiro Alerta.

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

Esse é o problema, se eu colocar Print(buysell) em vez de Alert(1) em meu código, o buysell retornará a compra de valor, então o que está errado?

 

Há uma função na qual um dos parâmetros é uma matriz: FunctionTest(double OneDimensionalArray[7]) ...

Existe uma matriz tridimensional: dupla Array Tridimensional[1][2][7].

A tarefa é inserir a última dimensão da matriz tridimensional como um parâmetro em uma função. Eu estou tentando fazer isso, mas o compilador se afasta.

Eu o faço assim: FunctionTest(ThreeDimensionalArray[0][0]) .

Você poderia me dizer o que estou fazendo de errado e como resolver este problema?

Agradecemos antecipadamente.

 
artem179:

Há uma função na qual um dos parâmetros é uma matriz: FunctionTest(double OneDimensionalArray[7]) ...

Existe uma matriz tridimensional: dupla Array Tridimensional[1][2][7].

A tarefa é inserir a última dimensão da matriz tridimensional como um parâmetro em uma função. Eu estou tentando fazer isso, mas o compilador se afasta.

Eu o faço assim: FunctionTest(ThreeDimensionalArray[0][0]) .

Você poderia me dizer o que estou fazendo de errado e como resolver este problema?

Agradecemos antecipadamente.

Dizem que Catarina, a Grande, cometeu até 4 erros em uma palavra de 3 letras.

Não resolva ainda tal problema. Encontre uma solução mais fácil...

 
tara:

Diz-se que Catarina, a Grande, cometeu até quatro erros em uma palavra de 3 letras.

Não resolva ainda tal problema. Encontre uma solução mais fácil...


Em princípio, já resolvi isso de outra maneira. Mas ainda é interessante, pelo menos puramente teórico. Afinal de contas, uma matriz tridimensional[0][0] deve ser uma matriz unidimensional, certo? Em caso afirmativo, como posso obter uma matriz unidimensional a partir de uma tridimensional?
 
artem179:

Em princípio, já resolvido de outra forma. Mas ainda é interessante, pelo menos puramente teórico. Afinal de contas, o TridimensionalArray[0][0] é suposto ser uma matriz unidimensional? Em caso afirmativo, como posso obter uma matriz unidimensional a partir de uma tridimensional?

Olhando para a compra?
1. As arrays são sempre estáticas

2. Você não precisa obtê-lo em 3D, apenas criá-lo corretamente.

 
artem179:

Em princípio, já resolvi isso de outra maneira. Mas ainda é interessante, pelo menos puramente teórico. Afinal de contas, uma matriz tridimensional[0][0] deve ser uma matriz unidimensional, certo? Em caso afirmativo, como tirar uma matriz unidimensional de uma tridimensional?
Uma matriz N-dimensional é uma matriz unidimensional. É apenas dividido em dimensões por conveniência.
 
E o que você acha, Vadim? O quão confortável é navegar em * medidas? ))) No entanto, conheci pessoas que poderiam contar as facetas do tesseract em sua cabeça. Mas não tenho certeza de que isto tenha algo a ver com nossos problemas.
A questão é a formulação do problema. Aqui você não precisa disso. Unidimensional, é claro.
Razão: