Erros, bugs, perguntas - página 122

 
sergey1294:
Mal posso esperar pela função OrderCalcMargin() para funcionar correctamente para CFD, futuros, índices, etc. Alguém pode partilhar fórmulas para calcular correctamente a margem para estes instrumentos?

Não há um na ajuda? Parece ser...
 
Interesting:

E provavelmente trouxe tudo isto à tona, não consigo pensar noutra razão...

Vou tentar descrever a situação com mais detalhe.

Existe uma classe simples "CMqlTimer", a tarefa desta classe é acompanhar o momento de mudança de diferentes intervalos de tempo: hora, dia, semana, mês, ano.

Tudo é realizado com muito simples primitivo, por exemplo, se os minutos são iguais a 0 então "nova hora" chegou; se o número de dias da semana não corresponde ao armazenado em variável então a alternância de dias ("00:00:00" por hora do servidor) chegou. E assim por diante.

A análise é realizada quando o temporizador é accionado, com um intervalo de 1 segundo, o trabalho é feito em CMqlTimer::OnTimer(). Se o intervalo de tempo mudar, a função deve ser executada. Por exemplo, se for um "novo" dia, a função CMqlTimer::OnRolloverDay() deve ser executada.


Se removermos o resto do código e escrevermos apenas OnRolloverDay(), o resultado será o seguinte:

Todos os eventos do utilizador são rastreados e passados para tratamento à classe principal

Parece algo parecido com isto

Assim, os eventos não chegam ao OnChartEvent em modo de teste, ou seja, o Expert Advisor não pode lidar com um evento enviado usando EventChartCustom em modo de teste. Verificou-o ao exibir todos os eventos no diário de bordo.

PS

O mais interessante é que todos os eventos entram na demonstração, mas no testador, este recusa-se a trabalhar.

Antes de 319 todos funcionaram e, no testador, os eventos são tratados com sucesso. É verdade o último lançamento onde funcionou, não posso dizer...

alexvd:
Obrigado. Teremos de pensar no assunto.
Posso perguntar como é que as coisas estão a progredir nesta direcção? Preciso mesmo que os eventos no testador funcionem correctamente.
 
Interesting:
Não está na ajuda? Parece ser...

Tenho definitivamente, o que não entendo são as seguintes variáveis nas fórmulas, destacadas a vermelho

Identificador

Descrição

Fórmula

SÍMBOLO_CALC_MODE_FOREX

Modo Forex - cálculo de lucro e margem para Forex

Margem: Lotes*Tamanho_de_contrato/Alavancagem

Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes

SYMBOL_CALC_MODE_FUTURES

Modo Futuros - calcular margem e lucro para futuros

Margem: Lotes *Margem Inicial*Percentagem/100

Lucro: (fechar_preço_aberto_preço)*TickPrice/TickSize*Lots

SÍMBOLO_CALC_MODE_CFD

Modo CFD - cálculo da margem e lucro para CFD

Margem: Lotes *Tamanho do contrato*Preço de mercado*Percentagem/100

Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes

SÍMBOLO_CALC_MODE_CFDINDEX

Modo índice CFD - cálculo de margem e lucro para índices CFD

Margem: (Lotes*TamanhoContrato*Preço de Mercado)*TickPrice/TickSize

Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes

SYMBOL_CALC_MODE_CFDLEVERAGE

Modo de alavancagem de CFD - cálculo de margem e lucro para CFD ao negociar com alavancagem

Margem: (Lotes*Tamanho do contrato*Preço de mercado*Percentagem)/Alavancagem

Lucro: (fechar_preço_aberto_preço)*Tamanho_de_contrato*Lotes

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
Posso perguntar como é que as coisas estão a progredir nesta direcção? Preciso mesmo que os eventos no testador funcionem correctamente.

A seu pedido, o pedido foi formado - não será perdido!

 
alexvd:

A seu pedido, o pedido foi formado - não será perdido!

Obrigado, vamos esperar...
 

Bug - costumava funcionar, mas agora não funciona.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  // вот так работает
     Print(TimeCurrent()+2*PeriodSeconds(PERIOD_D1));
  // а вот так нет (а раньше работало)  
     datetime    time_end=0;
     time_end=TimeCurrent()+2*PeriodSeconds(PERIOD_D1);
     Print(time_end);
  }
 
Prival:

Bug - costumava funcionar, mas agora não funciona.

Funciona para mim.

Aqui está o resultado:

2010.09.08 20:15:12 Draft1_1 (EURUSD,M15) 2010.09.10 19:15:04
2010.09.08 20:15:12 Draft1_1 (EURUSD,M15) 2010.09.10 19:15:04

 
Prival:

Bug - costumava funcionar, mas agora não funciona.

Ambos trabalham para mim. Construir 324
 


2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

Não, não funciona. os números são diferentes. construir 324. Win7 64bit.

 

Prival:

2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

Tenho isto:

2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15
2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15

Acta:

2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24
2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24

Ganhar XP.