任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 801 1...794795796797798799800801802803804805806807808...1178 新评论 cJIecapb 2014.12.10 16:40 #8001 我不明白问题出在哪里?int start() {bool i;int ticket;double Pricem;datetime Timen; string Symb=Symbol();ticket=OrderSend(Symb,OP_SELL,0.1,Bid,3,Ask+4*Point,Ask-12*Point);i=OrderSelect(0,SELECT_BY_POS);while(true){RefreshRates();Timen=OrderCloseTime(); if(Timen>0) { Pricem=OrderClosePrice(); Alert(Pricem); Alert("ордер закрылся"); Sleep(30000); } Sleep(10); }return; } 应该出现一条关闭信息。订单打开,到达止损点,关闭,仅此而已。错误在哪里? Any rookie question, so Can anybody help me Error #130? Alexander 2014.12.11 06:57 #8002 我正在解决使用MQL4工具关闭所有开放图表的任务。有3个不同货币对的开放图表,这是脚本代码。 for (int i=1;i<=3;i++) { long current=ChartID(); Print("итерация цикла: ",i,", идентификатор текущего графика ",current); bool result=ChartClose(current); if(result)Print("окно успешно закрыто"); else Print("не удалось закрыть окно с идентификатором: ", current); }当我运行该脚本时,三个图表中只有一个被关闭,以下是日志中的打印结果。AUDUSD,H1: итерация цикла: 1, идентификатор текущего графика 130627565403660021 AUDUSD,H1: окно успешно закрыто AUDUSD,H1: итерация цикла: 2, идентификатор текущего графика 130627565403660021 AUDUSD,H1: окно успешно закрыто AUDUSD,H1: итерация цикла: 3, идентификатор текущего графика 130627565403660021 AUDUSD,H1: окно успешно закрыто这意味着在关闭一个图表后,当前图表应该是另一个,但是。1.在第一个图表被关闭后,ChartID 函数返回被关闭的图表的 标识符,而不是当前的图表。2.C hartClose()函数 在第2次和第3次迭代中返回真,这意味着它成功关闭了已经关闭的窗口...谁知道错误在哪里,如何解决这个问题? Alexander 2014.12.11 07:08 #8003 CJIeCaPb:我不明白问题出在哪里?应该出现一条关闭信息。订单打开,到达止损点,关闭,仅此而已。错误在哪里? 我认为OrderSelect() 必须在while循环内,此外,位置号将是不正确的,因为在它关闭后,位置号将变得不同--在这种情况下,最好是按票选择。 cJIecapb 2014.12.11 08:11 #8004 tuner: 我认为OrderSelect()应该在一个while循环中,此外,位置号将是不正确的,因为关闭后它将变得不同--在这种情况下,最好从票据上选择。好耶,成功了!谢谢 [删除] 2014.12.11 11:13 #8005 tuner:我正在解决使用MQL4工具关闭所有开放图表的任务。有3个不同货币对的开放图表,这是脚本代码。当我运行该脚本时,三个图表中只有一个被关闭,以下是日志中的打印结果。这意味着在关闭一个图表后,当前图表应该是另一个,但是。1.在第一个图表被关闭后,ChartID 函数返回已关闭的图表的标识符,而不是当前的 图表。2.C hartClose()函数 在第2次和第3次迭代中返回真,这意味着它成功关闭了已经关闭的窗口...谁知道错误在哪里,如何解决这个问题?//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long currChart,prevChart=ChartFirst(); int i=0,limit=100; while(i<limit) { currChart=ChartNext(prevChart); if(currChart<0) break; prevChart=currChart; ChartClose(currChart); i++; } ChartClose(ChartFirst()); } //+------------------------------------------------------------------+ Alexander 2014.12.11 11:55 #8006 pako,有时有效,有时无效,我不知道为什么......我得到一个错误。2014.12.11 17:52:12.456 在'C:\.....................ex4'中读取0x09295000的访问权限违规。会不会是因为它试图关闭 脚本所抛出的图表?如果脚本附在左边的第一个图表上,PS就能正常工作。但如果我把它放在任何其他图表上,我得到一个错误 [删除] 2014.12.11 15:34 #8007 tuner:pako,有时有效,有时无效,我不知道为什么......我得到一个错误。2014.12.11 17:52:12.456 在'C:\.....................ex4'中读取0x09295000的访问权限违规。会不会是因为它试图关闭脚本所抛出的图表?如果脚本附在左边的第一个图表上,PS就能正常工作。但如果我把它放在任何其他图表上,我得到一个错误//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- long currChart,prevChart=ChartFirst(); int i=0,limit=100; while(i<limit) { currChart=ChartNext(prevChart); if(currChart<0) break; ChartClose(currChart); prevChart=currChart; i++; } ChartClose(ChartFirst()); } //+------------------------------------------------------------------+ Roma Korobeynikov 2014.12.12 09:01 #8008 伙计们,帮帮我吧问题是以下将订单转化为非亏损的功能,当我在日元对上设置它并允许所有未结订单转化为非亏损时,它不能正常工作。我让它们都正常,但在五位数时,即使我只设置为五位数,它也会返回到零,但最好的是,如果我设置为五位数,它可以正常工作。这些工作的原因是什么? 在这些功能中应该考虑到什么,以便正确的执行是正确的,而不是取决于专家的工作,在什么窗口我把它扔了三个或五个数字? 非常感谢你。 } //================================================================================================== // функция перевода ордеров стоп лоса в без убыток по всем открытым ордерам //================================================================================================== if(_Simbol==false)//если false то по всем ордерам открытым { for(int i=0;i<OrdersTotal();i++)//цикл перебора ордеров { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))//будем искать следующие { if(OrderType()==OP_BUY) //если тип бай { double bid=MarketInfo(OrderSymbol(),MODE_BID);//последний известный бид инструмента double point=MarketInfo(OrderSymbol(),MODE_POINT);//чему равен пункт инструмента if(OrderStopLoss()<OrderOpenPrice())//если стоп лос меньше цены открытия { if(bid-Dist_Perivoda*point>OrderOpenPrice())//бид-профит*пункт больше цены открытия {//модифицируем стоп лос bool ord_modifik=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+NormalizeDouble(Level_Zahiti*point,Digits),OrderTakeProfit(),0,clrNONE); if(!ord_modifik)//если не получилось Comment(GetLastError());//номер ошибки в угол } } } if(OrderType()==OP_SELL)//если тип селл { double ask=MarketInfo(OrderSymbol(),MODE_ASK);//последний известный аск инструмента double point=MarketInfo(OrderSymbol(),MODE_POINT);//чему равен пункт инструмента if(OrderStopLoss()==0||OrderStopLoss()>OrderOpenPrice())//если стоп лос больше цены открытия или равен нолю { if(ask+Dist_Perivoda*point<OrderOpenPrice())//аск +профит*пункт меньше цены открытия {//модифицируем стоп лос bool ord_modifik=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble(Level_Zahiti*point,Digits),OrderTakeProfit(),0,clrNONE); if(!ord_modifik)//если не получилось Comment(GetLastError());//номер ошибки в угол } } } } } } Any rookie question, so [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Alexander 2014.12.12 11:02 #8009 pako: 谢谢你的代码,我明白了要领,尽管我有时还是会出错。实验了显示图表ID的功能。文档中的ChartFirst() 是什么绝对不清楚,人们可以以任何方式解释它--可能是指从左边开始依次打开的第一个图表,或者是从所有打开的图表中打开的第一个(在时间上),或者是在终端中打开的第一个(现在打开的可能性几乎为零,所以关闭它没有意义)。我更倾向于后一个版本,因为我从未见过这个函数返回图表的ID,而这个图表此刻是开放的。 [删除] 2014.12.12 11:33 #8010 tuner:谢谢你的代码,我明白了要领,尽管我有时还是会出错。实验了显示图表ID的功能。文档中的ChartFirst()是什么 绝对不清楚,人们可以以任何方式解释它--可能是指从左边开始依次打开的第一个图表,或者是从所有打开的图表中打开的第一个(在时间上),或者是在终端中打开的第一个(现在打开的可能性几乎为零,所以关闭它没有意义)。我更倾向于后一个版本,因为我从未见过这个函数返回目前正在打开的图表的ID。领先者返回客户终端的第一个图表 ID。我理解这是最左边的图表 1...794795796797798799800801802803804805806807808...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不明白问题出在哪里?
int start()
{
bool i;
int ticket;
double Pricem;
datetime Timen;
string Symb=Symbol();
ticket=OrderSend(Symb,OP_SELL,0.1,Bid,3,Ask+4*Point,Ask-12*Point);
i=OrderSelect(0,SELECT_BY_POS);
while(true)
{
RefreshRates();
Timen=OrderCloseTime();
if(Timen>0)
{
Pricem=OrderClosePrice();
Alert(Pricem);
Alert("ордер закрылся");
Sleep(30000);
}
Sleep(10);
}
return;
}
我正在解决使用MQL4工具关闭所有开放图表的任务。有3个不同货币对的开放图表,这是脚本代码。
当我运行该脚本时,三个图表中只有一个被关闭,以下是日志中的打印结果。
这意味着在关闭一个图表后,当前图表应该是另一个,但是。
1.在第一个图表被关闭后,ChartID 函数返回被关闭的图表的 标识符,而不是当前的图表。
2.C hartClose()函数 在第2次和第3次迭代中返回真,这意味着它成功关闭了已经关闭的窗口...
谁知道错误在哪里,如何解决这个问题?
我不明白问题出在哪里?
应该出现一条关闭信息。订单打开,到达止损点,关闭,仅此而已。错误在哪里?
我认为OrderSelect()应该在一个while循环中,此外,位置号将是不正确的,因为关闭后它将变得不同--在这种情况下,最好从票据上选择。
我正在解决使用MQL4工具关闭所有开放图表的任务。有3个不同货币对的开放图表,这是脚本代码。
当我运行该脚本时,三个图表中只有一个被关闭,以下是日志中的打印结果。
这意味着在关闭一个图表后,当前图表应该是另一个,但是。
1.在第一个图表被关闭后,ChartID 函数返回已关闭的图表的标识符,而不是当前的 图表。
2.C hartClose()函数 在第2次和第3次迭代中返回真,这意味着它成功关闭了已经关闭的窗口...
谁知道错误在哪里,如何解决这个问题?
pako,有时有效,有时无效,我不知道为什么......我得到一个错误。
2014.12.11 17:52:12.456 在'C:\.....................ex4'中读取0x09295000的访问权限违规。
会不会是因为它试图关闭 脚本所抛出的图表?
如果脚本附在左边的第一个图表上,PS就能正常工作。但如果我把它放在任何其他图表上,我得到一个错误
pako,有时有效,有时无效,我不知道为什么......我得到一个错误。
2014.12.11 17:52:12.456 在'C:\.....................ex4'中读取0x09295000的访问权限违规。
会不会是因为它试图关闭脚本所抛出的图表?
如果脚本附在左边的第一个图表上,PS就能正常工作。但如果我把它放在任何其他图表上,我得到一个错误
伙计们,帮帮我吧
问题是以下将订单转化为非亏损的功能,当我在日元对上设置它并允许所有未结订单转化为非亏损时,它不能正常工作。
我让它们都正常,但在五位数时,即使我只设置为五位数,它也会返回到零,但最好的是,如果我设置为五位数,它可以正常工作。
这些工作的原因是什么? 在这些功能中应该考虑到什么,以便正确的执行是正确的,而不是取决于专家的工作,在什么窗口我把它扔了三个或五个数字?
非常感谢你。
}
//==================================================================================================
// функция перевода ордеров стоп лоса в без убыток по всем открытым ордерам
//==================================================================================================
if(_Simbol==false)//если false то по всем ордерам открытым
{
for(int i=0;i<OrdersTotal();i++)//цикл перебора ордеров
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))//будем искать следующие
{
if(OrderType()==OP_BUY) //если тип бай
{
double bid=MarketInfo(OrderSymbol(),MODE_BID);//последний известный бид инструмента
double point=MarketInfo(OrderSymbol(),MODE_POINT);//чему равен пункт инструмента
if(OrderStopLoss()<OrderOpenPrice())//если стоп лос меньше цены открытия
{
if(bid-Dist_Perivoda*point>OrderOpenPrice())//бид-профит*пункт больше цены открытия
{//модифицируем стоп лос
bool ord_modifik=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+NormalizeDouble(Level_Zahiti*point,Digits),OrderTakeProfit(),0,clrNONE);
if(!ord_modifik)//если не получилось
Comment(GetLastError());//номер ошибки в угол
}
}
}
if(OrderType()==OP_SELL)//если тип селл
{
double ask=MarketInfo(OrderSymbol(),MODE_ASK);//последний известный аск инструмента
double point=MarketInfo(OrderSymbol(),MODE_POINT);//чему равен пункт инструмента
if(OrderStopLoss()==0||OrderStopLoss()>OrderOpenPrice())//если стоп лос больше цены открытия или равен нолю
{
if(ask+Dist_Perivoda*point<OrderOpenPrice())//аск +профит*пункт меньше цены открытия
{//модифицируем стоп лос
bool ord_modifik=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble(Level_Zahiti*point,Digits),OrderTakeProfit(),0,clrNONE);
if(!ord_modifik)//если не получилось
Comment(GetLastError());//номер ошибки в угол
}
}
}
}
}
}
谢谢你的代码,我明白了要领,尽管我有时还是会出错。
实验了显示图表ID的功能。文档中的ChartFirst() 是什么绝对不清楚,人们可以以任何方式解释它--可能是指从左边开始依次打开的第一个图表,或者是从所有打开的图表中打开的第一个(在时间上),或者是在终端中打开的第一个(现在打开的可能性几乎为零,所以关闭它没有意义)。我更倾向于后一个版本,因为我从未见过这个函数返回图表的ID,而这个图表此刻是开放的。
谢谢你的代码,我明白了要领,尽管我有时还是会出错。
实验了显示图表ID的功能。文档中的ChartFirst()是什么 绝对不清楚,人们可以以任何方式解释它--可能是指从左边开始依次打开的第一个图表,或者是从所有打开的图表中打开的第一个(在时间上),或者是在终端中打开的第一个(现在打开的可能性几乎为零,所以关闭它没有意义)。我更倾向于后一个版本,因为我从未见过这个函数返回目前正在打开的图表的ID。
领先者
返回客户终端的第一个图表 ID。
我理解这是最左边的图表