Erros, bugs, perguntas - página 111

 
sergeev:

tudo igualou.

2010.08.28 20:57:09 Servis (EURUSD,H1) L1=6653490000 L2=6653490000 L3=6653490000 M1=6653490000
2010.08.28 20:57:09 Servis (EURUSD,H1) A=665349 B=665349 C=665349
2010.08.28 20:57:09 Servis (EURUSD,H1) --- OnInit() --- 1 --- !


e a minha M1 não correspondeu.

PQ      0       Servis (EURUSD,H8)      22:06:24        --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!
LE      0       Servis (EURUSD,H8)      22:06:24         A=100652  B=100652  C=100652
CP      0       Servis (EURUSD,H8)      22:06:24         L1=1006520000   L2=1006520000   L3=1006520000   M1=4294966006
 
sergey1294:

Dependendo para o que precisa do primeiro número, pode tentar este

Sim, é mais fácil assim, nem sequer é preciso colocar vírgulas invertidas no final.
return(StringToTime((string)str.year+"."+(string)str.mon+".01 00:00"));
 
SHOOTER777:

Mais uma vez apelo a mentes inquiridoras!

O código está anexado.

Se entendo de programação, deveria ser L1 = L2 = L3 = M1. E quanto a si?

No início o compilador queixou-se da ausência de "#import "lbS7N_Servis.ex5".

Depois de apagar esta linha, ela cedeu:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Quando substituí o número de conta no código pelo meu próprio, recebi:

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Servidor MQ, construir 316.

 
sergey1294:

e a minha M1 não correspondeu

situação única... :(
 
Porque é que SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), devolve zero?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergeev:
Uma situação única... :(

E existem até três situações únicas. Estes são os detectados. E quantos não foram detectados?

E com este estado de coisas MetaQuotes está a começar o Campeonato 2010 dentro de um mês?

Oh, MetaTrader 5 está cheio de surpresas...

 
Kos:
Porquê SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), retorna zero?

E, além disso, a versão que devolve uma indicação de sucesso (designada como 2. na ajuda. Retorna verdadeiro ou falso, dependendo do sucesso da função. Se bem sucedido, o valor do bem é colocado na variável de destino, passado por referência pelo último parâmetro.) Relata o sucesso da chamada:

void OnStart()
{
  double SymbolVolumeLimit1 = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT);
  double SymbolVolumeLimit2 = DBL_MAX;

  Print("Symbol() = ", Symbol(), ", bool SymbolInfoDouble() = ", SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT, SymbolVolumeLimit2));
  Print("SymbolVolumeLimit1 = ", SymbolVolumeLimit1, ", SymbolVolumeLimit2 = ", SymbolVolumeLimit2);
}

/* Вывод в лог (хронология - сверху вниз):
JN      0       1 (EURUSD,M15)  02:41:18        Symbol() = EURUSD, bool SymbolInfoDouble() = true
JJ      0       1 (EURUSD,M15)  02:41:18        SymbolVolumeLimit1 = 0, SymbolVolumeLimit2 = 0
*/

A segunda versão de SymbolInfoDouble() voltou a ser verdadeira, ou seja, executada com sucesso. Também o pode ver na variável SymbolVolumeLimit2 que foi inicialmente inicializada com DBL_MAX mas recebeu 0 após chamar SymbolInfoDouble().

E como é que, na opinião da MetaQuotes, em tais condições, os Expert Advisors devem basear-se nos valores devolvidos por tais funções, em vez de utilizarem valores codificados?

 

Quem utilizou a função OrderCheck.

Esta é uma construção:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Ao compilar, recebo um erro: 'resultado' - a conversão de parâmetros não é permitida.

Se remover OrderCheck, tudo se compila normalmente e a posição abre no testador.

 

Eis o que é...

Alert(" прибыль=",ПросчетПрибылизаПериод(D'2010.08.01 00:00:00'));


double ПросчетПрибылизаПериод(datetime датаначалапросчетаприбыли)
  {
   int i;
   double прибыльзапериод;
   ulong тикет;
   HistorySelect(датаначалапросчетаприбыли,TimeCurrent());
   //HistorySelect(D'2010.08.20 00:00:00',D'2010.08.20 23:59:00');
   for(i=1;i<=HistoryDealsTotal();i=i+1)
     {
      тикет=HistoryDealGetTicket(i);
      if(HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_IN || HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_STATE)
         continue;
      прибыльзапериод=прибыльзапериод+HistoryDealGetDouble(тикет,DEAL_PROFIT)+HistoryDealGetDouble(тикет,DEAL_COMMISSION)+HistoryDealGetDouble(тикет,DEAL_SWAP);
     }
   return(прибыльзапериод);
  }

Deve contar os lucros dos negócios a partir da data especificada. Dá um resultado completamente diferente do que realmente é. Por exemplo, obtive 611 em vez de um resultado de cerca de 2000. Comecei a verificar por dia (linha comentada). Há(!!) dias em que o resultado é o mesmo, mas normalmente não é o que deveria ser...(não consegui encontrar qualquer regularidade). E o depurador produz o mesmo ciclo exacto para toda a quantidade de negócios. Embora só possa rastrear apenas este número de negócios porque não são exibidos valores para quaisquer outras variáveis excepto para as variáveis int (Expressão não pôde ser avaliada).

Este código está correcto, e estou a usar o depurador correctamente...?

 
SHOOTER777:

Obrigado. Contactarei então os programadores.

Olá! Descreva a sua situação em detalhe no balcão de serviço, onde especifica o número de construção, SO, taxa de bits e anexe o código.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5