[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 589 1...582583584585586587588589590591592593594595596...631 新评论 elllfix 2012.12.07 12:21 #5881 在我的眼前,我正在成为一个母亲!(即成为一个女族长!) :)这是另一件事。如果我修改了一个订单,事后会弹出通知窗口,通知我该订单已成功修改。此外,如果我在该窗口出现后禁用EA,那么在信息窗口中按下 "确定 "后,EA将始终修复其行动(在这种情况下,关闭一个头寸)。有趣的是--EA消失了,但它的命令仍然在执行!这就是为什么我们要把它作为一个 "新 "的工具。我不得不想了一下,把这句话去掉了message=message+"订单修改错误#"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+" 。"+error_desc+"\n"在那之后,一切都像它应该的那样。没有窗口......一切都可以打开和关闭......打开和关闭...打开和关闭...:))))))))))))P.S.但如果你把OrderPrint(); 继续。没有变化......线路也是如此。如果(ret==IDOK)返回(0)。 无论它是否存在--都不会改变!何以如此? TarasBY 2012.12.07 12:23 #5882 lottamer: 为什么? 如果订单还没有打开--你将修改什么?lottamer:是否可以检查My_buy(非布尔变量)的TRUE-FALSE? 那么,谁是布尔式 编程师呢? 你总是可以从 "非布尔式 "中制造出一个布尔式!!。lottamer:修改是无条件的 - 订单是开放的 - 你必须设置止损点...这就是检查订单是否开放的目的。你已经勇敢地迈出了你对语言知识的下一步--你已经熟悉了图书馆的工作方式。#include <WinUser32.mqh>这是一个库,是MetaTrader交付的标准库。人们编写自己的(自定义)库。包含交易订单功能的库的例子。这些函数只需编写一次,然后根据需要在其代码中使用。 elllfix 2012.12.07 12:24 #5883 sergeev: 那你为什么把它放在大括号{ }里,如果(例如交叉平均数)? 所以它就在那里。你认为可以在哪里插入?只有在订单打开后立即插入。 TarasBY 2012.12.07 12:28 #5884 lottamer:在我的眼前,我正在成为一个母亲!(即成为一个女族长!) :)为何如此? 我只需要查一下 "什么是MessageBox()?"- 通过MetaEditor的Ctrl+F1。 elllfix 2012.12.07 12:37 #5885 TarasBY:如果订单没有打开 - 你会修改什么?那么,谁是这里的布尔 谚语家? 你总是可以从 "非布尔的 "中做出一个布尔的!!!。这就是公开搜查令的作用。你已经勇敢地迈出了学习语言的下一步--熟悉图书馆的工作情况。这是一个库,是MetaTrader交付的标准库。人们编写自己的(自定义)库。一个 包含交易订单功能的库的例子。这些函数只需编写一次,然后根据需要在你的代码中使用。 如果订单还没有打开,就不能修改,因为没有什么可以修改的。 我还没有写完整个EA,我是分块写的,马上检查,然后完成后再检查。但我不认为,如果交易不会打开,那么EA就会完全失效,因为它不知道该怎么做--有一个订单要修改,而没有打开的位置。:))将在下一个交易日打开......然后它将修改2)BOH在这里你是独一无二的,因为我,一个罪人,甚至不明白如何如此布尔-非布尔......也就是说,有一个可用的函数,我们说它被执行了,也就是说,姿势打开了。所以现在机器会理解我的可用函数现在是 "真",因为它已经被执行了?..... 抱歉,我不知道这个问题。3)见14)#include 是一个我不好意思问的话题!我没有理解错,理论上,比方说,从我的CLOSE_ALL和MODIFY脚本中,你可以做一个#include,而不是一个自定义函数并引用它。但我如何在if条件之后 插入这个#include My_buy ? elllfix 2012.12.07 12:40 #5886 TarasBY: 这只是一个查找 "什么是MessageBox() "的问题。- 通过MetaEditor的Ctrl+F1。 这是一个细微的差别......我现在想完成专家顾问......:)) Alexey Oreshkin 2012.12.07 12:44 #5887 有谁知道翻身的事吗?当订单以展期方式重新打开时,是否会出现止损和取出值的滑移? 如果展期后,开盘价 和止损之间的差异将小于止损水平线,将如何设置止损?我的任务如下。如果我有一个未平仓的市场订单,我应该检查它是否以展期方式开仓,如果是,我应该得到之前订单的票据,该订单已经关闭。也许有人会告诉我搜索算法? 我目前正在做以下工作。1.我选择第一个开放的订单。 2.如果是在23:40到00:20开的,那么我继续进一步检查这个订单(40分钟的窗口是为了以防万一,虽然理论上你可以从23:50到23:59) 3。我记得票据、止损和取价 4.我检查了历史上所有关闭的订单,评论中包含 "交换 "一词和货币对的匹配。5.我比较止损和接管的数据,如果它们匹配,这里就是所需的订单对,如果不匹配--我回到步骤1。 elllfix 2012.12.07 12:47 #5888 请告诉我什么叫while(true)在我粘贴到EA的修改器脚本中?这个奇怪的检查是为了什么? if(cmd==OP_BUY || cmd==OP_SELL) ? 仅仅检查是否存在一个空缺职位 不是更好吗? int My_modify () { // bool result; // double stop_loss,take_profit,point,bid,ask, lotsize; // int cmd, total, error, spread; // string message; //---- total=OrdersTotal(); //---- for(int i=0; i<total; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { //---- print selected order OrderPrint(); cmd=OrderType(); point=MarketInfo(OrderSymbol(),MODE_POINT); bid= MarketInfo(OrderSymbol(),MODE_BID); ask= MarketInfo(OrderSymbol(),MODE_ASK); spread=MarketInfo(OrderSymbol(),MODE_SPREAD); //---- buy or sell orders are considered if(cmd==OP_BUY || cmd==OP_SELL) { //---- modify first market order while(true) { if(cmd==OP_BUY){ string type = "buy"; if(OrderStopLoss()!=0)stop_loss=OrderStopLoss(); else stop_loss=OrderOpenPrice()-StopLoss*point; if(OrderTakeProfit()!=0)take_profit=OrderTakeProfit(); else take_profit=OrderOpenPrice()+TakeProfit*point; } else{ type = "sell"; if(OrderStopLoss()!=0)stop_loss=OrderStopLoss(); else stop_loss=OrderOpenPrice()+StopLoss*point; if(OrderTakeProfit()!=0)take_profit=OrderTakeProfit(); else take_profit=OrderOpenPrice()-TakeProfit*point; } result=OrderModify(OrderTicket(), OrderOpenPrice(), stop_loss, take_profit, 0, CLR_NONE); if(result!=true) { error=GetLastError(); Print("LastError = ",error);} else {error=0;} if(error==135) RefreshRates(); else break; } if(error==0){ //message=message+"Ордер #"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+" успешно модифицирован.\n"; } else{ if(error == 130){string error_desc = " - Неправильные стопы";} else error_desc = ""; if(error != 1) message=message+"Ошибка модификации ордера #"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+". "+error_desc+" \n"; } //---- print modified order (it still selected after modify) OrderPrint(); continue; } } else { Print( "Error when order select ", GetLastError()); break;} } int ret=MessageBox(message, NULL, MB_OK); if(ret==IDOK) return(0); //---- return(0); } TarasBY 2012.12.07 13:03 #5889 lottamer: 这是一个细微的差别......,现在我想完成顾问......:))你想为 "库切的鼻子""移车"。在语言能力水平较低的情况下,你需要从以下方面开始练习。采取一个现成的专家顾问,它接近你的战略,并根据你的需要对其进行现代化改造--这样它将更快地理解和理解你的行动(在明显没有阅读 "入门 "的愿望下)。好运!P.S.AXIOMA: "马车夫不坐马车!!!" elllfix 2012.12.07 13:09 #5890 TarasBY:你想为 "库切的鼻子""移车"。在语言能力水平较低的情况下,你需要从以下方面开始练习。采取一个现成的专家顾问,这与你的策略接近,并升级它以适应你的需要 - 这样你会更快地理解和理解你的行动。好运!P.S.AXIOMA: "马车夫不会驾驶马车!!" 我实际上是在做...我看看其他的EA、脚本......然后建立我需要的东西:)) 1...582583584585586587588589590591592593594595596...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在我的眼前,我正在成为一个母亲!(即成为一个女族长!) :)
这是另一件事。
如果我修改了一个订单,事后会弹出通知窗口,通知我该订单已成功修改。此外,如果我在该窗口出现后禁用EA,那么在信息窗口中按下 "确定 "后,EA将始终修复其行动(在这种情况下,关闭一个头寸)。有趣的是--EA消失了,但它的命令仍然在执行!这就是为什么我们要把它作为一个 "新 "的工具。
我不得不想了一下,把这句话去掉了
message=message+"订单修改错误#"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+" 。"+error_desc+"\n"
在那之后,一切都像它应该的那样。没有窗口......一切都可以打开和关闭......打开和关闭...打开和关闭...
:))))))))))))
P.S.
但如果你把
继续。
没有变化......线路也是如此。
如果(ret==IDOK)返回(0)。
无论它是否存在--都不会改变!
何以如此?
为什么?
如果订单还没有打开--你将修改什么?
是否可以检查My_buy(非布尔变量)的TRUE-FALSE?
那么,谁是布尔式 编程师呢? 你总是可以从 "非布尔式 "中制造出一个布尔式!!。
修改是无条件的 - 订单是开放的 - 你必须设置止损点...
这就是检查订单是否开放的目的。
你已经勇敢地迈出了你对语言知识的下一步--你已经熟悉了图书馆的工作方式。
#include <WinUser32.mqh>
这是一个库,是MetaTrader交付的标准库。人们编写自己的(自定义)库。包含交易订单功能的库的例子。这些函数只需编写一次,然后根据需要在其代码中使用。
那你为什么把它放在大括号{ }里,如果(例如交叉平均数)?
所以它就在那里。
你认为可以在哪里插入?只有在订单打开后立即插入。
在我的眼前,我正在成为一个母亲!(即成为一个女族长!) :)
为何如此?
如果订单没有打开 - 你会修改什么?
那么,谁是这里的布尔 谚语家? 你总是可以从 "非布尔的 "中做出一个布尔的!!!。
这就是公开搜查令的作用。
你已经勇敢地迈出了学习语言的下一步--熟悉图书馆的工作情况。
这是一个库,是MetaTrader交付的标准库。人们编写自己的(自定义)库。一个 包含交易订单功能的库的例子。这些函数只需编写一次,然后根据需要在你的代码中使用。
如果订单还没有打开,就不能修改,因为没有什么可以修改的。 我还没有写完整个EA,我是分块写的,马上检查,然后完成后再检查。但我不认为,如果交易不会打开,那么EA就会完全失效,因为它不知道该怎么做--有一个订单要修改,而没有打开的位置。:))将在下一个交易日打开......然后它将修改
2)BOH在这里你是独一无二的,因为我,一个罪人,甚至不明白如何如此布尔-非布尔......也就是说,有一个可用的函数,我们说它被执行了,也就是说,姿势打开了。所以现在机器会理解我的可用函数现在是 "真",因为它已经被执行了?..... 抱歉,我不知道这个问题。
3)见1
4)#include 是一个我不好意思问的话题!
我没有理解错,理论上,比方说,从我的CLOSE_ALL和MODIFY脚本中,你可以做一个#include,而不是一个自定义函数并引用它。
但我如何在if条件之后 插入这个#include My_buy ?
这只是一个查找 "什么是MessageBox() "的问题。- 通过MetaEditor的Ctrl+F1。
这是一个细微的差别......我现在想完成专家顾问......:))
有谁知道翻身的事吗?
当订单以展期方式重新打开时,是否会出现止损和取出值的滑移? 如果展期后,开盘价 和止损之间的差异将小于止损水平线,将如何设置止损?
我的任务如下。如果我有一个未平仓的市场订单,我应该检查它是否以展期方式开仓,如果是,我应该得到之前订单的票据,该订单已经关闭。也许有人会告诉我搜索算法? 我目前正在做以下工作。
1.我选择第一个开放的订单。
2.如果是在23:40到00:20开的,那么我继续进一步检查这个订单(40分钟的窗口是为了以防万一,虽然理论上你可以从23:50到23:59)
3。我记得票据、止损和取价
4.我检查了历史上所有关闭的订单,评论中包含 "交换 "一词和货币对的匹配。
5.我比较止损和接管的数据,如果它们匹配,这里就是所需的订单对,如果不匹配--我回到步骤1。
请告诉我什么叫
while(true)
在我粘贴到EA的修改器脚本中?
这个奇怪的检查是为了什么?
if(cmd==OP_BUY || cmd==OP_SELL) ?
仅仅检查是否存在一个空缺职位 不是更好吗?
这是一个细微的差别......,现在我想完成顾问......:))
你想为 "库切的鼻子""移车"。在语言能力水平较低的情况下,你需要从以下方面开始练习。
采取一个现成的专家顾问,它接近你的战略,并根据你的需要对其进行现代化改造--这样它将更快地理解和理解你的行动(在明显没有阅读 "入门 "的愿望下)。
好运!
P.S.AXIOMA: "马车夫不坐马车!!!"
你想为 "库切的鼻子""移车"。在语言能力水平较低的情况下,你需要从以下方面开始练习。
采取一个现成的专家顾问,这与你的策略接近,并升级它以适应你的需要 - 这样你会更快地理解和理解你的行动。
好运!
P.S.AXIOMA: "马车夫不会驾驶马车!!"
我实际上是在做...我看看其他的EA、脚本......然后建立我需要的东西:))