Erros, bugs, perguntas - página 259

 

Moderadores, uma pergunta para si.

Não posso enviar um pedido ao Servicedesk.

E o botão fechar não funciona

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
sergeev:

Moderadores, uma pergunta para si.

Não posso enviar um pedido ao Servicedesk.

E o botão "Fechar" não funciona

Por favor, tente novamente. A Servicedesk faz parte de um sistema interno da empresa que foi reiniciado recentemente.
 
Pode dizer-me como saber se um comércio encerrou com um stop loss?
 
Gostaria de saber se existe uma alternativa ao guião de loop infinito em 5, porque tal guião é muito caprichoso, gostaria que continuasse a funcionar quando reabrir o terminal ou alterar o prazo?
 
Olegts:
Gostaria de saber se existe uma alternativa ao guião de loop infinito em 5, porque tal guião é muito caprichoso, gostaria que continuasse a funcionar quando reabrir o terminal ou alterar o prazo?

Se estiver satisfeito com a frequência mínima de 1 segundo, então OnTimer, caso contrário

Desde que não haja uma operação de microssegundos no OnTimer.

 
possível perda de dados devido ao tipo de conversão ChartObject.mqh 213 4
possível perda de dados devido ao tipo de conversão ChartObject.mqh 481 4
possível perda de dados devido ao tipo de conversão ChartObject.mqh 867 17
possível perda de dados devido ao tipo de conversão ChartObjectsTxtControls.mqh 519 4

Bild 375 - as vornings apareceram em bibliotecas standard. Pode haver mais alguns, ainda não os verifiquei.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
Urain:

Se estiver satisfeito com uma frequência mínima de 1s, então OnTimer, caso contrário

Até ao OnTimer não há nenhuma operação de microssegundo.

Obrigado, é necessário um intervalo mais curto, por isso é a maneira antiquada :)
 
nanaos:
Poderia dizer-me, por favor, como sei se um comércio é fechado por um stop loss?

Em MT5 não é a troca que fecha na paragem de perda, mas a posição, no momento em que se pode descobrir apenas pelo comentário da troca que fechou a posição na paragem de perda. Aqui está um código de amostra.

void Event()
  {
   if(!HistorySelectByPosition(ID))return;
   double margin=0.0;
   bool res;
   int total=HistoryOrdersTotal();
   ulong deal_ticket=HistoryDealGetTicket(total-1);
   string coment=HistoryDealGetString(deal_ticket,DEAL_COMMENT);
   long deal_type=HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
   double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
   double MinLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   double MaxLot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   ulong stoplevel=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

   if(deal_type==ORDER_TYPE_BUY)
     {
      if(StringFind(coment,"sl")>=0)
        {
         request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
         request.price=NormalizeDouble(Bid,_Digits);
         request.type = ORDER_TYPE_SELL;
         if(SL<=0 || TP<=0)return;
         if(SL>=stoplevel) request.sl=NormalizeDouble(Ask+(SL*_Point),_Digits);
         if(SL<stoplevel) request.sl=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
         if(TP>=stoplevel) request.tp=NormalizeDouble(Bid -(TP*_Point),_Digits);
         if(TP<stoplevel) request.tp=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
         OrderCalcMargin(request.type,_Symbol,request.volume,Bid,margin);
         if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
        }
      if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
     }
   if(deal_type==ORDER_TYPE_SELL)
     {
      if(StringFind(coment,"sl")>=0)
        {
         request.volume=NormalizeDouble(volume*Klot,DigitsVolume());
         request.price=NormalizeDouble(Ask,_Digits);
         request.type = ORDER_TYPE_BUY;
         if(SL<=0 || TP<=0)return;
         if(SL>=stoplevel) request.sl=NormalizeDouble(Bid -(SL*_Point),_Digits);
         if(SL<stoplevel) request.sl=NormalizeDouble(Bid -(stoplevel*_Point),_Digits);
         if(TP>=stoplevel) request.tp=NormalizeDouble(Ask+(TP*_Point),_Digits);
         if(TP<stoplevel) request.tp=NormalizeDouble(Ask+(stoplevel*_Point),_Digits);
         OrderCalcMargin(request.type,_Symbol,request.volume,Ask,margin);
         if(AccountInfoDouble(ACCOUNT_FREEMARGIN)-margin<0)return;
        }
      if(StringFind(coment,"tp")>=0){flagNewSeries=true;return;}
     }

   if(request.volume<MinLot)request.volume=MinLot;
   if(request.volume>MaxLot)request.volume=MaxLot;
   request.volume=NormalizeDouble(request.volume,DigitsVolume());

   request.action       = TRADE_ACTION_DEAL;
   request.magic        = Magic;
   request.symbol       = _Symbol;
   request.deviation    = Slip;
   request.type_filling = ORDER_FILLING_AON;
   request.comment      = CommentOrder;

   OrderSend(request,result);

   switch(result.retcode)
     {
      case 10008: {Print("Ордер размещен");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
      case 10009: {Print("Заявка выполнена");PositionSelect(Symbol());ID=PositionGetInteger(POSITION_IDENTIFIER);}break;
      case 10004: {Print("Реквота");}break;
      case 10006: {Print("Запрос отвергнут");}break;
      case 10007: {Print("Запрос отменен трейдером");res=false;}break;

      case 10010: {Print("Заявка выполнена частично");res=false;}break;
      case 10011: {Print("Ошибка обработки запроса");res=false;}break;
      case 10012: {Print("Запрос отменен по истечению времени");}break;
      case 10013: {Print("Неправильный запрос");res=false;}break;
      case 10014: {Print("Неправильный объем в запросе");res=false;}break;
      case 10015: {Print("Неправильная цена в запросе");res=false;}break;
      case 10016: {Print("Неправильные стопы в запросе");res=false;}break;
      case 10017: {Print("Торговля запрещена");res=false;}break;
      case 10018: {Print("Рынок закрыт");}break;
      case 10019: {Print("Нет достаточных денежных средств для выполнения запроса");res=false;}break;
      case 10020: {Print("Цены изменились");}break;
      case 10021: {Print("Отсутствуют котировки для обработки запроса");}break;
      case 10022: {Print("Неверная дата истечения ордера в запросе");res=false;}break;
      case 10023: {Print("Состояние ордера изменилось");}break;
      case 10024: {Print("Слишком частые запросы");res=false;}break;
      case 10025: {Print("В запросе нет изменений");res=false;}break;
      case 10026: {Print("Автотрейдинг запрещен сервером");res=false;}break;
      case 10027: {Print("Автотрейдинг запрещен клиентским терминалом");res=false;}break;
      case 10028: {Print("Запрос заблокирован для обработки");res=false;}break;
      case 10029: {Print("Ордер или позиция заморожены");res=false;}break;
      case 10030: {Print("Указан неподдерживаемый тип исполнения ордера по остатку");res=false;}break;
      case 10031: {Print("Нет соединения с торговым сервером");}break;
      case 10032: {Print("Операция разрешена только для реальных счетов");res=false;}break;
      case 10033: {Print("Достигнут лимит на количество отложенных ордеров");res=false;}break;
      case 10034: {Print("Достигнут лимит на объем ордеров и позиций для данного символа");res=false;}break;
      default:    Print("Ошибка № - ",result.retcode);
     }
  }
 

A EA foi optimizada no intervalo AB. Acima é uma corrida com estes parâmetros no intervalo AD. Não compreendo o que acontece no ponto C.

Não consigo compreender que o Expert Advisor não seja optimizado praticamente em intervalos de CD. Talvez haja uma mudança em algumas regras comerciais depois 25.10.2010 (ponto C) ou algo mais?

 
sultanm:

A EA foi optimizada no intervalo AB. Acima é uma corrida com estes parâmetros no intervalo AD. Não compreendo o que acontece no ponto C.

Embora o Expert Advisor não esteja praticamente optimizado no intervalo do CD. Talvez haja uma mudança em algumas das regras comerciais após 25.10.2010 (ponto C) ou algo mais?

Qual é a dimensão média do lucro comercial do Expert Advisor? Algo me diz que é menos de 10 pips.

O problema está provavelmente nos dados históricos - ou é mais penteado (filtrado), ou apenas mais correcto (por exemplo, contém os spreads correctos).

O que é o servidor?