stringevent[10]=
{
"CHARTEVENT_KEYDOWN - событие нажатия клавиатуры, когда окно графика находится в фокусе",
"CHARTEVENT_OBJECT_CREATE — событие создания графического объекта",
"CHARTEVENT_OBJECT_CHANGE — событие изменения свойств объекта через диалог свойств",
"CHARTEVENT_OBJECT_DELETE — событие удаления графического объекта",
"CHARTEVENT_CLICK — cобытие щелчка мыши графике",
"CHARTEVENT_OBJECT_CLICK — событие щелчка мыши на графическом объекте, принадлежащего графику",
"CHARTEVENT_OBJECT_DRAG — событие перемещения графического объекта при помощи мыши",
"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit",
"CHARTEVENT_CHART_CHANGE — событие изменения графика",
"CHARTEVENT_CUSTOM+n — идентификатор пользовательского события, где n находится в диапазоне от 0 до 65535"
};
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+void OnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
Print("id=(",id,") -- ",event[id]," lparam=",lparam," dparam=",dparam," sparam=", sparam);
}
//+------------------------------------------------------------------+
//--- нажатие мышкой на графическом объектеif(id==CHARTEVENT_OBJECT_CLICK)
{
Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'");
}
//--- нажатие кнопки на клавиатуреif(id==CHARTEVENT_KEYDOWN)
{
实际账户 中的一些DC为符号名称分配了各种前缀,如". "或 "FXF"。
我怎样才能使用这些前缀?
我这么做了。
#define DEF_SPEC "FXF"
string SymbolsTrade[] = {"AUDCAD" DEF_SPEC ...-不起作用
string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ...-它也不像那样工作
我得到的是FXF,而不是需要的AUDCADFXF。
你能告诉我如何实现这一点吗?
首先,只有在全局范围内才可以用枚举来填充数组,所以在这里没有+的作用,只有字符串常数。
其次,你的静态数组是不分布的,而动态数组不能用枚举来填充。
最简单的方法是写一个分配和填充动态数组的函数,它可以做任何事情,为常量添加定义,等等。
首先,只有在全局范围内才可以用枚举来填充数组,所以在这里没有+的作用,只有字符串常数。
第二,你没有分布静态数组,而动态数组不能通过枚举来填充。
最简单的方法是写一个分配和填充动态数组 的函数,它可以做一切事情,用常量添加定义等。
你也可以尝试搜索BC/BROKER中存在的所有货币对,分析其中的复合货币。
之后,你可以创建一个动态的货币对阵列,同时考虑到添加任何前缀。
在我印象中,这是MT5的通用选项之一。
首先,只有在全局范围内才可以用枚举来填充数组,所以在这里没有+的作用,只有字符串常数。
第二,你没有分布静态数组,而动态数组不能通过枚举来填充。
最简单的方法是写一个函数来分配和填充动态数组,它可以做任何事情,为常量添加定义,等等。
简而言之,如果我没有理解错的话,你不能在全局范围内创建一个复合常量的静态字符串数组,对吗?
你可以在源代码中看到这些代码。有两种方法用于寻找分歧。
1.bool CSignalMACD::ExtState(int ind)方法为搜索数据做准备。
2.bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start)方法寻找一个具有指定参数的市场模型。
如果有帮助,这里有俄文的方法评论。
对于 bool CSignalMACD::ExtState(int ind) 方法来说
对于方法 bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start)
我还有一个问题,在使用MACD信号创建专家顾问 时,如何指定背离变量?手册中的信号有几种变体。
正如大家已经注意到的,任何信号 都可以检测到多种市场模式。要控制模式的 使用,可以调用PatternsUsage(int value)方法,其中值是模式使用的位图(位号和模式号相同)。位为1 - 使用模型,位为0 - 不使用模型(默认情况下所有位都是1)。模型以及比特的编号从0开始。
因此,如果你想只使用发散,你应该使用PatternsUsage(16);。为什么是16岁?16是二进制10000b(即第4位为1,其他所有位为0)。而只是 模型4 "震荡器和价格的背离"。
唯一的 "但是",你将不得不 "手动 "完成它。
完成向导后,源代码将在编辑器中打开。在编辑器中找到这样的地方。
并添加一行
filter0.PatternsUsage(16)。
你会得到它的。
暂时就这些了。如果你有任何问题,请随时与我联系。
正如大家已经注意到的,任何信号 都可以检测到多种市场模式。要控制图案 的使用,可以调用PatternsUsage(int value)方法,其中value是图案使用的位图(位号和图案号是一样的)。位为1 - 使用模型,位为0 - 不使用模型(默认情况下所有位都是1)。模型编号以及位数从0开始。
因此,如果你只想使用发散,你需要使用PatternsUsage(16);。为什么是16岁?16是10000b的二进制(即第4位为1,其他位为0)。而只是 模型4 "震荡器和价格的背离"。
唯一的 "但是",你将不得不 "手动 "完成它。
完成向导后,源代码将在编辑器中打开。在编辑器中找到这样的地方。
并添加一行
filter0.PatternsUsage(16)。
你得到它。
暂时就这些了。如果你有任何问题,请随时与我联系。
谢谢你。它起作用了。而且马上就有更多的问题。在这种分歧的变体中,相邻的顶部(谷底)之间的时间间隔被考虑到了?
我有一个专家,我试图用它来处理事件。
我得到的事件与行动并不对应。
准确地对应于对图表的点击和对按钮的点击
一个有争议的事件id=9(CHARTEVENT_CUSTOM), 它是在例如图表移位和有大约10个类似事件时产生的。
没有检查CHARTEVENT_OBJECT_ENDEDIT 事件。
其他一切都不清楚。在手动创建对象时,要么描述与事件编号不匹配,要么创建对象的事件被错误地生成。
一般来说,请帮助。
我有一个专家,我试图用它来处理事件。
我得到的事件与行动并不对应。
准确地对应于对图表的点击和对按钮的点击
一个有争议的事件id=9(CHARTEVENT_CUSTOM), 它是在例如图表移位和有大约10个类似事件时产生的。
没有检查CHARTEVENT_OBJECT_ENDEDIT 事件。
其他一切都不清楚。在手动创建对象时,要么描述与事件编号不匹配,要么创建对象的事件生成不正确。
总而言之,请大家帮忙。
你最初为已经分配的数字常数CHARTEVENT_XXXXXX...分配数字对应关系。
问题是这样的。
你需要。
其余的就不清楚了。要么是描述与事件编号不匹配,要么是手动创建对象 时没有正确生成例如对象的事件。
不幸的是,你的问题并不清楚。究竟是什么出了问题?