新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 644

 
Artyom Trishkin:

数据时间为 ulong

非常感谢您!
 
Vitaly Gorbunov:

你不应该马上纠正他的代码,这个人只是不了解基本的编译器键,要想写出正常的代码,你需要了解这些微妙的东西,并使用文档!"。

我指出了视频的古老性,如果他完全按照视频中的内容来复制,他就会成功。但他不以为然,对帖子进行了投诉,结果帖子被删除了,而他自己却根本不打算去查。

事实证明,这并不完全是徒劳的。他甚至没有试图理解提交的代码中的差异,甚至没有这样的工作。

一般来说,我也不喜欢用代码更正来提示。但在这里,事实证明 "不是这样的"。我对图书馆感兴趣已经有很长一段时间了,甚至有自己的图书馆。但是,在理解了这一点后,我必须将整个库与专家顾问或指标代码一起传递,并说明要放在那里的内容......不是每个人都能一下子明白这个道理的,我决定放弃了。这是对反驳的回答

而为了解决这个问题,我必须把它整理出来,记住我所忘记的东西。这给我留下了完成的代码。
 
Sergey Maksiutenko:

不用麻烦了。

我明白,你不能帮助我。

我已经删除了#property strict,我已经删除了所有的属性,除了#propertylibrary

并没有帮助。

尝试插入我的设计,找到错误。

并张贴正确的代码,如果这就是问题所在。

关于交易、自动交易系统和策略测试器的论坛

任何关于MQL4初学者的问题,帮助和讨论算法和代码

Alexey Viktorov, 2018.10.03 11:56


我已经尝试用这个交易策略作为例子,我自己也 成功地实施了这个策略。这给我留下了一个完成的代码。
有一个可以使用的代码,随时可以使用。
 
哈,我发现了问题所在!我想知道为什么一切都对我有用,而对他却没有!?如果他告诉我哪些文件在他的 \Include \Libraries \Experts \Scripts 中,也许我们甚至可以在服务台备案一个错误!
 
Sergey Maksiutenko 好吧,我已经准备好张贴正确的文件夹的内容,否则我将认为你是一个巨魔!"。因为我成功地重现了这个问题,我知道你的问题出在哪里!
 

我坐在XP上,MT4 1090,因此我不会有任何更新。

当我在MT4中改变时间尺度时,图表不断向左或向右移动--如果我从较大的尺度切换到较小的尺度(例如从日线到小时线),屏幕上的数据是半年前的如果我从较小的比例切换到较大的比例,它只显示最后10个蜡烛图。我必须不断地进行手势操作才能使图表看起来可以接受,这很烦人。

为了您的方便,我写了一段代码,在键盘上切换刻度,并将图表移到最后。


空白的OnChartEvent(const int id,

const long &lparam,

const double &dparam,

const string &sparam)

{

string Key1_Value="1"。

string Key2_Value="2"。

string Key3_Value="3"。


如果(StringGetChar(Key1_Value,0)==lparam)

ChartSetSymbolPeriod(0,NULL,5)。

如果(StringGetChar(Key2_Value,0)==lparam)

ChartSetSymbolPeriod(0,NULL,60)。

如果(StringGetChar(Key3_Value,0)==lparam)

ChartSetSymbolPeriod(0,NULL,1440);

ChartNavigate(0,CHART_END,0)。

}


一切正常,但ChartNavigate将图表 "冻结 "在原地,不让它向左滚动。如何解决这个问题?

 
psyman:

我坐在XP上,MT4 1090,因此我不会有任何更新。

当我在MT4中改变时间尺度时,图表不断向左或向右移动--如果我从较大的尺度切换到较小的尺度(例如从日线到小时线),屏幕上的数据是半年前的如果我从较小的比例切换到较大的比例,它只显示最后10个蜡烛图。我必须不断地进行手势操作才能使图表看起来可以接受,这很烦人。

为了方便起见,我写了一段代码来切换键盘上的刻度,并将图表移到最后。

那里有一个按钮,可以让图表自己移动。

1

 


如果我想画一条趋势线,自动滚动功能不允许向左滚动图表。

特别是由于它只在新蜱虫进来时才起作用。

 
psyman:


自动滚动可以防止图表向左滚动,例如,如果需要绘制趋势线。

特别是由于它只在新蜱虫进来时才起作用。

然后像这样

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
if (id==CHARTEVENT_KEYDOWN)
   {
   if(lparam=='1')
      ChartSetSymbolPeriod(0,_Symbol,PERIOD_M5);

   if(lparam=='2')
      ChartSetSymbolPeriod(0,_Symbol,PERIOD_H1);

   if(lparam=='3')
      ChartSetSymbolPeriod(0,_Symbol,PERIOD_D1);

    ChartNavigate(0,CHART_END,0);
   }
}
 
非常感谢你。