Fehler, Irrtümer, Fragen - Seite 855

 
gdtt:

Dieses Konstrukt:

Ich denke, es sollte verboten werden, da es sich um einen direkten Verweis auf ein privates Mitglied eines anderen Objekts handelt, wenn auch vom gleichen Datentyp.

Sollte sie Ihrer Meinung nach verboten werden? Benutzen Sie es nicht.

Alle Klassenmitglieder, die nach dem Zugriffsspezifizierer des Elements private: (und vor dem nächsten Zugriffsspezifizierer)deklariert werden , sind nur für Mitgliedsfunktionen dieser Klasse verfügbar.

In der Dokumentation steht ausdrücklich etwas über den Zugriff und nichts über Objekte (nur über Klassen).

Übrigens beruhen Kopierkonstruktoren auf genau diesem Effekt.

 
stringo:

Sollte sie Ihrer Meinung nach verboten werden? Benutzen Sie es nicht.

In der Dokumentation steht ausdrücklich etwas über den Zugriff und nichts über Objekte (nur über Klassen).

Übrigens beruhen Kopierkonstruktoren auf genau diesem Effekt.

Ok, ich hab's, danke
 
Alex5757000 Es stellt sich heraus, dass die zuvor aufgerufene Funktion OrderCalcMargin() für eine schwebende Order 0,0? zurückgegeben hat.

Nun ja, nach der Beschreibung der Situation zu urteilen, gibt die FunktionOrderCalcMargin() für schwebende Aufträge "0,0" zurück. Dies bedeutet, dass für schwebende Aufträge keine Marge erforderlich ist.

Wenn Sie abschätzen müssen, wie viel Marge benötigt wird, wenn der schwebende Auftrag ausgelöst wird, dann verwenden Sie einen der Marktaufträge als ersten Parameter.

 

Also, "EX5 Laden fehlgeschlagen" Fehler nachdem ich die Funktionen in die Bibliothek aufgenommen habe.

#import "GetPriceBy.ex5"
double GetHighByTime(datetime Time);
double GetLowByTime(datetime Time);
#import

Was ist los?

------------------------------

Ich beschloss zu prüfen, ob das Problem in den Funktionen selbst liegt. Selbst wenn die Körper aller Bibliotheksfunktionen nur aus "return(1);" bestehen, tritt immer noch ein Fehler auf

importieren wie im Hilfebeispiel

#import "user32.dll"
int    MessageBoxW(uint hWnd,string lpText,string lpCaption,uint uType);
#import "stdlib.ex5"
string ErrorDescription(int error_code);
int    RGB(int red_value,int green_value,int blue_value);
bool   CompareDoubles(double number1,double number2);
string DoubleToStrMorePrecision(double number,int precision);
string IntegerToHexString(int integer_number);
#import "ExpertSample.dll"
int    GetIntValue(int);
double GetDoubleValue(double);
string GetStringValue(string);
double GetArrayItemValue(double &arr[],int,int);
bool   SetArrayItemValue(double &arr[],int,int,double);
double GetRatesItemValue(double &rates[][6],int,int,int);
#import
 
FiftyStars:

Also, "EX5 Laden fehlgeschlagen" Fehler nachdem ich die Funktionen in die Bibliothek aufgenommen habe

Sind die Funktionen in der Bibliothek als exportierbar deklariert?
 
alexvd:
Sind die Funktionen in der Bibliothek als exportierbar deklariert?
erklärt, aber ich habe das Problem bereits gelöst - ich habe gerade den Computer neu gestartet xD Ich schätze, ein Monat ununterbrochener Arbeit hat sich bemerkbar gemacht... und die Probleme haben bereits begonnen, an vielen Stellen zu erscheinen
 
Sagen Sie mir, hier ist meine Antragsstruktur, was fehlt ihr im Grunde noch?
  
 
 MqlTick last_tick;SymbolInfoTick(Symbol(),last_tick);
 
   MqlTradeRequest request={0};
      MqlTradeResult result={0};
      
 
  {
    request.     action=TRADE_ACTION_DEAL;           // Тип выполняемого действия
    request.     price=last_tick.bid;
    request.                        volume=1;           // Запрашиваемый объем сделки в лотах     
    request.     type=ORDER_TYPE_SELL;     // Тип ордера
    request.     type_filling =ORDER_FILLING_RETURN;          
    
   }
   
  OrderSend(request,result); 
  
  
  int Error=GetLastError(); ResetLastError();
        printf("Error %i ",Error);
      
        

2012.10.10 19:22:29 (EURUSD,M1) Fehler 4756 ERR_TRADE_SEND_FAILED
4756
Handelsanfrage konnte nicht gesendet werden

Entschuldigung, warum kann ich nicht auf so viele Informationen wie möglich verzichten, z.B. wenn ich eine Position eröffne, nicht einen Auftrag, dann muss ich den Preis nicht angeben? Wenn es keine Stop-Profits gibt, warum dann nicht? Vielleicht möchte ich sie später durch einen Roboter einstellen. Welcher Bereich wird in der Anfrage so kritisch vermisst? Oder was ist es?

Ist es auch möglich, sie nicht anzugeben? type_filling. Es erklärt etwas, wie z.B. dass der Auftrag möglicherweise nicht mit seinem gesamten Volumen ausgeführt wird... Wie das? Ich verstehe das nicht wirklich. Okay, .

Ah, ich denke, es war kritisch dort request.symbol=_Symbol; Ich dachte, dass die Lieferung der Position genau auf dem Diagramm, wo der Roboter in der Regel selbstverständlich gehen wird...

 
Können Sie mir sagen, wie ich die LR-Korrelation als Parameter für das Optimierungsergebnis festlegen kann (Custom max)?
 
Vacuum:
Können Sie mir sagen, wie ich die LR-Korrelation als einen Parameter des Optimierungsergebnisses (Custom max) festlegen kann?

Zunächst einmal muss die LR-Korrelation berechnet werden. Dies geschieht in dieser Bibliothek https://www.mql5.com/ru/code/1081

Und dann diesen Wert über OnTester zurückgeben, wie hier https://www.mql5.com/ru/articles/286

CTradeStatistics
CTradeStatistics
  • Stimmen: 8
  • 2012.09.13
  • Andrey Voytenko
  • www.mql5.com
Класс для расчета показателей из перечисления ENUM_STATISTICS
 
Dimka-novitsek:
Sagen Sie mir, hier ist meine Antragsstruktur, was fehlt ihr im Grunde noch?

2012.10.10 19:22:29 (EURUSD,M1) Fehler 4756 ERR_TRADE_SEND_FAILED
4756
Handelsanfrage konnte nicht gesendet werden

Entschuldigung, warum kann ich nicht auf so viele Informationen wie möglich verzichten, z.B. wenn ich eine Position eröffne, nicht einen Auftrag, dann muss ich den Preis nicht angeben? Wenn es keine Stop-Profits gibt, warum dann nicht? Vielleicht möchte ich sie später durch einen Roboter einstellen. Welcher Bereich wird in der Anfrage so kritisch vermisst? Oder was ist es?

Ist es auch möglich, sie nicht anzugeben? type_filling. Es erklärt etwas, wie z.B. dass der Auftrag möglicherweise nicht mit seinem gesamten Volumen ausgeführt wird... Wie das? Ich verstehe das nicht wirklich. Okay, .

Ah, ich denke, es war kritisch dort request.symbol=_Symbol; Ich dachte, dass die Lieferung der Position auf dem Diagramm, wo der Roboter im Allgemeinen sein würde...

Ich empfehle die Verwendung der Standardbibliothek:

#include <Trade\Trade.mqh>
CTrade            trade;
MqlTick           last_tick;
double Lot=0.01;
string main_comment="";
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- тип позиции
   bool Type;
//----------------------------------+
//--- если покупаем
   Type=true;                         
//--- если продаём     
   Type=false;
//----------------------------------+
   if(Type)
     {
      SymbolInfoTick(_Symbol,last_tick);
      double price=last_tick.ask;
      trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,NormalizeDouble(Lot,2),price,0,0,main_comment);
     }
   else
     {
      SymbolInfoTick(_Symbol,last_tick);
      double price=last_tick.bid;
      trade.PositionOpen(_Symbol,ORDER_TYPE_SELL,NormalizeDouble(Lot,2),price,0,0,main_comment);
     }

  }