Questions des débutants MQL5 MT5 MetaTrader 5 - page 830

 
Artyom Trishkin:

Dans ce cas, ce n'est pas "mieux", c'est exactement ce dont vous avez besoin : il s'agit d'une classe enveloppante pour les fonctions commerciales standard. Il ne permet pas de stocker plusieurs assistants. Il doit donc définir un magik à chaque fois avant et quand il doit ouvrir une position avec un nouveau magik.

En général, la séquence est la suivante :

  • les positions doivent être ouvertes avec magic 1 - nous définissons magic 1 et les positions suivantes auront magic 1,
  • il est nécessaire d'ouvrir des positions avec un Magicien 2 - nous mettons en place le Magicien 2 et toutes les positions suivantes auront un Magicien 2,
  • il est nécessaire d'ouvrir des positions avec la magie 3 - nous allons mettre en place la magie 3 et chaque prochaine position aura la magie 3,

etc...

Si je le dis comme ça, c'est parce que certaines personnes peuvent avoir une opinion différente et que cela fonctionne aussi.

 
Artyom Trishkin:

Dans ce cas, ce n'est pas "mieux", c'est exactement ce dont vous avez besoin : il s'agit d'une classe enveloppante pour les fonctions commerciales standard. Il ne permet pas de stocker plusieurs assistants. Par conséquent, il doit définir un magik à chaque fois avant et lorsqu'il doit ouvrir une position avec un nouveau magik.

En général, la séquence est la suivante :

  • les positions doivent être ouvertes avec magic 1 - nous définissons magic 1 et les positions suivantes auront magic 1,
  • il est nécessaire d'ouvrir des positions avec un Magicien 2 - nous mettons en place le Magicien 2 et toutes les positions suivantes auront un Magicien 2,
  • il est nécessaire d'ouvrir des positions avec la magie 3 - nous allons mettre en place la magie 3 et chaque prochaine position aura la magie 3,

etc...

C'était comme ça :

if(BuyCount()>0)
        {
         Print("Уже есть позиция на покупку !!!");
         return; // не добавлять к открытой позиции на покупку
        }
         SL=NormalizeDouble(latest_price.ask - STP*_Point,_Digits);
         TP=NormalizeDouble(latest_price.ask + TKP*_Point,_Digits);
         m_trade.SetExpertMagicNumber(Magic);
         m_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");
         m_position.Select(_Symbol);
           {
            ulong myMagic=m_position.Magic();
            Print(" Открыта поза Бай с магиком № ",myMagic,", И спредом ",SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));
           }

m_trade.SetExpertMagicNumber(Magic) ; avant d'ouvrir une position ou aprèsm_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(inversement)_2.5.6.7 + 2") ;

 
Vladimir Karputov:

Comme il n'existe pas de méthodeGetExpertMagicNumber dans la classe CTrade, imprimez ce code après l'opération de transaction:

De cette façon, vous pouvez vérifier si les deux EAs ont des magies différentes.

Merci, c'est plus pratique. Je n'ai pas besoin de la classe CPositionInfo, je n'ai pas besoin de sélectionner la position. Cela fonctionne dans le testeur, mais vous devez attendre les développements sur le compte.

 

Quelle est la différence entre SymbolInfoSessionQuote etSymbolInfoSessionTrade ?
Ou, même chose, quelle est la différence entre une session de cotation et une session de négociation ?

Putain de merde
! Et que signifie session_index,// numéro de session
Avons-nous des sessions numérotées ? Quel principe est utilisé pour les numéroter, où est-il écrit ?

 

Veuillez me conseiller sur la façon d'utiliser la méthode void Ignore(long value) { m_ignore=value ; } de la classe standard CExpertSignal dans la classe Trailing personnalisée lors de la programmation en MQL5 ? Comment puis-je y accéder ?

J'ai une classe de signaux personnalisés qui me donne des méthodes pour ouvrir et fermer des positions. Mais dans Trailing, je voulais maintenir la position par une autre méthode. Si on écrit séparément les classes personnalisées MySignal et MyTrailing, une position est fermée par la condition qui s'est déclenchée en premier. Si la condition Trailing a été déclenchée plus tôt, tout va bien. Mais il arrive qu'un nouveau signal (de retournement) provienne de MySignal et que la position soit inversée, et j'ai besoin qu'il soit accompagné d'un Trailing après ouverture, sans fermeture et sans ouverture d'une nouvelle position. J'ai regardé les classes de base et j'ai l'impression que m_ignore de la classe de base des signaux est responsable de cela. Si on lui attribue la valeur 1 dans le filtre approprié, il semble fonctionner comme il se doit. J'ai ajouté filter0.Ignore(0) à la classe Expert Advisor dans OnInit. Mais je suis nouveau dans la POO et je ne comprends pas comment changer cette valeur dans la classe MyTrailing, qui n'est pas héritée de la classe CExpertSignal, mais qui est son "cousin" (disons filter0.Ignore(1) ). Veuillez me conseiller sur la manière de procéder.

En fait, question plus générale : comment faire passer des informations entre deux classes qui ne sont pas des descendantes ? Comment transférer des informations de la classe de suivi à la classe de signalisation ? Vous pouvez probablement créer une variable globale et communiquer par son intermédiaire. Mais cela semble assez pervers par rapport à la logique des membres protégés dans la POO.


 
User_mt5:

Quelle est la différence entre SymbolInfoSessionQuote etSymbolInfoSessionTrade ?
Ou, même chose, quelle est la différence entre une session de cotation et une session de négociation ?

Putain de merde
! Et que signifie session_index,// numéro de session
Avons-nous des sessions numérotées ? Par quel principe sont-ils numérotés, où est-ce écrit ?

En termes simples.

Session de cotation - la cotation est en cours (mais il peut y avoir une interdiction de négocier).

Session de négociation (dans le cadre d'une session de cotation ou coïncidant avec celle-ci) - vous pouvez négocier.

Index de la session - le numéro d'index de la session de 00:00:00-23:59:59 heure du serveur (s'il y a des interruptions, alors la session est supérieure à 1).

Voir la spécification de chaque symbole dans l'aperçu du marché.

 
Kirill Belousov:

En termes simples

Session de cotation - les cotations se poursuivent (mais il peut y avoir une interdiction de négocier).

Session de négociation (à l'intérieur ou coïncidant avec la session de cotation) - vous pouvez négocier.

Index de la session - le numéro d'index de la session de 00:00:00-23:59:59 heure du serveur (s'il y a des trous, la session est supérieure à 1).

Voir les spécifications de chaque symbole dans l'aperçu du marché.

Merci pour cette précision. Vous m'avez aidé.

 
Vladimir Karputov:

Les signaux centraux ne peuvent désormais être que gratuits.

Pourquoi ne puis-je pas modifier le nom dans mon profil ?

 
tsd Tsepkov:

Pourquoi ne pouvez-vous pas modifier le nom dans le profil ?

Je viens de vérifier : le nom du signal est parfaitement éditable.

 
Vladimir Karputov:

Je viens de vérifier : le nom du signal est parfaitement éditable.

Je veux dire le prénom, il est dit que vous devez le changer pour un vrai nom, mais ça ne marche pas.