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

 
obabuev писал (а) >>
Como adicionar int b à cadeia Tempo2 minutos agora ou como adicionar mais menos fazê-la aleatória
void start() {
  int a=MathFloor(MathRand()/32767.0*300);
  int b=-MathFloor(MathRand()/32767.0*300);
  Comment("a=",a," b=",b,"\n",
          "плюс ",TimeToStr(TimeLocal()+a, TIME_SECONDS),"\n",
          "минус ",TimeToStr(TimeLocal()+b, TIME_SECONDS));
}
 

Por favor, informe sobre os métodos existentes para limitar o número de pedidos:

1) como ligar o número de ordens ao saldo disponível, de modo que haja uma dinâmica, por exemplo, se os fundos disponíveis forem inferiores à metade do saldo, então o limite é acionado

2) Como limitar o número de ordens simultâneas a um valor fixo, por exemplo, 10

 
KimIV писал (а) >>
Obrigado Igor,
É muito simples e fácil de codificar, como todos os profissionais.
Exceto que eu nunca pensei ser capaz de explicar por palavras, muito menos escrever o código.
O que eu preciso é que o deslocamento aleatório venha de um oscilador, mas de forma aleatória em ambas as direções.
Por exemplo, como um ponteiro oscilando perto de zero (descendo e depois subindo).
E este é meu zero, ou o valor médio será meu tempo definido.
Como dividir toda a aleatoriedade em duas partes no meio?
Será que vai funcionar assim?
inícionulo() {
int a=MathFloor(MathRand()/32767.0*300);
if (a > 150) a=-a;
Comentário("a=",a,"\n",
"mais ou menos ",TimeToStr(TimeLocal()+a, TIME_SECONDS) );
}
Além disso, estou tentando fazer isto em um indicador.
O TimeToStr(TimeLocal()+a,TIME_SECONDS) estará correto ou se o TimeToStr(Time[i] +a,TIME_SECONDS) ou o TimeToStr(iTime(NULL,0,i)+a) ou ????
>> Obrigado por sua ajuda.
 
obabuev писал (а) >>
Preciso que o deslocamento aleatório aconteça a partir de um oscilador, mas em ambas as direções de forma aleatória.
É como a mão oscilante perto de zero (subindo e descendo).
E este é meu zero, ou o valor médio será meu tempo definido.
De alguma forma tudo deve ser dividido em duas partes por acaso no meio ou o quê?

Então é assim:

void start() {
  int a=MathFloor(MathRand()/32767.0*300)-150;
  Comment("a=",a,"\n",
          "плюс-минус ",TimeToStr(TimeLocal()+a, TIME_SECONDS));
}
obabuev escreveu (a) >>
O TimeToStr(TimeLocal()+a,TIME_SECONDS) estaria correto ou deveria o TimeToStr(Time[i] +a,TIME_SECONDS) ou o TimeToStr(iTime(NULL,0,i)+a) ou ????

Como saber o que está certo e o que está errado? Só você pode saber disso. Explicarei apenas qual código significa o quê, e você decide por si mesmo o que você precisa e o que é certo para você.

TimeToStr(TimeLocal()+a,TIME_SECONDS)

Você adiciona um segundo à hora local em segundos e o resultado é convertido em um fio.

TimeToStr(Time[i] +a,TIME_SECONDS)

Acrescentamos um segundo ao tempo de abertura da i-ésima barra e o resultado é convertido em um fio.

TimeToStr(iTime(NULL,0,i)+a)
Um segundo é adicionado ao tempo de abertura da i-ésima barra no gráfico atual em segundos e o resultado é convertido em uma linha.
 
AlexDub писал (а) >>

Por favor, informe sobre os métodos existentes para limitar o número de pedidos:

1) como ligar o número de ordens ao saldo disponível, de modo que haja uma dinâmica, por exemplo, se os fundos disponíveis forem inferiores à metade do saldo, então o limite é acionado

2) Como limitar o número de pedidos a um montante fixo, por exemplo 10

if (AccountFreeMargin()<AccountBalance()/2.0) {
  // срабатывает ограничение
}
AlexDub escreveu (a) >>
Você pode me dizer quais métodos usar para limitar o número de pedidos?
2) como limitar o número de ordens simultâneas a um valor fixo, por exemplo, 10
if (OrdersTotal()>=10) {
  // срабатывает ограничение
}
 
KimIV писал (а) >>

>> Então é assim:

>> Obrigado,
>> um monumento a você.

 
obabuev писал (а) >>

Você precisa de um monumento.

Ainda não :))

 
Depois um busto de bronze em casa... ;)
 

Como todos são amáveis! Você também pode atirar em você mesmo

 

Bem, pelo menos o busto é uma coisa boa...

Eles deveriam tê-lo colocado para dois heróis da URSS em sua vida.

Às custas do Estado... :)))