Bonjour, pourriez-vous me diresi j'ai besoin du paramètre Parameter=Ka,int,21 dans le signal de la bibliothèque standard?
Sélectionné dans le processus d'optimisation à partir de l'énumération du type
Mais,lorsque le signal disparaît de la sélection lors de la génération de l'EA, mais qu'il se compile normalement, il est difficile de tirer des conclusions - qu'est-ce qui ne va pas ......, aide avec le code, n'y avait-il pas déjà une implémentation ?
p.s. Je dois changer int en intTypeà chaque fois dans l'EA finale .
Spécifiez le fichier exact du module de signal et la ligne de code...
Karputov Vladimir: Spécifiez le fichier exact du module de signal et la ligne de code...
Par exemple, voici une partie du code supérieur SignalRVI.mqh. Dans ce cas, il disparaît de la sélection des signaux lorsque je change le type int en intType
Si la portée est mauvaise, je la mets dans un fichier séparé avec une énumération #include <Libraries\myfunc.mqh>.
//+------------------------------------------------------------------+//| SignalRVI.mqh |//| Copyright 2009-2013, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+
#include <Expert\ExpertSignal.mqh>
// wizard description start//+------------------------------------------------------------------+//| Description of the class |//| Title=----------------Signals of oscillator 'Relative Vigor Index' |//| Type=SignalAdvanced |//| Name=Relative Vigor Index |//| ShortName=RVI |//| Class=CSignalRVI |//| Page=signal_rvi |//| Parameter=PeriodRVI,intType,15,Period of calculation |//+------------------------------------------------------------------+// wizard description end//+------------------------------------------------------------------+//| Class CSignalRVI. |//| Purpose: Class of generator of trade signals based on |//| the 'Relative Vigor Index' oscillator. |//| Is derived from the CExpertSignal class. |//+------------------------------------------------------------------+enum intType
{
p0 = 15,
p1 = 21,
p2 = 29
}
;
class CSignalRVI : public CExpertSignal
{
protected:
CiRVI m_rvi; // object-oscillator//--- adjusted parameters
intType m_periodRVI; // the "period of calculation" parameter of the oscillator//--- "weights" of market models (0-100)int m_pattern_0; // model 0 "the oscillator has required direction"int m_pattern_1; // model 1 "crossing of main and signal line"public:
CSignalRVI(void);
~CSignalRVI(void);
//--- methods of setting adjustable parametersvoid PeriodRVI(intType value) { m_periodRVI=value; }
//--- methods of adjusting "weights" of market modelsvoid Pattern_0(intvalue) { m_pattern_0=value; }
void Pattern_1(intvalue) { m_pattern_1=value; }
//--- method of verification of settingsvirtualbool ValidationSettings(void);
//--- method of creating the indicator and timeseriesvirtualbool InitIndicators(CIndicators *indicators);
//--- methods of checking if the market models are formedvirtualint LongCondition(void);
virtualint ShortCondition(void);
protected:
//--- method of initialization of the oscillatorbool InitRVI(CIndicators *indicators);
//--- methods of getting datadouble Main(int ind) { return(m_rvi.Main(ind)); }
double DiffMain(int ind) { return(Main(ind)-Main(ind+1)); }
double Signal(int ind) { return(m_rvi.Signal(ind)); }
double DiffSignal(int ind) { return(Signal(ind)-Signal(ind+1)); }
double DiffMainSignal(int ind) { return(Main(ind)-Signal(ind)); }
};
//+------------------------------------------------------------------+//| Constructor |//+------------------------------------------------------------------+
CSignalRVI::CSignalRVI(void) : m_periodRVI(15),
m_pattern_0(60),
m_pattern_1(100)
{
}
Bonjour, pourriez-vous me diresi j'ai besoin duparamètre Parameter=Ka,int,21 dans le signal de la bibliothèque standard?
Sélectionné dans le processus d'optimisationà partir de l'énumération du type
Mais, lorsque le signal disparaît de la sélection lors de la génération de l'EA, mais qu'il se compile normalement, il est difficile de tirer des conclusions - qu'est-ce qui ne va pas ......, aide avec le code, n'y avait-il pas déjà une implémentation ?
p.s. Je dois changer int en intType à chaque fois dans l'EA finale.
Vous n'avez rien à changer - il suffit de générer votre Expert Advisor basé sur l'indicateur "Relative Vigor Index", puis dans le testeur de stratégie, dans l'onglet "Paramètres", sélectionnez une des optimisations, allez dans l'onglet "Paramètres" et définissez l'intervalle et la valeur du paramètre "Relative Vigor Index(10) Period of calculation" :
Mais comme vous ne voulez utiliser que trois valeurs de l'intervalle 15-29, vous devez écrire une condition de contrôle dans OnInit():
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
if(Signal_RVI_PeriodRVI!=15 && Signal_RVI_PeriodRVI!=21 && Signal_RVI_PeriodRVI!=29)
return(INIT_PARAMETERS_INCORRECT);//--- Initializing expert
Après avoir exécuté l'optimisation, vous pouvez voir que le testeur n'a fonctionné que pour les paramètres 15, 21 et 29 :
Vous n'avez rien à changer - il suffit de générer votre Expert Advisor basé sur l'indicateur "Relative Vigor Index", puis de sélectionner une des optimisations dans le Testeur de Stratégie, d'aller dans l'onglet "Paramètres" et de définir l'intervalle et les valeurs pour le paramètre "Relative Vigor Index(10) Period of calculation" :
Mais comme vous ne voulez utiliser que trois valeurs de l'intervalle 15-29, vous devez écrire une condition de contrôle dans OnInit():
Après avoir exécuté l'optimisation, vous pouvez voir que le testeur n'a fonctionné que pour les paramètres 15, 21 et 29 :
Merci, je comprends votre idée, très intéressante, mais il y aura beaucoup d'étapes perdues (mais probablement pas de temps perdu non plus). J'ai réussi à passer manuellement au type enum dans l'EA générée. Et je voudrais l'automatiser encore plus.
newnek: Merci, j'ai compris votre idée, très intéressante, mais il y aura beaucoup d'étapes perdues (bien que cela ne perde probablement pas de temps non plus). J'ai réussi à changer manuellement le type enum dans l'EA générée. Et je voudrais l'automatiser encore plus.
Il y aura des étapes vides, mais elles ne prennent pas de temps, car OnInit() sera quitté pour non-conformité de la condition et l'étape suivante de l'optimisation sera lancée immédiatement.
Bon après-midi... Je suis moi-même un programmeur C++. J'ai décidé de m'essayer dans ce domaine récemment... Je veux écrire un Expert Advisor ou un Conseiller Expert, ma stratégie est OK, ma plateforme est MT4... Je suis donc confronté à ce problème, j'utilise dans mon conseiller expert MACD..... Je vais l'écrire sous peu...
Par exemple, je crée un nouveau modèle EA, j'ajoute x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) ; et disons qu'il n'y a rien d'autre... Je compile, je teste, tout est OK, à la fin du test, affiche un graphique macd avec les paramètres spécifiés, tout est OK.
La deuxième option - je crée un nouveau modèle EA dans le OnTick, ajouter un indicateur tiers RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ; compiler, tester, tout est OK, mais !Lorsque je termine le test ou que j'annule le test dans la fenêtre des milliers de ces indicateurs, je comprends qu'à chaque tick un nouvel indicateur est créé ... Je ne comprends pas pourquoi, car le MAKD standard naît une fois et c'est tout ...
Quelqu'un peut-il expliquer le problème... J'essaie d'expliquer le problème avec les autres indicateurs non standard...
P.S. c'est mon premier message... Ne me reprochez pas de ne pas avoir trouvé le moyen de cacher la photo sous un spoiler.
Je ne sais pas de quoi il s'agit mais j'ai trouvé une solution...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ;- dessine le graphique par tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un graphique, seules les données de la variableRSICur sont mises à jour par tick...Quelle est la logique que je ne comprends pas, en principe ça me suffit, mais j'aimerais comprendre pourquoi ça ne fonctionne bien qu'avec les paramètres par défaut....
Bon après-midi... Je suis moi-même un programmeur C++. J'ai décidé de m'essayer dans ce domaine récemment... Je veux écrire un Expert Advisor ou un Conseiller Expert, ma stratégie est OK, ma plateforme est MT4... Je suis donc confronté à ce problème, j'utilise dans mon conseiller expert MACD..... Je vais l'écrire sous peu...
Par exemple, je crée un nouveau modèle EA, j'ajoute x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) ; et disons qu'il n'y a rien d'autre... Je compile, je teste, tout est OK, à la fin du test, affiche un graphique macd avec les paramètres spécifiés, tout est OK.
La deuxième option - je crée un nouveau modèle EA dans le OnTick, ajouter un indicateur tiers RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ; compiler, tester, tout est OK, mais !Lorsque je termine le test ou que j'annule le test dans la fenêtre des milliers de ces indicateurs, je comprends qu'à chaque tick un nouvel indicateur est créé ... Je ne comprends pas pourquoi, car le MAKD standard naît une fois et c'est tout ...
Quelqu'un peut-il expliquer le problème... J'essaie d'utiliser le même problème avec un autre indicateur non standard...
P.S. c'est mon premier message... Ne me grondez pas pour ne pas avoir trouvé le moyen de cacher la photo sous le spoiler.
La photo est OK, elle n'est pas cachée.
Avez-vous écrit ceci My_Induk ou l'avez-vous trouvé quelque part ? Je comprends que l'indicateur est de travers. Si vous avez le code source, postez-le - voyons quel est le problème.
Je ne sais pas de quoi il s'agit mais j'ai trouvé une solution...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ;- dessine le graphique par tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un graphique, seules les données de la variableRSICur sont mises à jour par tick...Quelle est la logique que je ne comprends pas, en principe ça me suffit, mais j'aimerais comprendre pourquoi ça ne fonctionne bien qu'avec les paramètres par défaut....
Cela se produit lorsque vous n'avez pas transmis correctement les paramètres de l'indicateur.
Avez-vous écrit ceci My_Induk ou l'avez-vous trouvé quelque part ? Je suppose que l'indicateur est de travers. Si vous avez le code source, postez-le - voyons quel est le problème.
Vladislav Andruschenko: Cela se produit lorsque vous n'avez pas transmis correctement les paramètres de l'indicateur.
Merci. J'ai trouvé la solution... J'ai farfouillé toute la journée et je n'ai pas réussi à comprendre... Je suis moi-même un programmeur, mais ça arrive... J'ai fait une erreur de syntaxe, j'ai dû passer les paramètres de couleur entre guillemets lors de l'appel de l'indicateur...
Bonjour, pourriez-vous me diresi j'ai besoin du paramètre Parameter=Ka,int,21 dans le signal de la bibliothèque standard?
Sélectionné dans le processus d'optimisation à partir de l'énumération du type
Mais, lorsque le signal disparaît de la sélection lors de la génération de l'EA, mais qu'il se compile normalement, il est difficile de tirer des conclusions - qu'est-ce qui ne va pas ......, aide avec le code, n'y avait-il pas déjà une implémentation ?
p.s. Je dois changer int en intTypeà chaque fois dans l'EA finale .
Spécifiez le fichier exact du module de signal et la ligne de code...
Par exemple, voici une partie du code supérieur SignalRVI.mqh. Dans ce cas, il disparaît de la sélection des signaux lorsque je change le type int en intType
Si la portée est mauvaise, je la mets dans un fichier séparé avec une énumération #include <Libraries\myfunc.mqh>.Bonjour, pourriez-vous me diresi j'ai besoin du paramètre Parameter=Ka,int,21 dans le signal de la bibliothèque standard?
Sélectionné dans le processus d'optimisation à partir de l'énumération du type
Mais, lorsque le signal disparaît de la sélection lors de la génération de l'EA, mais qu'il se compile normalement, il est difficile de tirer des conclusions - qu'est-ce qui ne va pas ......, aide avec le code, n'y avait-il pas déjà une implémentation ?
p.s. Je dois changer int en intType à chaque fois dans l'EA finale.
Vous n'avez rien à changer - il suffit de générer votre Expert Advisor basé sur l'indicateur "Relative Vigor Index", puis dans le testeur de stratégie, dans l'onglet "Paramètres", sélectionnez une des optimisations, allez dans l'onglet "Paramètres" et définissez l'intervalle et la valeur du paramètre "Relative Vigor Index(10) Period of calculation" :
Mais comme vous ne voulez utiliser que trois valeurs de l'intervalle 15-29, vous devez écrire une condition de contrôle dans OnInit():
Après avoir exécuté l'optimisation, vous pouvez voir que le testeur n'a fonctionné que pour les paramètres 15, 21 et 29 :
Vous n'avez rien à changer - il suffit de générer votre Expert Advisor basé sur l'indicateur "Relative Vigor Index", puis de sélectionner une des optimisations dans le Testeur de Stratégie, d'aller dans l'onglet "Paramètres" et de définir l'intervalle et les valeurs pour le paramètre "Relative Vigor Index(10) Period of calculation" :
Mais comme vous ne voulez utiliser que trois valeurs de l'intervalle 15-29, vous devez écrire une condition de contrôle dans OnInit():
Après avoir exécuté l'optimisation, vous pouvez voir que le testeur n'a fonctionné que pour les paramètres 15, 21 et 29 :
Merci, j'ai compris votre idée, très intéressante, mais il y aura beaucoup d'étapes perdues (bien que cela ne perde probablement pas de temps non plus). J'ai réussi à changer manuellement le type enum dans l'EA générée. Et je voudrais l'automatiser encore plus.
Bon après-midi... Je suis moi-même un programmeur C++. J'ai décidé de m'essayer dans ce domaine récemment... Je veux écrire un Expert Advisor ou un Conseiller Expert, ma stratégie est OK, ma plateforme est MT4... Je suis donc confronté à ce problème, j'utilise dans mon conseiller expert MACD..... Je vais l'écrire sous peu...
Par exemple, je crée un nouveau modèle EA, j'ajoute x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) ; et disons qu'il n'y a rien d'autre... Je compile, je teste, tout est OK, à la fin du test, affiche un graphique macd avec les paramètres spécifiés, tout est OK.
La deuxième option - je crée un nouveau modèle EA dans le OnTick, ajouter un indicateur tiers RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ; compiler, tester, tout est OK, mais !Lorsque je termine le test ou que j'annule le test dans la fenêtre des milliers de ces indicateurs, je comprends qu'à chaque tick un nouvel indicateur est créé ... Je ne comprends pas pourquoi, car le MAKD standard naît une fois et c'est tout ...
Quelqu'un peut-il expliquer le problème... J'essaie d'expliquer le problème avec les autres indicateurs non standard...
P.S. c'est mon premier message... Ne me reprochez pas de ne pas avoir trouvé le moyen de cacher la photo sous un spoiler.
Je ne sais pas de quoi il s'agit mais j'ai trouvé une solution...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ;- dessine le graphique par tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un graphique, seules les données de la variableRSICur sont mises à jour par tick...Quelle est la logique que je ne comprends pas, en principe ça me suffit, mais j'aimerais comprendre pourquoi ça ne fonctionne bien qu'avec les paramètres par défaut....
Bon après-midi... Je suis moi-même un programmeur C++. J'ai décidé de m'essayer dans ce domaine récemment... Je veux écrire un Expert Advisor ou un Conseiller Expert, ma stratégie est OK, ma plateforme est MT4... Je suis donc confronté à ce problème, j'utilise dans mon conseiller expert MACD..... Je vais l'écrire sous peu...
Par exemple, je crée un nouveau modèle EA, j'ajoute x=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) ; et disons qu'il n'y a rien d'autre... Je compile, je teste, tout est OK, à la fin du test, affiche un graphique macd avec les paramètres spécifiés, tout est OK.
La deuxième option - je crée un nouveau modèle EA dans le OnTick, ajouter un indicateur tiers RSICur = iCustom(NULL,0, "My_Induk",14,1,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ; compiler, tester, tout est OK, mais !Lorsque je termine le test ou que j'annule le test dans la fenêtre des milliers de ces indicateurs, je comprends qu'à chaque tick un nouvel indicateur est créé ... Je ne comprends pas pourquoi, car le MAKD standard naît une fois et c'est tout ...
Quelqu'un peut-il expliquer le problème... J'essaie d'utiliser le même problème avec un autre indicateur non standard...
P.S. c'est mon premier message... Ne me grondez pas pour ne pas avoir trouvé le moyen de cacher la photo sous le spoiler.
La photo est OK, elle n'est pas cachée.
Avez-vous écrit ceci My_Induk ou l'avez-vous trouvé quelque part ? Je comprends que l'indicateur est de travers. Si vous avez le code source, postez-le - voyons quel est le problème.
Je ne sais pas de quoi il s'agit mais j'ai trouvé une solution...
RSICur=iCustom(NULL,0, "My_Induk",14,1,0,0,21,1,65,35, "DodgerBlue", "Magenta",50,50, "Red", "Green",0,0) ;- dessine le graphique par tick
RSICur=iCustom(NULL,0, "My_Induk",0,0); - Ok, un graphique, seules les données de la variableRSICur sont mises à jour par tick...Quelle est la logique que je ne comprends pas, en principe ça me suffit, mais j'aimerais comprendre pourquoi ça ne fonctionne bien qu'avec les paramètres par défaut....
La photo est OK, il n'y a pas de cachette ici.
Avez-vous écrit ceci My_Induk ou l'avez-vous trouvé quelque part ? Je suppose que l'indicateur est de travers. Si vous avez le code source, postez-le - voyons quel est le problème.
Cela se produit lorsque vous n'avez pas transmis correctement les paramètres de l'indicateur.
Merci. J'ai trouvé la solution... J'ai farfouillé toute la journée et je n'ai pas réussi à comprendre... Je suis moi-même un programmeur, mais ça arrive... J'ai fait une erreur de syntaxe, j'ai dû passer les paramètres de couleur entre guillemets lors de l'appel de l'indicateur...
iCustom(NULL,0,"My_Induk",14,1,0,21,1,65,35,"DodgerBlue","Magenta",50,50,"Red","Green",0,0);
c'est ce qui a causé ce dysfonctionnement... ) Merci ! !! Il y aura sûrement d'autres questions !!!