Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 827

 
Veterros:

Na última linha, há muitos parênteses. Talvez tente remover os vazios.
Você nunca pode ter muitos parênteses, desde que haja tantos parênteses de abertura e fechamento quanto parênteses de fechamento.
 
alexeymosc:

Olá! não entendo porque um erro está surgindo ao declarar uma série de funções fora das funções.

Erro: '[' - valor de índice inválido

Como posso declarar uma matriz bidimensional não dinâmica com variáveis como índices?

Tentei definir constante em vez de estática. Eu também tentei [][]. Ainda um erro (

Por favor, dê um tutorial onde procurar esta pergunta de uma vez por todas.

Porque, apesar da seqüência de atribuição de valores às variáveis, elas permanecem não inicializadas até que o programa seja executado. Portanto, até que você execute int Oninit(), a variável que você utiliza não é inicializada. Mova esta linha para Oninit() e tudo deve funcionar...
 

Eu tenho um código simples que não abre pedidos.

Em meu diário de bordo, diz: 1419717': pedido de compra 0,01 EURUSD na abertura do mercado sl: 1,13720 tp: 1,13842 falhou [Inválido S/L ou T/P].

Aqui (no fórum) eu recebi uma dica: "Pare e Takei deve ser normalizado!

Eu não entendo o que esta frase significa?

O compilador não gera nenhum erro ou aviso. Durante os testes, tudo funciona. Eu simplesmente não sei mais onde e o que ler.

Se isto for muito longo para explicar, por favor, envie-me o link onde posso ler sobre como normalizar o stoploss e o takeprofit.

Obrigado de antemão.

double Lots=0.01;
double TakeProfit=100;
double StopLoss=10;
int tk=0;

void start()
{
   if (OrdersTotal()==0)
      {
         tk=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Green);
         if(tk<0) 
         {
            Print("OrderSend завершилась с ошибкой #",GetLastError());
         }
         else         
         {
            Print("Функция OrderSend успешно выполнена");
         }
      }
}
 
AlexeyVik:
Porque apesar da seqüência de atribuição de valores às variáveis, elas permanecem não inicializadas até o início do programa. Isto é, até que você execute int Oninit(), a variável que você usa como dimensão da matriz não é inicializada. Mova esta linha para Oninit() e tudo deve funcionar...

AlexeyVik, obrigado!

É o que vou fazer. Eu não pensei no Oninit, mas acho que é verdade.

 

Por favor, me dê uma dica ))))

Há alguma quantidade de objetos gráficos no gráfico.

Uma nova barra acabou de se formar. A maneira mais fácil de determinar se ele tocou em algum objeto?

(Não quero procurar por preços de todos os objetos e comparar se a faixa de preços da última barra tocou em algum deles).

Em outras palavras, o preço e a faixa de datas como determinar se existe algum objeto gráfico nestas coordenadas.

 
favidu:

Eu tenho um código simples que não abre pedidos.

Em meu diário de bordo, diz: 1419717': pedido de compra 0,01 EURUSD na abertura do mercado sl: 1,13720 tp: 1,13842 falhou [Inválido S/L ou T/P].

Aqui (no fórum) eu recebi uma dica: "Pare e Takei deve ser normalizado!

Eu não entendo o que esta frase significa?

O compilador não gera nenhum erro ou aviso. Durante os testes, tudo funciona. Eu simplesmente não sei mais onde e o que ler.

Se isto for muito longo para explicar, por favor, envie-me o link onde posso ler sobre como normalizar o stoploss e o takeprofit.

Agradecemos antecipadamente.

NormalizeDouble() cavar no livro de referência. Mas se seu corretor não permitir que você exponha as paradas no momento da abertura de uma ordem de mercado, você deve inseri-las em zeros e expô-las separadamente, na segunda etapa. Há exemplos na kodobase.


tk=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,NormalizeDouble(Bid-StopLoss*Point,_Digits),NormalizeDouble(Ask+TakeProfit*Point,_Digits),0,0,0,Green);
 
evillive:

NormalizeDouble() cavar na referência. Mas se o corretor não permitir colocar paradas no momento da abertura de uma ordem de mercado, você deve inseri-las em zeros e colocá-las separadamente, no segundo passo. Há exemplos na kodobase.


Muito obrigado.
 

Pessoal, empurrem-me na direção certa...

Por exemplo:

#property strict
#property indicator_chart_window
#property indicator_buffers             0

int init() {

        return(0);
}

int start() {
        if (!GlobalVariableCheck(StringConcatenate("ID_", Symbol()))) {
                long id = ChartID();
                Print (id);
                GlobalVariableSet(StringConcatenate("ID_", Symbol()), id);
        }
        return(0);
}

Nunca salva o que imprime...

Algo parecido com isto:

Resultado

CHANDNT?

 
Bem, assim que eu postei isso, o servidor foi para 404 =)
 

Temporariamente, escreviam os bits altos separadamente os bits baixos separadamente.

Parece que uma variável global de tipo duplo não cabe por muito tempo.

Embora aqui se diga que não deve haver problema, exceto em situações onde"se um número inteiro for maior que 9223372036836854774784 ou menor que -9223372036854774784".

Mas concordo, o ID do gráfico = 130659893770676840 é inferior a 9223372036854774784 por um dígito completo, pelo menos.


P.S. Se alguém puder explicar meu erro ou se é uma falha, obrigado antecipadamente. Vou continuar verificando aqui.