Características úteis da KimIV - página 60

 

Querida Kim, muito obrigado por seu trabalho. As funções que você escreveu facilitam minha vida.

Você tem uma função em seu arsenal que devolve a perda total de todos os negócios perdidos consecutivos. Suponha que as três últimas negociações foram fechadas com prejuízo, quero saber a perda total delas na moeda do depósito. Para esclarecer - exatamente os últimos negócios perdidos consecutivos.

Ficarei grato pela ajuda. Acho que outros podem precisar desta função.

 

KimIV

O compilador escreve a seguinte porcaria: A função "ClosePositions" não é referenciada e será removida do exp-file

A função "ExistPosições" não é referenciada e será removida do arquivo exp

A função "ManagePositions" não é referenciada e será removida do exp-file ...........................

Qual poderia ser o problema?




 
WroC писал(а) >>
O compilador escreve: Função "ClosePositions" não é referenciada e será removida do exp-file

Qual poderia ser a falha?

Não é um bug. É um aviso de que a função não é utilizada e, portanto, não faz sentido compilar seu código.

 

Igor!

Existe algum desenvolvimento ou apenas uma reflexão sobre as funções do filtro de tempo?

Tais como: para o mês atual, dia, semana...

ou: mês anterior, dia, semana, trimestre...

*

O ideal seria que fosse assim:

// FuncStPeriod(int Per, int Val)
// Где:
// Per = 0-день, 1-неделя, и т.д...
// Val = 0-текущие, 1-прошедший

// пример использования для выбора ордеров за период
if(FuncStPeriod(1, 0)) ...

Desculpe, mas posso ver que não funciona...

Ou talvez eu tenha escolhido o modelo de filtragem errado...

Estou em um impasse... em todos os sentidos da palavra... :)))

 

Você, Vasili, não é politicamente correto! A entrada é indicada, mas onde está a saída?

 

Sei em meu instinto que 0,5+0,5 seria um litro!

mas não consigo resolver o problema... (с) )))

*

Eu ficaria muito grato por pedir amostras da história por seu tempo.

*

E estes são:

// FuncStPeriod(int Per, int Val)
// Onde:
// Per = 0 dia, 1 semana, etc.
// Val = 0-corrente, 1-past


// exemplo de uso para selecionar pedidos por um período
if(FuncStPeriod(1, 0)) ...
*

Escrevi-o incorretamente, mais precisamente, sem explicação.

Os parâmetros marcados são apenas parâmetros que a função pode ter.

Abaixo está um exemplo de como esta função é utilizada...

SE O TEMPO DOS PEDIDOS TAMBÉM (se enquadra) no período do FILTRO

...

 

Vasiliy, você está falando sobre a entrada novamente. O que você quer na saída e de que forma?

 

Ahhhh...

Certo, uh... é aí que reside meu erro lógico...

A função retornará QUE, por exemplo, o número 123456

O que ele precisa para o filtro C e PO é...

*

Em geral, é o mesmo que o filtro de histórico de contas no MT4.

Provavelmente, a lista é formada por um ciclo, por exemplo:

para( ...

if(Valor1 > OrderCloseTime() > Valor2)

...

*

Esta função deve retornar um valor de string (?) para ser substituído no filtro if()

para( ...

if(FuncStPeriod(1, 0))

...

*

Besteira. É complicado na descrição...

Eu me misturei e você está em um aperto.

:(

 

Bem, você já quase fez isso! Você não precisa de nenhum filtro. Basta preparar dois valores de data/hora, por exemplo dt1 e dt2. Organizar um ciclo de negócios fechados. Selecione os pedidos por seletor e verifique seu horário de fechamento para:

if (OrderCloseTime()> dt1 && OrderCloseTime()< dt2) {
  // что-то делаете с выбранным ордером
}
 

Igor" eu entendo que...

Foi assim que eu comecei a resolver o problema.

*

Entretanto, a tarefa é "preencher" esses mesmos dt1 e dt2 com os valores certos!

Por exemplo, trimestre, atual. Em idéia, a função deveria retornar algo assim:

OrderCloseTime()>"01.10.2008" && OrderCloseTime()<"04.12.2008"

Tomando hoje como a data de início.

*

Vejo o fim do FuncStPeriod(int Per, int Val) funcionar da seguinte forma:

FuncStPeriod(int Per, int Val)
{
string fsp;

//...
fsp="OrderCloseTime()>"+"dt1+" && OrderCloseTime()<"+dt2;
return(fsp);
}

***

Por exemplo, "calcular" o número de meses atrás em relação ao número atual:

int KM()
{
int kolm;
kolm=(TimeLocal()-StrToTime("2007.10.01"))/2592000;
return( kolm-1);
} 

mas esta abordagem simplista tem suas armadilhas,

que se manifestará no fato de que é possível identificar erroneamente

no início dos meses seguintes...

Razão: