Далее идет функция инициализации советника. Это функция вызывается первой после запуска советника или смены графика и вызывается только один раз.
Этот раздел - лучшее место для проведения проверок, чтобы убедиться в правильности работы нашего советника.
Например, можно проверить, достаточно ли баров на графике для работы нашего советника и т.п.
Также это лучшее место для получения хэндлов технических индикаторов, которые будут использоваться (в нашем случае это индикаторы ADX и Moving Average).
然后是更详细的描述:
intOnInit()
{
//--- Получить хэндл индикатора ADX
adxHandle=iADX(NULL,0,ADX_Period);
//--- Получить хэндл индикатора Moving Average
maHandle=iMA(_Symbol,_Period,MA_Period,0,MODE_EMA,PRICE_CLOSE);
//--- Нужно проверить, не были ли возвращены значения Invalid Handleif(adxHandle<0 || maHandle<0)
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
}
你到底不明白什么?如何创建 EA 初始化函数?那就试着学习一下这篇初学者文章 吧。
弗拉基米尔
初始化是什么意思?))))) 这对一个人来说并不清楚)))))
您说的 initialise))))) 是什么意思?我不太清楚)))))。
晚上好,瓦列里!我们打开这篇文章,首先看到的是一段简短的描述:
然后是更详细的描述:
一般来说,他至少应该先读一下这篇文章。))
弗拉基米尔
大家好!
我正在继续自学,又遇到了困惑。下面是脚本代码:
脚本应该绘制一条趋势线段。为此,我设置了初始点和第二个点来绘制这条线段。文档中还说创建趋势线需要两个锚点。我认为我已经完成了所有应该完成的操作。根据我的理解,第二个点也是一个极值点,但由于某些原因,它绘制的不是线段,而是一条射线。
您能告诉我我错在哪里了吗?
弗拉基米尔
MrBrooklin #:
谢谢你,阿尔乔姆!天哪,我还没有足够的智慧来理解如此简单明了的事情。上帝保佑您
弗拉基米尔
大家早上好,心情不错!
就是这样"我来了,你的屋顶!"这就是我我运行脚本
我得到了这个
应该有两个空仓您能告诉我哪里出错了吗?
敬上,弗拉基米尔。
大家早上好,心情不错!
就是这样"我来了,你的屋顶!"这就是我我在写剧本
我得到这个
应该有两个空仓您能告诉我哪里出错了吗?
敬上,弗拉基米尔。
最后两次打印
输出的是变量
也就是说,一切都按编写的程序运行--没有奇迹发生。
最后两幅印刷品
输出变量的值
的值,这些变量已经初始化,但没有进一步赋值。
也就是说,一切都按照写入的程序运行--没有奇迹发生。
你好,亚历山大。这正是我感到困惑的地方。应该赋值什么?我认为 Calc_Pos(count_buy,countsell)函数应该有效,还是我理解错了?
敬上,弗拉基米尔。
你好,亚历山大。这就是我被难住的地方。应该分配什么?我认为函数 Calc_Pos(count_buy,countsell)应该有效,还是我理解错了?
敬上,弗拉基米尔。
1.您声明并初始化了两个变量。
2.将它们的值传递给函数。
然后输出这些变量的值。但是它们在任何地方都没有改变,
,打印出的值都是 0。一切正常。
P.S. 尝试找出你的计划:你可以将这两个变量声明为全局变量。
例如,像这样:
1.你声明并初始化了两个变量。
2.将它们的值传递给函数。
然后输出这些变量的值。但它们在任何地方都没有改变,
,并分别以 0 打印出来。一切正常。
附注:我想知道你的计划:你可以将这两个变量声明为全局变量。
例如,像这样:
非常感谢,亚历山大。你的修改让代码正常工作了。老实说,我自己也有三处困惑。我需要重新学习向函数传递参数。显然,我在这里完全理解错了。
再见,弗拉基米尔。