Erros, bugs, perguntas - página 385

 
stringo:
Está a ligar para o indicador?
Sim, no indicador.
 
Dima_S:
Sim, num indicador.

Nos indicadores é proibido chamar algumas funções que ocupam recursos informáticos e atrasam o cálculo - funções de comércio, Sleep, MessageBox

Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 

Boa tarde!

Eis uma questão: em que servidor posso testar diferentes tipos de execução?

SYMBOL_TRADE_EXECUTION_REQUEST

Comércio a pedido

SYMBOL_TRADE_EXECUTION_INSTANT

Comércio a preços de streaming

SYMBOL_TRADE_EXECUTION_MARKET

Execução_execução de ordens de mercado

Execução apenas a preços de fluxo. Precisamos de depurar o código pelo mercado e a pedido.

Sim, o código está em MQL5, claro.

Obrigado!

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
stringo:

Nos indicadores é proibida a chamada de algumas funções que ocupam recursos informáticos e tornam o cálculo mais lento - funções de comércio, Sleep, MessageBox

Estou a ver. Por isso, terei de o calcular manualmente. Embora em MT4 esta função
MarketInfo("EURUSD",MODE_MARGINREQUIRED)

e funciona bem no indicador.

 
Dima_S:
Estou a ver. Portanto, teremos de o calcular manualmente. Embora em MT4 esta função

e no indicador funciona bem.

SymbolInfoDouble(MarketInfo) é um simples pedido de informação existente. E OrderCalcMargin - uma função informática (na cruz ou símbolo em falta, pode solicitar a informação em falta ao servidor, com todas as suas consequências)

 

Boa tarde!

1. o evento de rolagem do gráfico será acrescentado à lista de eventos OnChartEvent()?

2. Porque é que a função CopyBuffer colocada num indicador personalizado causa erro 4806,

enquanto a mesma função com os mesmos parâmetros no código do Expert Advisor funciona bem?

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

Há também uma questão. Gostaria de saber a hora final da sessão de negociação na sexta-feira.

Utilizo a função para este fim:

  datetime bt,et;
  SymbolInfoSessionTrade("EURUSD",FRIDAY,0,bt,et);

Mas por alguma razão, esta função volta sempre a ser falsa. Não percebo qual é o número da sessão e de onde o obtenho?

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
bobsley:

Há também uma questão. Gostaria de saber a hora final da sessão de negociação de uma ferramenta na sexta-feira.

Utilizo a função para este fim:

Mas por alguma razão a função volta sempre a ser falsa. Não está claro qual é o número da sessão e de onde o obter?

Tanto quanto sei, por sessões entendemos sessões de negociação e de cotação dentro de um dia. Mas há apenas uma sessão configurada no servidor (só pode ser para moedas) - 0.

Fisicamente pode determinar a hora de início e fim do comércio nas propriedades do instrumento (no servidor MQ é 00:00 - 24:00).

Pode obtê-lo programmaticamente usando SymbolInfoSessionTrade(). Mas uma coisa é certa, não dará a data exacta de início e fim da sessão, mas o valor relativo em segundos desde o início do dia até ao momento do início e fim da sessão (se traduzido em segundos, claro).

bool InfoSession;
datetime from = -1,to = -1;

InfoSession = SymbolInfoSessionTrade(Symbol(),FRIDAY,0,from,to);

  if(InfoSession)
  {
  Print("Session: from ",from," to ",to);
  Print("Session: from ",(int)from," to ",(int)to);
  }
Este é o exemplo que produz o seguinte resultado -
2011.05.14 19:51:02 ******* Session: from 1970.01.01 00:00:00 to 1970.01.02 00:00:00
2011.05.14 19:51:02 ******* Session: from 0 to 86400

Consequentemente, para determinar o fim da sessão de negociação na sexta-feira, precisamos de definir a data de início da contagem decrescente (00:00 de sexta-feira concreta) e acrescentar a esta hora o resultado que a função retornou como hora de fim da sessão.

PS

Também devemos considerar que o servidor normalmente fecha a sessão com um offset de +/- 1 a 2 segundos.

Como é afectada pela hora de Verão/Inverno é também uma questão, mas se os meus olhos não mentem ao fechar o fim-de-semana, as últimas citações foram recebidas às 23:00:00 e 23:00:01 (dependendo do símbolo).

 

Desenvolvedores!

Por favor, preste atenção ao meu pedido #105082.

Há problemas na compilação de bibliotecas usando modificador de exportação!

 

construir 448
Ao tentar abrir propriedades de janela
ou propriedades de qualquer indicador,
ou tentar instalar qualquer indicador no gráfico,
o terminal do cliente fecha.
W XP3 32

Na minha opinião, esta é a "melhor" actualização de todas.

Razão: