Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Il s'avère que lorsqu'un objet est créé, la valeur "_H", _L", est attribuée.
Il faut y réfléchir, je suis d'accord. Et je ne bois pas beaucoup.
Je pense que ça va s'améliorer avec le temps. Merci.
objName+"_H",
objName+"_L",
Pouvez-vous me dire que pour une raison quelconque, lorsque vous changez le paramètre indicator_chart_window enindicator_separate_window, l'image de la fenêtre principale ne s'affiche pas dans la sous-fenêtre.
Veuillez me dire s'il y a une erreur. Ce qu'il faut changer, c'est que le losange et la croix soient dessinés sur la barre elle-même et non sur la barre de zéro. (le premier bar de chaque mois).
Merci.
//+------------------------------------------------------------------+
#property strict
#property indicator_chart_window
//--- Внешние Глобальные переменные
extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий)
//--- Глобальные переменные
string Name_Obj; //--- Имя Элементов
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
double Buf_High[];
double Buf_Low[];
MqlDateTime mqlDateTime;
MqlRates mqlRates[1];
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,Buf_High);
SetIndexStyle (0,DRAW_ARROW,0,0);
SetIndexArrow (0,116);
SetIndexBuffer(1,Buf_Low);
SetIndexStyle (1,DRAW_ARROW,0,0);
SetIndexArrow (0,116);
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
int i;
for (i=0; i<Bars; i++) //--- Выбираем все установленные объекты
{
ObjectDelete(Name_Obj + " High" + DoubleToStr(i,0)); //--- Удаляем все объекты
ObjectDelete(Name_Obj + " Low" + DoubleToStr(i,0)); //--- Удаляем все объекты
}
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(int i = 0; i < limit; i ++)
{
//+------------------------ При выборе кол-ва линий отобразим их ко-во------------------------+
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
//+------------------------ Рисуем линии -----------------------------------------------------+
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),PERIOD_MN1,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
CopyRates(_Symbol, PERIOD_W1, t_Line, 1, mqlRates);
{
Buf_High[i] = mqlRates[i].high;
Buf_Low[i] = mqlRates[i].low;
//+------------------------ Рисуем Объекты -----------------------------------------------------+
//--- Строим линию по Хай
ObjectCreate (0,Name_Obj + " High" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].high,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].high);
ObjectSetInteger(0,Name_Obj + " High" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);
//--- Строим линию по Лоу
ObjectCreate (0,Name_Obj + " Low" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].low,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].low);
ObjectSetInteger(0,Name_Obj + " Low" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);
}
i++;
}
}
}
return(0);
}
Veuillez me dire s'il y a une erreur. Ce qu'il faut changer, c'est que le losange et la croix soient dessinés sur la barre elle-même et non sur la barre de zéro. (le premier bar de chaque mois).
Merci.
Commencez déjà à apprendre la nouvelle syntaxe, je comprendrais un vieux dinosaure qui n'écrit que dans l'ancien langage et n'a aucune envie de se reconvertir, mais avoir juste commencé à apprendre et se tenir sur une syntaxe obsolète depuis plusieurs années avec une touche de neuf, c'est pervers.
Et commencez à lire l'aide afin de comprendre au moins ce qui se passe.
C'est compréhensible, mais où est le nouveau et où est l'ancien, on ne peut pas le dire en même temps. Et j'ai lu le manuel, il est écrit dans une langue trop intelligente.
Merci surtout pour la critique. Cela m'aide à avancer dans la bonne direction.
Pouvez-vous me donner un indice ? Comment faire des majorations pour les périodes trimestrielles ?
Je dois tracer des lignes verticales lorsque ces dates se produisent.
1er janvier.1er avril.1er juillet.1er octobre.
Lisez d'abord attentivement mes propos, puis lisez la documentation du langage, en particulier la section "Objets graphiques".
La documentation indique clairement quels paramètres doivent être présents lors de la création d'un objet graphique. L'un d'eux est TIME - ce sont les dates que vous devez indiquer dans ce paramètre. Le prix n'est pas important pour les lignes verticales, mais il est nécessaire pour la fonction. Il n'y a aucune difficulté à le faire.
Lisez d'abord attentivement mes propos, puis lisez attentivement la documentation du langage, en particulier la section "Objets graphiques".
La documentation indique clairement quels paramètres doivent être présents lors de la création d'un objet graphique. L'une d'entre elles est TIME : ce sont vos dates et elles doivent être insérées dans ce paramètre. Le prix n'est pas important pour les lignes verticales, mais il est obligatoire pour la fonction, donc vous devez mettre 0. Il n'y a aucune difficulté à le faire.
Je ne sais pas comment faire. S'il vous plaît, dites-moi comment faire. La période maximale est d'un mois.
Dans la variablet_Line. nous devons insérer la valeur de 1st,2nd,3rd,4th, kv.
Je ne peux pas comprendre.
Je vous en serais reconnaissant.
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(int i = 0; i < limit; i ++)
{
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),PERIOD_MN1,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
{
ObjectCreate (Name_VLine + " VLine" + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0); //--- Создаём обьект вертикальную линию
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_STYLE,2); //--- Со стилем
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_COLOR,DimGray); //--- Со цветом
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_WIDTH,0); //--- С толщиной
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_BACK,0); //--- С типом отображения. Объект на заднем плане
}
i++;
}
}
}
return(0);
}