[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 487

 
tol64:


)))) Não, eu acho que seria melhor deixar o mágico. E basta deixar as ordens pendentes.

Para ser mais preciso, deixe os símbolos mágicos que são necessários. E se você usar vários EAs em diferentes gráficos, você também deve incluir símbolos no cheque. Eu ainda não cheguei a este ponto. ))


Normalmente verificamos um símbolo e um magik - um símbolo para usar em diferentes instrumentos, não para mudar um magik - e um magik para usar em um instrumento e em diferentes prazos - mas somente um magik pode ser verificado, se for emitido em variáveis externas
 
Você pode me dizer se o corretor jmt:0 é da mesma cor no verão e no inverno?
 
FOReignEXchange:

Nunca uso mágicos de forma alguma. Embora às vezes existam alguns itens de cada vez. Eu uso bilhetes. É muito mais fácil de verificar através da OrderSelect. E a função OrderSend se torna mais clara. Bem, cada um é o mestre de sua própria caligrafia. Pessoalmente, nunca tive nenhum problema sem os mágicos.

O bilhete nunca vai a lugar algum. É conveniente.

Exatamente... :) Fechar uma posição parcialmente aberta. E depois tente mudar a parada ou pegar pelo bilhete que você tem para esta posição. Então você terá o melhor dos dois mundos. :)

Exemplo: Temos uma posição aberta com lote 1.0, e bilhete nº 1. Você precisa fechar 0,5 lotes desta posição e manter os 0,5 lotes restantes.

Ações do Centro de Revendedores:

1. Posição fechada #1 com volume total (lote 1.0)

2) Posição aberta #2 com volume de lote 0,5

Para você, parece um fechamento parcial da posição nº 1 e deixando o resto no mercado. Apenas o bilhete desta posição não é o que você pensa que é...

 
FOReignEXchange:


Eu não entendo? Estou apenas procurando na ajuda, lá OrderSelect() usa uma condição. E eu não vi nenhum lugar sem verdade.

Se for um operador em condições. E deve haver uma condição entre parênteses. Parece-me mais lógico desta forma. Embora possa não haver diferença.

Vamos traçar uma analogia com o russo. IMHO - é mais conveniente ler o código substituindo mentalmente seus operadores por texto falado:

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

O que temos aqui é:

Se a ordem não tiver sidoescolhida, interrompemos o loop.

Agora:

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;

É mais conveniente aqui:

senenhum pedido tiver sido selecionado, interrompemos o loop.

A mesma coisa é absolutamente a mesma, mas é mais fácil de ler. E há menos escrita...

E também podemos remover todas as coisas desnecessárias e obter ainda menos código:

if(!OrderSelect(i,SELECT_BY_POS)) break;

Por quê? Porque selecionamos uma ordem de mercado e ela é MODE_TRADES por padrão, então podemos omiti-la no parâmetro de função OrderSelect()...

Ah, sim... :)

 
artmedia70:

Oh meu Deus... :)


)))

Certo. É de manhã, tão bom dia! ))

Tenho ainda outra anomalia que não entendo à primeira vista. A operação mais simples:

double High_1  = NormalizeDouble(iHigh(Symbol(),Timeframe,1),Digits);
double new_val = NormalizeDouble(High_1 + PlsMns_point*Point,Digits);

Eu posso ver na revista:

E literalmente em uma imagem de espelho:

 double Low_1   = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);
 double new_val = NormalizeDouble(Low_1 - PlsMns_point*Point,Digits);

Na revista eu vejo esta "figura":

A variável externaPlsMns_point é do tipo int. Ela é passada para uma função. O que devo fazer para eliminar este mal-entendido? ))

 

A variável externa PlsMns_point é do tipo int .

Desde a primeira entrada de registro, parece ser do tipo Double, int sendo um número inteiro.

 
Stells:

A variável externa PlsMns_point é do tipo int .

De acordo com a primeira entrada de registro, é do tipo Double, int é um número inteiro.


E quando multiplicada por Ponto, a conversão parece acontecer. Mas este não é o problema, uma vez que eu tentei dobrar também.

P.S. E além de duas variantes idênticas. A única diferença está no espelhamento. Por quê?

 

Acho que você tem este valor em falta:

double Low_1 = NormalizeDouble(iLow(Símbolo(),Timeframe,1),Dígitos);

talvez baixar o histórico

 
tol64:


)))

Certo. É de manhã, tão bom dia! ))

Tenho ainda outra anomalia que não entendo à primeira vista. A operação mais simples:

Eu posso ver na revista:

E literalmente em uma imagem de espelho:

Na revista eu vejo esta "figura":

A variável externaPlsMns_point é do tipo int. Ela é passada para uma função. O que devo fazer para eliminar este mal-entendido? ))

Imprima também os valores das variáveis High_1 e Low_1. Em geral, imprima os valores passados para a função, e imprima também os valores de retorno. Então você verá por onde começar. Variáveis das quais você tem certeza de tomar valores absolutamente inesperados. É aí que você vai encontrar o erro.
 

Bom dia, como posso alterar o volume do arquivo de registro (ajustar, limpar), que às vezes está entupido com valores enormes devido a erros de EA. Preciso de uma maneira de fazer isto pelo próprio consultor especializado.