Erros, bugs, perguntas - página 1676

 

Cavalheiros, como declarar uma função em MKL que leva um ponteiro (referência em µl) a qualquer coisa (análogo a nulo* em C/C++ )? Não me refiro ao elenco por árvore genealógica, mas ao elenco por tipos não relacionados. Pelo menos, tomar um conjunto de qualquer tipo.

void f(... &...) {}

void mql_main()
{
  int i[2];
  double d[2];
  f(i);
  f(d);
}
Compreendo todas as dificuldades relacionadas com o "type aliasing" e as optimizações do compilador.
 
pavlick_:

Cavalheiros, como declarar uma função em MKL que leva um ponteiro (referência em µl) a qualquer coisa (análogo a nulo* em C/C++ )? Não me refiro ao elenco por árvore genealógica, mas ao elenco por tipos não relacionados. Pelo menos, tomar um conjunto de qualquer tipo.

Compreendo todas as dificuldades relacionadas com o "type aliasing" e as optimizações do compilador.
Penso que o que se quer fazer, só se pode fazer através dos métodos de classe na MQL5. Embora, esteja à espera de mais respostas, não tenho muita experiência nisso.
 
pavlick_:

Cavalheiros, como declarar uma função em MKL que leva um ponteiro (referência em µl) a qualquer coisa (análogo a nulo* em C/C++ )? Não me refiro ao elenco por árvore genealógica, mas ao elenco por tipos não relacionados. Pelo menos, tomar um conjunto de qualquer tipo.

Todos os trapos relativos ao "type aliasing" e optimizações do compilador eu compreendo.

Bem, eles já acrescentaram * ponteiros vazios, não é verdade? Além disso, é possível utilizar modelos, como

template<typename T>

void f(T &parameter)

{

 
Stanislav Korotky:

É como se já tivessem acrescentado indicações * vazias. Além disso, é possível utilizar modelos, como

template<typename T>

void f(T &parameter)

{

Os apontadores MKL (descritores) caem imediatamente. O problema estava na declaração da função importada da dll, os modelos não podem ser aí mordidos. Descobri que o pode fazer desta forma:

#import ...
  int send(..., char &buf[], ...);
  int send(..., short &buf[], ...);
#import
E tudo estará ligado a uma única função. Isso resolve o meu problema. Obrigado a todos os que responderam pela resposta.
 
Itum:
Por favor, digam-me como encontrar o máximo de levantamento de fundos em Excel... Dê-me a fórmula...
Se, como no testador de equidade, é difícil no Excel, porque o testador tem em conta não só o desvio negativo, mas também o desvio positivo - o lucro potencial subrecebido.
 
-Aleks-:
Se como no testador de acções, é complicado em Excel, porque o testador tem em conta não só o desvio negativo, mas também o desvio positivo - o lucro potencial subrecebido.
Não há aí nada de complicado. A primeira coluna representa os valores de equidade, a segunda coluna representa o valor máximo de equidade da primeira para a linha actual e a terceira coluna representa o drawdown, a diferença entre a segunda e a primeira coluna. E depois tirar o máximo da terceira coluna.
 
Sergei Vladimirov:
Não há aí nada de complicado. A primeira coluna mostra os valores de equidade, a segunda coluna mostra a equidade máxima da primeira para a linha actual, e a terceira coluna mostra o drawdown, a diferença entre a segunda e a primeira coluna. Bem, tire o máximo da terceira coluna.
Tais cálculos não caberão nos dados do testador. Temos de considerar a mudança no capital próprio entre a abertura e o fecho da posição, uma vez que a mudança máxima no capital próprio tem de ser introduzida numa coluna separada e o módulo tem de ser considerado e depois o máximo tem de ser escolhido a partir desta coluna. Este é um comércio lucrativo, caso contrário é necessário identificar o ponto de lucro máximo do capital próprio e fazer cálculos sobre ele....
 
-Aleks-:
Tais cálculos não corresponderão aos dados do testador. É necessário considerar a alteração de equidade entre a abertura e o fecho da posição - a alteração máxima de equidade tem de ser colocada numa coluna separada e o módulo tem de ser considerado, e depois o máximo tem de ser seleccionado a partir desta coluna. Isto é relevante para o comércio lucrativo, enquanto no caso oposto temos de definir o ponto de lucro máximo por equidade e fazer cálculos sobre ele.....
O que é que o testador tem a ver com isto? A pergunta era sobre o Excel. Não compreendo porque é que é importante lidar com ela neste fio. Na essência não é necessário nenhum módulo, o drawdown = último máximo menos valor actual, o resultado será sempre não-negativo. Ou vice-versa, valor actual menos o último máximo, então o resultado será sempre negativo ou zero. No primeiro caso, tomar o máximo da coluna, no segundo, tomar o mínimo.
 
Sergei Vladimirov:
O que é que isto tem a ver com o testador? A pergunta era sobre o Excel. Só não é claro porque é que está neste fio. Na essência - nenhum módulo é necessário, drawdown = último máximo menos valor actual, o resultado será sempre não-negativo. Ou vice-versa, o valor actual menos o último máximo, então será sempre negativo ou zero. No primeiro caso, tomar o máximo da coluna, no segundo, tomar o mínimo.
Drawdown no testador = máximo - mínimo, não importa em que ponto a posição foi fechada. Por outras palavras, se a posição vai na sua direcção no início, e depois fecha na direcção oposta, o levantamento de capital é a secção do máximo para o mínimo, e não do preço de abertura para o preço de fecho. Este é o caso no MT4.
 
-Aleks-:
Drawdown no testador = máximo - mínimo, não importa em que ponto a posição foi fechada. Por outras palavras, se a posição começou a ir na sua direcção, mas foi fechada na direcção oposta, o levantamento de capital é a secção do máximo para o mínimo, e não do preço de abertura para o fecho da posição. É o caso do MT4.
Não escrevi nada sobre preços de abertura e fecho.