Fehler, Irrtümer, Fragen - Seite 259

 

Moderatoren, eine Frage an Sie.

Ich kann keine Anfrage an servicedesk senden.

Und die Schaltfläche "Schließen" funktioniert nicht.

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

Moderatoren, eine Frage an Sie.

Ich kann keine Anfrage an servicedesk senden.

Und die Schaltfläche "Schließen" funktioniert nicht.

Bitte versuchen Sie es erneut. Servicedesk ist Teil eines unternehmensinternen Systems, das kürzlich neu gestartet wurde.
 
Können Sie mir sagen, wie ich feststellen kann, ob ein Handel mit einem Stop-Loss geschlossen wurde?
 
Ich würde gerne wissen, ob es eine Alternative zu dem Endlosschleifen-Skript in 5 gibt, denn ein solches Skript ist sehr launisch, ich möchte, dass es weiterarbeitet, wenn ich das Terminal neu öffne oder den Zeitrahmen ändere?
 
Olegts:
Ich würde gerne wissen, ob es eine Alternative zu dem Endlosschleifen-Skript in 5 gibt, denn ein solches Skript ist sehr launisch, ich möchte, dass es weiterarbeitet, wenn ich das Terminal wieder öffne oder den Zeitrahmen ändere?

Wenn Sie mit der Mindestfrequenz von 1 Sekunde zufrieden sind, dann OnTimer, ansonsten

Solange es keine Mikrosekunden-Operation im OnTimer gibt.

 
möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 213 4
möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 481 4
möglicher Datenverlust aufgrund von Typkonvertierung ChartObject.mqh 867 17
möglicher Datenverlust aufgrund von Typkonvertierung ChartObjectsTxtControls.mqh 519 4

Bild 375 - vornings erschien in Standardbibliotheken. Vielleicht gibt es noch weitere, ich habe sie noch nicht überprüft.

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

Wenn Sie mit einer Mindestfrequenz von 1s zufrieden sind, dann OnTimer, ansonsten

Bis OnTimer gibt es keinen Mikrosekundenbetrieb.

Danke, ein kürzeres Intervall ist erforderlich, also auf die altmodische Art :)
 
nanaos:
Könnten Sie mir bitte sagen, wie ich feststellen kann, ob ein Handel durch einen Stop-Loss geschlossen wurde?

Im MT5 ist es nicht der Handel, der mit dem Stop-Loss schließt, sondern die Position. Im Moment können Sie das nur durch den Kommentar des Handels herausfinden, der die Position mit dem Stop-Loss geschlossen hat. Hier ist ein Beispielcode.

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

Der EA wurde für das Intervall AB optimiert. Oben sehen Sie einen Lauf mit diesen Parametern für das Intervall AD. Ich verstehe nicht, was bei Punkt C passiert.

Ich kann nicht verstehen, dass der Expert Advisor praktisch nicht auf CD-Intervall optimiert ist. Vielleicht gibt es eine Änderung einiger Handelsregeln nach 25.10.2010 (Punkt C) oder etwas anderes?

 
sultanm:

Der EA wurde für das Intervall AB optimiert. Oben sehen Sie einen Lauf mit diesen Parametern für das Intervall AD. Ich verstehe nicht, was bei Punkt C passiert.

Während der Expert Advisor praktisch nicht auf CD-Intervalle optimiert ist. Vielleicht gibt es eine Änderung einiger Handelsregeln nach 25.10.2010 (Punkt C) oder etwas anderes?

Wie hoch ist der durchschnittliche Gewinn des Expert Advisors? Irgendetwas sagt mir, dass es weniger als 10 Pips sind.

Das Problem liegt wahrscheinlich in den historischen Daten - sie sind entweder stärker gekämmt (gefiltert) oder einfach korrekter (z. B. enthalten sie die richtigen Spreads).

Was ist der Server?