[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 577

 
rigonich:


Isto não é uma função, mas uma forma de comparar números não normalizados. eles não podem ser comparados entre si, mas o resultado de subtrair um do outro pode ser comparado a zero.

E meu cheque é assim:

Você o diz bem, mas o faz "à sua maneira". E é mais alfabetizado (afinal de contas):

//+------------------------------------------------------------------+ 
 double ND(double nd){return(NormalizeDouble(nd,Digits));}
//+------------------------------------------------------------------+ 
if (ND (price - OrderOpenPrice()) != 0.0 || ND (SL - OrderStopLoss()) != 0.0 || ND (TP - OrderTakeProfit()) != 0.0 || Expiration != OrderExpiration())
{OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE);}

...embora eu não concorde com todas as condições de comparação. Você pode ler sobre as condições aqui.

 
rigonich:

Tente compilar e você vai descobrir.

sim...basta abrir estes arquivos mqh com o 4Editor...
 
Desead:

Necessidade de normalizar a tabela de preços, qualquer par de moedas de sua escolha. Preciso dele para um indicador. Tentei dividir o valor atual pelo anterior - recebo algum tipo de oscilador em torno de 1. Tive a idéia de que eu deveria converter o gráfico de valores absolutos para valores relativos, ou seja, neste caso eu poderei ver a mudança percentual de cotação. Ela foi implementada. Já é melhor e praticamente o que precisamos. Entretanto, meu desejo final é normalizar as citações na faixa [0:1] . Apropósito, aqui está o que eu preciso, mas em burguês - eu gostaria do mesmo em russo: http://people.revoledu.com/kardi/tutorial/Similarity/Normalization.html

Eu já me cansei de lutar com isto. Não posso apagar todas as ordens pendentes normalmente, só não consigo apanhar o jeito:

Eu até adicionei ao laço PARA QUANDO as ordens eliminadas ainda estão lá, mas eu ainda não as eliminei. Tenho muitas ordens pendentes para apagar, ou seja, cerca de 20, será que é algo complicado?


Parece que o problema da eliminação das ordens foi resolvido. Eu uso uma função separada para contar o número de ordens "necessárias" (a serem removidas), Total, chamar esta função e enquanto com uma condição (Total>0), então o ciclo de remoção para (int i=Total-1 ;i<=0l; i--), novamente f- tipo de"necessário", contador de tentativas de remoção com saída deenquanto quando o nível dado é alcançado. Desta forma, todos eles são eliminados.
 
TarasBY:

Aqui está um exemplo de eliminação de pedidos, incluindo os pendentes (eu eliminei com este):

Nem todas as ordens pendentes estão presentes em seu código (no filtro de seleção). Outra variante de erro: verifique os Magick recebidos por pedidos pendentes quando eles abrem (em seu próprio código).

Obrigado por sua resposta. Não preciso de todas as ordens pendentes, apenas bylimit e selllimit e eu as estabeleço apenas, o magik é o mesmo em todos os lugares. Se eu não puder resolver o problema com meus próprios esforços, tenho que olhar seus roteiros, não posso fazê-lo de outra forma, simplesmente não vai apagá-lo.

Eu estava pensando em algo. Eu coloco a exclusão de todos os robôs pendentes em um único lugar - quando eu descarrego meu robô, ele será colocado em deinit. Talvez esta seção tenha algum tipo de limite de tempo? Quando eu apago apenas algumas ordens, tudo está bem, mas quando eu descarrego uma grade inteira, então que diabos acontece, uma dúzia de ordens são sempre deixadas e não é uma opção para limpá-la manualmente.

 
rigonich:

Hurrah, parece que resolvi o problema da eliminação de pedidos. Calculei o número de ordens "necessárias" (a serem removidas) em uma função separada, chamada esta função, depois, enquanto com uma condição (Total>0), depois o ciclo de remoção para(int i=Total-1 ;i<=0l; i--), novamente, a função de contar as tentativas de remoção"necessárias", contador de tentativas de remoção com a saída deenquanto quando o nível especificado for alcançado. Desta forma, tudo é apagado.
A propósito, esta é uma boa alternativa, deixe isso enquanto continua a correr seu ciclo até o fim do mundo, obrigado, vou tentar agora.
 

você precisa inserir os termos TER um comércio aberto (um, sem maiores) em uma fila, por exemplo, com um cruzamento de médias.

encontrou isto

==============================================

int start()

{

for(int i=0; i<OrdersTotal(); i++)

{

se ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==verdadeiro) )

PlaySound ("alert.wav");

retorno(0);

}}

==============================================

uma posição aberta, mas sem som.

Você pode me dizer o que está errado?

Ou como é fácil escrever a condição:

SE MA 5 cruzar MA 10 e houver uma posição aberta - feche essa posição.

este parece ser o lugar onde é necessário o void....

 
lottamer:

Sim...basta abrir estes arquivos mqh com o 4Editor...

Se forem do tutorial MQL4, elas serão abertas pelo4thEditor. Coloque-os na pasta include ou renomeie-os paramq4 e coloque-os na pasta Expert, a principal se for uma EA, ou nas pastas de scripts ou indicadores, respectivamente, e abra-os.
 
Desead:
Boa opção, a propósito, e deixe isso enquanto corre seu ciclo até o fim do mundo até que apague as ordens, obrigado, vou tentar agora.


Leva 2,5 segundos para executá-lo em mt4.
 
rigonich:

Leva 2,5 segundos para executá-lo em mt 4.

Maldição, esse é o meu problema. Pergunto-me como posso contorná-lo se só preciso apagar toda a grade quando descarrego o robô... Não consigo nem pensar em nada aqui :(
 
lottamer:

você precisa inserir os termos TER um comércio aberto (um, sem maiores) em uma fileira, por exemplo, com um cruzamento de médias.

encontrou isto

==============================================

int start()

{

for(int i=0; i<OrdersTotal(); i++)

{

se ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==verdadeiro) )

PlaySound ("alert.wav");

retorno(0);

}}

==============================================

Há uma posição aberta, mas sem som.

Você pode me dizer o que está errado?

Ou como é fácil escrever a condição:

SE MA 5 cruzar MA 10 e houver uma posição aberta - feche essa posição.

este parece ser o lugar onde é necessário o void....


Veja se os sons são permitidos para a MT na bobina, e se há arquivos na pastaSound. Mas no mercado de bstrom, o sn funcionará como um despertador.