新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 357 1...350351352353354355356357358359360361362363364...1953 新评论 YarTrade 2017.11.02 12:07 #3561 STARIJ: 试着在文件中写上 日期、时间、出价和每一个刻度 的计算结果。然后将其上传到Excel并进行检查。每十几行的程序都要进行核对,这几乎是没有意义的!但你看,你在条件运算符的每个分支中都有返回,也就是说,它总是被执行。所以我们把它从条件运算符中拿出来。Bid[1] - 是这样吗?谢谢你。我现在就去试试。我理解了你的代码要点,这对我来说已经是一个很大的成就了:)我也看到了自己的不足之处。什么是SRC按钮? YarTrade 2017.11.02 12:32 #3562 STARIJ: 尝试将 日期、时间、出价和你的计算结果写到文件中 的每一个刻度。然后将其上传到Excel并进行检查。每十几行的程序都要进行核对,这几乎是没有意义的!但你看,你在条件运算符的每个分支中都有返回,也就是说,它总是被执行。所以我们把它从条件运算符的范围中拿出来。Bid[1] - 是这样的吗?我已经在自定义指标的"构造函数 "中插入了代码。我已经把它编好了。编译器产生了1个警告:两个OnCalculate被定义了。将使用OHLC版本(我不明白它是什么意思)。得到了汇编的产品。把它附在图表上。图表的独立窗口被打开,但它没有显示任何关于直方图的信息,尽管有刻度。有什么问题吗?请指教?#property version "1.00" #property strict #property indicator_separate_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_HISTOGRAM #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Label2 #property indicator_label2 "Label2" #property indicator_type2 DRAW_HISTOGRAM #property indicator_color2 clrDarkTurquoise #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //- local variables int Tick, Tick2; // Для вставки программы используйте кнопку SRC double Bid1; //--- indicator buffers double Label1Buffer[]; double Label2Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,Label1Buffer); SetIndexBuffer(1,Label2Buffer); Bid1=Bid; //--- return(INIT_SUCCEEDED); } void start() // Вместо start более модно писать OnTick { if(Bid > Bid1) Tick++; else Tick2++; Bid1=Bid; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ Artyom Trishkin 2017.11.02 12:43 #3563 YarTrade: 我把代码插入了自定义指标的"构造函数 "中。编纂了它。编译器给了我1个警告:两个OnCalculate被定义。将使用OHLC版本(我不知道它是什么意思)。得到了汇编的产品。把它附在图表上。图表的独立窗口被打开,但它没有显示任何关于直方图的信息,尽管有刻度。有什么问题吗?你能提供建议吗?当你在这里粘贴代码时,使用信息编辑器SRC的按钮--在信息领域的顶部,在信息格式面板上有许多有用的东西。抬起你的眼睛,就在你打字的文本上方,这并不难,是吗?而且,人们看正常的代码而不是看招摇过市的代码会更愉快,不是吗?我已经在你的帖子中正确插入了你的代码(SRC)。 YarTrade 2017.11.02 12:52 #3564 Artyom Trishkin:当你在这里粘贴代码时,使用SRC帖子编辑器按钮--在输入框顶部的帖子格式化面板中,有很多有用的东西。抬起你的眼睛,就在你打字的文字上方,这并不难,不是吗?而且,人们看的是正常的代码,而不是挥霍的东西,这更让人高兴,不是吗?我把你的代码正确地放在你的帖子里(SRC)。是的,谢谢。我不知道这一点。 Konstantin Erin 2017.11.02 12:54 #3565 YarTrade: 向编译器发出了1个警告:定义了两个OnCalculate。将使用OHLC版本(不确定这意味着什么)。得到了汇编的产品。把它附在图表上。图表的独立窗口被打开,但它没有显示任何关于直方图的信息,尽管有刻度。有什么问题吗?请指教?这个函数以前叫Start,现在在专家顾问中叫OnTick,在指标中叫OnCalculate。编译器警告说:你在不同的名字下有两次相同的函数。将Start的内容移到OnCalculate,并删除Start。你还需要在你的程序中描述,它应该显示什么和如何显示。首先为自己决定--什么形象必须存在?最好是通过编写脚本开始学习MQL语言。一个专家顾问更复杂,一个指标更复杂 YarTrade 2017.11.02 13:27 #3566 STARIJ:该函数过去被称为Start,现在在EA中被称为OnTick,在指标中被称为OnCalculate。编译器警告说:你在不同的名字下有两次相同的函数。将Start的内容移到OnCalculate,并删除Start。你还需要在你的程序中描述,它应该显示什么和如何显示。首先为自己决定--什么形象必须存在?最好是通过编写脚本开始学习MQL语言。专家顾问更难,指标则更难。我不能在OnCalculate 中插入Start的内容,并且得到了很多的错误 Konstantin Erin 2017.11.02 14:12 #3567 YarTrade: 我不能把Start的内容插入OnCalculate中,它产生了很多错误指示器只显示从开始的信息。数据窗口(Ctrl-D)显示光标所指向的蜡烛图的数据。//+------------------------------------------------------------------+ //| -Тики-07.mq4 | //+------------------------------------------------------------------+ #property version "1.00" #property strict #property indicator_separate_window #property indicator_buffers 2 // #property indicator_plots 2 в MQL-4 такое отсутствует #property indicator_label1 "Вверх" #property indicator_type1 DRAW_HISTOGRAM #property indicator_color1 Salmon #property indicator_style1 STYLE_SOLID #property indicator_width1 2 #property indicator_label2 "Вниз" #property indicator_type2 DRAW_HISTOGRAM #property indicator_color2 clrDarkTurquoise #property indicator_style2 STYLE_SOLID #property indicator_width2 2 datetime Время=0; // Время прошлого бара double Bid1; double Buf_1[], Buf_2[]; // 2 буфера //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { IndicatorDigits(0); SetIndexBuffer(0,Buf_1); SetIndexBuffer(1,Buf_2); Bid1=Bid; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { datetime Вр=Time[0]; // Время текущего бара if(Вр>Время) // Если новый бар { Время=Вр; // Запомнить Buf_1[0]=0; // и обнулить последний элемент буфера Buf_2[0]=0; } if(Bid > Bid1) Buf_1[0]++; else Buf_2[0]--; Bid1=Bid; return(rates_total); } Konstantin Erin 2017.11.02 14:25 #3568 Alexey Kozitsyn::) 以及你如何用函数的名称来表述所创造的情况? [删除] 2017.11.02 14:29 #3569 STARIJ: 那么你如何用函数名称来制定所创造的情况呢?开始--过时的名字。OnTick()是刻度处理函数的实际名称。总之,你如何定义它没有任何区别,只是 "潮流 "这个词让我微笑。 Konstantin Erin 2017.11.02 14:32 #3570 Alexey Kozitsyn:开始--过时的名字。OnTick()是刻度处理函数的实际名称。总之,你如何定义它并不重要,只是 "潮流 "这个词让你微笑。 过时是指不再使用。但是,开始活着,并将继续活着。 1...350351352353354355356357358359360361362363364...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
试着在文件中写上 日期、时间、出价和每一个刻度 的计算结果。然后将其上传到Excel并进行检查。每十几行的程序都要进行核对,这几乎是没有意义的!
但你看,你在条件运算符的每个分支中都有返回,也就是说,它总是被执行。所以我们把它从条件运算符中拿出来。
Bid[1] - 是这样吗?
谢谢你。我现在就去试试。我理解了你的代码要点,这对我来说已经是一个很大的成就了:)我也看到了自己的不足之处。
什么是SRC按钮?
尝试将 日期、时间、出价和你的计算结果写到文件中 的每一个刻度。然后将其上传到Excel并进行检查。每十几行的程序都要进行核对,这几乎是没有意义的!
但你看,你在条件运算符的每个分支中都有返回,也就是说,它总是被执行。所以我们把它从条件运算符的范围中拿出来。
Bid[1] - 是这样的吗?
我已经在自定义指标的"构造函数 "中插入了代码。我已经把它编好了。编译器产生了1个警告:两个OnCalculate被定义了。将使用OHLC版本(我不明白它是什么意思)。
得到了汇编的产品。把它附在图表上。图表的独立窗口被打开,但它没有显示任何关于直方图的信息,尽管有刻度。
有什么问题吗?请指教?
我把代码插入了自定义指标的"构造函数 "中。编纂了它。编译器给了我1个警告:两个OnCalculate被定义。将使用OHLC版本(我不知道它是什么意思)。
得到了汇编的产品。把它附在图表上。图表的独立窗口被打开,但它没有显示任何关于直方图的信息,尽管有刻度。
有什么问题吗?你能提供建议吗?
当你在这里粘贴代码时,使用信息编辑器SRC的按钮--在信息领域的顶部,在信息格式面板上有许多有用的东西。
抬起你的眼睛,就在你打字的文本上方,这并不难,是吗?而且,人们看正常的代码而不是看招摇过市的代码会更愉快,不是吗?
我已经在你的帖子中正确插入了你的代码(SRC)。
当你在这里粘贴代码时,使用SRC帖子编辑器按钮--在输入框顶部的帖子格式化面板中,有很多有用的东西。
抬起你的眼睛,就在你打字的文字上方,这并不难,不是吗?而且,人们看的是正常的代码,而不是挥霍的东西,这更让人高兴,不是吗?
我把你的代码正确地放在你的帖子里(SRC)。
是的,谢谢。我不知道这一点。
向编译器发出了1个警告:定义了两个OnCalculate。将使用OHLC版本(不确定这意味着什么)。
得到了汇编的产品。把它附在图表上。图表的独立窗口被打开,但它没有显示任何关于直方图的信息,尽管有刻度。
有什么问题吗?请指教?
这个函数以前叫Start,现在在专家顾问中叫OnTick,在指标中叫OnCalculate。编译器警告说:你在不同的名字下有两次相同的函数。将Start的内容移到OnCalculate,并删除Start。你还需要在你的程序中描述,它应该显示什么和如何显示。首先为自己决定--什么形象必须存在?最好是通过编写脚本开始学习MQL语言。一个专家顾问更复杂,一个指标更复杂
该函数过去被称为Start,现在在EA中被称为OnTick,在指标中被称为OnCalculate。编译器警告说:你在不同的名字下有两次相同的函数。将Start的内容移到OnCalculate,并删除Start。你还需要在你的程序中描述,它应该显示什么和如何显示。首先为自己决定--什么形象必须存在?最好是通过编写脚本开始学习MQL语言。专家顾问更难,指标则更难。
我不能在OnCalculate 中插入Start的内容,并且得到了很多的错误
指示器只显示从开始的信息。数据窗口(Ctrl-D)显示光标所指向的蜡烛图的数据。
:)
那么你如何用函数名称来制定所创造的情况呢?
开始--过时的名字。OnTick()是刻度处理函数的实际名称。
总之,你如何定义它没有任何区别,只是 "潮流 "这个词让我微笑。
开始--过时的名字。OnTick()是刻度处理函数的实际名称。
总之,你如何定义它并不重要,只是 "潮流 "这个词让你微笑。