市场总是错的 - 页 3

 

我还没有处理过专家顾问,但我用类似的代码来计算资产。

if (AccountEquity() > beginEquity) {
      if (IsTesting()) {
         beginPrice = Bid;
         magicnumber++;
         beginEquity = AccountEquity();
      } else {
         Alert("Please refresh beginPrice, beginEuqity and change magicnumber");
      }

我建议在初始化期间将变量等同于余额作为第二种选择

int init()
  {
//----
   if (IsTesting()) {
      beginEquity = AccountBalance();
   }
   return(0);
  }

在这种情况下,就不需要在运行EA之前检查权益。

static double beginEquity = 200000;

因为它的权益等于专家顾问开始工作前的余额!

维亚切斯拉夫。


 
Winner:
Reshetov:
如果你愿意,你可以这样做。否则,这些资金将用于再投资。
而如果顾问为整个库房开仓,不损失库房的风险是什么????
只要MT测试器开始支持多头交易,就有可能在历史数据上获得对损失概率的经验估计。

目前,测试人员只能根据经验评估单个配对的风险。

目前还没有对这种战术的风险 进行分析估计
 
Reshetov:
Timbo:
YuraZ:
一个非常好的策略。
...
另一个问题是,在一年或两年后才提取。
我读了一本关于外汇、股票等的书。特别是关于各种基金的雇员,他们似乎增加了储户的资金,被认为是专业人士,几乎是天人合一。因此,在这个问题上有一个想法,即他们和其他人是一样的,没有更好也没有更差,他们犯的错误也不比别人少。存款 "是如此之大,以至于它可以坐等任何缩减。
换句话说,如果你不是那么着急提款,而且存款规模巨大,那么你开哪种方式都没有区别--你迟早会有收获。
如果你在历史最高点开出买入头寸或在历史最低点开出卖出头寸,那么利润将等到下一个历史极值。进入和退出市场是有区别的,而且区别很大。

为了避免这种情况,最好增加一个简单的分析,并避免过度关注选择一天的时间。
 

谢谢你的回答,尊敬的雷舍托夫先生。我自己已经意识到,这些行是为了安全预防,类似于其他语言中的{try...catch}。特别是,在测试中,我真的没有进入Closeby功能。

我似乎为测试创造了一些东西。虽然我仍然不能排除错误,但我想我要给你看我一直在努力的东西。我打算在Finlist上做(我觉得那里更舒服),但由于Yuri在这个论坛上,我可能会在这里开始。

一般来说,你在这里看到的将帮助你了解EA的信号是如何产生的。

到目前为止,我已经添加了一个1.1版本的EA算法。尤里不断给我新的版本,我不得不像蜗牛一样去挖掘它们。它似乎与1.1版相同,但sellprofit有>0.001而不是0.01。

测试是按照我的计划进行的,所以不要遗憾。这意味着我现在的库房是1000美元,因此我使用的对数有限。到目前为止,我只用了一个EUR组。我把测试时间限制在24小时内。我的计划很灵活,当然我可以设定2天或10天的期限。但目前我并不关心这些,重要的是对算法的一般理解。特别是由于它仍然需要很长的时间来计算。测试日是半小时计算,这是因为视图表(见下文)。它非常长,但我实际上是把所有的变量赋值都输出到表和其他东西上。我甚至羡慕MQL测试--他们使一切运行得如此之快。当然,一切都以更专业的方式进行,但你不会在那里看到一切。但对我来说,是一粒一粒的--但我有一个清晰的观点。

一些解释。我的报价是专门准备的--这意味着它们有孔等等。这样的处理需要时间,只要我不想加载新的数据,我有从01/01/05到16/09/06的历史报价范围。因此,测试是在这些范围内,对我来说现在已经足够了。是的,报价是forexclub,分钟,取自forextester。

我提供了3个表格,你可以看到所有的发展。

1) _history - 它类似于mql中的 "Account history",但只有打开和关闭的订单位于一起,分离的标志是字段[flag]。那里一切都很清楚。字段id_operation:如果是 "1",就是BUY/。

2) _资源:所有参与的货币对在当前时刻的未平仓订单的总余额、权益和利润。这里的一切也应该很清楚,除了[ID]字段--这是我的内部日期标识符。如果你有任何问题,我可以更详细地解释,但一般来说,它所对应的日期可以在第三个表_view中看到,那里的一切都很详细,而在_resources中则显示每分钟的总数。

3) _view - 一切都非常详细,对于每个货币对都有不同的交易发展历史。实际价格]字段是一分钟报价的收盘价。买入价,卖出价 - 我得到+价差(价差取自Alpari,但因为一切都在表格中,我可以纠正它,但我看不出有什么意义,反正一切都很接近。)而数据的读取非常简单--EA的第一个版本,行号将是一个指针,在什么地方被分配到变量中(例如,字段[money_54]对应于EA的第54行,在那里钱被重新计算。如果是 "0",意味着在这个地方没有计算,因为没有相应的条件)。检查注释字段,那里记录了操作,并与表_历史中的历史相对应。是的,一个可能的误解。Itog_profit字段是给定货币对当前时刻未结订单的总利润。sellprofit或buyprofit字段可能不同,因为它只包含最后打开的卖单或买单的数据。因此,在循环<for>中,对于未结订单的列表。剩下的应该很清楚,除非你发现我的错误。

我自己也刚开始看了一下。起初我对这个测试很满意。我在第一个可用日戳了四次(我甚至还没看图表),使用2个符号EURUSD+ EURCHF,做了一天的计算,结果不错--从15到150点。但后来我到了那一天,当天的总额以-80点结束。我再一次打断了测试,这是不正确的。显然,如果继续测试,会有不同的结果。但现在我是这样看的。

这个版本的测试是一种剥头皮,尤里正确地说,他的EA是相当不同的,存款不应该小,因为当存款小的时候,EA操作的技术过程被违反了,由于缺乏资金,平均数不能按预期工作,争取 "生存能力 "的结果可能不是非常积极。

我再一次说,我对尤里的专家顾问非常钦佩,就像我自己一样。非常有趣和新颖。但你自己看看--它既美丽又危险,至少是第一版。


真诚的,美联储

是的,再来一次:Depo $1000, Bl=1000, BeginPrice - 当前在日期时间计算。测试的目的是为了了解信号是如何产生的。

第一次测试 -15/03/05 10:00至16/03/05 10:00

这一天是有 "新闻价值 "的,但由于我们正在观看信号的生成(谁在乎),所以现在都是一样的。

首先是2个货币对EURUSD和EURCHF



附加的文件:
 
现在,同样的输入参数,但只取一个欧元兑美元
附加的文件:
 

现在有2个货币对EURUSD 和EURCHF,存款1000,存款1000,c15/03/05 00:00至16/03/05 00:00。即时间略有改变,BeginPrice=current。

附加的文件:
 
好了,还有1对欧元兑美元,存款1000,存款1000,从15/03/05 00:00到16/03/05 00:00




好吧,现在,我将停止用我的创作来填补mql。也许这并不有趣,也许在这个阶段有人会发现我的错误。但我可以显示计算的变化,取决于Bl和BeginPrice <>当前

真诚的,Fed
附加的文件:
 
FION:
雷舍托夫
Timbo:
YuraZ:
一个非常好的策略。
...
另一个问题是,在一年或两年后才提取。
我读了一本关于外汇、股票等的书。特别是关于各种基金的雇员,他们似乎增加了储户的钱,被认为是专业人士,几乎是天人合一。因此,在这个问题上有一个想法,即他们和其他人是一样的,没有更好也没有更差,他们犯的错误也不比别人少。存款 "是如此之大,以至于它可以坐等任何缩减。
换句话说,如果你不是那么着急提款,而且存款规模巨大,那么你开哪种方式都没有区别--你迟早会有收获。
如果你在历史最高点开出多头,在历史最低点卖出,利润将等到下一个历史极值。雷舍托夫:进入和退出市场是有区别的,而且区别很大。

为了避免这种情况发生,最好是增加简单的茶叶分析,并选择一天的时间,以避免过度。
我只是没有认真地阅读这本书。而这本书明确指出,"专业人士 "严格按照反趋势进行交易,而且最常采用平均法。这就是为什么他们没有办法在当地高点买入,在当地低点卖出。
 
Fed:

谢谢你的回答,尊敬的雷舍托夫先生。我自己已经意识到,这些行是为了安全预防,类似于其他语言中的{try...catch}。特别是,在测试中,我真的没有进入Closeby功能

真的很遗憾,MQL不是面向对象的。特殊情况的处理程序和自制的事件处理程序极大地简化了程序员的生活,因为许多错误可以事先被修复。而且,虽然没有OOP,但我们必须努力预见算法层面的各种暴行,而且代码也不太合算。
 
Paha:
你好!
开个玩笑。
正如Mathemat所说的 "表面分析",好,非常好!没有一个负值。但我不明白的是(也许是我理解错了):我没有关闭赌徒,也没有关闭终端。在这种情况下会不会显示警报,或者EA会不会自行交易? 如果我短时间内断开互联网,然后恢复连接,会发生什么?没有从我这边断开任何联系?
对我来说,这个问题非常重要,因为我每天至少有18个小时不在电脑前(睡眠、工作等),如果在这段时间内发生断线,或者我不能输入新的数据。.....,这不是真的好。
另外,如果我理解正确的话:如果你打开凸轮或终端,你只需要输入当前值,一切都会照常进行,即重新连接EA?
另外,如果显示了警报,但我们没有做任何事情,EA是按照旧的设置继续交易,还是等待新的设置进入?
如果可能的话,我想更详细地解释这些观点!!!!。
谢谢你给了我另一个理由来绞尽脑汁。(以一种好的方式)。
真诚的 !!!!
与互联网的短期断开连接不会以任何方式影响专家顾问的战术。

一般来说,你可以不使用过敏症,而改用半手持式,特别是在没有可能监控专家顾问的情况下。其原则是,当权益水平超过前一个水平时,开始一个新的游戏(即所有EA的新Magik和beginPrice)。

也就是说,当有机会的时候,要看一看股权。如果它已经超过了以前的水平,那么。
  1. 停止所有EA的工作。
  2. 我们使用 "关闭重叠订单 "来关闭所有符号的相反头寸,以避免在价差上的损失。
  3. 将巫师增加1,并将其beginPrice设置为当前的Bid,即开始一个新游戏。
  4. 记住目前的权益水平。例如,把它写在一张纸上或放在一个文件里。
  5. 用新的设置启动EA。
  6. 去工作,做生意或泡妞。
  7. 当有机会再次查看股权并改变设置时,我们就会查看,如果超过了之前的水平,我们就进入第1点。 如果还没有超过,我们就进入第5点。