来自一个 "傻瓜 "的问题 - 页 177

 
tol64:

OnTrade()中,我们收到来自服务器的响应。这意味着,如果我们在OnTrade()中检查事件,我们将已经确定是否有一个位置。尽管我们可以提供标准选项,如DEAL_ENTRY_FULLOUT(完全关闭)或DEAL_ENTRY_PARTOUT(部分关闭),使一切都变得完美优雅)))


好建议。对于当前的实时时刻,没有问题,但在分析历史时,我们需要总结所有创建头寸的交易量,以了解它最终被关闭的时间。
 
Valmars:
这是个好建议。对于实时的当前时刻来说没有问题,但在分析历史时,我们需要将形成该头寸的所有交易量相加,以了解它最终被关闭的时间。
是的,分析历史是比较困难的。诚然,所有必要的信息都可以再次装入注释,但代码会变得越来越 "杂"。:)
 
tol64:
是的,分析这个故事更难。的确,所有必要的信息可以再次包含在一个注释中,但代码会变得越来越 "杂"。:)
通过评论,当然可以,但只能在自动交易中使用你的EA,但在分析其他人的账户时,甚至用手动控制,你也不会成功。只能通过HistorySelectByPosition() 进行选择。
 
Valmars:
通过评论,当然可以,但只是在你的EA自动交易中,在分析别人的账户时,甚至在手动控制的情况下,它将不起作用。只能通过HistorySelectByPosition() 进行选择

很久很久以前,我想出了一个解决方案,使一大堆这种混乱的东西变得没有必要。

但这是在开发者方面。:(

它包括在交易的 描述(结构)中添加一个字段,描述在一个符号上产生的未平仓头寸 (在交易发生后)。

这个字段的正值可能意味着买入头寸,负值意味着卖出头寸。

--

这甚至现在就可以做到--而且没有服务器会受到影响。没有必要改变服务器。在所有。一切都可以在终端内解决。

// 这种改变甚至比为所有讨论历史上计算位置的混乱的论坛帖子支付信用点更便宜。:)

 
MetaDriver:

...在交易的 描述(结构)中增加一个字段,描述由此产生的工具上的未平仓头寸 (在交易发生后)。

这个字段的正值可能意味着买入头寸,负值--卖出头寸。 0 = 没有头寸。

有趣的举动!结合新的属性DEAL_ENTRY_DECREASE(交易量减少)和DEAL_ENTRY_INCREASE(交易量增加),这将是完美的:所有需要交易结果的人--问我们,所有只需要交易结果(交易量减少/增加)的人--问我们。

你有没有就你的建议写信给董事会?- 因为对我来说,想出一个好主意并不难。

MetaDriver

这甚至现在就可以做到--而且没有服务器不会受到影响。你不需要改变服务器。在所有。一切都可以在终端内解决,相当容易。
// 这个改变甚至比为所有讨论历史上位置计算混乱的论坛帖子支付点数要便宜。:)

"为所有讨论围绕计算历史上的位置的麻烦的论坛帖子提供积分"--它们有那么贵吗?:)把它们交给变化的祭坛 :)

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок - Документация по MQL5
 
Yedelkin:

有趣的举动!与新的属性DEAL_ENTRY_DECREASE(交易量减少)和DEAL_ENTRY_INCREASE(交易量增加)相结合 将是完美的:谁需要特定交易的结果量--欢迎你,谁只需要交易结果(作为 "交易量减少/增加")--欢迎你!

关于你给CD写的提案?- 因为对我来说,把一个美丽的想法写出来并不难。

"所有讨论历史上计算头寸的麻烦的论坛帖子的积分"--他们有那么贵吗?:)在变革的祭坛上放弃它们 :)

不,他们对改变基础数据结构的提案感到非常紧张。

而且我真的不喜欢和他们争吵。

总之,在谈到 "基本 "建议时,我有情结。:)

// 我做了很多,只有很少的比例得到了落实。

所以:有动力--去吧,申请。 我希望人们会支持,这个提议似乎很有价值。

 
MetaDriver:

不,他们对改变底层数据结构 的建议非常紧张。

而且我真的不喜欢和他们争吵。

总之,在谈到 "基本 "建议时,我有情结。:)

// 我做了很多,只有很少的比例得到了落实。

所以:有动力--去申请吧。 我希望人们会支持,这个提议是有点价值的。

好吧,作为一个激进的原教旨主义者,我认为没有理由退缩 :)如果改变底层数据结构的建议是有益的,而不是有害的,那么它就是一个意识形态上合理的建议。
 
谢谢你!!!。
 

大家好!

你能告诉我,如果我在MT5测试器中的某个"时间点"开了一笔交易(买入或卖出)。

但是在这个时间点上,货币对没有报价(即数据中存在一个缺口,即M5条的开始时间是00:05,而之后的下一个条的开始时间是00:25)。

例如,我在00:15在测试器中打开一个交易。

测试者在交易中设定的价格是什么,从第一条(Clowes)还是从第二条(Open)开始。

还是会完全拒绝打开呢?

 
我正在尝试打开五个订单。 我一直在努力掌握第五终端的特殊性。所以,我在40分钟内没有理解它,我在日志中没有看到任何输出!如果你可以,请看一看。
//+------------------------------------------------------------------+
//|                                                     ордерній.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

uint resultat=0;
          int i;
void OnTick()
  {
//---
                      for( ;i<5;i++){

 // if( resultat!=10009){
   MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;
double Bid=last_tick.bid;

   MqlTradeRequest request={0};
   MqlTradeResult result={0};
   
   request.action= TRADE_ACTION_DEAL;
   request.magic =600;
   request.symbol=Symbol();
   request.price=Bid;
   request.deviation=20;
   request.volume=1;
   request.sl=Bid-300*Point();
   request.tp=Bid+300*Point();
   request.type=ORDER_TYPE_BUY;
   OrderSend( request,   result    );    
        
  int Error=GetLastError( ) ; ResetLastError();
  printf("Error %i ",Error);
  
   resultat= result.retcode ;
   printf("resultat %i ",resultat); //}
   Print ( i, PositionsTotal());
   // int PositionTicket= PositionGetInteger(POSITION_IDENTIFIER)
   
                                          }
  

   
  }
//+------------------------------------------------------------------+

 bool  PositionModify( int PositionTicket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE)
      {  MqlTradeRequest request  = {0};

是的,它打开了订单,一切都很好,但它不写打印机。它说

2012.09.04 17:20:10 交易 '1232639': 订单 #11979593 在1.25755买入1.00 / 1.00欧元兑美元 完成

2012.09.04 17:20:10 交易 '1232639': 交易 #11107137 在1.25755买入1.00 EURUSD 完成(基于订单 #11979592)。

2012.09.04 17:20:10 交易 '1232639': 即时买入1.00 EURUSD at 1.25739 sl: 1.25439 tp: 1.26039 (偏差: 20)


2012.09.04 17:20:10 交易 '1232639': 即时买入1.00 EURUSD at 1.25739 sl: 1.25439 tp: 1.26039 (偏差: 20)

2012.09.04 17:20:09 专家顾问(EURUSD,M5)成功加载。