Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 281

 
Integer:

Inclure n'est pas une importation.

C'est compréhensible. Je suis en train d'importer des bibliothèques. Et l'inline est juste pour insérer un morceau de code à un endroit quelconque. Il permet de gagner de la place sur le tableau.

Integer:

Nous devrions essayer d'appeler une fonction à partir d'un fichier qui ne semble pas être connecté. Ce qui est écrit dans les journaux n'est peut-être pas nécessaire, il ne faut pas y prêter attention.

J'ai chargé ces bibliothèques dans un autre scoop, tout fonctionne bien. Je veux dire que les fonctions de ces bibliothèques fonctionnent. Mais il y a un point. L'autre scoop, j'ai chargé ces bibliothèques directement dans le scoop. Et dans owl, où maintenant n'est pas une sorte de bug arose ces bibliothèques à l'intérieur 1 des bibliothèques utilisées. Comme ça :

En sovok donc dans le chapeau :

#property copyright "hoz"
#property link      ""

#include <hoz_Base@Include.mqh>
#include <hoz_Base@ListOfFunc.mqh>
#include <hoz_MakeListOfInstruments@Include.mqh>
#include <hoz_MakeListOfInstruments@ListOfFunc.mqh>

extern string ___H1 = " ________ Параметры общие _________ ";

extern string ___H3 = " _______ Параметры фильтров _______ ";

extern string ___H4 = " __ Параметры торговых операций ___ ";
extern double  i_Lot = 0.1,
               i_KLot = 2,
               i_SL = 0,
// ДРУГИЕ ВНЕШНИЕ ПАРАМЕТРЫ ЭКСПЕРТА

Ainsi #include <hoz_Base@Include.mqh> est une inclusion de la bibliothèque de base (déclarations de variables), et #include <hoz_Base@ListOfFunc.mqh> est déjà une inclusion dans laquelle sont prescrites les fonctions importées de cette bibliothèque de ce format :

#import "hoz_Base@Library.ex4"
    void fInitBase (string fs_SymbolList, string fs_MagicList, string fs_Delimiter = ",");
    double ND (double v);
    string DToS (double v);
    double SToD (string v);
    int SToI (string v);
    datetime SToT (string v);
    double NDByMinLotPres(double v);
// ДРУГИЕ ФУНКЦИИ
    void fShiftIndex (double& ar_MAS[], bool fb_Conditions = false);
    void fSort_InDecreasingSequance (int& fia_INDEX[], double fda_Value[]);
    void fCreat_ArrayGV (string& fsa_Base[], string fsa_Add[]);
#import

La bibliothèque hoz_Base@Library.ex4 elle-même nécessite 3 bibliothèques tierces pour fonctionner. Ce sont ceux qui sont importés au début de la bibliothèque de base elle-même :

//+---------------------------------------------------------------------------------------------------------------------------------------+
//|                                                                                                                  hoz_Base@Library.mq4 |
//|                                                                                                                                   hoz |
//|                                                                                                                                       |
//+---------------------------------------------------------------------------------------------------------------------------------------+

#property copyright "hoz"
#property link      ""
#property library

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Библиотека базовых функций.                                                                                                           |
//+---------------------------------------------------------------------------------------------------------------------------------------+
// ================================================== Включения и импорт внешних модулей =================================================+
#include <hoz_Base@Include.mqh>
//+---
#import "hoz_LoggingToAnyWere@library.ex4"
    void fWrite_Log (string fs_Txt);
    void fPrint (string fs_Text);
#import
//+---
#import "hoz_HandlingWithErrorS@library.ex4"
    bool fErrorHandling (int fi_Error, bool& fb_InvalidSTOP);
    void fReConnect();
    string fErrorToString (int fi_Error);
    string fErrorDescription (int fi_Error);
#import
//+---
#import "hoz_ReturningSomeInfo@library.ex4"
    string fGet_NameOP (int fi_Type);
    string fGet_NameTF (int fi_TF = 0);
#import

Je comprends que s'il y avait un bogue dans l'une de ces bibliothèques que hoz_Base@Library.mq4 utilise , la bibliothèque de base ne serait pas chargée, et par conséquent aucune de ces bibliothèques ne serait chargée. En fait, à l'heure actuelle, même la première ligne de démarrage ne fonctionne pas. Comment puis-je rechercher la cause de cette situation ?
 

Bonjour à tous !

J'ai eu un pépin dans mon EA. Les erreurs 138 et 129 sortaient. Prix incorrects.

Question : Puisque l'EA n'est pas un pips, il a eu largement le temps d'ouvrir la transaction, surtout que le prix a clairement dépassé le niveau du signal et qu'il y est resté assez longtemps, même avec les corrections bid, ask.

Je l'ai fait fonctionner dans le testeur, le marché s'est ouvert. Comment traiter ce problème et pourquoi il se produit (tout allait bien avant, l'EA ouvrait des marchés) ?

J'ai l'impression qu'après le traitement du signal, l'EA s'est figé et n'a pas accepté d'autres signaux ou peut-être aurais-je dû recharger Metatrader après la construction récente ?

 

Bonjour !

Comment (hors de ma tête) peindre sous la ligne principale du graphique tout le bas avec une couleur et le haut avec une autre, si cela ne vous dérange pas, peut-être que quelqu'un a du travail à faire ?

 
_new-rena:

Bonjour !

Comment (hors de ma tête) peindre sous la ligne principale du graphique tout le bas avec une couleur et le haut avec une autre, si cela ne vous dérange pas, peut-être que quelqu'un a du travail à faire ?


Sur une capture d'écran, montrez ce que vous voulez
 
ALXIMIKS:

sur une capture d'écran, montrez ce que vous voulez

il y a un graphique de prix - une ligne. En dessous, un ton de bleu, au-dessus, du blanc (quelque chose de similaire - principe).

 
ALXIMIKS:

sur une capture d'écran vous montrer ce que vous voulez

D'accord, ne t'inquiète pas, je l'ai déjà fait... Attendez ici...

 
Forexman77:

Bonjour à tous !

J'ai eu un pépin dans mon EA. Les erreurs 138 et 129 sortaient. Prix incorrects.

Question : Puisque l'EA n'est pas un pips, il a eu largement le temps d'ouvrir la transaction, surtout que le prix a clairement dépassé le niveau du signal et qu'il y est resté assez longtemps, même avec les corrections bid, ask.

Je l'ai fait fonctionner dans le testeur, le marché s'est ouvert. Comment traiter ce problème et pourquoi il se produit (tout allait bien avant, l'EA ouvrait des transactions) ?

J'ai le sentiment qu'après le traitement du signal, l'EA s'est figé et n'a pas réagi à d'autres signaux ou peut-être que le Metatrader doit être redémarré après la dernière version ?

Utilisez les prix via MarketInfo(), pas les prix Ask et Bid. Par exemple, comme ceci :

double pa=MarketInfo(Symbol(),MODE_ASK);
double pb=MarketInfo(Symbol(),MODE_BID);

Dans vos ordres de négociation, n'utilisez pas Ask, mais pa, ni Bid, mais pb.

Vous serez heureux

 
artmedia70:

Utilisez MarketInfo() au lieu des prix Ask et Bid. Par exemple, comme ceci :

Et dans les ordres de négociation, substituez pa, pas Ask, et pb, pas Bid.

Et vous serez heureux


Et quelle est la différence entre Ask et MarketInfo(Symbol(),MODE_ASK) ?
 
evillive:
Et quelle est la différence entre Ask et MarketInfo(Symbol(),MODE_ASK) ?


Ask est une variable, stockée sur l'ordinateur, elle change lors du prochain calcul de la fonction de démarrage ou lorsqu'elle est rafraîchie.

MarketInfo(Symbol(),MODE_ASK) - cette valeur provient-elle du serveur ou de l'Ask ?

 
evillive:
Et quelle est la différence entre Ask et MarketInfo(Symbol(),MODE_ASK) ?
Cette fonction prend les données de prix les plus récentes. C'est-à-dire que lorsqu'on l'utilise dans des fonctions d'ouverture de positions et de placement d'ordres, il n'est pas nécessaire d'utiliser RefreshRates(). Mais après avoir reçu certaines erreurs du serveur, qui nécessitent une attente ou une mise à jour des prix, il est nécessaire de rafraîchir l'environnement commercial à l'aide de RefreshRates() et d'envoyer une seconde requête.
Raison: