新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 52 1...454647484950515253545556575859...1953 新评论 Artyom Trishkin 2017.01.02 23:18 #511 trader781:如果停止/停止是200,该怎么做?但tp=NormalizeDouble((price+(TakeProfit*_Point)),Digits)。按117.000的汇率计算,美元兑日元将产生317.000的收益。预期结果 117.200如果Point()==0.001(在USDJPY上),那么200*0.001就等于0.2。现在,如果我们把0.2加到117.0,我们得到117.2哪里有 "不公平"? Mickey Moose 2017.01.02 23:30 #512 Artyom Trishkin:如果Point()==0.001(在USDJPY上),那么200*0.001就等于0.2。现在,如果我们把0.2加到117.0,我们得到117.2而 "不公平 "在哪里?预计117+(200*_Point)将产生117.200。它通常在欧元兑美元上测试维塔利在上面描述了它,谢谢你。我想我已经找到了。我认为它作为中间算法已经很好了,现在有必要以某种方式过滤这些时刻。https://www.mql5.com/ru/charts/6351907/audjpy-m5-metaquotes-software-corp График AUDJPY, M5, 2017.01.02 22:49 UTC, MetaQuotes Software Corp., MetaTrader 4, Demo www.mql5.com Символ: AUDJPY. Период графика: M5. Брокер: MetaQuotes Software Corp.. Торговая платформа: MetaTrader 4. Режим торговли: Demo. Дата: 2017.01.02 22:49 UTC. Artyom Trishkin 2017.01.03 00:20 #513 trader781:117+(200*_Point)预计将给出117.200的输出。...嗯,这就是他给...我给你看了计算结果。或者你有多币种,并从一个 "非本地 "符号中获取数据?然后使用SymbolInfoDouble()和(int)SymbolInfoInteger(),而不是Point()和Digits()。 Mickey Moose 2017.01.03 17:21 #514 Artyom Trishkin:嗯,这就是他给...我给你看了计算结果。或者你有一个多币种,并从一个 "非本地 "符号中获取数据?然后用SymbolInfoDouble()和(int)SymbolInfoInteger()代替Point()和Digits()。谢谢你,它的工作))))。我目前正在寻找一种方法,在一连串的订单中插入一个追踪止损。我有10个订单,从115.000到117.000,每步200个。每一批都比前一批大X值目标是在整个订单链上设置追踪止损,使用以下计算方法(平均价格)+(y*_Point)。我有跟踪止损,我的问题是如何将其附加到整个堆栈的平均价格上,以及如何根据手数计算。 Alexey Viktorov 2017.01.03 17:29 #515 trader781:谢谢你,它的工作))))。目前正在寻找一种在订单链中插入尾数的方法我有10个订单,从115.000到117.000,每步200个。每一批都比前一批大X值目标是在整个订单链上设置追踪止损,使用以下计算方法(平均价格)+(y*_Point)。我有 一个跟踪止损器本身;问题是如何将它附加到整个堆栈的 平均价格上,以及如何根据手数来计算它一个普遍的建议:从头开始学习编程。那么你就不会有这样的问题了,编程并不是一件容易的事。问题的实质是:因此,你必须查看循环中的所有订单,只选择 "必要的 "并修改它们。但你必须非常小心地对待这个问题,因为替换掉所选订单 工作的概率非常高。 Mickey Moose 2017.01.03 19:44 #516 Alexey Viktorov:一个普遍的建议:从头开始学习编程。那么就不会有这样的问题了,编程并不容易。问题的实质是:因此,你需要在循环中浏览所有的订单,只选择 "必要的 "并修改它们。但你必须非常小心地对待这个问题,因为替换掉所选订单 工作的概率非常高。 目前我正在做最后一个,其他的都暂停了,但方案不准确,我想做得更好。 Олег 2017.01.03 21:18 #517 大家好,我写了一个基于MAs的EA。(我自己在MQL4中开发了一段时间,决定从简单的东西开始)。所以我想知道我做错了什么。专家顾问的本质很简单:当两个或三个MAs交叉时发出警报(取决于方法:积极的=两个MAs的交叉,保守的=三个MAs的交叉)......。这就是全部。我将以自己的方式进入市场。在我的专家顾问中,我规定了两个功能。积极的--这是两个最快的MAs简单交叉的信号,保守的--当在两个快速的MAs交叉时,你也应该考虑最慢的那个(即趋势方向的信号)。问题是,专家顾问只给出一个警报(当它开始或改变时间框架时),而对所有后续的信号则保持沉默如果你能告诉我出了什么问题,我将非常感激。我已经根据MQL4的规则为所有的事件规定了功能。当然,我可以在On Tick事件中注册所有的功能,但我想单独注册功能,这样就可以很容易地调用 这些功能,我想随着时间的推移增加新的 "过滤器 "功能。编码================================================================================================extern bool Metod=false; // 方法选择:保守型或积极型。Extern int Time_Frame=1;//时间框架输入 bool Metod=false; //Conservative-TRUE | Aggressive-FALSE外部inttern FastMA_Parametr=5。外部int intMA_Parametr=8;外置 int SlowMA_Parametr=18;外来的,内向的,趋势的MA=163。外部 bool DemarkGo=false;外部的inttern Demperiod=4。int rez;//如果MA向下交叉,rez=-1。如果向上,rez=1。//+------------------------------------------------------------------+//初始化MAdouble FastMA=iMA(Symbol(),Time_Frame,FastMA_Parametr,0,3,0,0); // FastMAdouble MiddiMA=iMA(Symbol(),Time_Frame,MidMA_Parametr,0,3,0,0);// Average MAdouble SlowMA=iMA(Symbol(),Time_Frame,SlowMA_Parametr,0,1,0,0); Slow МА//+------------------------------------------------------------------+int OnInit(){rez=0。return(INIT_SUCCEEDED)。}//=======================================//------------------------------------------------------------------------------空白的OnDeinit(const int reason)。{}//=============================================//+---------------------,如果Metod=true---------------------------------------------+,则Konservative信号的函数。int Konservative()//检查3条线的向上交叉点{如果(Metod==true){如果(FastMA>MiddiMA&&MiddiMA>SlowMA&&rez<=0){Alert(Symbol(),Time_Frame,"----Up----.保守的")。rez=1。评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。return(rez)。}//检查3条线的向下交叉情况如果(FastMA<MiddiMA&&MiddiMA<SlowMA&&rez>=0){Alert(Symbol(),Time_Frame," ---- DOWN----.保守的")。rez=-1。评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。return(rez)。}}return(rez)。}//=================================================//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++激进的功能,如果int Agressive()// 检查2条线的向上交叉,没有慢速。{如果(Metod==false){如果(FastMA>MiddiMA&&rez<=0){Alert(Symbol(),Time_Frame,"----Up----.咄咄逼人")。rez=1。评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。}//检查2条线的向下交叉,没有慢速线如果(FastMA<MiddiMA&&rez>=0){Alert(Symbol(),Time_Frame," ---- DOWN----.激进")。rez=-1。评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。}}return(rez)。} Any questions from newcomers 通用EA:自定义策略和辅助交易类(第三章) 开发 EA 构造函数的一次尝试 Mickey Moose 2017.01.03 23:40 #518 Олег: 在这里,我认为你可以自己做。 附加的文件: 6645.mq4 7 kb Alexey Viktorov 2017.01.04 08:03 #519 trader781: 目前,这是最后一个订单,其他的都暂停了,但这个计划并不精确,我希望它能更好。不,不是100%。或者你说的是别的东西。一般来说,该算法如下。你设置了一个循环来浏览所有的订单。你选择下一个订单,与之合作。你检查一下,看看是否需要这个命令...如果不是,下一个循环的迭代...如果是 "需要",请检查它是否适合修改。只需比较它离其止损水平有多远如果距离足够远,就会修改订单。因此,如果你有一个对所有订单进行循环的修改函数,而在其调用之前,循环也在工作,那么所选的订单 将被改变... Mickey Moose 2017.01.04 08:59 #520 Alexey Viktorov:不,不是100%。或者你说的是别的东西。一般来说,该算法如下。你设置了一个循环来浏览所有的订单。你选择下一个订单,与之合作。你检查一下,看看是否需要这个命令...如果不是,下一个循环的迭代...如果是 "需要",那么你就检查它是否适合修改。只需比较它离其止损水平有多远如果足够远,就会修改命令。因此,如果你有一个对所有订单进行循环的修改函数,而在其调用之前,循环也在工作,那么所选的订单 将被改变... 问题是,总是会有某一批次的亏损订单,这些订单也必须以牺牲其他订单为代价来填补。触发因素是关闭时间。如果我们哪怕关闭一个,整个链条就会丢失。因此,问题是如何拖出所有选定的平均价格。 1...454647484950515253545556575859...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果停止/停止是200,该怎么做?
但
tp=NormalizeDouble((price+(TakeProfit*_Point)),Digits)。
按117.000的汇率计算,美元兑日元将产生317.000的收益。
预期结果 117.200
如果Point()==0.001(在USDJPY上),那么200*0.001就等于0.2。
现在,如果我们把0.2加到117.0,我们得到117.2
哪里有 "不公平"?
如果Point()==0.001(在USDJPY上),那么200*0.001就等于0.2。
现在,如果我们把0.2加到117.0,我们得到117.2
而 "不公平 "在哪里?
预计117+(200*_Point)将产生117.200。
它通常在欧元兑美元上测试
维塔利在上面描述了它,谢谢你。
我想我已经找到了。
我认为它作为中间算法已经很好了,现在有必要以某种方式过滤这些时刻。
https://www.mql5.com/ru/charts/6351907/audjpy-m5-metaquotes-software-corp
117+(200*_Point)预计将给出117.200的输出。
...嗯,这就是他给...我给你看了计算结果。或者你有多币种,并从一个 "非本地 "符号中获取数据?
然后使用SymbolInfoDouble()和(int)SymbolInfoInteger(),而不是Point()和Digits()。
嗯,这就是他给...我给你看了计算结果。或者你有一个多币种,并从一个 "非本地 "符号中获取数据?
然后用SymbolInfoDouble()和(int)SymbolInfoInteger()代替Point()和Digits()。
谢谢你,它的工作))))。
我目前正在寻找一种方法,在一连串的订单中插入一个追踪止损。
我有10个订单,从115.000到117.000,每步200个。
每一批都比前一批大X值
目标是在整个订单链上设置追踪止损,使用以下计算方法(平均价格)+(y*_Point)。
我有跟踪止损,我的问题是如何将其附加到整个堆栈的平均价格上,以及如何根据手数计算。
谢谢你,它的工作))))。
目前正在寻找一种在订单链中插入尾数的方法
我有10个订单,从115.000到117.000,每步200个。
每一批都比前一批大X值
目标是在整个订单链上设置追踪止损,使用以下计算方法(平均价格)+(y*_Point)。
我有 一个跟踪止损器本身;问题是如何将它附加到整个堆栈的 平均价格上,以及如何根据手数来计算它
一个普遍的建议:从头开始学习编程。那么你就不会有这样的问题了,编程并不是一件容易的事。
问题的实质是:因此,你必须查看循环中的所有订单,只选择 "必要的 "并修改它们。但你必须非常小心地对待这个问题,因为替换掉所选订单 工作的概率非常高。
一个普遍的建议:从头开始学习编程。那么就不会有这样的问题了,编程并不容易。
问题的实质是:因此,你需要在循环中浏览所有的订单,只选择 "必要的 "并修改它们。但你必须非常小心地对待这个问题,因为替换掉所选订单 工作的概率非常高。
大家好,我写了一个基于MAs的EA。(我自己在MQL4中开发了一段时间,决定从简单的东西开始)。所以我想知道我做错了什么。专家顾问的本质很简单:当两个或三个MAs交叉时发出警报(取决于方法:积极的=两个MAs的交叉,保守的=三个MAs的交叉)......。这就是全部。我将以自己的方式进入市场。在我的专家顾问中,我规定了两个功能。积极的--这是两个最快的MAs简单交叉的信号,保守的--当在两个快速的MAs交叉时,你也应该考虑最慢的那个(即趋势方向的信号)。问题是,专家顾问只给出一个警报(当它开始或改变时间框架时),而对所有后续的信号则保持沉默如果你能告诉我出了什么问题,我将非常感激。我已经根据MQL4的规则为所有的事件规定了功能。当然,我可以在On Tick事件中注册所有的功能,但我想单独注册功能,这样就可以很容易地调用 这些功能,我想随着时间的推移增加新的 "过滤器 "功能。
编码
================================================================================================
extern bool Metod=false; // 方法选择:保守型或积极型。
Extern int Time_Frame=1;//时间框架
输入 bool Metod=false; //Conservative-TRUE | Aggressive-FALSE
外部inttern FastMA_Parametr=5。
外部int intMA_Parametr=8;
外置 int SlowMA_Parametr=18;
外来的,内向的,趋势的MA=163。
外部 bool DemarkGo=false;
外部的inttern Demperiod=4。
int rez;//如果MA向下交叉,rez=-1。如果向上,rez=1。
//+------------------------------------------------------------------+
//初始化MA
double FastMA=iMA(Symbol(),Time_Frame,FastMA_Parametr,0,3,0,0); // FastMA
double MiddiMA=iMA(Symbol(),Time_Frame,MidMA_Parametr,0,3,0,0);// Average MA
double SlowMA=iMA(Symbol(),Time_Frame,SlowMA_Parametr,0,1,0,0); Slow МА
//+------------------------------------------------------------------+
int OnInit()
{
rez=0。
return(INIT_SUCCEEDED)。
}
//=======================================
//------------------------------------------------------------------------------
空白的OnDeinit(const int reason)。
{
}
//=============================================
//+---------------------,如果Metod=true---------------------------------------------+,则Konservative信号的函数。
int Konservative()
//检查3条线的向上交叉点
{
如果(Metod==true)
{
如果(FastMA>MiddiMA&&MiddiMA>SlowMA&&rez<=0)
{
Alert(Symbol(),Time_Frame,"----Up----.保守的")。
rez=1。
评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。
return(rez)。
}
//检查3条线的向下交叉情况
如果(FastMA<MiddiMA&&MiddiMA<SlowMA&&rez>=0)
{
Alert(Symbol(),Time_Frame," ---- DOWN----.保守的")。
rez=-1。
评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。
return(rez)。
}
}
return(rez)。
}
//=================================================
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
激进的功能,如果
int Agressive()
// 检查2条线的向上交叉,没有慢速。
{
如果(Metod==false)
{
如果(FastMA>MiddiMA&&rez<=0)
{
Alert(Symbol(),Time_Frame,"----Up----.咄咄逼人")。
rez=1。
评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。
}
//检查2条线的向下交叉,没有慢速线
如果(FastMA<MiddiMA&&rez>=0)
{
Alert(Symbol(),Time_Frame," ---- DOWN----.激进")。
rez=-1。
评论("FastMA",FastMA," MiddiMA",MiddiMA," SlowMA",SlowMA," rez",rez)。
}
}
return(rez)。
}
目前,这是最后一个订单,其他的都暂停了,但这个计划并不精确,我希望它能更好。
不,不是100%。或者你说的是别的东西。
一般来说,该算法如下。
你设置了一个循环来浏览所有的订单。
你选择下一个订单,与之合作。
你检查一下,看看是否需要这个命令...如果不是,下一个循环的迭代...
如果是 "需要",请检查它是否适合修改。只需比较它离其止损水平有多远
如果距离足够远,就会修改订单。
因此,如果你有一个对所有订单进行循环的修改函数,而在其调用之前,循环也在工作,那么所选的订单 将被改变...
不,不是100%。或者你说的是别的东西。
一般来说,该算法如下。
你设置了一个循环来浏览所有的订单。
你选择下一个订单,与之合作。
你检查一下,看看是否需要这个命令...如果不是,下一个循环的迭代...
如果是 "需要",那么你就检查它是否适合修改。只需比较它离其止损水平有多远
如果足够远,就会修改命令。
因此,如果你有一个对所有订单进行循环的修改函数,而在其调用之前,循环也在工作,那么所选的订单 将被改变...