新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 41 1...343536373839404142434445464748...1953 新评论 Artyom Trishkin 2016.12.21 00:36 #401 Vitaly Muzichenko: 是的,你是对的,只是代码的写法让前面的发言者误解了它。而要检查?//+------------------------------------------------------------------+//| TestLogics.mq4 |//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |//| https://login.mql5.com/ru/users/artmedia70 |//+------------------------------------------------------------------+#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"#property link "https://login.mql5.com/ru/users/artmedia70"#property version "1.00"#property strict#property script_show_inputs//--- input parametersinput int Value=0; // Количество имеющихся ордеров//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart() {//--- if(Value>0) Alert("1. Количество ордеров=",Value); else Alert("2. Это код после else"); { Alert("3. Ордера отсутствуют"); } }//+------------------------------------------------------------------+ 大括号中的代码并不是指if-else条件,无论Value中的值如何,都会被执行。 Any questions from newcomers 使用自定义指标时的EA加速理论(功能-iCustom)。 初学者的问题 MQL5 MT5 MetaTrader Vitaly Muzichenko 2016.12.21 00:45 #402 Artyom Trishkin:然后检查一下? 大括号中的代码并不是指if-else条件,无论Value中的值如何,都会被执行。天哪,真的,现在我又回顾了一下原始代码,我错了。写作风格有点歪歪扭扭--让我困惑。 Mickey Moose 2016.12.21 00:57 #403 重新检查,删除了 "额外 "的内容。零的除法 没有任何进展 附加的文件: zero.mq4 5 kb Vitaly Muzichenko 2016.12.21 01:07 #404 trader781:重新检查,删除了 "额外 "的内容。零的除法 没有任何进展 Vitalie Postolache 2016.12.21 01:08 #405 trader781:重新检查,删除了 "额外 "的内容。被零除的 情况并没有消失因为没有检查除数是否与0不同。当没有订单和0手时,进一步执行代码的意义何在? Vitaly Muzichenko 2016.12.21 01:11 #406 在其上设置一个检查void ModifyOrders() { double avg_price=0; price=0; bool z=true; double orderlots=0; for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) && (OrderType()==FindLastOType())) { price+=OrderOpenPrice()*OrderLots(); orderlots+=OrderLots(); } } if(orderlots==0) { return; } // если ничего нет - выходим avg_price=NormalizeDouble(price / orderlots,Digits); if(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits); if(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits); for(i=OrdersTotal()-1; i>=0; i--) { if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol()) && (OrderMagicNumber()==Magic) &&(OrderType()==FindLastOType())) z=OrderModify(OrderTicket(),OrderOpenPrice(),0,tp,0); if (!z) Print("Ошибка функции модифицирования"); } } Any questions from newcomers 10点3.mq4 编码帮助 Mickey Moose 2016.12.21 01:17 #407 Vitaly Muzichenko:在其上设置一个检查维塔利-波斯托拉什。 不过错过了很多,谢谢。 Vitaly Muzichenko 2016.12.21 01:21 #408 trader781: 但我错过了很多,谢谢你。 错过了没关系,不看日志 也没关系,日志 上都说了,哪一行错了都说了。 Mickey Moose 2016.12.21 01:27 #409 Vitaly Muzichenko: 错过也没关系,不看杂志 也没关系,都在那里。我不打算读它。它说'在市场上检查'。我的产品将永远不会出现在市场上。关于除以零的问题。上面的那个呢?它应该是从那里开始 的。{price+=OrderOpenPrice()*OrderLots()。orderlots+=OrderLots()。}}if(orderlots==0) {return; }// if there is nothing, exitavg_price=NormalizeDouble(price / orderslots,Digits)。如果(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits)。如果(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits); Any questions from newcomers 初学者的问题 MQL4 MT4 MetaTrader [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. Vitaly Muzichenko 2016.12.21 01:31 #410 trader781: 我不打算读它。它说 "要在市场上测试"。我的产品将永远不会出现在市场上。我说的是测试器中的杂志。补充:将代码组装到正常状态,修改后,在测试器中运行,并阅读日志中的错误。你在这里给了我一些代码的碎片。 1...343536373839404142434445464748...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,你是对的,只是代码的写法让前面的发言者误解了它。
而要检查?
//| TestLogics.mq4 |
//| Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Value=0; // Количество имеющихся ордеров
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
if(Value>0) Alert("1. Количество ордеров=",Value);
else Alert("2. Это код после else");
{
Alert("3. Ордера отсутствуют");
}
}
//+------------------------------------------------------------------+
然后检查一下?
天哪,真的,现在我又回顾了一下原始代码,我错了。写作风格有点歪歪扭扭--让我困惑。
重新检查,删除了 "额外 "的内容。
零的除法 没有任何进展
重新检查,删除了 "额外 "的内容。
零的除法 没有任何进展
重新检查,删除了 "额外 "的内容。
被零除的 情况并没有消失
因为没有检查除数是否与0不同。当没有订单和0手时,进一步执行代码的意义何在?
在其上设置一个检查
{
double avg_price=0;
price=0;
bool z=true;
double orderlots=0;
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()==FindLastOType()))
{
price+=OrderOpenPrice()*OrderLots();
orderlots+=OrderLots();
}
}
if(orderlots==0) { return; } // если ничего нет - выходим
avg_price=NormalizeDouble(price / orderlots,Digits);
if(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);
if(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits);
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) &&(OrderType()==FindLastOType()))
z=OrderModify(OrderTicket(),OrderOpenPrice(),0,tp,0);
if (!z)
Print("Ошибка функции модифицирования");
}
}
在其上设置一个检查
但我错过了很多,谢谢你。
错过也没关系,不看杂志 也没关系,都在那里。
我不打算读它。它说'在市场上检查'。我的产品将永远不会出现在市场上。
关于除以零的问题。
上面的那个呢?它应该是从那里开始 的。
{
price+=OrderOpenPrice()*OrderLots()。
orderlots+=OrderLots()。
}
}
if(orderlots==0) {return; }// if there is nothing, exit
avg_price=NormalizeDouble(price / orderslots,Digits)。
如果(FindLastOType()==OP_BUY) tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits)。
如果(FindLastOType()==OP_SELL) tp=NormalizeDouble(avg_price-TakeProfit*Point(),Digits);
我不打算读它。它说 "要在市场上测试"。我的产品将永远不会出现在市场上。
我说的是测试器中的杂志。
补充:将代码组装到正常状态,修改后,在测试器中运行,并阅读日志中的错误。你在这里给了我一些代码的碎片。