[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 407

 
Zhunko:

总之,如果没有RefreshRates(),我的EA将无法工作。我把它们做成循环的。因此,RefreshRates()是强制性的。

你说的循环是什么意思?事实上,任何专家顾问都可以说是循环的,因为开始有一个周期。每打一次勾...

竺可桢

在这个原则下 进行初始历史加载。然后我定期给它充电。否则,在专家顾问工作的历史中会出现 "空白"。我不知道为什么会发生这种情况。

在我看来,是你在厨房里交易,这就是历史上的漏洞形成的原因。我注意到它发生在蹩脚的厨房里。一个高质量的经纪人不应该有这种狗屎。

竺可桢

我试着用RefreshRates()来分页。它并不总是有效。

但RefreshRates()的作用是更新市场环境的变量,而不是用于分页。当然,它并不分页。


竺可桢

有时只有最后一节到达。

最后一小节在哪里?

竺可桢

如果一个工具的图表是开放的,总是有它的历史。本案中没有任何错误。当所需仪器的图表没有打开时,该错误出现了。

嗯,如果市场数据是通过MarketInfo()拉动的,正如我所理解的,应该不会有错误。如果它绕过它,当然也是如此。似乎是这样。我还没有检查,但似乎是同样的逻辑。
 

你好。

我想问一个关于测试系统的问题。总的来说,我理解这幅图,但由于我还没有任何真正的经验来获得一个有效的EA,我一直在创造-创造,测试-测试一切......总的来说,我不知道我现在什么时候能停下来。

我的专家顾问很简单;它几乎没有优化参数。这不是一个黄牛党。在2000年至2013年期间,我在D1交易,最小手数为0.01,存量为100美元。这就是报告。

报告


我们能相信这些结果吗?只有300个交易,但根据策略逻辑和D1时间框架,应该不会有更多的交易。该策略只有一个优化参数--信号的忠诚度。如果我们让系统对他们更加严格,据说参数会改善,但交易量只会是175。在有这么多交易的情况下,结果是否可信?或者,选择第一种指标更差但交易更多的变体更好?

报告2


还是这两个都没有用,我们需要更高的数学期望值等等?

 
欧元/美元 H4货币 上,"等待更新 "被点亮,并且没有切换到其他时期,我应该怎么做?
 
shurik32:
在欧元/美元H4货币对上亮着 "等待更新",并没有切换到其他时段,该怎么办?
进入历史 F2交换H4!
 
Vinin:

如果在专家顾问的计算过程中出现了新的点数(当函数start()运行时),专家顾问将不知道这些点数(ticks)。RefreshRates()允许你使用最新更新的价格,但这个函数不访问服务器。它更新终端已知的市场环境。除了在 服务器上交易 的,没有其他功能

很难说分配的那个人。你得问问梅塔克沃特人。

我的真实账户在MRC中被封锁了,因为频繁地打开和更新图表。这不是一个MQL4功能,而是一个内部图表查看器。也许,例如,MarketInfo()正在访问服务器,或者只从市场概览中获得部分数据。

====================================

在我印象中,来自Market Watch的数据不一定要和Predefined Variables 一样。那么RefreshRates()从什么地方更新?

我只有一个答案。刷新是对服务器上的历史记录进行分页和核对。在试图用它来更新历史时,我多次确信这一点。往往只有最后一小节来了。在终端卸载后,HST文件中出现了一个 "洞"。但如果你打开这个图表并刷新它,这个 "洞 "就被填补了。顺便说一下,当RefreshRates()在任务管理器中运行时,你可以观察到数据的加载。 也许,当用RefreshRates()更新历史记录时,调和并没有发生,但在图表更新时发生。

因此,如果你需要历史上没有漏洞的专家顾问流程,就有必要进行控制。

hoz:
1.你说的周期性是什么意思?事实上,任何专家顾问都是循环的,因为它有一个启动周期。每次勾选一次。

2.在我看来,是你在厨房进行交易,这就是历史上的漏洞形成的原因。我注意到,这种情况发生在蹩脚的厨房里。但是,一个优质的经纪人不应该有这种狗屎。

但RefreshRates()的作用是更新市场环境的变量,而不是用于分页。当然,这不是寻呼。

4.最后一小节在哪里?

5.嗯。好吧,如果你通过MarketInfo()拉动市场数据,按照我的理解,应该不会有任何错误。如果你绕过它,那么当然。它看起来像这样。我还没有检查,但似乎是同样的逻辑。

1.像这样。

extern string Tool           = "";    // Имя инструмента.
extern bool   IsRefreshRates = false; // Флаг включения обновления таймсерий.
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start()
 {
  string sTool = Tool; // Имя инструмента.
  if (Tool == "") sTool = Symbol();
  while (!IsStopped())
   {
    if (IsRefreshRates) RefreshRates();
    Comment("MarketInfo()\n",
            TimeToStr(MarketInfo(sTool, MODE_TIME), TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
            DoubleToStr(MarketInfo(sTool, MODE_BID), Digits), "  ", DoubleToStr(MarketInfo(sTool, MODE_ASK), Digits),
            "\n\nПредопределенные переменные\n",
            TimeToStr(Time[0], TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
            DoubleToStr(Bid, Digits), "  ", DoubleToStr(Ask, Digits),
            "\n\nМассив-таймсерия \"Close[]\"\n",
            TimeToStr(Time[0], TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
            DoubleToStr(Close[0], Digits));
    Sleep(300);
   }
 }

2.它不依赖于经纪人。这是终端及其与服务器工作的一个特殊性。由于某些原因,RefreshRates()刷新历史的方式与刷新图表的方式不同。

3.你是否已经读过帮助?我们又来了。

刷新预定的变量和时间序列数组中的数据。当专家顾问或脚本已经进行了很长时间的计算,需要更新数据时,可以使用这个功能。如果数据被更新,它返回TRUE,否则返回FALSE。数据可能不会被更新,只因为它对应于客户终端的当前状态。专家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在专家顾问或脚本首次启动时创建的。在每次启动专家顾问时(记住,该脚本只执行一次,不依赖于传入的点数),最初创建的副本会被更新。在专家顾问或脚本运行时,可能会出现一个或几个新的点,所以数据可能会过时。

4、我们在谈论什么?谈论更新专家顾问线程中的数据。

5.上面的EA代码显示了数据的更新方式和位置。如果不包括IsRefreshRates,数据只在MarketInfo() 中更新。

 
 

在ilan 2.0 (1.6)的合理设置下,成功地在alpari上进行了交易,直到开始出现关于频繁的非生产性请求的警报,使服务器白白加载。结果发现,在快速的市场中,阿尔帕里将最低可能的止损设置水平提高到2个点差,这相当于40点,有时更少。但是我的EA似乎将这个值设置在15-55点的范围内,这是我从阅读EA的代码中理解的。但阿尔帕里不满意,我被威胁要封杀,所以我已经停止交易。我并不了解mql4,我只是编辑了代码中的这几行,在我看来,这是对问题负责的唯一几行,它在任何ilan的标签中,靠近开头。

双倍PrevCl。

double CurrCl;

If (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);

如果((iCCI(NULL,15,55,0,0)>下降 && ShortTrade)|(iCCI(NULL,15,55,0,0)<(-下降)&& LongTrade)){

在那里,我愚蠢地将数字15改为40,以解决这个问题,但进一步我从阿尔帕里了解到,这个问题并没有解决,也就是说,我做错了什么,这并不奇怪。你能告诉我如何正确编辑EA代码,使其将止损水平放在40-55点范围内,而不是15-55点。我知道40-55点的范围不够大,无法设置舒适的止损,而且离价格太远,会减少利润。但我没有选择,我不想离开阿尔巴里,那里很舒服。在标准的EA设置 中没有相应的参数。

 
Dmido:

你好。

我想问一个关于测试系统的问题。总的来说,我理解这幅图,但由于我还没有任何真正的经验来获得一个有效的EA,我一直在创造-创造,测试-测试一切......总的来说,我不知道我现在什么时候能停下来。

我的专家顾问很简单;它几乎没有优化参数。这不是一个黄牛党。在2000年至2013年期间,我在D1交易,最小手数为0.01,存量为100美元。这就是报告。


我们能相信这些结果吗?只有300个交易,但根据策略逻辑和D1时间框架,应该不会有更多的交易。该策略只有一个优化参数--信号的忠诚度。如果我们让系统对他们更加严格,据说参数会改善,但交易量只会是175。在有这么多交易的情况下,结果是否可信?或者,选择第一种指标更差但交易更多的变体更好?



还是这两个都没有用,我们需要更高的数学期望值等等?


每年10%是好是坏?
 
Andrew245:

在ilan 2.0 (1.6)的合理设置下,成功地在alpari上进行了交易,直到开始出现关于频繁的非生产性请求的警报,使服务器白白加载。结果发现,在快速的市场中,阿尔帕里将最低可能的止损设置水平提高到2个点差,这相当于40点,有时更少。但是我的EA似乎将这个值设置在15-55点的范围内,这是我从阅读EA的代码中理解的。但阿尔帕里不满意,我被威胁要封杀,所以我已经停止交易。我不太了解mql4,我只是编辑了代码中的这几行,在我看来,这是对问题负责的唯一几行,它在任何ilan的标签中,靠近开头。

双重PrevCl。

double CurrCl;

If (UseTrailingStop) TrailingAlls(TrailStart, TrailStop, AveragePrice);

如果((iCCI(NULL,15,55,0, 0)>下降 && ShortTrade)|(iCCI(NULL,15,55,0, 0)<(-下降)&& LongTrade)){

在那里,我愚蠢地将数字15改为40,以解决这个问题,但进一步我从阿尔帕里了解到,这个问题并没有解决,也就是说,我做错了什么,这并不奇怪。你能告诉我如何正确编辑EA代码,使其将止损水平放在40-55点范围内,而不是15-55点。我知道40-55点的范围不够大,无法设置舒适的止损,而且离价格太远,会减少利润。但我没有选择,我不想离开阿尔巴里,那里很舒服。在标准的EA设置中没有相应的参数。


那么改变止损参数,你为什么要改变指标参数?
 
pako:

那么改变止损参数,为什么要改变指标参数?

我猜到了,但我找不到它们,止损参数