通过专家顾问运行脚本 - 页 3

 
Dadas:


有什么办法可以在一个循环中触发脚本,由一些股票代码控制,比如每50ms或类似的东西?

不是通过MT4的点数吗?


我将尝试自己回答这个问题。

这是不可能的,因为start()函数是由新的报价运行的,也就是经纪人的ticks。

因此,即使你在start()函数内有一个循环,它也只在有新的tick出现时循环。

这就是为什么你无法战胜经纪商的原因。

不过,当我像这样把我的EA作为脚本运行时,我的电脑开始滞后,因为我的EA是在一个新的时间点上运行的。

int start() {

while(1==1) {

MyEA();

}
}

我的电脑开始滞后了,因为那个循环。

我是在周日 尝试的,所以市场是关闭的。

 
Dadas:


那么,一个EA可以作为一个脚本运行吗?在一个循环中?

只是,在无限循环的情况下,电脑最终会崩溃。

有什么方法可以在循环中触发一个脚本,由一些刻度线控制,比如每50ms或类似的东西?

而不是由MT4指数控制?


脚本只运行一次,除非你在它的start()函数 中加入一个有限/无限的循环。如果你想用你自己生成的tick来触发脚本,那么就把它做成EA,放在一个离线图表上。
 
Dadas:


不过,当我把我的EA作为一个脚本这样运行时,我的电脑就开始滞后,因为这个循环。

我的电脑开始滞后了,因为那个循环。


你的电脑需要升级......或被替换。
 
RaptorUK:

你的电脑需要升级......或被替换。

这倒是真的!它是一台旧的。
 
RaptorUK:

脚本只运行一次,除非你在它的start()函数中加入一个有限/无限的循环。如果你想用你自己生成的tick来触发脚本,那就把它做成EA,放在一个离线图表上。

我不能在离线图表上交易。
 
Dadas:

我不能在离线图表上交易。
为什么不能?
 

达达斯 2012.08.12 16:34
瞵岔语


有没有一种方法可以在循环中触发脚本,由一些刻度线控制,比如每50ms或类似的东西?

不是通过MT4的ticks?


我将尝试自己回答这个问题。

这是不可能的,因为start()函数是由新的报价运行的,也就是经纪人的ticks。

因此,即使你在start()函数内有一个循环,它也只在有新的tick出现时循环。

这就是为什么你无法战胜经纪商的原因。

不过,当我像这样把我的EA作为脚本运行时,我的电脑开始滞后,因为我的EA是在一个新的时间点上运行的。

int start() {

while(1==1) {

MyEA();

}
}

我的电脑开始滞后了,因为那个循环。

我是在周日尝试的,所以市场是关闭的。

嗨,达达斯。

脚本的执行没有刻度,EA的执行有刻度。

当使用无限循环时,请添加一个Sleep ()(https://docs.mql4.com/common/Sleep)

试试下面这段代码作为脚本,关闭互联网连接,打开任务管理器,将脚本附在图表上。脚本将无限循环,不需要打勾,也不需要占用太多的处理器。

  int n;
  while (IsStopped() == false) // or while (true)
    {
    n++;
    Alert (n);
    
    Sleep (500); // add this !
    }

 
.
 
RaptorUK:
为什么不呢?


请给我指点迷津!

我怎样才能在离线图表上进行实时实时交易?

 
onewithzachy:

嗨,达达斯。

脚本的执行没有刻度,EA的执行有刻度。

当使用无限循环时,请添加一个Sleep ()(https://docs.mql4.com/common/Sleep)

试试下面这段代码作为一个脚本,关闭互联网连接,打开任务管理器,将脚本附加到图表上。该脚本将无限循环,不需要打勾,也不需要占用太多的处理器。


非常感谢!

这很简单,我应该自己想到的......

累了,我想.......就像我的老电脑一样--大笑!

虽然,你知道,我想的是一点点不同的东西。

我想的是如何在MT4实时交易中覆盖滴答声!

重点是,在实时交易中,滴答声控制着EA,因此经纪人也可以。

换句话说,如果我想让我的EA在某些条件下关闭订单--我希望我的EA能做到这一点,绝对的,而不是也许。

除了重新报价(我对此无能为力,只能更换经纪人),经常发生的情况是,我在图表上看到

我的订单应该关闭,但它只是挂着,直到下一个点,然后它就输了。

如果我在我的EA中写道。

if(AccountProfit()>0) { CloseAllOrders(); }

那么我希望它能以1点或更高的利润收盘。我不希望它挂在1点上,什么都不做!

顺便说一下,我是用欧元兑美元的1点固定点差进行交易的。

所以,我不需要那么明显,而且Sleep()也不是一个解决方案,除了用于离线反向测试。

顺便说一下,任何后向测试都没有什么好处--它不是实时测试。

好吧,这对一些观察和图表研究是有好处的,可以学到很多东西

但是,在实时交易中,你不知道未来,你会犯错误--除非你真的信任你的EA!

信任它胜过你在图表上看到的东西!- 这是最困难的部分!

所以,伙计们,请理解地阅读我的帖子!