Erreurs, bugs, questions - page 855

 
gdtt:

Cette construction :

Je pense que cela devrait être interdit, car il s'agit d'une référence directe à un membre privé d'un autre objet, bien que du même type de données.

Pensez-vous que cela devrait être interdit ? Ne l'utilisez pas.

Tous les membres de la classe déclarés après le spécificateur d'accès de l'élément private : (et avant le spécificateur d'accès suivant) ne sont disponibles que pour les fonctions membres de cette classe.

La documentation parle explicitement d'accès et rien sur les objets (seulement sur les classes).

D'ailleurs, les constructeurs de copies sont basés exactement sur cet effet.

 
stringo:

Pensez-vous que cela devrait être interdit ? Ne l'utilisez pas.

La documentation parle explicitement d'accès et rien sur les objets (seulement sur les classes).

D'ailleurs, les constructeurs de copies sont basés exactement sur cet effet.

ok, je l'ai, merci
 
Alex5757000 Il s'avère que la fonction OrderCalcMargin() précédemment appelée pour un ordre en attente a retourné 0.0 ?

Eh bien oui, à en juger par la description de la situation, la fonctionOrderCalcMargin() pour les ordres en attente renvoie "0.0". Cela indique qu'aucune marge n'est requise pour les ordres en attente.

Si vous avez besoin d'estimer la marge nécessaire au déclenchement de l'ordre en attente, utilisez l'un des ordres au marché comme premier paramètre.

[Supprimé]  

Donc, l'erreur "EX5 loading failed". après avoir mis les fonctions dans la bibliothèque.

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

Qu'est-ce qu'il y a ?

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

J'ai décidé de vérifier si le problème se situe au niveau des fonctions elles-mêmes. Même si le corps de toutes les fonctions de la bibliothèque consiste uniquement en "return(1) ;", il y a toujours une erreur.

importation comme dans l'exemple d'aide

#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:

Donc, l'erreur "EX5 loading failed". après avoir mis les fonctions dans la bibliothèque

Les fonctions sont-elles déclarées comme exportables dans la bibliothèque ?
[Supprimé]  
alexvd:
Les fonctions sont-elles déclarées comme exportables dans la bibliothèque ?
déclaré, mais j'ai déjà résolu le problème - je viens de redémarrer l'ordinateur xD Je suppose qu'un mois de travail ininterrompu s'est fait sentir... et les problèmes ont déjà commencé à apparaître à plusieurs endroits
 
Dites-moi, voici la structure de ma demande, que lui manque-t-il fondamentalement ?
  
 
 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) Erreur 4756 ERR_TRADE_SEND_FAILED
4756
Impossible d'envoyer une demande d'échange

Je suis désolé, pourquoi ne puis-je pas me passer d'autant d'informations que possible, par exemple, si j'ouvre une position, et non un ordre, alors je n'ai pas besoin de préciser le prix ? S'il n'y a pas de stop-profits, alors pourquoi pas ? Peut-être, je veux les régler plus tard par un robot. Quel est le domaine qui fait si cruellement défaut dans la demande commerciale ? Ou qu'est-ce que c'est ?

Est-il également possible de ne pas le préciser ? type_filling. Cela explique quelque chose, comme le fait que l'ordre peut ne pas être exécuté par son volume entier... Comment cela ? Je ne comprends pas vraiment. Ok, .

Ah, je suppose que c'était critique là request.symbol=_Symbol ; je pensais que la livraison de la position exacte sur le graphique où le robot ira généralement de lui-même...

[Supprimé]  
Pouvez-vous me dire comment définir la corrélation LR comme paramètre de résultat d'optimisation (Custom max) ?
 
Vacuum:
Pouvez-vous me dire comment définir la corrélation LR comme paramètre du résultat d'optimisation (Custom max) ?

Tout d'abord, la corrélation LR doit être calculée. Ceci est fait dans cette bibliothèque https://www.mql5.com/ru/code/1081

Et ensuite renvoyer cette valeur via OnTester, comme ici https://www.mql5.com/ru/articles/286.

CTradeStatistics
CTradeStatistics
  • votes : 8
  • 2012.09.13
  • Andrey Voytenko
  • www.mql5.com
Класс для расчета показателей из перечисления ENUM_STATISTICS
 
Dimka-novitsek:
Dites-moi, voici la structure de ma demande, que lui manque-t-il fondamentalement ?

2012.10.10 19:22:29 (EURUSD,M1) Erreur 4756 ERR_TRADE_SEND_FAILED
4756
Impossible d'envoyer une demande d'échange

Je suis désolé, pourquoi ne puis-je pas me passer d'autant d'informations que possible, par exemple, si j'ouvre une position, et non un ordre, alors je n'ai pas besoin de préciser le prix ? S'il n'y a pas de stop-profits, alors pourquoi pas ? Peut-être, je veux les régler plus tard par un robot. Quel est le domaine qui fait si cruellement défaut dans la demande commerciale ? Ou qu'est-ce que c'est ?

Est-il également possible de ne pas le préciser ? type_filling. Cela explique quelque chose, comme le fait que l'ordre peut ne pas être exécuté par son volume entier... Comment cela ? Je ne comprends pas vraiment. Ok.

Ah, je suppose que c'était critique là request.symbol=_Symbol ; je pensais que la livraison de la position sur le graphique où le robot serait en général...

Je suggère d'utiliser la bibliothèque standard :

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

  }