Utilisez vous les classes natives ? Ctrade, Cposition etc - page 2

 
C'est comme cette méthode

//+------------------------------------------------------------------+
//| Clear structures m_request,m_result and m_check_result           |
//+------------------------------------------------------------------+
void CTrade::ClearStructures(void) {
  ZeroMemory(m_request);
  ZeroMemory(m_result);
  ZeroMemory(m_check_result);
}
Passer son temps à effacer tout 
m_request

pour après refaire de partout dans le code de l'assignation des champs magic et symbol....

 
Après, il faut dire une chose : ces méthodes fonctionnent et, comme pour tout, il existe mille façons de faire, aucune n'étant ni bonne ni mauvaise.
L'essentiel pour moi est que le résultat soit là.
Ensuite, il ne s'agit pas de réinventer la roue, le but de nos projets étant d'utiliser des bibliothèques existantes afin d'atteindre nos objectifs.
Si une bibliothèque ne peut pas répondre à nos besoins, c'est là que nous développons la nôtre avec les spécificités nécessaires.
Après tout, chacun fait son choix : si l'on veut recoder tout soi-même pour rester "maître" de son projet, c'est possible.
C'est purement un choix.
 
Anthony De Barros #:
Après, il faut dire une chose : ces méthodes fonctionnent et, comme pour tout, il existe mille façons de faire, aucune n'étant ni bonne ni mauvaise.
L'essentiel pour moi est que le résultat soit là.
Ensuite, il ne s'agit pas de réinventer la roue, le but de nos projets étant d'utiliser des bibliothèques existantes afin d'atteindre nos objectifs.
Si une bibliothèque ne peut pas répondre à nos besoins, c'est là que nous développons la nôtre avec les spécificités nécessaires.
Après tout, chacun fait son choix : si l'on veut recoder tout soi-même pour rester "maître" de son projet, c'est possible.
C'est purement un choix.

Ce n'est pas faux.
Elles ont, pour moi, le mérite d'exister et de découvrir certains méandres de sujet qui ne sont pas documenté.
Ca peut donc être une très bonne base.

Je suis d'accord, il y a 1.000 moyens de faire la même chose.
Moi ce que je trouve très important c'est de ne jamais oublier qu'un EA et un indicateur (hors sujet) va gérer du fric !!!!

Et pour moi le niveau de qualité du code des classes natives n'est pas assez élevé, c'est tout.

Si le coeur m'en dis, je continuerais cette file, quand je tombe sur des sujets qui pour moi son rédhibitoire

Bonne Pâques 

 
D'ailleurs il suffit de voir que tous les sujets du passage d'ordres, stop invalid, trade invalid,  pour comprendre que de nombreux sujets ne sont pas pris en compte par les méthodes.
 
Avez vous vu les membres protected des classes ?

class CDealInfo : public CObject

 {

protected:

ulong   m_ticket;   // ticket of history order



class CHistoryOrderInfo : public CObject

 {

protected:

ulong   m_ticket;   // ticket of history order



class COrderInfo : public CObject

 {

protected:

ulong   m_ticket;

ENUM_ORDER_TYPEm_type;

ENUM_ORDER_STATE m_state;

datetime   m_expiration;

double   m_volume_curr;

double   m_price_open;

double   m_stop_loss;

double   m_take_profit;



class CPositionInfo : public CObject

 {

protected:

ENUM_POSITION_TYPE m_type;

double   m_volume;

double   m_price;

double   m_stop_loss;

double   m_take_profit;



class CSymbolInfo : public CObject

 {

protected:

string   m_name;     // symbol name

MqlTick  m_tick;     // structure of tick;

double   m_point;      // symbol point

double   m_tick_value;    // symbol tick value

double   m_tick_value_profit;   // symbol tick value profit

double   m_tick_value_loss;   // symbol tick value loss

double   m_tick_size;     // symbol tick size

double   m_contract_size;    // symbol contract size

double   m_lots_min;    // symbol lots min

double   m_lots_max;    // symbol lots max

double   m_lots_step;     // symbol lots step

double   m_lots_limit;    // symbol lots limit

double   m_swap_long;     // symbol swap long

double   m_swap_short;    // symbol swap short

int   m_digits;     // symbol digits

int   m_order_mode;    // symbol valid orders

ENUM_SYMBOL_TRADE_EXECUTION m_trade_execution; // symbol trade execution

ENUM_SYMBOL_CALC_MODE m_trade_calcmode;  // symbol trade calcmode

ENUM_SYMBOL_TRADE_MODE m_trade_mode;   // symbol trade mode

ENUM_SYMBOL_SWAP_MODE m_swap_mode;    // symbol swap mode

ENUM_DAY_OF_WEEK m_swap3;      // symbol swap3

double   m_margin_initial;   // symbol margin initial

double   m_margin_maintenance;  // symbol margin maintenance

bool    m_margin_hedged_use_leg;  // calculate hedged margin using larger leg

double   m_margin_hedged;    // symbol margin hedged

int   m_trade_time_flags;  // symbol trade time flags

int   m_trade_fill_flags;  // symbol trade fill flags