任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1097 1...109010911092109310941095109610971098109911001101110211031104...1178 新评论 A13ksandr 2016.09.15 13:32 #10961 alvlaf:你给出的最后一个代码领先一步--它根本没有打开任何交易(所以禁令是有效的)。我还不明白为什么完全没有。所附的是日志的截图。起初,该变量被称为ProfitableSerie,具有相反的功能。我还有一些东西要补充。int OnInit() // abeiks && LRA: замечания приняты))) { if (!GlobalVariableCheck("AllowNewOrders")) GlobalVariableSet("AllowNewOrders",1); return(INIT_SUCCEEDED); } // OnDeinit больше не нужен void OnTick() { if (CountTrades() == 0) // Количество ордеров должно равняться нулю { if ((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) < PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) // Если последняя сделка убыточная, то открывается такая же, но с увеличенным лотом { GlobalVariableSet("AllowNewOrders", 0); Type = TypeLastHistOrder(); if (Type == OP_BUY) Price = Ask; if (Type == OP_SELL) Price = Bid; Lot = NormalizeDouble(LotsLastHistOrder()*Multiplier, 2); ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic); return; } if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0) // Если прибыль последней сделки равняется нулю, то открывается такая же { GlobalVariableSet("AllowNewOrders", 0); Type = TypeLastHistOrder(); if (Type == OP_BUY) Price = Ask; if (Type == OP_SELL) Price = Bid; Lot = NormalizeDouble(LotsLastHistOrder(), 2); ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic); return; } if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL))) || CountHistTrades() == 0)// Если последняя сделка прибыльная, то открывается ордер { if (GlobalVariableGet("AllowNewOrders") > 0) return; if (SignalBuy() && MaxOpenOrders > OrdersTotal()) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic); if (ticket>0) GlobalVariableSet("AllowNewOrders", 0); return; } if (SignalSell() && MaxOpenOrders > OrdersTotal()) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic); if (ticket>0) GlobalVariableSet("AllowNewOrders", 0); return; } } GlobalVariableSet("AllowNewOrders", 1); } } 这样试试吧。我有一种感觉,会有别的东西出现...... linar 2016.09.15 14:04 #10962 大家好,我开始阅读MQL4教程(我想学习如何编程),但这是一个旧版本,你建议怎么做? 先看教程,再看文档? Nauris Zukas 2016.09.15 14:07 #10963 LRA: // ИХМО так нагляднее 同意! A13ksandr 2016.09.16 06:43 #10964 linar:你好,我开始阅读MQL4教程(我想学习如何编程),但它是一个旧版本,你建议怎么做?如果你曾经用C语言编程,最好翻阅免费指标、较简单的指标和专家顾问的源代码,并阅读帮助。如果你根本没有编程,那么...如果你根本不知道如何编程,那么请阅读文档。)))在这个论坛上也有一个教程:https://www.mql5.com/ru/forum/108883 Aleksandr Afanasenko 2016.09.16 06:55 #10965 A13ksandr:只是一开始,这个变量被称为ProfitableSerie,并且有相反的功能。还有一些东西要补充。这样试试吧。我有一种感觉,会有别的东西出现...... 又向前迈进了一步--机器人开了一笔交易,但这就结束了。其他东西都没有打开,甚至在日志中也没有关于任何尝试的信息......。 A13ksandr 2016.09.16 07:23 #10966 alvlaf: 又向前迈进了一步--机器人开了一笔交易,但这是它的终点。机器人没有打开其他东西,日志中也没有关于任何尝试的信息...我只想把部分代码放正确,但后来我复制了整个代码,却没有解决这个错误。在最后的条件下应该是这样的。 if (GlobalVariableGet("AllowNewOrders") == 0) return;但实际上他当时不应该做一笔交易。前两个条件中的一些没有正常工作。暂时修复条件,让我们看看 :)Updateade:为了以防万一,带回了OnDeinit。void OnDeInit() { GlobalVariableSet("AllowNewOrders",1); } Aleksandr Afanasenko 2016.09.16 11:06 #10967 A13ksandr:该死的,我原本只想插入一部分正确的代码,但后来我复制了全部内容,没有纠正这个错误。在最后一个条件中应该是这样的但实际上他当时不应该做一笔交易。前两个条件中的一些没有正常工作。暂时修复条件,让我们看看 :)Updateade:为了以防万一,带回了OnDeinit。 试了一下,在减去一个交易后,开始在每个tick上开仓。 A13ksandr 2016.09.16 13:18 #10968 alvlaf: 试了一下,在减去一个交易后,开始在每个tick上开仓。把前两个条件放在第一行如果(GlobalVariableGet("AllowNewOrders") ==1)返回。并在一对上尝试第一次测试。经纪人GrandCapital? Aleksandr Afanasenko 2016.09.16 14:38 #10969 A13ksandr:把前两个条件放在第一行如果(GlobalVariableGet("AllowNewOrders") ==1)返回。并在一对上尝试第一次测试。经纪人GrandCapital?//----------------------------------------------------------------------int OnInit(){如果(!GlobalVariableCheck("AllowNewOrders"))GlobalVariableSet("AllowNewOrders",1)。return(INIT_SUCCEED)。}//----------------------------------------------------------------------空白的OnDeInit()。{GlobalVariableSet("AllowNewOrders",1)。}//----------------------------------------------------------------------空白的OnTick(){如果(GlobalVariableGet("AllowNewOrders") ==1)返回。{如果(CountTrades() == 0) // 订单的数量必须等于零{如果((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) < PriceOpenLastHistOrder(OP_BUY) )|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))// 如果最后一笔交易是亏损的,则开出相同的交易,但手数更大。{GlobalVariableSet("AllowNewOrders", 0)。类型=TypeLastHistOrder()。如果(Type == OP_BUY) Price = Ask;如果(类型== OP_SELL)价格=Bid。Lot = NormalizeDouble(LotsLastHistOrder()*Multiplier, 2);ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);返回。}如果(GlobalVariableGet("AllowNewOrders") ==1)返回。{如果(PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0)。// 如果上一次交易的利润 等于零,则将开出相同的交易。{GlobalVariableSet("AllowNewOrders", 0)。类型=TypeLastHistOrder()。如果(Type == OP_BUY) Price = Ask;如果(类型== OP_SELL)价格=Bid。Lot = NormalizeDouble(LotsLastHistOrder(), 2);ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);返回。}如果((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > PriceOpenLastHistOrder(OP_BUY))|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL) )|| CountHistTrades() == 0)//如果最后一笔交易是盈利的,订单就会被打开。{如果(GlobalVariableGet("AllowNewOrders") ==0) 返回。如果(SignalBuy() && MaxOpenOrders > OrdersTotal()){ticket = OrderSend(Symbol(, OP_BUY, Lots, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic)。如果(ticket>0)GlobalVariableSet("AllowNewOrders", 0)。返回。}如果(SignalSell() && MaxOpenOrders > OrdersTotal()){ticket = OrderSend(Symbol(, OP_SELL, Lots, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic)。如果(ticket>0)GlobalVariableSet("AllowNewOrders", 0)。返回。}}}GlobalVariableSet("AllowNewOrders", 1)。}}}是的,大资本。你把它放进去了吗?它又停止了开放交易。 Any rookie question, so 错误、漏洞、问题 如何编码? wishmast 2016.09.16 15:04 #10970 伙计们,我已经绞尽脑汁了。我如何让EA在高点和低点下挂单,例如8根蜡烛,获利1/4。我做的事情是这样的。double Vhod1=iHighest(Symbol(),0,MODE_HIGH,8,0)。double Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0)。双TP=((Vhod1-Vhod2)/4)+Vhod1。我试图改变参数,但一直得到错误的止损,或将价格设定在7.00000;不清楚它来自哪里。 1...109010911092109310941095109610971098109911001101110211031104...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你给出的最后一个代码领先一步--它根本没有打开任何交易(所以禁令是有效的)。我还不明白为什么完全没有。所附的是日志的截图。
起初,该变量被称为ProfitableSerie,具有相反的功能。我还有一些东西要补充。
这样试试吧。我有一种感觉,会有别的东西出现......
你好,我开始阅读MQL4教程(我想学习如何编程),但它是一个旧版本,你建议怎么做?
如果你曾经用C语言编程,最好翻阅免费指标、较简单的指标和专家顾问的源代码,并阅读帮助。
如果你根本没有编程,那么...如果你根本不知道如何编程,那么请阅读文档。)))
在这个论坛上也有一个教程:https://www.mql5.com/ru/forum/108883
只是一开始,这个变量被称为ProfitableSerie,并且有相反的功能。还有一些东西要补充。
这样试试吧。我有一种感觉,会有别的东西出现......
又向前迈进了一步--机器人开了一笔交易,但这是它的终点。机器人没有打开其他东西,日志中也没有关于任何尝试的信息...
我只想把部分代码放正确,但后来我复制了整个代码,却没有解决这个错误。在最后的条件下应该是这样的。
但实际上他当时不应该做一笔交易。前两个条件中的一些没有正常工作。暂时修复条件,让我们看看 :)
Updateade:为了以防万一,带回了OnDeinit。
该死的,我原本只想插入一部分正确的代码,但后来我复制了全部内容,没有纠正这个错误。在最后一个条件中应该是这样的
但实际上他当时不应该做一笔交易。前两个条件中的一些没有正常工作。暂时修复条件,让我们看看 :)
Updateade:为了以防万一,带回了OnDeinit。
试了一下,在减去一个交易后,开始在每个tick上开仓。
把前两个条件放在第一行
如果(GlobalVariableGet("AllowNewOrders") ==1)返回。
并在一对上尝试第一次测试。
经纪人GrandCapital?
把前两个条件放在第一行
如果(GlobalVariableGet("AllowNewOrders") ==1)返回。
并在一对上尝试第一次测试。
经纪人GrandCapital?
}
是的,大资本。你把它放进去了吗?它又停止了开放交易。
伙计们,我已经绞尽脑汁了。我如何让EA在高点和低点下挂单,例如8根蜡烛,获利1/4。
我做的事情是这样的。
double Vhod1=iHighest(Symbol(),0,MODE_HIGH,8,0)。
double Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0)。
双TP=((Vhod1-Vhod2)/4)+Vhod1。
我试图改变参数,但一直得到错误的止损,或将价格设定在7.00000;不清楚它来自哪里。