Aidez-moi. J'ai une question concernant le module de signal de trading "Time filter".
Le problème est que j'ai généré un EA à l'aide de ce module et que je l'ai configuré pour qu'il ne permette qu'une heure de trading par jour. En général, les transactions se font de cette manière, mais il y a des jours où mon conseiller expert ouvre des positions à l'heure qu'il veut. J'ai essayé le module de signal de trading "Time filter" dans diverses combinaisons avec d'autres modules de signal de trading (par exemple, Stochastic, WPR, etc.) mais la même chose se produit. De plus, si vous définissez 2 heures consécutives de travail autorisées, il n'y a aucun problème, cela fonctionne bien.
A quoi peut-il être lié ? Peut-être y a-t-il une erreur dans le code d'un module de signal de trading "Time filter" ? Comme je ne suis pas un expert en programmation, je vous demande de m'aider à résoudre ce problème ou de me donner un indice, peut-être que je fais quelque chose de mal.
Sincèrement, Vladimir.
Voici un exemple simple sur l'image. Un jour, il ouvre à 7 heures ; un autre jour, il ouvre à 5 heures ; le troisième jour, il ouvre à nouveau à 7 heures.
Pouvez-vous joindre un Expert Advisor mq5 à ce post et spécifier les paramètres du testeur (deux captures d'écran : onglets Paramètres et Paramètres) ?
Pouvez-vous joindre un Expert Advisor mq5 à un message et spécifier les paramètres du testeur (deux captures d'écran : onglets Paramètres et Paramètres) ?
Ce n'est pas sans fondement, par exemple, en ce moment même, j'ai généré dans l'assistant MQL5 le premier module disponible de signaux de trading AMA et un filtre temporel.
//+------------------------------------------------------------------+//| AMA.mq5 |//| Copyright 2019, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2019, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Include |//+------------------------------------------------------------------+#include <Expert\Expert.mqh>
//--- available signals#include <Expert\Signal\SignalAMA.mqh>
#include <Expert\Signal\SignalITF.mqh>
//--- available trailing#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+//| Inputs |//+------------------------------------------------------------------+//--- inputs for expertinputstring Expert_Title ="AMA"; // Document nameulong Expert_MagicNumber =8503; //bool Expert_EveryTick =false; ////--- inputs for main signalinputint Signal_ThresholdOpen =10; // Signal threshold value to open [0...100]inputint Signal_ThresholdClose =10; // Signal threshold value to close [0...100]inputdouble Signal_PriceLevel =0; // Price level to execute a dealinputdouble Signal_StopLevel =50.0; // Stop Loss level (in points)inputdouble Signal_TakeLevel =50.0; // Take Profit level (in points)inputint Signal_Expiration =4; // Expiration of pending orders (in bars)inputint Signal_AMA_PeriodMA =10; // Adaptive Moving Average(1,1,...) Period of averaginginputint Signal_AMA_PeriodFast =2; // Adaptive Moving Average(1,1,...) Period of fast EMAinputint Signal_AMA_PeriodSlow =30; // Adaptive Moving Average(1,1,...) Period of slow EMAinputint Signal_AMA_Shift =0; // Adaptive Moving Average(1,1,...) Time shiftinputENUM_APPLIED_PRICE Signal_AMA_Applied =PRICE_CLOSE; // Adaptive Moving Average(1,1,...) Prices seriesinputdouble Signal_AMA_Weight =1.0; // Adaptive Moving Average(1,1,...) Weight [0...1.0]inputint Signal_ITF_GoodHourOfDay=-1; // IntradayTimeFilter(-1,...) Good hourinputint Signal_ITF_BadHoursOfDay=16777087; // IntradayTimeFilter(-1,...) Bad hours (bit-map)inputint Signal_ITF_GoodDayOfWeek=-1; // IntradayTimeFilter(-1,...) Good day of weekinputint Signal_ITF_BadDaysOfWeek=0; // IntradayTimeFilter(-1,...) Bad days of week (bit-map)inputdouble Signal_ITF_Weight =1.0; // IntradayTimeFilter(-1,...) Weight [0...1.0]//--- inputs for moneyinputdouble Money_FixRisk_Percent =10.0; // Risk percentage//+------------------------------------------------------------------+//| Global expert object |//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit()
{
//--- Initializing expertif(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failedprintf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalAMA
CSignalAMA *filter0=new CSignalAMA;
if(filter0==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating filter0");
ExtExpert.Deinit();
return(INIT_FAILED);
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.PeriodMA(Signal_AMA_PeriodMA);
filter0.PeriodFast(Signal_AMA_PeriodFast);
filter0.PeriodSlow(Signal_AMA_PeriodSlow);
filter0.Shift(Signal_AMA_Shift);
filter0.Applied(Signal_AMA_Applied);
filter0.Weight(Signal_AMA_Weight);
//--- Creating filter CSignalITF
CSignalITF *filter1=new CSignalITF;
if(filter1==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating filter1");
ExtExpert.Deinit();
return(INIT_FAILED);
}
signal.AddFilter(filter1);
//--- Set filter parameters
filter1.GoodHourOfDay(Signal_ITF_GoodHourOfDay);
filter1.BadHoursOfDay(Signal_ITF_BadHoursOfDay);
filter1.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek);
filter1.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek);
filter1.Weight(Signal_ITF_Weight);
//--- Creation of trailing object
CTrailingNone *trailing=new CTrailingNone;
if(trailing==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add trailing to expert (will be deleted automatically))if(!ExtExpert.InitTrailing(trailing))
{
//--- failedprintf(__FUNCTION__+": error initializing trailing");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set trailing parameters//--- Creation of money object
CMoneyFixedRisk *money=new CMoneyFixedRisk;
if(money==NULL)
{
//--- failedprintf(__FUNCTION__+": error creating money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Add money to expert (will be deleted automatically))if(!ExtExpert.InitMoney(money))
{
//--- failedprintf(__FUNCTION__+": error initializing money");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Set money parameters
money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parametersif(!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Tuning of all necessary indicatorsif(!ExtExpert.InitIndicators())
{
//--- failedprintf(__FUNCTION__+": error initializing indicators");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- okreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Deinitialization function of the expert |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+//| "Trade" event handler function |//+------------------------------------------------------------------+voidOnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+//| "Timer" event handler function |//+------------------------------------------------------------------+voidOnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
Capture d'écran de "Settings" (paramètres)
Capture d'écran de "Paramètres".
Capture d'écran del'incorrect du filtre de temps (les positions sont ouvertes sur différents jours à 7, 12 et 7 heures)
Pour ne pas être infondé, par exemple, en ce moment, j'ai généré dans l'assistant MQL5 le premier module disponible de signaux de trading AMA et un filtre temporel.
Capture d'écran de "Settings" (paramètres)
Capture d'écran de "Paramètres".
Capture d'écran du fonctionnement incorrect du filtre horaire (positions d'ouverture sur des jours différents à 7, 12 et 7 heures)
1. Image avec un graphique - lorsque vous faites une capture d'écran, faites-la avec l'outil "Crosshair" - il n'est pas clair de quelle année il s'agit.
2. Lorsque vous travaillez avec les ordres en suspens, n'oubliez pas que l'ordre en suspens peut se déclencher à un moment complètement différent (heure et minutes) par rapport au moment du réglage.
3. Lorsque vous utilisez des modules de signaux, réinitialisez les paramètres aux valeurs par défaut et vérifiez le travail sur le marché - sans aucun ordre en attente (si le point 2 n'est pas clair).
1. Image du graphique - lorsque vous faites une capture d'écran, faites-la en même temps que l'outil "Crosshair" - sinon on ne peut pas savoir quelle année.
2. Lorsque vous travaillez avec des ordres en attente, n'oubliez pas qu'un ordre en attente peut se déclencher à un moment complètement différent (heure et minutes) par rapport au moment où il a été placé.
3. Lorsque vous utilisez des modules de signaux, réinitialisez les paramètres aux valeurs par défaut et vérifiez le travail sur le marché - sans les ordres en attente (si le point 2 n'est pas clair).
1. A propos du réticule - compréhensible. Dans la capture d'écran, l'année est 2019 et le mois est octobre.
2. Je ne comprends pas bien l'ordre en attente. Comment savez-vous que l'EA a un ordre en attente et n'ouvre pas une position au début de l'heure ? Pouvez-vous être plus précis ?
3. Le conseiller expert fonctionne bien avec les valeurs par défaut des modules de signaux. Peut-on modifier les valeurs des paramètres ?
1. En ce qui concerne le réticule, il est clair. Dans la capture d'écran, l'année est 2019 et le mois est octobre.
***
Merci pour cette précision.
***
2. Je ne comprends pas bien l'ordre en attente. Comment avez-vous déterminé que l'EA a défini un ordre en attente et n'a pas ouvert une position immédiatement au début de l'heure ? Pouvez-vous être plus précis ?
***
Dans le testeur visuel, il suffit de regarder l'onglet "Historique".
***
3. Avec les valeurs par défaut des modules de signaux, le conseiller expert fonctionne bien. N'est-il pas possible de modifier les valeurs des paramètres ?
***
Bien sûr que vous pouvez, mais seulement si vous comprenez ce que vous faites et si vous comprenez quel paramètre est responsable de quoi.
Snajper007: Je veux dire, l'horloge indiquait 15-00.
Et avec quel degré de certitude voulez-vous le résultat ?
Juste un exemple : Vous voulez voir l'heure sur l'horloge comme étant 3pm. Et vous l'attendez. Mais à ce moment-là, il n'y avait pas de tic ou il n'y avait pas de connexion au serveur. Et puis tu as les tics, mais le temps est de 15 heures 00 minutes et 36 secondes. Que vas-tu faire ?
Et avec quel degré de certitude voulez-vous le résultat ?
Juste un exemple : Vous voulez voir l'heure sur l'horloge comme étant 3pm. Et vous l'attendez. Mais à ce moment-là, il n'y avait pas de tique ou il n'y avait pas de connexion au serveur. Et puis tu as les tics, mais le temps est de 15 heures 00 minutes et 36 secondes. Qu'allez-vous faire ?
Pouvez-vous faire en sorte qu'il soit possible de vérifier non pas exactement 15-00, mais le début de l'heure ? En d'autres termes, la première minute indiquerait déjà que l'heure précédente s'est terminée et que la nouvelle heure a commencé.
Bonjour !
Aidez-moi. J'ai une question concernant le module de signal de trading "Time filter".
Le problème est que j'ai généré un EA à l'aide de ce module et que je l'ai configuré pour qu'il ne permette qu'une heure de trading par jour. En général, les transactions se font de cette manière, mais il y a des jours où mon conseiller expert ouvre des positions à l'heure qu'il veut. J'ai essayé le module de signal de trading "Time filter" dans diverses combinaisons avec d'autres modules de signal de trading (par exemple, Stochastic, WPR, etc.) mais la même chose se produit. De plus, si vous définissez 2 heures consécutives de travail autorisées, il n'y a aucun problème, cela fonctionne bien.
A quoi peut-il être lié ? Peut-être y a-t-il une erreur dans le code d'un module de signal de trading "Time filter" ? Comme je ne suis pas un expert en programmation, je vous demande de m'aider à résoudre ce problème ou de me donner un indice, peut-être que je fais quelque chose de mal.
Sincèrement, Vladimir.
Voici un exemple simple sur l'image. Un jour, il ouvre à 7 heures ; un autre jour, il ouvre à 5 heures ; le troisième jour, il ouvre à nouveau à 7 heures.
Pouvez-vous joindre un Expert Advisor mq5 à ce post et spécifier les paramètres du testeur (deux captures d'écran : onglets Paramètres et Paramètres) ?
Bonjour, Pourriez-vous me dire. Comment épeler correctement la condition : *s'il y a une nouvelle heure* ?
Voulez-vous parler de l'heure (par exemple, l'horloge affichait 15-00) ou voulez-vous dire qu'une nouvelle barre est née sur l'échelle de temps H1 ?
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
FAQ des débutants MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2019.10.14 12:04
Pouvez-vous joindre un Expert Advisor mq5 à un message et spécifier les paramètres du testeur (deux captures d'écran : onglets Paramètres et Paramètres) ?
Ce n'est pas sans fondement, par exemple, en ce moment même, j'ai généré dans l'assistant MQL5 le premier module disponible de signaux de trading AMA et un filtre temporel.
Capture d'écran de "Settings" (paramètres)
Capture d'écran de "Paramètres".
Capture d'écran del'incorrect du filtre de temps (les positions sont ouvertes sur différents jours à 7, 12 et 7 heures)
Pour ne pas être infondé, par exemple, en ce moment, j'ai généré dans l'assistant MQL5 le premier module disponible de signaux de trading AMA et un filtre temporel.
Capture d'écran de "Settings" (paramètres)
Capture d'écran de "Paramètres".
Capture d'écran du fonctionnement incorrect du filtre horaire (positions d'ouverture sur des jours différents à 7, 12 et 7 heures)
1. Image avec un graphique - lorsque vous faites une capture d'écran, faites-la avec l'outil "Crosshair" - il n'est pas clair de quelle année il s'agit.
2. Lorsque vous travaillez avec les ordres en suspens, n'oubliez pas que l'ordre en suspens peut se déclencher à un moment complètement différent (heure et minutes) par rapport au moment du réglage.
3. Lorsque vous utilisez des modules de signaux, réinitialisez les paramètres aux valeurs par défaut et vérifiez le travail sur le marché - sans aucun ordre en attente (si le point 2 n'est pas clair).
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégie
FAQ des débutants MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2019.10.14 13:28
1. Image du graphique - lorsque vous faites une capture d'écran, faites-la en même temps que l'outil "Crosshair" - sinon on ne peut pas savoir quelle année.
2. Lorsque vous travaillez avec des ordres en attente, n'oubliez pas qu'un ordre en attente peut se déclencher à un moment complètement différent (heure et minutes) par rapport au moment où il a été placé.
3. Lorsque vous utilisez des modules de signaux, réinitialisez les paramètres aux valeurs par défaut et vérifiez le travail sur le marché - sans les ordres en attente (si le point 2 n'est pas clair).
1. A propos du réticule - compréhensible. Dans la capture d'écran, l'année est 2019 et le mois est octobre.
2. Je ne comprends pas bien l'ordre en attente. Comment savez-vous que l'EA a un ordre en attente et n'ouvre pas une position au début de l'heure ? Pouvez-vous être plus précis ?
3. Le conseiller expert fonctionne bien avec les valeurs par défaut des modules de signaux. Peut-on modifier les valeurs des paramètres ?
Sincèrement, Vladimir.
***
1. En ce qui concerne le réticule, il est clair. Dans la capture d'écran, l'année est 2019 et le mois est octobre.
***
Merci pour cette précision.
2. Je ne comprends pas bien l'ordre en attente. Comment avez-vous déterminé que l'EA a défini un ordre en attente et n'a pas ouvert une position immédiatement au début de l'heure ? Pouvez-vous être plus précis ?
***
Dans le testeur visuel, il suffit de regarder l'onglet "Historique".
3. Avec les valeurs par défaut des modules de signaux, le conseiller expert fonctionne bien. N'est-il pas possible de modifier les valeurs des paramètres ?
***
Bien sûr que vous pouvez, mais seulement si vous comprenez ce que vous faites et si vous comprenez quel paramètre est responsable de quoi.
Voulez-vous parler de l'heure (par exemple, l'horloge affichait 15-00) ou voulez-vous dire qu'une nouvelle barre est née sur l'échelle de temps H1 ?
Je veux dire, l'horloge indiquait 15-00.
Et avec quel degré de certitude voulez-vous le résultat ?
Juste un exemple : Vous voulez voir l'heure sur l'horloge comme étant 3pm. Et vous l'attendez. Mais à ce moment-là, il n'y avait pas de tic ou il n'y avait pas de connexion au serveur. Et puis tu as les tics, mais le temps est de 15 heures 00 minutes et 36 secondes. Que vas-tu faire ?
Et avec quel degré de certitude voulez-vous le résultat ?
Juste un exemple : Vous voulez voir l'heure sur l'horloge comme étant 3pm. Et vous l'attendez. Mais à ce moment-là, il n'y avait pas de tique ou il n'y avait pas de connexion au serveur. Et puis tu as les tics, mais le temps est de 15 heures 00 minutes et 36 secondes. Qu'allez-vous faire ?