Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1087

 
Sysmart:

Pergunta sobre testes (ver foto do testador)

- abrimos uma ordem de Venda (seta verde na foto), ela tem um Take Profit de 1,10439;

- adicionamos uma ordem Sell Stop pendente (seta amarela na foto) com o preço 1.10441;

A questão é por que a ordem Take Profit não foi acionada em 1.10439 e a Sell Stop (seta vermelha) em 1.10441?

Quando você compra a 1.3000, você compra a 1.3003 (por exemplo), quando você fecha a posição que você define TP para vender a 1.2020, sua negociação fechará a um preço onde Bid é a 1.2017 e Ask a 1.2020, ou seja, você paga 2 vezes o spread para administrar sua posição, e a diferença vai para o bolso do escritório. Alternativamente, você pode negociar em contas mais líquidas como a NDB (5 dígitos)

 
novichok2018:
Olá! Minha pergunta é fora de tópico, mas não sei onde perguntar se quero obter uma resposta realmente competente. O Google não ajudou. A questão é: Hoje o índice DAX30 começou a ser negociado subitamente não às 9:00, mas às 2:15 da manhã. Em nenhum lugar, inclusive no site da Bolsa de Frankfurt, não encontrei nenhuma explicação ou aviso. Talvez alguém esteja mais informado e possa me dar uma dica de onde encontrar as informações?

Bem, como ninguém está ciente desta questão, então por favor, aconselhe como ligar o início da EA ao início da comercialização com um símbolo. Neste momento tenho uma ligação simples ao tempo: if(Hour()==9) {CODE}. Portanto, quando mudo o horário de início de 9:00 para 2:15, a condição de abertura de posições pára de funcionar. E se eu simplesmente mudar o horário, não há garantia de que o horário de início da negociação mudará novamente, e eu não vou notar isso.

 
novichok2018:

Bem, como ninguém está ciente desta questão, então por favor, aconselhe como ligar o início da EA ao início da comercialização com um símbolo. Neste momento tenho uma ligação simples ao tempo: if(Hour()==9) {CODE}. Portanto, quando mudo o horário de início de 9:00 para 2:15, a condição de abertura de posições pára de funcionar. E se simplesmente mudarmos o horário, não há garantia de que o horário de início da comercialização mudará novamente, e eu não vou notar isso.

Procure na kodobase.

aqui está o primeirohttps://www.mql5.com/ru/code/27315

 
Sysmart:

Pergunta sobre testes (ver foto do testador)

- abrimos uma ordem de Venda (seta verde na foto), ela tem um Take Profit de 1,10439;

- adicionamos uma ordem Sell Stop pendente (seta amarela na foto) com o preço 1.10441;

A questão é por que a ordem Take Profit não foi acionada em 1.10439 e a Sell Stop (seta vermelha) em 1.10441?

Basta lembrar que as ordens de venda são abertas ao preço de compra e fechadas ao preço de venda, para ordens de compra é o contrário. Isso é tudo.

 
Igor Makanu:

busca por codobase

aqui está o primeirohttps://www.mql5.com/ru/code/27315

Obrigado, é claro, mas este exemplo está fora de tópico. Precisamos de um link para ahora de início da negociação de um determinado instrumento ou para a hora de início da troca que comercializa esse instrumento. Não consegui encontrá-lo na kodobase.

 

Olá, eu estava escrevendo código e me deparei com este problema.

O código funciona se você excluir uma linha:

#property strict

Com o mesmo, ele deixa imediatamente de funcionar.

Aqui está o próprio fragmento de código onde o erro é detectado:

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

E aqui estão os resultados:

queBars' - identificador não declarado; linha 7 do fragmento

A 'whichBars' - identificador não declarado; 8 linha do fragmento


Como isso pode ser consertado?

 
pykachilo:

Olá, eu estava escrevendo código e me deparei com este problema.

O código funciona se você excluir uma linha:

Com o mesmo, ele deixa imediatamente de funcionar.

Aqui está o próprio fragmento de código onde o erro é detectado:

E aqui estão os resultados:

queBars' - identificador não declarado; linha 7 do fragmento

A 'whichBars' - identificador não declarado; 8 linha do fragmento


Como isso pode ser consertado?

queBars deve ser definida no início da função, e não no estado em que se encontra.
 

Boa tarde.

Eis uma pergunta: Na documentação em "Tipos de Eventos Gráficos" (https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents)
para o eventoCHARTEVENT_KEYDOWN é definido que o parâmetro sparam é "String value of bitmask describing the status of keyboard buttons".

No entanto, não consigo encontrar informações sobre quais bits são responsáveis pelo quê.

Para o evento CHARTEVENT_MOUSE_MOVE existe um parâmetro semelhante sparam que é uma "String value of the bitmask describing the status of mouse buttons".
é descrito em detalhes na mesma página...

Onde posso ver a documentação sobre sparam="string value of bitmask descrevendo o status dos botões do teclado" para o evento CHARTEVENT_KEYDOWN ?

Obrigado.

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

Onde posso ver a documentação para sparam="string value bitmask descrevendo o status dos botões do teclado" para o evento CHARTEVENT_KEYDOWN ?

você pode imprimir via Print(sparam) para os botões desejados.

Não conheço sua tarefa, mas prefiro usar lparam eu mesmo, portanto não tenho que pensar em linguagem, legenda e outras variações.

 
Igor Zakharov:

você pode imprimir via Print(sparam) para os botões desejados.

Não conheço sua tarefa, mas prefiro usar lparam eu mesmo, portanto não tenho que pensar em linguagem, legenda e outras variações.

Esta é uma solução interessante para um caso geral. É claro que para uma determinada chave, você pode passar por todas as combinações possíveis (idioma, bonés, etc.) para ver o que acontece e até mesmo tentar tirar algumas conclusões a partir dele,
MAS, esta questão deve ser refletida na documentação. Para eventos do mouse é - tudo está disponível na documentação. E quanto ao teclado?

Razão: