Fehler, Irrtümer, Fragen - Seite 1794

 
Комбинатор:
Warum?

Es gibt Tangas (zwei Stück).

Die Entwickler könnten eine ähnlich funktionierende Lösung für MqlTradeResult entwickeln, wenn

struct MqlTradeResult
  {
   uint     retcode;          // Код результата операции
   ulong    deal;             // Тикет сделки, если она совершена
   ulong    order;            // Тикет ордера, если он выставлен
   double   volume;           // Объем сделки, подтверждённый брокером
   double   price;            // Цена в сделке, подтверждённая брокером
   double   bid;              // Текущая рыночная цена предложения (цены реквота)
   double   ask;              // Текущая рыночная цена спроса (цены реквота)
   string   comment;          // Комментарий брокера к операции (по умолчанию заполняется расшифровкой кода возврата торгового сервера)
   uint     request_id;       // Идентификатор запроса, устанавливается терминалом при отправке  
   uint     retcode_external; // Код ответа внешней торговой системы
  };

Die Feldzeichenfolge wird als letztes erstellt. Aber für MqlTradeRequest würde auch dies nicht helfen.

 
fxsaber:

Es gibt Tangas (zwei Stück).

Ja, daran habe ich nicht gedacht.
 

fxsaber:

Ergebnis

STRUCT::~STRUCT
STRUCT::~STRUCT
STRUCT::~STRUCT
Warum dreimal und nicht zweimal?
Fast immer wird ein Anruf unnötig sein ... Hier sind die Details https://www.mql5.com/ru/forum/1111/page1657#comment_2729876
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • www.mql5.com
Форум алго-трейдеров MQL5
 
A100:
Fast immer wird ein Anruf unnötig sein ... Hier sind die Details https://www.mql5.com/ru/forum/1111/page1657#comment_2729876
Es handelt sich also nicht um einen Fehler, sondern um eine Folge des C++-Compilerschlüssels, den die Entwickler verwenden?
 
безfxsaber:
D.h. es ist kein Fehler, sondern das Ergebnis eines C++-Compiler-Schlüssels, den die Entwickler verwenden?

Dies ist ein Standardverhalten, das in den allermeisten Fällen ohne Schaden optimiert werden kann und noch nicht optimiert ist

int i = 1 + 2; //стандартное поведение: вычислять i при выполнении
               //оптимизация: сразу присвоить 3
 
1530 - was ist das?
 
A100:

Dies ist ein Standardverhalten, das in den allermeisten Fällen ohne Schaden optimiert werden kann und noch nicht optimiert ist

int i = 1 + 2; //стандартное поведение: вычислять i при выполнении
               //оптимизация: сразу присвоить 3
Optimierung ist gut, danke. Aber wenn alles ehrlich ausgeführt wird, woher kommen dann die drei Schritte?
 
fxsaber:
Die Optimierung ist gut, danke. Aber wenn alles ehrlich ausgeführt wird, woher kommen dann die drei Schritte?

ServiceDesk benachrichtigen

struct S {
        S()  { Print( __FUNCTION__ ); }
        ~S() { Print( __FUNCTION__ ); }
};
S f()
{
        S s;
        return s;
}
void OnStart() //2 раза  
{
        f();
}

also 2 mal aufrufen (was hat sich geändert? - es gibt einen Konstruktor),

Ich habe angenommen, dass der Compiler in Ihrem Beispiel den Code wie folgt vervollständigt

void OnStart() //3 раза 
{
        S s = f(); //s при этом - не используется

}

 
A100:

Bericht an ServiceDesk

Hat geschrieben.

also 2 mal der Aufruf(was hat sich geändert? - es gibt einen Konstruktor),

Mysteriöse MMS...
 

Ist es notwendig, an SR zu schreiben, wenn einer der Server jedes Mal, wenn einePosition erfolgreich durch eine Marktordereröffnet wird, ein Null-Ergebnis erhält?

Ich bin mir nicht sicher, ob es sich um einen Fehler handelt, denn wahrscheinlich liegt es an der Art und Weise, wie der Server selbst eingerichtet ist. Außerdem kann man aus Result.order sowieso immer Result.deal erhalten.