任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1069 1...106210631064106510661067106810691070107110721073107410751076...1178 新评论 владимир 2016.07.01 07:51 #10681 CloseAllBuy()只在一个地方被调用:在OnTick()函数中,条件是if(Bid>buycloseprice) CloseAllBuy();这个条件在新的开启时没有出现,在关闭期间也没有出现,但是当EA再次开启时,CloseAllBuy()函数还是被触发了。 Vitalie Postolache 2016.07.01 07:57 #10682 rapid_minus: CloseAllBuy()在一个地方被调用:在OnTick()函数中,条件是if(Bid>buycloseprice) CloseAllBuy();这个条件在新的启用时没有出现,在停用期间也没有出现,但是当EA再次启用时,CloseAllBuy()函数还是被触发了。 会不会有一个代码?什么是buycloseprice,它来自哪里,它的初始化是什么,它在哪里被改变了,你从这里看不到它...... владимир 2016.07.01 08:11 #10683 这里有一段代码。 владимир 2016.07.01 08:13 #10684 由于某种原因,我无法看到SRC是否被插入了。如果没有,请告诉我,我会用文字重复一遍。 владимир 2016.07.01 08:36 #10685 问题: ,请告知在这种情况下如何具体应用全局变量。我搞不清楚。谢谢你。 Vitalie Postolache 2016.07.01 08:40 #10686 rapid_minus: 这里有一段代码。是不可见的。rapid_minus。 问题: 请告知在这种情况下,究竟如何应用全局变量。我搞不清楚。谢谢你。阅读文档终端的全局变量,查看元编辑器的帮助,在那里更新更快。另外,你可以把重要变量的设置和数值保存到一个文件中,并在加载时从那里读取它们。但大多数时候,你可以不做这些,只要用你的头脑,在代码中做出正确的逻辑。 владимир 2016.07.01 08:46 #10687 用文字重复。RefreshRates()。 total=OrdersTotal(); if(total>0){ for(int i=0; i<=OrdersTotal(); i++) if(OrderSelect(i,SELECT_BY_POS) ==true){ 如果(OrderType()==OP_BUY && OrderMagicNumber()==magic){ RefreshRates(); 如果(Bid>buycloseprice) CloseAllBuy();} 如果(OrderType()==OP_SELL && OrderMagicNumber()==magic){ RefreshRates(); if(Ask<sellcloseprice) CloseAllSell();}}} if((total==0) ||(total>0 &&OrderSelect(1,SELECT_BY_POS,MODE_TRADES)==true &&OrderSymbol()!=Symbol(){ Comment("Noopen positions"); if(condition && timeBar!=iTime(Symbol(),Period(),1)){ Print("Criterion-1 for BAY has appeared"); int poz_1 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue); Sleep(1000); RefreshRates(); int poz_2 = OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue); Sleep(1000); RefreshRates(); int poz_3 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue); Sleep(1000); RefreshRates(); int poz_4 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue); Sleep(1000); RefreshRates(); int poz_5 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue); timeBar=iTime(Symbol(),Period(),1); double spread = (Ask-Bid); buyopentime = iTime(Symbol(),Period(),0); buycloseprice = NormalizeDouble((iOpen(Symbol(),Period(),0)+spread+75*Point),Digits)。 Comment("Magic 510015 BAY"); Print("CLOSE PRICE = ",buycloseprice);}} } //+------------------------------------------------------------------+*/ void CloseAllBuy(){ bool fc; for (int i=OrdersTotal()-1; i>=0; i-){ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ==false) break; if (OrderType()==OP_BUY){ fc=OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slip); buycloseprice=0.0; tc=OrderCloseTime();}}} Any rookie question, so 战略展望系统 10点3.mq4 владимир 2016.07.01 08:51 #10688 那么我的代码中哪里出错了呢? Vitalie Postolache 2016.07.01 08:59 #10689 rapid_minus: 在文本中重复出现。仍然不清楚buycloseprice 从何而来,在条件if(Bid>buycloseprice) CloseAllBuy() 之前会发生什么。因为我在代码中只看到了这个,在--buycloseprice = NormalizeDouble((iOpen(Symbol(), Period(), 0)+spread+75*Point), Digits);,但这个buycloseprice 在哪里声明,初始化的值是什么? 如果这是所谓的买入订单的 收盘价,那么这里的逻辑就崩溃了,因为这个值是在触发后传递给变量的,而你还没有向我们展示之前的内容。现在进行一下运算,代码中存在这样一个循环。for(int i=0; i<=OrdersTotal(); i++)比方说,有5个订单,范围从0到4。循环计数从0到5。这个循环的工作是否正确?另外,在if(condition && timeBar!=iTime(Symbol(),Period(),1))一行中,condition和 timeBar 来自哪里? Any rookie question, so 我将免费撰写一份顾问报告 [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. владимир 2016.07.01 09:07 #10690 我想我明白了--错误在于,我设置了全局的buycloseprice,并立即给它一个0.0的值。虽然之后在开仓 时取了一个特定的值,但这个值在终端关闭时丢失了,而在开启时取了原来的值,即0.0,并分别遵守条件if(Bid>buycloseprice)和关闭的命令。 但如何将这个变量转移到全局终端,我不明白。 1...106210631064106510661067106810691070107110721073107410751076...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
CloseAllBuy()在一个地方被调用:在OnTick()函数中,条件是if(Bid>buycloseprice) CloseAllBuy();这个条件在新的启用时没有出现,在停用期间也没有出现,但是当EA再次启用时,CloseAllBuy()函数还是被触发了。
这里有一段代码。
是不可见的。
问题: 请告知在这种情况下,究竟如何应用全局变量。我搞不清楚。谢谢你。
阅读文档终端的全局变量,查看元编辑器的帮助,在那里更新更快。
另外,你可以把重要变量的设置和数值保存到一个文件中,并在加载时从那里读取它们。
但大多数时候,你可以不做这些,只要用你的头脑,在代码中做出正确的逻辑。
total=OrdersTotal();
if(total>0)
{
for(int i=0; i<=OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS) ==true)
{
如果(OrderType()==OP_BUY && OrderMagicNumber()==magic)
{ RefreshRates();
如果(Bid>buycloseprice) CloseAllBuy();
}
如果(OrderType()==OP_SELL && OrderMagicNumber()==magic)
{ RefreshRates();
if(Ask<sellcloseprice) CloseAllSell();
}
}
}
if((total==0) ||(total>0 &&OrderSelect(1,SELECT_BY_POS,MODE_TRADES)==true &&OrderSymbol()!=Symbol()
{
Comment("Noopen positions");
if(condition && timeBar!=iTime(Symbol(),Period(),1))
{
Print("Criterion-1 for BAY has appeared");
int poz_1 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue);
Sleep(1000);
RefreshRates();
int poz_2 = OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue);
Sleep(1000);
RefreshRates();
int poz_3 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue);
Sleep(1000);
RefreshRates();
int poz_4 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue);
Sleep(1000);
RefreshRates();
int poz_5 = OrderSend(Symbol(,OP_BUY,lot,Ask,slip,0,0,NULL,magic,Blue);
timeBar=iTime(Symbol(),Period(),1);
double spread = (Ask-Bid);
buyopentime = iTime(Symbol(),Period(),0);
buycloseprice = NormalizeDouble((iOpen(Symbol(),Period(),0)+spread+75*Point),Digits)。
Comment("Magic 510015 BAY");
Print("CLOSE PRICE = ",buycloseprice);
}
}
}
//+------------------------------------------------------------------+*/
void CloseAllBuy()
{
bool fc;
for (int i=OrdersTotal()-1; i>=0; i-)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ==false) break;
if (OrderType()==OP_BUY)
{
fc=OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slip);
buycloseprice=0.0;
tc=OrderCloseTime();
}
}
}
在文本中重复出现。
仍然不清楚buycloseprice 从何而来,在条件if(Bid>buycloseprice) CloseAllBuy() 之前会发生什么。因为我在代码中只看到了这个,在--buycloseprice = NormalizeDouble((iOpen(Symbol(), Period(), 0)+spread+75*Point), Digits);,但这个buycloseprice 在哪里声明,初始化的值是什么?
如果这是所谓的买入订单的 收盘价,那么这里的逻辑就崩溃了,因为这个值是在触发后传递给变量的,而你还没有向我们展示之前的内容。
现在进行一下运算,代码中存在这样一个循环。
for(int i=0; i<=OrdersTotal(); i++)
比方说,有5个订单,范围从0到4。循环计数从0到5。这个循环的工作是否正确?
另外,在if(condition && timeBar!=iTime(Symbol(),Period(),1))一行中,condition和 timeBar 来自哪里?