Bonjour ! Pouvez-vous me dire comment passer un type de données enum aux méthodes de classe? Disons que je veux passer un délai. Je crée un enum dans l'en-tête d'un conseiller.
public:
Signal_Line();
~Signal_Line();
double Time_Frame(double &Trend_Line_Down[][], int Frame, int Down);
int Short_Proboy(double &Trend_Line_Down[][], string Name_Static, int Down, ENUM_TIMEFRAMES);
Et lorsque j'appelle une méthode depuis une EA, si je dois passer la troisième valeur de l'énumération - frame - PERIOD_M30, que dois-je écrire dans les questions de code ci-dessous ?
Trend_Line_Down[Timer_Down][1]=Signal.Short_Proboy(Trend_Line_Down, Name_Static, ???); // Флаг пробоя трендовой нулевой свечой
Kira27: Bonjour ! Pouvez-vous me dire comment passer un type de données d'énumération dans les méthodes de classe? Disons que je veux passer un délai. Je crée dans l'en-tête de l'EA de l'énumération Puis je déclare la méthode dans la classe. Et lorsque j'appelle une méthode depuis une EA, si je dois passer la troisième valeur de l'énumération - frame - PERIOD_M30, que dois-je écrire dans les questions de code ci-dessous ?
Question 1 : Pourquoi créer votre propre énumération alors que vous disposez de la normeENUM_TIMEFRAMES
Pour quelle taille de contrat (taille de lot) cette valeur est-elle calculée ?
Par exemple, pour la paire de devises EURUSD, ce script donne les mêmes valeurs, mais pour les métaux, la différence est de 10 fois. Comment, pourquoi et comment puis-je le savoir ?
intOnStart()
{
//---// цена тика для символаdouble symb_tick_price = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
// рассчитаная цена символа (для Forex, CFD - формула из справки)// Profit = (close_price - open_price) * Contract_Size * Lots// т.е. берем размер тика и считаем по этой формуле// -> TickPrice = TickSize * Contract_Size * Lotsdouble symb_lot_size = 1.0;
double symb_tick_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double symb_contract_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
double calc_symb_tick_price = symb_tick_size * symb_contract_size * symb_lot_size;
PrintFormat("Цена тика SYMBOL_TRADE_TICK_VALUE=%f, Цена тика ВЫЧИСЛЕННАЯ=%f", symb_tick_price, calc_symb_tick_price);
//---return(INIT_SUCCEEDED);
}
... et un mois plus tard, tu essaieras de comprendre ce que cela signifie. ))))
Si vous devez écrire un tel code, écrivez-le au moins en int.
afin que vous puissiez au moins comprendre ce que l'auteur obtient en sortie.
...Bien que ce soit une perversion ))))
Pourquoi le convertir en int ? Parce que dans mql5, à partir de H1, la valeur de l'énumération n'est pas égale au nombre de minutes. Et au contraire, je pense que cela va causer beaucoup de confusion.
Pourquoi convertir en int ? Parce que dans mql5, à partir de H1, la valeur de l'énumération n'est pas égale au nombre de minutes. Et à mon avis, au contraire, cela va provoquer beaucoup de confusion.
Parce que enum est une constante nommée de 4 octets = int
Question 1 : Pourquoi créer votre propre énumération s'il existe unENUM_TIMEFRAMES standard ?
Réponse)) Dessiner un objet graphique dans le nom de l'objet il y a une sous-chaîne M30 disant où cet objet a été créé, et quand j'écris les données de l'objet dans le tableau double, en utilisant la division du nom en sous-chaînes, je compare l'index 0 du tableau avec un nom brisé, par énumération brute avec un tableau
obtenu, j'écris la valeur dans le tableau double, en stockant les caractéristiques des objets du graphique. Ensuite, pour suivre la ligne de rupture, de fixation et de test, j'utilise une méthode, dans laquelle je dois passer le paramètre timeframe du tableau double écrit ; parce que les lignes sont créées sur différents horizons temporels, le calcul de la rupture, de la fixation, du test doit être calculé selon l'horizon temporel des objets créés, indépendamment de la période qui est sur le graphique en ce moment. J'ai prévu d'associer la valeur du tableau
TimeFrame
écrit dans le tableau des caractéristiques des objets graphiques à extraire du tableau par l'index
car enum est une constante nommée de 4 octets = int
et non le nombre de minutes.
Et alors ? Ont-ils quelque chose de différent dans l'enum ENUM_TIMEFRAMES ? Ou bien la peur de manquer de mémoire? Je ne sais pas comment m'amuser comme ça...
ps ; Ah, comme je suis lent à taper...)))) Pendant que je tapais une seule ligne, Kira27 a tapé beaucoup de......... et quelque chose que je soupçonne d'être utilisé dans mql4.
Puis je déclare une méthode dans une classe.
Et lorsque j'appelle une méthode depuis une EA, si je dois passer la troisième valeur de l'énumération - frame - PERIOD_M30, que dois-je écrire dans les questions de code ci-dessous ?
Mais il écrit une erreur lors de la compilation. Quel pourrait être le piège ?
Bonjour ! Pouvez-vous me dire comment passer un type de données d'énumération dans les méthodes de classe? Disons que je veux passer un délai. Je crée dans l'en-tête de l'EA de l'énumération
Puis je déclare la méthode dans la classe.
Et lorsque j'appelle une méthode depuis une EA, si je dois passer la troisième valeur de l'énumération - frame - PERIOD_M30, que dois-je écrire dans les questions de code ci-dessous ?
Question 1 : Pourquoi créer votre propre énumération alors que vous disposez de la normeENUM_TIMEFRAMES
Question sur le coût d'une tique.
Pour quelle taille de contrat (taille de lot) cette valeur est-elle calculée ?
Par exemple, pour la paire de devises EURUSD, ce script donne les mêmes valeurs, mais pour les métaux, la différence est de 10 fois. Comment, pourquoi et comment puis-je le savoir ?
Si vous y réfléchissez, il semble que ce soit demander d'écrire
Mais il écrit une erreur lors de la compilation. Quel pourrait être le piège ?
Si vous faites cette énumération
alors vous pouvez essayer de l'écrire comme ceci
Si vous faites cette énumération
vous pourriez essayer de l'écrire comme ceci
... et dans un mois, tu essaieras de comprendre ce que ça veut dire ))))
Si vous devez écrire un tel code, écrivez-le au moins en int.
afin que vous puissiez au moins comprendre ce que l'auteur obtient en sortie.
...Bien que ce soit une perversion ))))
... et un mois plus tard, tu essaieras de comprendre ce que cela signifie. ))))
Si vous devez écrire un tel code, écrivez-le au moins en int.
afin que vous puissiez au moins comprendre ce que l'auteur obtient en sortie.
...Bien que ce soit une perversion ))))
Pourquoi le convertir en int ? Parce que dans mql5, à partir de H1, la valeur de l'énumération n'est pas égale au nombre de minutes. Et au contraire, je pense que cela va causer beaucoup de confusion.
Pourquoi convertir en int ? Parce que dans mql5, à partir de H1, la valeur de l'énumération n'est pas égale au nombre de minutes. Et à mon avis, au contraire, cela va provoquer beaucoup de confusion.
Parce que enum est une constante nommée de 4 octets = int
pas le nombre de minutes
Question 1 : Pourquoi créer votre propre énumération s'il existe unENUM_TIMEFRAMES standard ?
Réponse)) Dessiner un objet graphique dans le nom de l'objet il y a une sous-chaîne M30 disant où cet objet a été créé, et quand j'écris les données de l'objet dans le tableau double, en utilisant la division du nom en sous-chaînes, je compare l'index 0 du tableau avec un nom brisé, par énumération brute avec un tableau
Trouver l'index de la chaîne égale dans le tableau
associe l'index au tableau d'int
obtenu, j'écris la valeur dans le tableau double, en stockant les caractéristiques des objets du graphique. Ensuite, pour suivre la ligne de rupture, de fixation et de test, j'utilise une méthode, dans laquelle je dois passer le paramètre timeframe du tableau double écrit ; parce que les lignes sont créées sur différents horizons temporels, le calcul de la rupture, de la fixation, du test doit être calculé selon l'horizon temporel des objets créés, indépendamment de la période qui est sur le graphique en ce moment. J'ai prévu d'associer la valeur du tableau
écrit dans le tableau des caractéristiques des objets graphiques à extraire du tableau par l'index
et le transfert vers la méthode de calcul des pannes, des ancrages et des tests.car enum est une constante nommée de 4 octets = int
et non le nombre de minutes.
Et alors ? Ont-ils quelque chose de différent dans l'enum ENUM_TIMEFRAMES ? Ou bien la peur de manquer de mémoire? Je ne sais pas comment m'amuser comme ça...
ps ; Ah, comme je suis lent à taper...)))) Pendant que je tapais une seule ligne, Kira27 a tapé beaucoup de......... et quelque chose que je soupçonne d'être utilisé dans mql4.