对MQL5的祝愿 - 页 59

 
diakin >> :

比如说,什么样的活动?

例如,从实践上看,关闭一个位置。我有这样一个任务--知道什么时候平仓,以便考虑到释放的资金来修改其他订单。我不得不一直监控账户状态。我试图从历史记录中追踪订单,但不可能测试,一切都需要很长的时间。

现在唯一可以处理的事件是嘀嗒声。

 
Gupm писал(а)>>

例如,从实践来看,关闭一个位置。我有这样一个任务--知道什么时候平仓,以便考虑到释放的资金来修改其他订单。我不得不一直监控账户状态。我试图从历史记录中追踪订单,但不可能测试,一切都需要很长的时间。

现在唯一可以处理的事件是打勾。

但无论如何,start()是在每个tick点启动的。你可以在那里做任何检查,无论某些事件是否已经发生。

 
diakin писал(а)>>

所以,无论如何,start()在每个tick上都会运行。你可以在那里做任何类型的检查,不管一些事件是否发生。

是的,是的,我现在就在做,但当订单是一个对象时,那将是多么美妙啊,例如,它将有一个关闭事件,你把你的处理程序和所有的东西绑定在一起,这部分的代码是绝对独立的,可以调试,等等。

 
Gupm писал(а)>>

是的,确实如此,这就是我现在所做的,但如果订单是一个对象,它将有,例如,一个关闭事件,你将你的处理程序与之绑定,就是这样,这部分代码是完全独立的,被调试的,等等。

我认为这在MQL5中可能很容易做到。

;)

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, 
int magic=0, datetime expiration=0, color arrow_color=CLR_NONE, 
func OnClose) 

最后一个参数是关闭订单时要调用的函数名称。反正编译器会识别文本中的函数,也会在参数中识别它们。

而事件是在内部处理的,因为关于订单关闭(或错误)的信息被打印到日志中。

但我们可以期待更多的事件,这些事件也必须用参数来描述,至少要有空值,比如OnCloseEmpty、OnOpenEmpty 等等。

一般来说,最好为经常调用的函数添加一个模板列表,当你从中选择带有所有所需参数的函数模板时,将插入文本中。

现在我们必须进入帮助,复制函数的描述并编辑参数。

 

我想为MQL5提出一个请求。

对不起,如果我重复了,我还没有看完以前的所有帖子...

我希望新的mql中的循环能以某种方式进行标记,比如说,像这样。

 
Duke3D писал(а)>>

...

我希望新的mql中的循环能以某种方式突出显示,例如像这样。

至少做一个文本格式化按钮,对大括号进行自动缩进。

现在,如果错过了一个支架,就很难找到它发生的地方。

而且还增加了行的编号。这在C语言中并不常见。这比在状态栏上寻找行号更方便。

 
diakin >> :

我认为这在MQL5中很容易做到。

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, 
int magic=0, datetime expiration=0, color arrow_color=CLR_NONE, 
func OnClose) 

;)

最后一个参数是关闭订单时要调用的函数名称。反正编译器能识别文本中的函数,它也会在参数中识别它们。

而事件是在内部处理的,因为关于订单关闭(或错误)的信息被打印到日志中。

但我们可以期待更多的事件,这些事件也必须用参数来描述,至少要有空值,比如OnCloseEmpty、OnOpenEmpty 等等。

一般来说,最好为经常调用的函数添加一个模板列表,当你从中选择带有所有所需参数的函数模板时,将插入文本中。

现在我不得不进入帮助,复制函数描述并编辑参数。

为什么只在收盘时?那么onModify、onOpen呢?

也许如果这是一个对象,它应该是这样的。


TOrder order = new  TOrder(symbol, cmd,  volume, price, slippage, stoploss, takeprofit, comment);
order.addEventListener( "open", myOpenHandler);
order.addEventListener( "close", myCloseHandler);
order.addEventListener( "modify", myModifyHandler);
order.send();

Ы?

 
TedBeer писал(а)>>

为什么只在收盘时?那么onModify、onOpen呢?

也许如果秩序是一个对象,应该有这样的东西。

Ы?

这很难说。

int ticket=OrderSend(parameters); // MQL4的常规函数

order(ticket).addEvent("open", myOpenHandler)。

或更紧凑

Order(ticket).OnOpen=myOpenHandler;

其中Order(handle)是一些标准的东西,一个对象或结构,通过它你可以获得给定对象handle的属性。

double MyVolume=Order(ticket).Volume。


大量的定制活动不能用螺栓连接。或者我们可以吗?

Order(ticket).addEvent("MyCustomEvent", MyCustomEventHandler)。

在这种情况下,"MyCustomEvent "在哪里被描述?(如果它不是标准事件和前提条件的组合)。

虽然据我所知,MQL5已经写好了,所以这是对未来的一个愿望;)))。

 
diakin >> :

这很难说。

int ticket=OrderSend(parameters); //来自MQL4的常用函数

Order(ticket).addEvent("open", myOpenHandler)。

或更紧凑

Order(ticket).OnOpen=myOpenHandler;

其中Order(handle)是一些标准的东西,一个对象或结构,通过它你可以获得给定对象handle的属性。

double MyVolume=Order(ticket).Volume。


大量的定制活动不能用螺栓连接。或者我们可以吗?

Order(ticket).addEvent("MyCustomEvent", MyCustomEventHandler)。

在这种情况下,"MyCustomEvent "在哪里被描述?(如果它不是标准事件和前提条件的组合)。

虽然,据我所知,MQL5已经写好了,所以这是对未来的一个愿望;)))。

那么,你有一个功能化方法和OOP的混合体。从意识形态上讲,应该是二者择一。即使为了向后兼容而保留了通常的功能,也应该实现OOP,否则称为MQL5的如此深刻的现代化的意义何在?

不幸的是,我们所有的讨论都类似于阅读茶叶。他们是没有用的,因为我们没有看到methaquotes的任何意愿,不仅给出了测试版本,而且还公布了他们所实现的语言规范。然后,你可以合理地要求在将其作为产品发布之前对该语言做些什么。