绘制一个正方形或长方形。真的需要帮助... - 页 4 12345678 新评论 Alexey Viktorov 2016.10.07 14:56 #31 Alex_Profit:事实证明,当一个对象被创建时,价值"_H",_L",被归入。嗯,你必须考虑一下,我同意。而且我不怎么喝酒。我想随着时间的推移,它会变得更好。谢谢你。objName+"_H",objName+"_L", 我不是在说你......我写这个答案的时候还不是很清醒。 Alex_Profit 2016.10.07 21:01 #32 谢谢你,阿格拉梅内。第一阶段已经结束。 Alex_Profit 2016.10.08 18:27 #33 你能告诉我,由于某些原因,当你把 indicator_chart_window 参数改为indicator_separate_window 时,主窗口的图片没有显示在子窗口中。 Vitalie Postolache 2016.10.08 18:36 #34 Alex_Profit: 你能告诉我,由于某些原因,当你把 indicator_chart_window 参数改为indicator_separate_window 时,主窗口的图片没有显示在子窗口中。 该指标需要从图表中删除并重新添加。 Alex_Profit 2016.10.11 05:42 #35 如果有错误,请告诉我。需要改变的是,使菱形和十字形画在条形本身上,而不是在零条上。(在每个月的第一条)。谢谢你。//+------------------------------------------------------------------+#property strict#property indicator_chart_window //--- Внешние Глобальные переменные extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий) //--- Глобальные переменные string Name_Obj; //--- Имя Элементов#property indicator_buffers 2#property indicator_color1 Red#property indicator_color2 Bluedouble 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);} 懒惰是进步的动力,或者如何交互性的使用图形 分形线的构造 考虑 T. Demark 方法的趋势线指标 Vitalie Postolache 2016.10.11 06:48 #36 Alex_Profit:如果有错误,请告诉我。需要改变的是,使菱形和十字形画在条形本身上,而不是在零条上。(在每个月的第一条)。谢谢你。已经开始学习新的语法了,我可以理解一个只用旧语言写作的老恐龙,没有意愿重新训练,但是刚刚开始学习,站在一个已经过时了几年的语法上,还带着一丝新意,这就很反常了。并开始阅读帮助,这样你至少能理解发生了什么事。 Alex_Profit 2016.10.11 06:54 #37 这是可以理解的,但哪里是新的,哪里是旧的,你一下子说不清楚。而我读了手册,它的语言写得太巧妙了。特别感谢你的批评。它帮助我朝着正确的方向前进。 Alex_Profit 2016.10.14 07:59 #38 你能给我一个提示吗?我如何对季度进行加价?我需要在这些日期出现时画出垂直线。一月一日、四月一日、七月一日、十月一日。 Alexey Viktorov 2016.10.14 08:48 #39 首先仔细阅读我的话,然后阅读语言文档,特别是 "图形对象 "部分。文档中明确指出了在创建图形对象 时必须有哪些参数。其中之一是时间--这些是你需要输入这个参数的日期。价格对垂直线来说并不重要,但对功能来说是必要的。这样做并不困难。 Alex_Profit 2016.10.17 08:49 #40 AlexeyVik:首先仔细阅读我的话,然后仔细阅读语言文档,特别是 "图形对象 "部分。文档中清楚地说明了在创建图形对象时应该有哪些参数。其中一个是TIME,这些是你的日期,应该插入这个参数中。价格对于垂直线来说并不重要,但对于函数来说是必须的,所以你必须填0。这样做并不困难。我不知道该怎么做。请告诉我如何做。最长期限为一个月。在变量t_Line 中,我们需要插入第1、2、3、4、kv的值。 我无法理解。 我将不胜感激。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);} Drawing a square or 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
事实证明,当一个对象被创建时,价值"_H",_L",被归入。
嗯,你必须考虑一下,我同意。而且我不怎么喝酒。
我想随着时间的推移,它会变得更好。谢谢你。
objName+"_H",
objName+"_L",
你能告诉我,由于某些原因,当你把 indicator_chart_window 参数改为indicator_separate_window 时,主窗口的图片没有显示在子窗口中。
如果有错误,请告诉我。需要改变的是,使菱形和十字形画在条形本身上,而不是在零条上。(在每个月的第一条)。
谢谢你。
//+------------------------------------------------------------------+
#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);
}
如果有错误,请告诉我。需要改变的是,使菱形和十字形画在条形本身上,而不是在零条上。(在每个月的第一条)。
谢谢你。
已经开始学习新的语法了,我可以理解一个只用旧语言写作的老恐龙,没有意愿重新训练,但是刚刚开始学习,站在一个已经过时了几年的语法上,还带着一丝新意,这就很反常了。
并开始阅读帮助,这样你至少能理解发生了什么事。
这是可以理解的,但哪里是新的,哪里是旧的,你一下子说不清楚。而我读了手册,它的语言写得太巧妙了。
特别感谢你的批评。它帮助我朝着正确的方向前进。
你能给我一个提示吗?我如何对季度进行加价?
我需要在这些日期出现时画出垂直线。
一月一日、四月一日、七月一日、十月一日。
首先仔细阅读我的话,然后阅读语言文档,特别是 "图形对象 "部分。
文档中明确指出了在创建图形对象 时必须有哪些参数。其中之一是时间--这些是你需要输入这个参数的日期。价格对垂直线来说并不重要,但对功能来说是必要的。这样做并不困难。
首先仔细阅读我的话,然后仔细阅读语言文档,特别是 "图形对象 "部分。
文档中清楚地说明了在创建图形对象时应该有哪些参数。其中一个是TIME,这些是你的日期,应该插入这个参数中。价格对于垂直线来说并不重要,但对于函数来说是必须的,所以你必须填0。这样做并不困难。
我不知道该怎么做。请告诉我如何做。最长期限为一个月。
在变量t_Line 中,我们需要插入第1、2、3、4、kv的值。
我无法理解。
我将不胜感激。
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);
}