[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 74

 
Mathemat:

Uma matriz de 8 pontos é M[8][2] em vez de M[8][8].

São "quaisquer três" os pré-selecionados, ou o quê?


Bem, sim, a matriz é, naturalmente, M[8][2]. Quaisquer três são quaisquer da matriz que tem que ser definida no processo de cálculo. Podemos formulá-lo de forma ligeiramente diferente: precisamos encontrar as coordenadas do centro de um círculo e as coordenadas de três pontos o mais próximo possível desse círculo.
 
 
atztek:


E então OrderOpenPrice() .


então ele o definirá por si mesmo ?
 
Myth63:

para que ele mesmo o identifique?
O que você quer dizer com "vai encontrá-lo"?
Você olha através das ordens abertas, e para cada ordem, o comando OrderOpenPrice() dá o valor do preço pelo qual a ordem foi aberta.
Atribuir seu valor a alguma variável e utilizá-la.
 
Elenn: Bem, sim, a matriz é, naturalmente, M[8][2]. Quaisquer três são quaisquer da matriz, que deve ser definida no processo de cálculo.

Em resumo, o problema se resume a isto: há três pontos. Você tem que desenhar um círculo de raio r de tal forma que a soma dos quadrados das distâncias entre eles e o círculo seja mínima.

Na verdade, é uma grande tarefa, não uma tarefa que possa ser resolvida com pressa. Um círculo não é uma linha reta. Qual das duas distâncias a percorrer não é de modo algum evidente.

Bem, aqui está um exemplo concreto:

Mostrar a disposição correta.

 
atztek:
O que você quer dizer com "vai detectá-lo"?
Você olha através das ordens abertas, e para cada ordem, o comando OrderOpenPrice() dá o valor do preço pelo qual a ordem foi aberta.
Atribuir seu valor a alguma variável e utilizá-la.


Eu entendi dessa forma. ele apenas o ajustará automaticamente e o utilizará para verificação. ?

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Pergunta>(OrderOpenPrice()+(AD1*Point) )
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
return(0);

}

Parece estar certo ?

 
Myth63:


Eu entendi dessa forma. ele apenas o ajustará automaticamente e o utilizará para verificar. ?

for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
{
if ( Pergunta>(OrderOpenPrice()+(AD1*Point) )
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
return(0);

}

Parece estar certo ?

Não é bem assim. E se nenhum pedido for selecionado? Onde está a normalização de preços ao enviar uma ordem comercial?

As ordens são fechadas em loop, o que significa que a busca não deve ser feita a partir de zero, mas de OrderTotal()-1 a >=0

 
Mathemat:

Em resumo, o problema se resume a isto: Há três pontos. Você tem que desenhar um círculo de raio r de tal forma que a soma dos quadrados das distâncias entre eles e o círculo seja mínima.

Na verdade, é uma grande tarefa, não algo que se possa fazer num piscar de olhos. Um círculo não é uma linha reta. Qual das duas distâncias a percorrer não é de modo algum evidente.

Bem, um exemplo concreto:

Mostrar a disposição correta.


Eu acho que sim:
 

Elenn: Думаю, что так:

Não, eu não assumirei tal tarefa. No próprio processo de cálculo, você terá que decidir quais distâncias tomar (há duas distâncias de qualquer ponto até o círculo). Nada bonito.

Talvez a GA possa ajudar a encontrar o mínimo local aqui. Mas eu não sou bom nisso.

P.S. Você não especificou a função alvo - soma dos quadrados de distâncias ou a soma das próprias distâncias.

 
Mathemat:

Na verdade, é uma grande tarefa, não algo que se possa fazer num piscar de olhos. Um círculo não é uma linha reta.

Eu entendo que a tarefa não é fácil. Não quero reduzir o problema a uma pesquisa estúpida de todas as variantes possíveis de "três". Pelo que entendi, a variante com uma linha reta também "participará" de todos os pontos, mas não de três deles. Como você acha que poderia ser a variante para uma linha, para que a soma das distâncias dos três "melhores" pontos para esta linha seja mínima?