[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 588 1...581582583584585586587588589590591592593594595...631 新评论 TarasBY 2012.12.07 09:37 #5871 Beowulf: 你能建议一些文献让我 开始 并创建我自己的EA吗!?还是凡人无法做到的事情?))) 我们(凡夫俗子)做不到!;))) [删除] 2012.12.07 09:43 #5872 lottamer: 1)它是可以理解的2)刚刚检查过......在Alpari,你不能在开盘时设置止损,只能通过后续的修改......非交易台的费用。3)有一个战略。 那么它就像你建议的那样简单。修改后,你设置一个复选框,并在修改前检查其状态。这是在有一个订单的情况下。如果多于一个,你需要自己核算订单。如何做到这一点是在文章部分。 [删除] 2012.12.07 09:47 #5873 TarasBY: 我们(凡人)不明白!;))) 我要读一读我的吸尘器))))。 Alexey Oreshkin 2012.12.07 10:13 #5874 您能否告知,当订单以展期方式重新开仓时,止损值和外卖值是否有滑移? 以及如果展期后的开仓价 和止损值之间的差额小于平仓的止损值,将如何设置止损?我的任务如下。如果我有一个未平仓的市场订单,我应该检查它是否以展期方式开仓,如果是,我应该得到之前订单的票据,该订单已经关闭。也许有人会告诉我搜索算法? 我目前正在做以下工作。1.我选择第一个开放的订单。 2.如果是在23:40到00:20开的,那么我继续进一步检查这个订单(40分钟的窗口是为了以防万一,虽然理论上你可以从23:50到23:59) 3。我记住了票据、止损和取价 4.我检查历史上所有已关闭的订单,其中评论包含交换一词,并且货币对匹配 5.我比较止损和接管的数据,如果它们匹配,这里就是所需的订单对,如果不匹配,我回到步骤1 elllfix 2012.12.07 10:39 #5875 答案已经找到了(个人),但我要把这个帖子留给历史!:))))----------------------------------但这里有一个有趣的事情...我有一个脚本(我从网上得到的)。它修改了一个开放的订单。我的想法是把它作为一个整体,作为一个用户定义的函数插入我的专家顾问中,并在需要时调用它。问题是,编译器给出了错误"'MB_OK'--变量未定义 G:\Program_Files_2\MT4-demo\experts\33.mq4 (153, 37)" --从结尾开始的第三行但是,如果你编译脚本本身,一切就都清楚了! 我知道MV_OC是什么了......但我不明白为什么它在脚本中有效,但在专家顾问中却被警告了?//+------------------------------------------------------------------+ //| Изменить стопы.mq4 | //| Мефодий | //| ppc-2@mail.ru | //+------------------------------------------------------------------+ #property copyright "Мефодий" #property link "ppc-2@mail.ru" #include <WinUser32.mqh> extern int StopLoss = 500; extern int TakeProfit = 500; // #property show_confirm // #property show_inputs //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { 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); } //+------------------------------------------------------------------+ elllfix 2012.12.07 10:42 #5876 事实证明,#include <WinUser32.mqh>一行必须存在。而这个文件是在include elllfix 2012.12.07 10:49 #5877 让我吹吹牛...你在修改的时候不需要任何标志。 在 "如果 "条件下就足够了(例如交叉平均)......参考使用函数BUY和MODIFY的括号{}。这样一来,条件就会传播到两个行动中 :))像这样{My_buy()。My_modify (); }:)))))))))))))))))))))))) TarasBY 2012.12.07 11:01 #5878 lottamer:像这样{My_buy()。My_modify (); }:)))))))))))))))))))))))) 对程序代码如此松散的解释需要澄清。 if (условие == true) { if (Tvoi_buy() == true) // как вариант {Tvoi_Modify();} }:))) elllfix 2012.12.07 11:06 #5879 TarasBY:对程序代码如此松散的解释需要澄清。:))) 为什么?而My_buy(一个非布尔变量)能否被检查为TRUE-FALSE? 修改是肯定的--订单是开放的--我们需要设置止损库存... --- 2012.12.07 11:12 #5880 lottamer:修改是肯定的--订单是开放的--你必须设置停止--高峰... 那你为什么把它放在大括号{ }里,如果(例如交叉平均数)? 1...581582583584585586587588589590591592593594595...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能建议一些文献让我 开始 并创建我自己的EA吗!?还是凡人无法做到的事情?)))
1)它是可以理解的
2)刚刚检查过......在Alpari,你不能在开盘时设置止损,只能通过后续的修改......非交易台的费用。
3)有一个战略。
那么它就像你建议的那样简单。修改后,你设置一个复选框,并在修改前检查其状态。这是在有一个订单的情况下。如果多于一个,你需要自己核算订单。如何做到这一点是在文章部分。
我们(凡人)不明白!;)))
我要读一读我的吸尘器))))。
您能否告知,当订单以展期方式重新开仓时,止损值和外卖值是否有滑移? 以及如果展期后的开仓价 和止损值之间的差额小于平仓的止损值,将如何设置止损?
我的任务如下。如果我有一个未平仓的市场订单,我应该检查它是否以展期方式开仓,如果是,我应该得到之前订单的票据,该订单已经关闭。也许有人会告诉我搜索算法? 我目前正在做以下工作。
1.我选择第一个开放的订单。
2.如果是在23:40到00:20开的,那么我继续进一步检查这个订单(40分钟的窗口是为了以防万一,虽然理论上你可以从23:50到23:59)
3。我记住了票据、止损和取价
4.我检查历史上所有已关闭的订单,其中评论包含交换一词,并且货币对匹配
5.我比较止损和接管的数据,如果它们匹配,这里就是所需的订单对,如果不匹配,我回到步骤1
答案已经找到了(个人),但我要把这个帖子留给历史!:))))
----------------------------------
但这里有一个有趣的事情...
我有一个脚本(我从网上得到的)。它修改了一个开放的订单。
我的想法是把它作为一个整体,作为一个用户定义的函数插入我的专家顾问中,并在需要时调用它。
问题是,编译器给出了错误"'MB_OK'--变量未定义 G:\Program_Files_2\MT4-demo\experts\33.mq4 (153, 37)" --从结尾开始的第三行
但是,如果你编译脚本本身,一切就都清楚了!
我知道MV_OC是什么了......但我不明白为什么它在脚本中有效,但在专家顾问中却被警告了?
事实证明,#include <WinUser32.mqh>一行必须存在。
而这个文件是在include
让我吹吹牛...
你在修改的时候不需要任何标志。
在 "如果 "条件下就足够了(例如交叉平均)......参考使用函数BUY和MODIFY的括号{}。
这样一来,条件就会传播到两个行动中 :))
像这样
{My_buy()。
My_modify (); }
:))))))))))))))))))))))))
lottamer:
像这样
{My_buy()。
My_modify (); }
:))))))))))))))))))))))))
对程序代码如此松散的解释需要澄清。
:)))对程序代码如此松散的解释需要澄清。
:)))为什么?
而My_buy(一个非布尔变量)能否被检查为TRUE-FALSE?
修改是肯定的--订单是开放的--我们需要设置止损库存...
修改是肯定的--订单是开放的--你必须设置停止--高峰...