新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 150 1...143144145146147148149150151152153154155156157...1953 新评论 Maxim Kuznetsov 2017.03.13 20:07 #1491 yaaarik777:晚上好!请帮我写代码,我觉得我自己做不到,大意是这样的。 底线是这样的:在这条线上,帮助痛苦和寻求的人。 如果你需要为你做 - 这是一个自由职业者。并帮助你讲述你想得到的东西,展示你所做的事情,描述失败的原因。 yaaarik777 2017.03.13 20:38 #1492 Maxim Kuznetsov: 重点是:在这一主题中,帮助痛苦和寻求的人。 如果你需要为你做--那是在自由职业者中。而要获得帮助,你需要告诉你想要得到什么,展示你正在做的事情,并描述失败的原因。 问题是,我不明白如何让EA只分析某一个特定的货币对的订单,而不是分析终端中所有货币对的订单。如果可以的话,请给我一个想法或代码例子,因为教科书上分别描述了什么工作和如何工作,但具体例子并不多。我将感谢您的帮助。谢谢你。 Sergey 2017.03.13 20:42 #1493 你好。我已经很久没有拿起飞镖了,而当我拿起飞镖时,结果是我不知道怎么玩。我在请求帮助。有一个好的老式EA,使用Rosh的ZigZag指标而且它像瑞士钟一样工作得很好。它附上了文本底部给出的不下载专家顾问的代码。EA的想法是,订单的打开和关闭是在不同ZigZag的巧合。现在我需要用另一个Rosh指标来代替指标,也是MT3时期ZigZag的最早版本之一。但这个指标有不同的ZigZag绘制算法。它的名字是High_Low v2 (ZigZag), (在附件中,由于某种原因,名字闪了一下)通过直觉的方法,有时是有效的,我只是改变了条件double zz1 = iCustom( NULL, 60, "ZigZag_Rosh",12, 5, 3, 0, 0) 。double zz2 = iCustom( NULL, 60, "ZigZag_Rosh",48, 20, 12, 0, 0) 。关于double zz1 = iCustom( NULL, 0, "High_Low v2 (ZigZag)",300, 6, 0, 0) 。double zz2 = iCustom( NULL, 0, "High_Low v2 (ZigZag)",300, 6, 0, 0) 。也就是说,我已经替换了一个自定义指标 的名称和它的 以分形为例,它对我很有效。.参数是相同的,因为两个Zigzag不需要相同。我不需要Zigzag的巧合,我只需要它的变化的事实。我把数字60换成了0,以便在所有TF中工作。替换后,EA的编译没有错误,但当连接到以下设备时,它强烈拒绝工作此外,它还拒绝在策略测试器中工作。不愿意工作。问题是:什么是错的?还有一个问题,什么是正确的方法?谢谢,抱歉文字太大。//+------------------------------------------------------------------+//| ZZ.mq4 |//| Copyright © 2011, MetaQuotes Software Corp.//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright © 2011, MetaQuotes Software Corp.#属性链接 "http://www.metaquotes.net"#include <stdlib.mqh>.#define MAGIC 20110220外部双倍TakeProfit = 50;//+------------------------------------------------------------------+//|专家初始化功能|//+------------------------------------------------------------------+int init(){//----//----return(0);}//+------------------------------------------------------------------+//|专家去初始化功能|//+------------------------------------------------------------------+int deinit(){//----//----return(0);}//+------------------------------------------------------------------+//|计算未结头寸|//+------------------------------------------------------------------+int CalculateCurrentOrders(string symbol){int pos=0。//----for(int i=0;i<OrdersTotal();i++){如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;如果(OrderSymbol()==Symbol() && OrderMagicNumber() ==MAGIC){如果(OrderType()==OP_BUY || OrderType()==OP_SELL) pos++;}}//---- 退货订单量if(pos>0) return(pos)}//+------------------------------------------------------------------+//| 检查未结订单的情况 |//+------------------------------------------------------------------+空白的CheckForOpen()。{int res;//---- 得到ZZdouble zz1 = iCustom( NULL, 60, "ZigZag_Rosh",12, 5, 3, 0, 0) 。double zz2 = iCustom( NULL, 60, "ZigZag_Rosh",48, 20, 12, 0, 0) 。//---- 购买条件如果(CompareDoubles(zz1,Low[0]) && CompareDoubles(zz2,Low[0]){res=OrderSend(Symbol(,OP_BUY,1,Ask,3,0,Ask+TakeProfit*Point,"",MAGIC,0,Bl)ue)。返回。}//---- 卖出条件如果(CompareDoubles(zz1,High[0]) && CompareDoubles(zz2,High[0]){res=OrderSend(Symbol(,OP_SELL,1,Bid,3,0,Bid-TakeProfit*Point,"",MAGIC,0,Re)d);返回。}//----}//+------------------------------------------------------------------+//| 检查平仓的条件|//+------------------------------------------------------------------+空白的CheckForClose(){//---- 得到ZZdouble zz1 = iCustom( NULL, 60, "ZigZag_Rosh",12, 5, 3, 0, 0) 。double zz2 = iCustom( NULL, 60, "ZigZag_Rosh",48, 20, 12, 0, 0) 。//----for(int i=0;i<OrdersTotal();i++){如果(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;如果(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) 继续。//---- 检查订单类型如果(OrderType()==OP_BUY){如果(CompareDoubles(zz1,High[0]) && CompareDoubles(zz2,High[0])OrderClose(OrderTicket(),OrderLots(),Bid,3)。突破。}如果(OrderType()==OP_SELL){如果(CompareDoubles(zz1,Low[0]) && CompareDoubles(zz2,Low[0])OrderClose(OrderTicket(),OrderLots(),Ask,3,White)。突破。}}//----}//+------------------------------------------------------------------+//| 启动功能|//+------------------------------------------------------------------+空白启动()。{//---- 检查历史和交易情况如果(Bars<100 || IsTradeAllowed()==false) 返回。//---- 按当前符号计算未结订单如果(CalculateCurrentOrders(Symbol())==0) CheckForOpen();否则CheckForClose()。//----}//+------------------------------------------------------------------+ MetaQuotes Software Corp. www.metaquotes.net Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах. 附加的文件: zz_1.mq4 5 kb High_Low_v2_bZigZag1.mq4 4 kb Any questions from newcomers [存档!]我将免费写一份顾问报告 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. Maxim Kuznetsov 2017.03.13 20:52 #1494 yaaarik777: 关键是我不明白如何让EA只计算某一个特定对的订单,而不是终端中所有对的总数。我不明白如何使EA只计算某一特定货币对的订单,而不计算终端中所有货币对的总和。我将非常感谢您的帮助。我将不胜感激。请随意查看代码库 - 每个EA都有一个订单循环:-)例如https://www.mql5.com/ru/code/16588(我遇到的第一个) for(int index = orders-1; index >= 0; index--) { if(OrderSelect(index,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; } if(OrderSymbol()==symbol && OrderMagicNumber()==MAGICMA) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } } }if(OrderSymbol()==符号&&OrderMagicNumber()==MAGICMA) "条件正是选择特定符号和特定MAGIC的订单。PS/在上述复制粘贴的代码中断的情况下,OrderSelect 错误是不太正确的,而是使用continue(不管是什么原因,订单没有被选中,也许是MetaTrader的一些内部机制有问题,但下一个订单不会被跳过)。 Middle Moving Average 投票: 62016.10.18Dmitriy Kudryashovwww.mql5.com Вариант советника, основанного на среднем значении цены для расчета Moving Average. How to 'Stop' an 100点 Any questions from newcomers Vitaly Muzichenko 2017.03.13 21:25 #1495 Maxim Kuznetsov:请随意查看 代码库-每个 EA都有 一个订单 循环:-)例如https://www.mql5.com/ru/code/16588(我遇到的第一个) 不仅在CodeBase中,在论坛上的两个主题之一,重要的是开始寻找,会有一百多个不同的解释。 yaaarik777 2017.03.14 15:24 #1496 谢谢你,我将会访问 FOTOGRAF14 2017.03.15 03:02 #1497 大家好!!帮我写一个能返回买入或卖出信号的函数。我还不知道如何在MQL中使用条形图(虽然我不知道很多事情!)。条件如下:父条是一个条形,即在高点和低点内有一个条形的收盘价(这很重要!!正是收盘价。)一旦某个条形刺穿了父条,并且收盘价高于高点或低于低点,它现在就成了父条!。如果母条的收盘价高于开盘价,我们返回买入信号。如果母条的收盘价低于开盘价,我们返回卖出信号。在外部变量中设置时间框架是非常重要的。但问题是,至少对我来说,专家顾问如何在图表上找到最后一个哑光柱? 是的,从视觉上我可以马上看到它!....。如果我在一个外部变量中指定最后一个MAT棒的索引,然后函数将从它开始跳舞,这将是很方便的;或者另一种变体,即取一个具有索引的棒,例如50,然后通过循环到零。非常请帮助孤儿!!!。 Kot 2017.03.15 14:58 #1498 下午好!你能给我一个想法吗?我们需要一个EA在这个价格上已经有一个订单被打开的情况下不能再打开订单。如何实施检查? Alexey Viktorov 2017.03.15 16:18 #1499 Kot:下午好!你能给我一个想法吗?我们需要一个EA在这个价格上已经有一个订单被打开的情况下不能再打开订单。如何实施检查?这是一项艰巨的任务。出于无奈,考虑到滑坡的情况,我曾经给期望的_价格/_点数分配了一个神奇的订单。 在mql5中要容易得多:有一个价格与要求的价格不一致的头寸和一个要求价格的订单。 Vitalie Postolache 2017.03.15 17:00 #1500 Kot:下午好!你能给我一个想法吗?我们需要一个EA在这个价格上已经有一个订单被打开的情况下不能再打开订单。如何实施检查? 你写一个订单的循环,在这个循环中,你将每个订单的开盘价 与给定的价格值进行比较,如果有一个匹配,那么新订单的标志就不会被提起。 1...143144145146147148149150151152153154155156157...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
晚上好!
请帮我写代码,我觉得我自己做不到,大意是这样的。
如果你需要为你做 - 这是一个自由职业者。并帮助你讲述你想得到的东西,展示你所做的事情,描述失败的原因。
重点是:在这一主题中,帮助痛苦和寻求的人。
如果你需要为你做--那是在自由职业者中。而要获得帮助,你需要告诉你想要得到什么,展示你正在做的事情,并描述失败的原因。
问题是,我不明白如何让EA只分析某一个特定的货币对的订单,而不是分析终端中所有货币对的订单。
如果可以的话,请给我一个想法或代码例子,因为教科书上分别描述了什么工作和如何工作,但具体例子并不多。
我将感谢您的帮助。
谢谢你。
它的名字是High_Low v2 (ZigZag), (在附件中,由于某种原因,名字闪了一下)
double zz2 = iCustom( NULL, 0, "High_Low v2 (ZigZag)",300, 6, 0, 0) 。
也就是说,我已经替换了一个自定义指标 的名称和它的
以分形为例,它对我很有效。
关键是我不明白如何让EA只计算某一个特定对的订单,而不是终端中所有对的总数。
我不明白如何使EA只计算某一特定货币对的订单,而不计算终端中所有货币对的总和。
我将非常感谢您的帮助。
我将不胜感激。
请随意查看代码库 - 每个EA都有一个订单循环:-)
例如https://www.mql5.com/ru/code/16588(我遇到的第一个)
for(int index = orders-1; index >= 0; index--)
{
if(OrderSelect(index,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Error in history!");
break;
}
if(OrderSymbol()==symbol && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
}
}
if(OrderSymbol()==符号&&OrderMagicNumber()==MAGICMA) "条件正是选择特定符号和特定MAGIC的订单。
PS/在上述复制粘贴的代码中断的情况下,OrderSelect 错误是不太正确的,而是使用continue(不管是什么原因,订单没有被选中,也许是MetaTrader的一些内部机制有问题,但下一个订单不会被跳过)。
请随意查看 代码库-每个 EA都有 一个订单 循环:-)
例如https://www.mql5.com/ru/code/16588(我遇到的第一个)
大家好!!帮我写一个能返回买入或卖出信号的函数。我还不知道如何在MQL中使用条形图(虽然我不知道很多事情!)。
条件如下:父条是一个条形,即在高点和低点内有一个条形的收盘价(这很重要!!正是收盘价。)一旦某个条形刺穿了父条,并且收盘价高于高点或低于低点,它现在就成了父条!。
如果母条的收盘价高于开盘价,我们返回买入信号。
如果母条的收盘价低于开盘价,我们返回卖出信号。
在外部变量中设置时间框架是非常重要的。
但问题是,至少对我来说,专家顾问如何在图表上找到最后一个哑光柱? 是的,从视觉上我可以马上看到它!....。
如果我在一个外部变量中指定最后一个MAT棒的索引,然后函数将从它开始跳舞,这将是很方便的;或者另一种变体,即取一个具有索引的棒,例如50,然后通过循环到零。
非常请帮助孤儿!!!。
下午好!
你能给我一个想法吗?我们需要一个EA在这个价格上已经有一个订单被打开的情况下不能再打开订单。如何实施检查?
下午好!
你能给我一个想法吗?我们需要一个EA在这个价格上已经有一个订单被打开的情况下不能再打开订单。如何实施检查?
这是一项艰巨的任务。出于无奈,考虑到滑坡的情况,我曾经给期望的_价格/_点数分配了一个神奇的订单。
在mql5中要容易得多:有一个价格与要求的价格不一致的头寸和一个要求价格的订单。
下午好!
你能给我一个想法吗?我们需要一个EA在这个价格上已经有一个订单被打开的情况下不能再打开订单。如何实施检查?
你写一个订单的循环,在这个循环中,你将每个订单的开盘价 与给定的价格值进行比较,如果有一个匹配,那么新订单的标志就不会被提起。