新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 219 1...212213214215216217218219220221222223224225226...1953 新评论 Artyom Trishkin 2017.05.29 09:23 #2181 Alexey Viktorov:Artyom,我的回答并不是以这样的话开头的 抛物线有严格的交替性,一个方向的两个信号即使在不同的柱子上也不可能。而且你根本不需要为此发明什么,即使在零杆上,它也不会发出响声,就像MA。嘎嘎声--我以前不止一次注意到。也许从那时起有些变化,但零条上的点可以消失--原来是这样。我像往常一样从以下情况出发:以后可能会把指标换成另一个--而这块代码已经独立工作了--习惯...... AlGuru 2017.05.29 12:48 #2182 Artyom Trishkin: 会有帮助 吗?我在那里贴了一个模板,你可以根据这个模板自己制作你想要的东西。 谢谢,大致应用了一下,但还是感觉有时开仓后会立即改变SL。 Artyom Trishkin 2017.05.29 17:48 #2183 AlGuru: 谢谢你,我大致应用了一下,但我仍然感觉到,有时在开仓时,它立即改变SL。 然后你需要解开SL值,并把Print() 也放在拖网里面,这样它就会报告它的工作和它所达到的值--否则感觉就只是一种感觉;) Rustam Bikbulatov 2017.05.30 05:35 #2184 出现了一个问题,伙计们!魔法数字的位数有限制吗?应该有多少个数字? Alekseu Fedotov 2017.05.30 06:22 #2185 Rustam Bikbulatov: 这里有一个问题要问你们!神奇数字的位数有限制吗?应该有多少个数字? 一个magik通常由一个整数int类型定义。䵮䵮整数int类型的大小为4字节(32位)。最小值为-2,147,483,648,最大值为2,147,483,647。像这样。 Rustam Bikbulatov 2017.05.30 06:37 #2186 Alekseu Fedotov: Magik通常由整数int类型定义。䵮䵮整数int类型的大小为4字节(32位)。最小值为-2,147,483,648,最大值为2,147,483,647。像这样。 非常感谢您! danya-asg 2017.05.30 16:45 #2187 大家好,我写了一个EA,但搞不清楚代码。我需要这个函数在服务器的每一个刻度和每一秒钟运行。我刚刚调用了我的函数2次,通过OnTick,然后通过OnTimer ,似乎一切都做得很正确,但它还是经常漏掉一秒钟,由于这个原因,有时不能在正确的时刻工作。帮助,谁知道,将非常感激)。也许是因为与服务器的连接中断而停止工作?有没有可能让它每秒钟都运行一次,即使通信中断,而且秒数与服务器时间严格同步?int OnInit() { EventSetTimer(1); return(INIT_SUCCEEDED); }void OnTick(){Clicker (); //-- старт каждый тик}void OnTimer(){Clicker (); //-- старт каждую секунду}void Clicker() {//--- тут идёт порядка 30 строк кода, вырезал чтобы никого не грузить Comment("Sek = " + (Seconds())); return; // Выход из start() } Any questions from newcomers 专家顾问 - 杂项问题 Any rookie question, so ivan-baaton 2017.05.30 17:35 #2188 我的朋友们,请帮助一个MQL4程序员初学者 提供一些建议。 我已经写好了代码,应该确定过去n个柱子的最大开盘价,但由于某些原因,EA认为是图表上所有柱子的最大开盘价。void OnTick(){ for (int i = 1; i <= BarTotal; i++) { double High_Open = iOpen(Symbol(), PERIOD_H1, i); if (High_Open >= Current_High) { Current_High = High_Open; Print (Current_High); } }}谢谢你) Artyom Trishkin 2017.05.30 18:23 #2189 ivan-baaton: 朋友们,请帮助一个初学 MQL4的程序员 提供一些建议。 我写了一段代码,应该确定过去n个柱状体的最大开盘价,但EA出于某种原因考虑了图表上所有柱状体的最大开盘价。...谢谢你)试试这样的函数。//+------------------------------------------------------------------+ double GetMaxOpen(const string symbol_name,const ENUM_TIMEFRAMES timeframe,uint start_pos,const uint count){ double array[]; ResetLastError(); if(CopyOpen(symbol_name,timeframe,start_pos,count,array)==count) return(array[ArrayMaximum(array)]); Print(__FUNCTION__," > Ошибка копирования в массив: ",GetLastError()); return(WRONG_VALUE); } //+------------------------------------------------------------------+ 我没有看过,实际上是自己写的,所以我可能遗漏了什么。 danya-asg 2017.05.30 21:03 #2190 我已经明白了我的错误,但我不明白如何解决它。任务通常是每秒启动一次,但从当前蜡烛开始的时间没有被正确计算。Seconds()函数 从最后一个已知的tick的数据中输出 秒数,但我需要以某种方式计算在函数被调用 的那一刻,从分钟蜡烛开盘以来的真实秒数,即使在过去几秒钟内根本没有tick。TimeSeconds (TimeLocal())或( TimeLocal() - Time[0])也不会起作用, 因为本地时间可能与服务器相差几秒。如何解决这个问题? 1...212213214215216217218219220221222223224225226...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Artyom,我的回答并不是以这样的话开头的
抛物线有严格的交替性,一个方向的两个信号即使在不同的柱子上也不可能。而且你根本不需要为此发明什么,即使在零杆上,它也不会发出响声,就像MA。
嘎嘎声--我以前不止一次注意到。也许从那时起有些变化,但零条上的点可以消失--原来是这样。
我像往常一样从以下情况出发:以后可能会把指标换成另一个--而这块代码已经独立工作了--习惯......
会有帮助 吗?我在那里贴了一个模板,你可以根据这个模板自己制作你想要的东西。
谢谢,大致应用了一下,但还是感觉有时开仓后会立即改变SL。
谢谢你,我大致应用了一下,但我仍然感觉到,有时在开仓时,它立即改变SL。
这里有一个问题要问你们!神奇数字的位数有限制吗?应该有多少个数字?
一个magik通常由一个整数int类型定义。
䵮䵮
整数int类型的大小为4字节(32位)。最小值为-2,147,483,648,最大值为2,147,483,647。
像这样。
Magik通常由整数int类型定义。
䵮䵮
整数int类型的大小为4字节(32位)。最小值为-2,147,483,648,最大值为2,147,483,647。
像这样。
非常感谢您!
大家好,我写了一个EA,但搞不清楚代码。我需要这个函数在服务器的每一个刻度和每一秒钟运行。我刚刚调用了我的函数2次,通过OnTick,然后通过OnTimer ,似乎一切都做得很正确,但它还是经常漏掉一秒钟,由于这个原因,有时不能在正确的时刻工作。帮助,谁知道,将非常感激)。也许是因为与服务器的连接中断而停止工作?有没有可能让它每秒钟都运行一次,即使通信中断,而且秒数与服务器时间严格同步?
int OnInit()
{
EventSetTimer(1);
return(INIT_SUCCEEDED);
}
void OnTick()
{
Clicker (); //-- старт каждый тик
}
void OnTimer()
{
Clicker (); //-- старт каждую секунду
}
void Clicker()
{
//--- тут идёт порядка 30 строк кода, вырезал чтобы никого не грузить
Comment("Sek = " + (Seconds()));
return; // Выход из start()
}
我已经写好了代码,应该确定过去n个柱子的最大开盘价,但由于某些原因,EA认为是图表上所有柱子的最大开盘价。
谢谢你)
朋友们,请帮助一个初学 MQL4的程序员 提供一些建议。
我写了一段代码,应该确定过去n个柱状体的最大开盘价,但EA出于某种原因考虑了图表上所有柱状体的最大开盘价。
谢谢你)
试试这样的函数。
我没有看过,实际上是自己写的,所以我可能遗漏了什么。
我已经明白了我的错误,但我不明白如何解决它。任务通常是每秒启动一次,但从当前蜡烛开始的时间没有被正确计算。
Seconds()函数 从最后一个已知的tick的数据中输出 秒数,但我需要以某种方式计算在函数被调用 的那一刻,从分钟蜡烛开盘以来的真实秒数,即使在过去几秒钟内根本没有tick。
TimeSeconds (TimeLocal())或( TimeLocal() - Time[0])也不会起作用, 因为本地时间可能与服务器相差几秒。如何解决这个问题?