任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 415 1...408409410411412413414415416417418419420421422...1178 新评论 [删除] 2014.01.08 08:08 #4141 Link_x: 你好! ,在 "金 "功能中是否有这样的功能,可以计算出最后一笔开仓订单的利润额? 我没有找到,现在我在琢磨一个自制的函数,计算最后一笔开仓订单的利润率。 订单利润() 如果您需要的是最后开出的订单,那么请浏览所有的订单,并选择一个最新的时间,然后使用上述函数,它将返回给您这个订单的净利润。 Джони Браво 2014.01.08 08:14 #4142 Ekburg: 订单利润() 如果您需要的是最后一个开仓的订单,那么请浏览所有的订单,选择一个最新开仓时间的订单,然后使用上述函数,它将返回给您这个订单的净利润。 我如何及时得到一个答案,就在我找到解决方案的那一刻。:) Pips_Proffit_Last_Pos = p - PriceOpenLastPos; 但还是要感谢你! petya 2014.01.08 08:39 #4143 Ekburg К сожалению времени и возможности написать Вам готовый код нет, так как я на работе нахожусь)) 你不是按历史搜索,而是按当前位置搜索,这里有一个逻辑链,在此基础上你可以尝试编写代码。 [与Muwings合作并下订单的街区] 1 .记住门票和所下订单的神奇号码 2 .监测订单数量,如果市场上没有订单(这意味着我们的订单已经被关闭),那么转到第3 点,或者监测这个特定的订单,直到其关闭时间超过零,在这种情况下,我们排除第3 和第4 点。 3 找到我们的订单 4 找出它是否已关闭 5 查出它是如何被关闭的 6 、如果它通过止损被平仓,则在方向上设置与之不同的另一个订单。 //+------------------------------------------------------------------+ //| 123.mq4 | //| Copyright 2014, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double Lots = 0.1; extern double TakeProfit = 100; extern double StopLoss = 100; extern double TrailingStop = 50; extern double Margincutoff = 100; extern double MagicNumber = 12345; extern double TradeSizePercent = 5; extern int Slippage = 10; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } int Crossed (double line1, double line2) { static int last_direction=0; static int current_direction=0; if (line1>line2)current_direction=1;// пересечение вверх if (line1<line2)current_direction=2;// пересечение вниз if (current_direction!=last_direction)//изменения произошли { last_direction=current_direction; return(last_direction); } } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int cnt, ticket, total, totalhistory, memoryticket; double shortEMA, longEMA; if(Bars<100) { Print("Bars less than 100"); return(0); } shortEMA=iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0); longEMA=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0); int isCrossed=Crossed(shortEMA, longEMA); //---- total=OrdersTotal(); if(total<1) { // нет открытых ордеров if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } // проверяем пересечение МА для открытия позиции на покупку if(isCrossed==1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"МА",12345,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) memoryticket= OrderTicket();// запомнили тикет Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } //проверяем пересечение МА для открытия позиции на продажу if(isCrossed==2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"MA",12345,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) memoryticket= OrderTicket();// запомнили тикет Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } return(0); } //----начинаем искать закрытые ордера //инициализация параметров int old_order_type; RefreshRates(); //нет открытых ордеров - ищем в истории закрытых ордеров последний закрытый именно этим советником ордер for ( totalhistory = OrdersHistoryTotal() - 1; totalhistory >= 0; totalhistory-- ) { if ( OrderSelect(totalhistory, SELECT_BY_TICKET, MODE_HISTORY) && OrderTicket() == memoryticket && OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() ) { old_order_type = OrderType(); if ( OrderProfit()<0 ) //последний закрытый советником ордер был убыточным, значит, следующий ордер открываем в направлении, противоположном закрытому с убытком { break; //прекращаем поиск } } } //если раньше покупали, то теперь продаем if ( old_order_type == OP_BUY ) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"MA",12345,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) memoryticket= OrderTicket();// запомнили тикет Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } //если раньше продавали, то теперь покупаем if ( old_order_type == OP_SELL ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"МА",12345,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) memoryticket= OrderTicket();// запомнили тикет Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } return(0); } //+------------------------------------------------------------------+ 这就是我的情况。它真的打开了3个地段。我真的完蛋了。你能纠正代码吗?怎么了? Джони Браво 2014.01.08 09:41 #4144 我已经厌倦了问这些问题(令人难以置信的神经质,pi****,对不起(他妈的变量我找不到(主要是烦人,我自己找不到的东西)))。 哪个变量对当前价格值负责? 我搜索了文档,除了Bid、Ask、POINT_HIGH、POINT_LOW,什么都没有。 这样的变量是否存在? khorosh 2014.01.08 09:50 #4145 Link_x: 我已经厌倦了问这些问题(令人难以置信的神经质,pi****,对不起(他妈的变量我找不到(主要是烦人,我自己找不到的东西)))。 哪个变量对当前价格值负责? 我搜索了文档,除了Bid、Ask、POINT_HIGH、POINT_LOW,什么都没有。 这样的变量是否存在? 你是否注意到 "市场观察 "窗口中的价格是如何变化的?你可以在那里看到买入和卖出价格。第一个是用来卖的,第二个是用来买的。 TarasBY 2014.01.08 09:52 #4146 Link_x: 我如何及时得到答案,就在我找到解决方案的时候。:) 解决办法是:"慢慢问吧"。而且,考虑到你并不总是能得到合格的答案...:))) Джони Браво 2014.01.08 09:59 #4147 khorosh: 你是否注意到市场观察窗口中的价格如何变化?在那里你可以看到买入价和卖出价--这些是当前的价格。第一个是用来卖,第二个是用来买。 正是如此! 忘记了这样一件小事! Джони Браво 2014.01.08 10:00 #4148 TarasBY: 解决办法是:"不要急着问问题"。而且,考虑到你并不总是能得到合格的答案...:))) 是的,是的。:) khorosh 2014.01.08 10:05 #4149 Link_x: 这就对了!!!。 忘记了这样一件小事!!。 你回答正确,就像一个真正的学生在考试中一样:你不能说我不知道--你必须说我忘了)))。 Victor Nikolaev 2014.01.08 10:38 #4150 Link_x: 是的,是的。:) 也许你应该试着回答别人的问题,而不是问自己的问题。效益要大得多(在一定程度上),当然对自己的好处也是如此 1...408409410411412413414415416417418419420421422...1178 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好! ,在 "金 "功能中是否有这样的功能,可以计算出最后一笔开仓订单的利润额? 我没有找到,现在我在琢磨一个自制的函数,计算最后一笔开仓订单的利润率。
订单利润()
如果您需要的是最后开出的订单,那么请浏览所有的订单,并选择一个最新的时间,然后使用上述函数,它将返回给您这个订单的净利润。
订单利润()
如果您需要的是最后一个开仓的订单,那么请浏览所有的订单,选择一个最新开仓时间的订单,然后使用上述函数,它将返回给您这个订单的净利润。
我如何及时得到一个答案,就在我找到解决方案的那一刻。:)
但还是要感谢你!
Ekburg К сожалению времени и возможности написать Вам готовый код нет, так как я на работе нахожусь))
你不是按历史搜索,而是按当前位置搜索,这里有一个逻辑链,在此基础上你可以尝试编写代码。
[与Muwings合作并下订单的街区]
1 .记住门票和所下订单的神奇号码
2 .监测订单数量,如果市场上没有订单(这意味着我们的订单已经被关闭),那么转到第3 点,或者监测这个特定的订单,直到其关闭时间超过零,在这种情况下,我们排除第3 和第4 点。
3 找到我们的订单
4 找出它是否已关闭
5 查出它是如何被关闭的
6 、如果它通过止损被平仓,则在方向上设置与之不同的另一个订单。
这就是我的情况。它真的打开了3个地段。我真的完蛋了。你能纠正代码吗?怎么了?
哪个变量对当前价格值负责?
我搜索了文档,除了Bid、Ask、POINT_HIGH、POINT_LOW,什么都没有。
这样的变量是否存在?
我已经厌倦了问这些问题(令人难以置信的神经质,pi****,对不起(他妈的变量我找不到(主要是烦人,我自己找不到的东西)))。 哪个变量对当前价格值负责? 我搜索了文档,除了Bid、Ask、POINT_HIGH、POINT_LOW,什么都没有。 这样的变量是否存在?
我如何及时得到答案,就在我找到解决方案的时候。:)
你是否注意到市场观察窗口中的价格如何变化?在那里你可以看到买入价和卖出价--这些是当前的价格。第一个是用来卖,第二个是用来买。
忘记了这样一件小事!
解决办法是:"不要急着问问题"。而且,考虑到你并不总是能得到合格的答案...:)))
这就对了!!!。
忘记了这样一件小事!!。
是的,是的。:)
也许你应该试着回答别人的问题,而不是问自己的问题。效益要大得多(在一定程度上),当然对自己的好处也是如此