错误、漏洞、问题 - 页 409

 
T-G:

请告知以下代码如何在mql5上工作,我不明白

在频率上如何获得当前的小时数?
给你
//+------------------------------------------------------------------+
//|                                                       пример.mq5 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"

input int HourOpen=4;

MqlDateTime str;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),str);

   if(str.hour==HourOpen)
     {
      // действие
     }
  }
//+------------------------------------------------------------------+
 
sergey1294:

TimeCurrent()有一个重载,所以你可以直接获取时间(绕过TimeToStruct()),尽管你的版本也是正确的。
 

stringo:

那么,严重的问题是由实施这一方案造成的?

void OnTrade(
             const string symbol,//символ, от которого (по которому) пришло торговое событие
             const uchar type,   //тип торгового события (изменения в ордерах, позициях или сделках)
             const ulong ticket  //тикет ордера или сделки, либо идентификатор позиции (в зависимости от второго параметра)
             );

正是如此。问题是,交易和消息队列没有以任何方式同步。一张相同的票可能会收到一堆信息。

此外,当你从这个堆中收到第一条信息时,你对同一票上的其他信息的可用性一无所知。你急于处理票据的修改,但票据已经存在,它已经在历史上的关闭头寸中。该怎么做?不详

现在,当一个非个人的交易事件发生时,你可以立即知道未结头寸 的当前状态和交易历史。你没有票号,除了目前的状态外,你没有任何东西可以参考。

已经有几天没有联系了。

也许,在使用OnTrade() 函数的可能参数方面有不同的变体,但我的目的是这个变体。

1.订单。在收到下一条 "来自货堆 "的信息时,我从订单票据中发现,该订单是在未结订单列表(OrderSelect)中还是在历史订单列表(HistoryOrderSelect) 中。也就是说,我得到了关于某个订单的当前位置的最新信息,与订单清单有关。

2.职务。在收到 "来自堆 "的下一个信息时,我通过它的名字(PositionSelect)找到了这个符号的位置状态。也就是说,我也能得到关于该职位当前状态的最准确信息。

然后,我根据需要对特定符号的属性进行处理。

因此,我尽量避免过度使用周期性检查。

 
Urain和 sergey1294 感谢您的及时回复,现在我明白了。
 
AlexSTAL:
它说的是什么?症状是什么?

没有!我正在尝试开立一个模拟账户(我已经尝试了不同的DC)。

回来了

然后不能创建一个账户

 
papaklass:
如果你是一个模拟交易员,你只需要知道是否触发了止损或止盈,以及在哪个工具上。其余的交易事件是外来的,与交易没有什么关系。IMHO。因此,如果在OnTrade()函数 中有一个符号,就有可能确定(例如,将当前的余额与之前的余额相比较)什么sl或tp触发了。
我同意。最起码你需要一个符号,然后我们会弄清楚它是什么。
狐狸

试图开一个模拟账户(我试过不同的经纪公司)。

出现了

我尝试了不同的经纪公司,之后我无法开立账户。

你什么时候下载的终端,在哪里下载的?下一个窗口的截图是可取的,因为这个窗口的信息量不大。
 

对《中国日报》的开发者来说

Win 2003 SP2(终端模式)中不断擦除账户信息是一个错误还是为了提高安全性而设计的?

更确切地说,如果我在正常模式和终端模式下交替使用同一个程序副本,使用不同的账户,账户数据就会不时地消失。显然,如果你只是用不同的账户在终端模式下工作,情况也会类似(我还没有检查过)。

 
papaklass:
大多数交易者需要知道止损或止盈是否被触发,以及在哪个工具上被触发。其余的交易事件是外来的,与交易没有什么关系。IMHO。因此,如果在函数OnTrade() 中有一个符号,那么,例如,将当前余额的值与之前的值相比较,你可以确定是sl还是tp触发了。
在 "保护票 "方面 :)我更喜欢与未决订单打交道,追踪它们从出生到退休的命运。这是一种什么样的 "与贸易关系不大的异国情调"?相反,通过订单的票据来跟踪订单的命运是对时间的要求。- 有必要避免下第二个挂单或对已经下过的订单进行超额触发。如果我们有上述的参数,我们可以将订单现货跟踪块移到OnTrade()函数中。
 
papaklass:
大多数交易者需要知道止损或止盈是否被触发,以及在哪个工具上被触发。其余的交易事件是外来的,与交易没有什么关系。IMHO。因此,如果在函数OnTrade() 中有一个符号,你可以确定(例如,将当前的余额与之前的余额进行比较)什么触发了sl或tp。
我将再次重复这一点。这个问题还没有结束。它已被推迟,直到我们找到一个可接受的解决方案。那么,更重要的任务还没有解决。
 
Yedelkin:
在门票的辩护中 :)我更喜欢处理待定的订单,跟踪它们从出生到退休的命运。这算什么 "与贸易关系不大的异国情调"?相反,通过订单的票据来跟踪订单的命运是对时间的要求。- 有必要避免下第二个挂单或对已经下过的订单进行超额触发。如果我们有上述的参数,我们可以将订单现货跟踪块移到OnTrade()函数 中。
也许,提供关于有多少贸易活动仍在排队的信息会简化事情。