[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 78

 
goldtrader >> :

A condição sob a primeira condição se a declaração se aplica somente à declaração seguinte após ela (a linha seguinte).

Os outros são executados sem a necessidade de qualquer tipo de execução. Ou seja, mesmo que não haja comando para fechar uma ordem, um dos playounds funcionará.

A maneira correta é esta:

O problema é que ambos os playsounds funcionam - PlaySound("timeout.wav") funciona, depois PlaySound("money.wav"), o negócio fecha normalmente, mas antes de seu fechamento há um erro de playound e esta coisa funciona apenas para negócios curtos, para negócios longos tudo é normal - PlaySound("money.wav").wav") se fechado e PlaySound("timeout.wav") se erroneamente, o mesmo desenho para negócios longos e curtos. Vou tentar colocar parênteses como você descreveu, não sei se está neles))


 
Dimoncheg >> :

... >> Vou tentar parênteses como você descreveu, não sei se é isso).

É difícil obter um resultado positivo com essa abordagem.

 
goldtrader >> :

Com tal abordagem, é difícil alcançar um resultado positivo.

Estou profundamente convencido de que o resultado não depende da forma como o texto é apresentado no fórum)) Pelo menos eu não me incluo para a intelligentsia, mas é uma besteira de todo o assunto))).

Eu fiz parênteses para o envio de pedidos, a mesma coisa, primeiro um som de erro e depois um som de fechamento. Durante muito tempo, tudo está bem como antes. Então tudo funciona, é claro, só recentemente inseriu uma função para ver que tipo de erros, por isso este som apareceu antes do som de fechamento, e antes disso eu não notei, é claro - tudo funciona

 

OK, apenas para referência. O comando PlaySound() não espera que o som anterior termine, mas simplesmente interrompe e inicia seu próprio som. Em um loop rápido, os sons intermediários podem ser absorvidos.

 
Roger >> :

OK, apenas para referência. O comando PlaySound() não espera que o som anterior termine, mas simplesmente interrompe e inicia seu próprio som. Em um loop rápido, os sons intermediários podem ser absorvidos.

Se fosse apenas no som, o erro "Nenhum erro" aparece no registro para qualquer fechamento de negócios curtos, 3 negócios são fechados - 3 erros, etc., mas depois disso tudo é fechado e o registro é prescrito fechamento, para negócios longos, tudo é normal e o som funciona como pretendido, e o erro não é prescrito, coloquei um deslize de 3 segundos e 5 segundos, mesmo assim, apenas com o atraso apropriado

 
Você pode me dar uma dica? Existe uma variável, que deve ser calculada para cada barra individualmente, ou seja, [i+1]=0,9, [i+2]=0,8, [i+3]=1,5........, mas o que eu tenho é que para todas as barras na história o último valor calculado é aplicado......... se último 1 então [i+1]=1, [i+2]=1, [i+3]=1 e se último 2 então [i+1]=2, [i+2]=2, [i+3]=2 respectivamente....
 
Dimoncheg писал(а) >>

Se apenas no som fosse o assunto, o erro "Nenhum erro" aparece no tronco em qualquer fechamento de negócios curtos, 3 negócios são fechados - 3 erros, etc., mas depois disso tudo é fechado e o tronco prescrito para fechamento, para negócios longos é bom, e o som funciona como pretendido, e o erro não é prescrito, inserido um deslize por 3 segundos e 5 segundos, tudo igual, mas com o atraso apropriado

Sabe, eu tive uma coisa parecida, eu me esforcei, eu coloquei atrasos, nenhum progresso. Depois verifiquei se o pedido foi fechado por

if(OrderCloseTime()!=0)

Todos os meus problemas desapareceram de uma só vez. Experimente.

 
RocketTrend писал(а) >>
Pode me dar uma dica, por favor? Existe uma variável, que deve ser calculada para cada barra individualmente, ou seja, [i+1]=0,9, [i+2]=0,8, [i+3]=1,5........ mas o que eu tenho é que o último valor calculado é aplicado a todas as barras no histórico......... se for o último 1, então [i+1]=1, [i+2]=1, [i+3]=1 e se for o último 2, [i+1]=2, [i+2]=2, [i+3]=2 respectivamente....

É tão difícil dizer, poste esse pedaço de código na íntegra.

 
Reshetov >> :

Se você precisar depurar, use Print()

Mas na maioria dos casos, você não precisa disso.


Bem, eu tenho uma opinião diferente. Estou escrevendo um consultor especializado agora, e estou tendo muitos problemas sem um depurador adequado. Especialmente com matrizes de dados.

Para ter certeza de que o algoritmo funciona corretamente, preciso analisar os dados obtidos ao calcular os indicadores. E não há apenas um conjunto.

Não há outra ferramenta disponível além de Print(), Comment(), Alert()?

 
Reshetov >> :


Que diabos é isto? Para que serve o OrderSelect()?


No resto é difícil de entender, porque o código é disposto sem recuo e não se pode seguir parênteses - não quero arruinar a minha visão.

Ok, vamos pular as besteiras e não estragar a nossa visão.

/---- parâmetros de entrada
PerRSI=8;
externo int MagicNamber=77771;
Lotes duplos externos=1,0;
//+------------------------------------------------------------------+
int start()
{
int
tipo, // tipo de pedido
cnt, // índice de pedidos
bilhete, // número de identificação do pedido
total; // número de pedidos já abertos
duplo
rsi_0, // Valor. rsi_0 corrente
rsi_1; // Valor. rsi_1 1ª barra

rsi_0=iRSI (NULL, 0, PerRSI, 0, 0); // Barra de corrente
rsi_1=iRSI (NULL, 0, e PerRSI,0, 1); // Barra de corrente mais 1

if(rsi_0 < rsi_1 && rsi_1 < 30) // se a linha tiver atravessado 30

ticket=OrderSend (Symbol(), OP_BUY,Lots, Ask, 3, 0, 0, "My RSI", MagicNamber, 0, Green);

OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);


if(rsi_0 > rsi_1 && rsi_1 > 60) // se a linha tiver ultrapassado 70

OrderClose(ticket, OrderLots(), Bid, 3, Violet ); // posição fechada

retornar(0); // sair

}

por que scoop compra e não fecha, sem erros ao cometer

Razão: