오류, 버그, 질문 - 페이지 259

 

중재자. 당신을 위한 질문

서비스 데스크에 요청을 보낼 수 없습니다.

닫기 버튼이 작동하지 않습니다

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

중재자. 당신을 위한 질문

서비스 데스크에 요청을 보낼 수 없습니다.

닫기 버튼이 작동하지 않습니다

다시 시도하십시오. 서비스 데스크는 최근 재부팅된 회사 내부 시스템의 일부입니다.
 
거래가 손절매 완료되었는지 어떻게 알 수 있는지 알려주세요.
 
5에서 무한 루프가 있는 스크립트에 대한 대안이 있는지 알고 싶습니다. 그렇지 않으면 그러한 스크립트가 매우 변덕스럽습니다. 터미널이 다시 열리거나 변경될 때 계속 작동하고 싶습니까?
 
Olegts :
5에서 무한 루프가 있는 스크립트에 대한 대안이 있는지 알고 싶습니다. 그렇지 않으면 그러한 스크립트가 매우 변덕스럽습니다. 터미널을 다시 열거나 tf를 변경할 때 계속 작동하기를 원하십니까?

1초의 최소 주파수에 만족하면 OnTimer, 그렇지 않으면

OnTimer가 마이크로초로 작동하지 않는아니오 .

 
유형 변환으로 인한 데이터 손실 가능성 ChartObject.mqh 213 4
유형 변환으로 인한 데이터 손실 가능성 ChartObject.mqh 481 4
유형 변환으로 인한 데이터 손실 가능성 ChartObject.mqh 867 17
유형 변환으로 인한 데이터 손실 가능성 ChartObjectsTxtControls.mqh 519 4

빌드 375 - 표준 라이브러리에 경고가 나타났습니다. 아직 확인하지 않은 다른 곳이 있을 수 있습니다.

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

1초의 최소 주파수에 만족하면 OnTimer, 그렇지 않으면

OnTimer가 마이크로초로 작동하지 않는아니오 .

덕분에 더 작은 간격이 필요하므로 구식 방식으로 :)
 
nanaos :
거래가 손절매 완료되었는지 어떻게 알 수 있는지 알려주세요.

MT5에서는 손절매로 완료된 거래가 아니라 포지션이 현재 손절매로 포지션을 마감한 거래의 댓글로만 알 수 있습니다. 다음은 예제 코드입니다.

 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);
     }
  }
 

Expert Advisor는 AB 간격에 최적화되었습니다. 위는 AD 간격에서 이러한 매개변수를 사용하여 실행하고 있습니다. C 지점에서 무슨 일이 일어나고 있는지 이해하지 못합니다.

게다가 Expert Advisor는 실제로 CD 간격에 최적화되어 있지 않습니다. 2010년 10월 25일 (C 포인트) 이후에 거래 규칙에 변경 사항이 있습니까?

 
sultanm :

EA는 AB 간격에 최적화되었습니다. 위는 AD 간격에서 이러한 매개변수를 사용하여 실행하고 있습니다. C 지점에서 무슨 일이 일어나고 있는지 이해하지 못합니다.

게다가 Expert Advisor는 실제로 CD 간격에 최적화되어 있지 않습니다. 2010년 10월 25일 (C 포인트) 이후에 거래 규칙에 변경 사항이 있습니까?

고문의 평균 수익성 거래의 규모는 얼마입니까? 10점 미만이라는 말이 있습니다.

문제는 과거 데이터에 있을 가능성이 높습니다. 데이터가 더 많이 빗어지거나(필터링됨) 단순히 더 정확합니다(예: 올바른 스프레드가 포함됨).

어떤 서버?