2;116;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;104:33;'(' - function definition unexpected
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;109:7;'sy' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;109:14;'sy' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;112:27;'sy' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;112:33;'sy' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;114:15;'op' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;114:37;'op' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;115:17;'mn' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;115:46;'mn' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;116:19;'t' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;117:17;'t' - variable not defined
2;75;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;127:19;'sy' - variable not defined
也许函数https://www.mql5.com/ru/forum/107476/page21 可以提供帮助。
函数isCloseLastPosByTake()。
该函数返回一个关闭最后一个位置的标志。
Flag up - True - TakeProfit被触发了。
旗帜降低 - 虚假 - 职位因其他原因被关闭。
该函数本身应该放在代码的最后。我还在条件中加入了出售。
祝你们所有的人日安、晚安或早安。
我所做的一切都是按照我写的。我把这个功能放在代码的最后,并把它加入到我的销售条件中。
我只是想到了这一点,并为购买而添加了它。订单不仅会被BUY关闭,也会被SHELL关闭。
我在最后插入了isCloseLasPosByTake()函数。
这里有这样一个馅饼,或者像刚才说的PFC Gotsman油画。请帮助假人出来....,什么都不知道.......。
代码本身(即只是开始)
我在我的帖子中特别写道。这个函数isCloseLastPosByTake() - 必须放在代码的最后,在START FUNCTION之前!
那你把它放在哪里了?
并在买卖条件中多注意用大括号。你那里显然缺少它们(检查--开放括号的数量等于封闭括号的数量)。这里纠正了销售。
日安!!!。
我需要一些帮助!我为自己的不谦虚而道歉。
但我的问题是,我有一个基于马丁的EA,它把第一笔订单放在卖出或买入,无论我想要什么,但我希望能够在EA属性中选择买入或卖出。例如,我在其属性中输入 "买入",它就会打开一个只买入的订单,或者相反。
恐怕我还没有学会如何用 MQL4 编程。
我在此附上顾问本身。
提前感谢那些愿意回答的人!
我在我的帖子中特别写道。这个函数isCloseLastPosByTake() - 必须放在代码的最后,在START FUNCTION之前!
那你把它放在哪里了?
而且在买卖条件中要小心使用大括号。你那里显然缺少它们(检查--开放括号的数量等于封闭括号的数量)。这里是销售的修复:
我把它放在了开始fi之后,我明白.....。
那我就搞错了,谢谢你的指点 :-))
如果我没弄错的话,它应该放在专家去初始化功能块??????? 的末尾的 } 之后,或者放在 start-??????? 的末尾的 return(0); 之后。
提前感谢您的耐心!!!!!!!!!
我把它放在了启动功能之后,所以我明白.....。
我弄错了,谢谢你的指点 :-))
如果我理解正确的话,它应该放在专家去初始化功能块??????? 的末尾的 } 之后,或者放在 start-??????? 的最末端的 return(0);之后。
提前感谢您的耐心!!!!!!!!!
它必须放在外面。不是在任何函数里面,而是作为一个单独的独立函数。
像这样。
我不确定在这些条件下,专家顾问会不会工作。因为最开始的位置将无法打开...
函数isCloseLastPosByTake()应该从买入或卖出条件中删除。
那么顾问就会发挥作用。
日安!!!"。
但我的问题是,我有一个基于马丁的EA,它把第一笔订单放在卖出或买入,无论我想要什么,但我希望能够在EA属性中选择买入或卖出。例如,我在其属性中输入 "买入",它就会打开一个只买入的订单,反之亦然。
我附上了EA本身。
提前感谢每个人的答复
不太可能有人会回应。该EA是反编译的(黑客),这样的文件在这里是不受欢迎的...
也就是默认的浏览器
ShellExecute,即 "打开 "命令,就像它一样。
我已经决定研究MQL 4,因为我所找到的一切都不能满足我的愿望。目前,我正在研究 ,以便了解专业人士的工作方式,并为我的想法进行改进。有一个(简单的、小的、一页的)自定义函数,代码附后。 由于我的外行,我两天都不能理解--这个函数返回的结果是什么,哪个嵌套条件是Else?
有没有人愿意在我的沉闷中植入知识的火花?
我得到的是这样的结果。
函数 的目的是确定是否已经有一个为该对下的订单,如果有,则确定其类型。
调用该函数的函数等待在程序中选择的订单之一的出现 开关。 该函数应返回 "1",在有两个 订单的情况下-"2",在没有订单的情况下-1"。
循环开始,如果 l_pos_16= 0.让我们假设我们对一些货币对总共有四个挂单, ,包括EA工作的货币对的两个挂单,而且它们不是第一个。
然而,在循环的第一次迭代中,函数 如果(OrderSelect(l_pos_16,SELECT_BY_POS,MODE_TRADES)) 检查订单列表中数字为 "0 "的位置,但没有这样的位置(因为我知道编号是从位置1开始的),然后它将传递到下一个位置。 否则 与完全退出 fCountOrders(int&a_count_0,int&a_count_4,int& a_count_8,int&a_count_12) 价值的返回返回(-1)。
整个函数的意义就失去了,因为不管 ,无论给定的一对订单存在与否,结果都应该是一样的。
然而,当EA工作时,这个函数定义并给你被调用的函数对它的期望,然后根据获得的结果工作 。
我也不明白什么是 else Return(-1) 将在
如果(OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES)){
或者 相同的 在 如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_N) {
函数的代码 。
int fCountOrders(int &a_count_0, int &a_count_4, int &a_count_8, int &a_count_12)
a_count_0= 0。
a_count_4 = 0。
a_count_8 = 0。
a_count_12 = 0。
gi_252 = 0。
for (int l_pos_16 = 0; l_pos_16 < OrdersTotal(); l_pos_16++){
如果(OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES)){
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_N) {
switch (OrderType() ) case OP_BUY:
a_count_0++;
gi_252 = 1。
g_ticket_268 = OrderTicket()。
gs_272 = OrderComment()。
g_ord_open_price_256 = OrderOpenPrice()。
g_ord_stoploss_288 = OrderStopLoss()。
g_ord_takeprofit_296 = OrderTakeProfit()。
突破。
case OP_SELL:
a_count_4++;
gi_252 = -1。
g_ticket_268 = OrderTicket()。
gs_272 = OrderComment()。
g_ord_open_price_256 = OrderOpenPrice()。
g_ord_stoploss_288 = OrderStopLoss()。
g_ord_takeprofit_296 = OrderTakeProfit()。
突破。
case OP_BUYSTOP:
a_count_8++;
突破。
case OP_SELLSTOP:
a_count_12++;
}
}
} else return (-1);
}
返回(a_count_0 + a_count_4 + a_count_8 + a_count_12)。
/*正常执行f-i将在变量 中的一个返回1。 案例 和 "0 "在所有其他的,这 ,表明有一个的
的订单类型,而这个订单的编号对调用函数是可用的。
评论、开盘价、止损和止盈 */
}