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 872

 
rapid_minus:

Bem, estou completamente confuso: OrdBuy_1( ) é a função que abre a BAY nas condições #1 acima desta função. Apenas provavelmente o tipo correto é o dobro e não o int, pois devolve o preço de abertura do pedido. E, pelo que entendi, não o inseri em nenhuma função; ele é colocado separadamente, após int start(), extraindo os valores de todos os indicadores necessários e analisando a situação atual do mercado (estou errado?).

E como normalizar a parada e tomar, ou melhor ainda, como não fixá-las de modo algum?

E eu não entendo sobre o cheque. Devo ter entendido mal o tutorial - "bool OrderClose (int ticket, double lots, double price, int slippage, color Color=CLR_NONE)Função para fechar uma ordem de mercado". O que é um cheque?

De qualquer forma, quanto mais você vai, mais burro ele fica :(.

Por que você acha que isso está correto?

//Локальная переменная, открывающая ордер БАЙ
   int OrdBuy_1() = (OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-1500*Point,Bid+1500*Point));

Você escreveu - variável. Mas dois parênteses significam que foi você quem declarou a função. Dentro de outra função. E o que se segue não é sua descrição, mas sua atribuição.

E se você diz que deve devolver o preço de abertura, por que você o está comparando com a verdade?

if (OrdBuy_1()==true)                              //Если был открыт ордер №1, то...

Na verdade, OrderSend() retorna o número do ticket de posição em aberto sobre o sucesso. Caso contrário -1 por erro. Para descobrir qual é o erro, você precisa olhar o conteúdo do último erro GetLastError () e, se possível, lidar com o código de erro retornado pelo servidor comercial (era disso que eu estava falando).

Você verifica o número do bilhete para "verdadeiro". E isto ou é 0 (falso) ou qualquer valor que não seja zero (verdadeiro). No erro OrderSend() retornará -1, o que é verdade, e depois o quê?

 
artmedia70:
Calcule a linha virtual ao invés da linha real.

Já começou. O problema é como inverter a indexação das barras para que o maior índice esteja à direita (para calcular a geometria da linha de tendência)

Virou-se desta forma, mas como compará-la com um ciclo de cálculo de indicadores. Talvez haja alguma outra forma mais técnica de reverter a indexação?

for(i=limit;i>=0;i--)
   {
   Bar[i]=Bar[i+1]+1;
   }
 
Forexman77:

Já começou. O problema é como inverter a indexação das barras para que o maior índice esteja à direita (para calcular a geometria da linha de tendência)

Virou-se desta maneira, mas como compará-la com o ciclo de cálculo de indicadores. Talvez haja alguma outra forma mais técnica de inverter a indexação?

Por quê? Use a barra e o preço dos dois pontos da linha para obter o preço da barra sendo calculado:

double EquationDirect(double x1, double y1, double x2, double y2, double x) {return((x2==x1)?y1:(y2-y1)/(x2-x1)*(x-x1)+y1);}

x1 é a barra do primeiro ponto da linha, y1 é o preço do primeiro ponto da linha, x2 e y2 são a barra/preço do segundo ponto da linha, x é o número da barra sobre a qual você quer o preço.

 
artmedia70:

Por quê? Use a barra e o preço dos dois pontos da linha para obter o preço da barra a ser calculada:

x1 é a barra do primeiro ponto da linha, y1 é o preço do primeiro ponto da linha, x2 e y2 são a barra/preço do segundo ponto da linha, x é o número da barra à qual você quer o preço.

Ok. Obrigado.
 
Favor aconselhar como fechar todas as posições para o dia seguinte às 23h00, sem problemas durante o dia (se (Hour_curr>= tempo necessário), mas eu tenho um problema com a mudança depois das 00h00.
 
aleks_pavlenko:
Favor aconselhar como fechar todas as posições para o dia seguinte às 23h00, sem problemas durante o dia (se (Hour_curr>= tempo necessário), mas eu tenho um problema com a mudança de posições após as 00h00.
Se o dia de abertura da posição não for igual ao dia em que ela deve ser fechada.
 
artmedia70:
Se o dia de abertura da posição não for igual ao dia para fechá-la.
Certo, o dia de abertura não é igual ao dia de fechamento, como implementá-lo em mq4.
 

Boa tarde! Não entendo como qualquer parte do código (por exemplo, descrição e cálculo de variáveis globais) pode ser transformada em um arquivo de inclusão?

Como a extensão mgh é atribuída ao arquivo?

O arquivo incluído reduz o tamanho do Expert Advisor?

Obrigado.

 
rapid_minus:

Boa tarde! Não entendo como qualquer parte do código (por exemplo, descrição e cálculo de variáveis globais) pode ser transformada em um arquivo de inclusão?

Como a extensão mgh é atribuída ao arquivo?

O arquivo incluído reduz o tamanho do Expert Advisor?

Obrigado.

Um .mq4 regular pode ser incluído, não precisa ser .mqh, você não precisa nem mesmo compilá-lo. O arquivo de inclusão difere na falta de funções especiais OnInit(), OnDeinit(), OnTick, etc.

Não há efeito sobre o tamanho do arquivo, seja ele alinhado ou todo o código em uma peça, o código alinhado está incluído no código executável final.

 
evillive:

Um arquivo regular .mq4 pode ser incluído, não precisa ser .mqh, você não precisa nem mesmo compilá-lo. O arquivo incluído difere na ausência de funções especiais OnInit(), OnDeinit(), OnTick, etc.

Não tem efeito sobre o tamanho do arquivo de inclusão, se o código inteiro está incluído em uma peça, o código do inline está incluído no executável final.

Será que acertei - escrevemos um código sem funções init(), start() e assim por diante, salvamos como um arquivo .mqh e pronto? Podemos colocá-lo no terminal_diretório de especialistas, incluindo e será chamado e executado sem nenhum problema?

Obrigado.

Razão: