Je n'ai pas besoin d'une sous-fenêtre, l'indicateur doit être placé sur le graphique des prix comme un graphique standard.
Je le considère comme un exemple et j'essaie de le comprendre.
Je souhaite que l'indicateur monté sur le graphique ait son propre numéro, afin que le nombre nécessaire de copies puisse être créé sur le graphique à l'aide du bouton "Ajouter" ...... Je veux en supprimer un sélectionné par le bouton "croix" ........ (je ne veux pas encore les décrire))
Quand un indicateur doit être ajouté à la fenêtre principale du graphique
sous_fenêtre
[0 signifie fenêtre principale du graphique. Pour ajouter un indicateur à une nouvelle fenêtre, le paramètre doit être supérieur d'une unité à l'indice de la dernière fenêtre existante, c'est-à-dire égal àCHART_WINDOWS_TOTAL. Si la valeur du paramètre dépasseCHART_WINDOWS_TOTAL, une nouvelle fenêtre ne sera pas créée, l'indicateur ne sera pas ajouté.
Vous ne pouvez pas ajouter l'indicateur à OnInit() - puisque l'expert n'a pas encore été formé à ce stade. Mais la fonction - OnTick() est un signe du fonctionnement complet de l'Expert Advisor.
//+------------------------------------------------------------------+//| 0000.mq5 |//| Copyright 2016, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2016, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"inputint MA_Period=21;
inputint MA_Shift=0;
inputENUM_MA_METHOD MA_Method=MODE_SMA;
//--- variablesint MA_handle=INVALID_HANDLE;
bool first_start=false;
//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ intOnInit()
{
Print(__FUNCTION__,", first_start = ",first_start);
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",MA_Period,MA_Shift,MA_Method,PRICE_CLOSE);
if(MA_handle==INVALID_HANDLE)
return(INIT_FAILED);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(!first_start)
{
if(AddIndicator()) //попробуем добавить индикатор на график
first_start=true;
}
}
//+------------------------------------------------------------------+ //| Функция проверки и добавления индикатора на график | //+------------------------------------------------------------------+ bool AddIndicator()
{
//--- сбросим код ошибки ResetLastError();
//--- накладываем индикатор на график int subwindow=0;
PrintFormat("Добавляем индикатор на окно %d графика",subwindow);
if(!ChartIndicatorAdd(0,subwindow,MA_handle))
{
PrintFormat("Не удалось добавить индикатор на окно %d графика. Код ошибки %d",
subwindow,GetLastError());
}
return(true);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+
Et réécrivez la fonction AddIndicator() pour qu'elle renvoie false en cas d'échec de l'ajout d'un indicateur.
Je n'ai pas besoin d'une sous-fenêtre, l'indicateur doit être placé sur le graphique des prix comme un graphique standard.
Je le considère comme un exemple et j'essaie de le comprendre.
Je souhaite que l'indicateur monté sur le graphique ait son propre numéro, afin que le nombre nécessaire de copies puisse être créé sur le graphique à l'aide du bouton "Ajouter" ...... Je veux en supprimer un sélectionné par le bouton "croix" ........ (il y a beaucoup de fantasmes et je ne veux pas encore les décrire))
L'indicateur peut avoir un nom, si vous aimez les chiffres, que ce soit un chiffre. Toutefois, il ne s'agira pas d'un numéro mais d'un texte. Voulez-vous un panneau de contrôle personnalisé qui vous permette d'ajouter n'importe quel numéro d'indicateur parmi un ou plusieurs ?
-Aleks-: Pouvez-vous m'indiquer comment filtrer par numéro de jour et séparément par numéro de semaine dans un mois ? J'ai fait cela à l'intérieur du jour :
int НомерДНЯвМесяце=TimeDay(iTime(_Symbol,0,0));
int НомерДняНедели=TimeDayOfWeek(iTime(_Symbol,0,0));
int НомерНеделиВмесяце=NormalizeDouble(НомерДНЯвМесяце/7,0);
pako: Il y a quatre cinq semaines dans un mois, aujourd'hui est la quatrième semaine du mois.
Je vois. Il veut donc comptabiliser les semaines de cette nature le 29 du mois précédent (lundi, par exemple) et jusqu'au 31 du mois en cours (lundi également, par exemple). C'est plus d'un mois. Il n'est pas logique de compter ces semaines. Si ce n'est pas le cas, alors la semaine ne sera pas une semaine entière. Non, pas de point....
Bonjour Vladimir.
J'ai dû mal formuler ma question.
Je n'ai pas besoin d'une sous-fenêtre, l'indicateur doit être placé sur le graphique des prix comme un graphique standard.
Je le considère comme un exemple et j'essaie de le comprendre.
Je souhaite que l'indicateur monté sur le graphique ait son propre numéro, afin que le nombre nécessaire de copies puisse être créé sur le graphique à l'aide du bouton "Ajouter" ...... Je veux en supprimer un sélectionné par le bouton "croix" ........ (je ne veux pas encore les décrire))
Quand un indicateur doit être ajouté à la fenêtre principale du graphique
sous_fenêtre
[0 signifie fenêtre principale du graphique. Pour ajouter un indicateur à une nouvelle fenêtre, le paramètre doit être supérieur d'une unité à l'indice de la dernière fenêtre existante, c'est-à-dire égal àCHART_WINDOWS_TOTAL. Si la valeur du paramètre dépasseCHART_WINDOWS_TOTAL, une nouvelle fenêtre ne sera pas créée, l'indicateur ne sera pas ajouté.
Vous ne pouvez pas ajouter l'indicateur à OnInit() - puisque l'expert n'a pas encore été formé à ce stade. Mais la fonction - OnTick() est un signe du fonctionnement complet de l'Expert Advisor.
Et réécrivez la fonction AddIndicator() pour qu'elle renvoie false en cas d'échec de l'ajout d'un indicateur.Bonjour Vladimir.
J'ai dû mal formuler ma question.
Je n'ai pas besoin d'une sous-fenêtre, l'indicateur doit être placé sur le graphique des prix comme un graphique standard.
Je le considère comme un exemple et j'essaie de le comprendre.
Je souhaite que l'indicateur monté sur le graphique ait son propre numéro, afin que le nombre nécessaire de copies puisse être créé sur le graphique à l'aide du bouton "Ajouter" ...... Je veux en supprimer un sélectionné par le bouton "croix" ........ (il y a beaucoup de fantasmes et je ne veux pas encore les décrire))
bool TimeStart=false;
int hour=12;
//--Фильтр по ремени открытия бара внутри дня
if (TimeStart==true)
{
datetime Open_timePos=iTime(_Symbol,0,0);
MqlDateTime str1;
TimeToStruct(Open_timePos,str1);
str1.hour=hour;
str1.min=0;
str1.sec=0;
datetime start_time=StructToTime(str1);
if (start_time>iTime(_Symbol,0,0))
{
BuyPrIMA=false;
SellPrIMA=false;
}
Pouvez-vous m'indiquer comment filtrer par numéro de jour et séparément par numéro de semaine dans un mois ? J'ai fait cela à l'intérieur du jour :
Il demande la semaine du mois.
J'y ai fait les trois options. Lequel veut-il utiliser comme base, s'il vous plaît ?
Celui-là ?
J'ai fait les trois options là. Veuillez préciser.
Il y a cinq à six semaines dans le mois, aujourd'hui c'est la quatrième semaine du mois.
str.day jour du mois
str.day_of_week day
Il y a quatre cinq semaines dans un mois, aujourd'hui est la quatrième semaine du mois.
J'y ai fait les trois options. Lequel veut-il utiliser comme base, s'il vous plaît ?
Celui-là ?