当然,谢谢你。
但事实证明,每次我都要纠正代码?
米哈伊尔
当然,谢谢你。
但这是否意味着你必须每次都要改变代码?
当然,谢谢你。
但事实证明,你每次都要纠正代码?
你的逻辑有问题。你最初的问题是。
如何以编程方式改变标准指标的颜色?
你的逻辑有问题。你原来问过。
亲爱的abolk!
很明显,从你的代码来看。
米哈伊尔
使 "内部 "指标成为你自己的指标,并在其中插入你的选项。例如(纯粹的想法):把颜色放在输入参数中,然后在Oninit()中通过函数PlotIndexSetInteger(N-1,PLOT_LINE_COLOR, nColor)处理它们。参考资料中的例子可以提供帮助。那么你就不能编辑代码本身,而是在启动或改变指标时通过指标的属性设置所需的颜色。
非常感谢你。
太糟糕了,开发商没有想到这一点。
这段代码应该是有效的,BUT....,唉...。
params[0].type = TYPE_INT; params[0].integer_value = 10; params[1].type = TYPE_INT; params[1].integer_value = 0; params[2].type = TYPE_INT; params[2].integer_value = MODE_SMA; params[3].type = TYPE_INT; params[3].integer_value = PRICE_MEDIAN; params[4].type = TYPE_COLOR; params[4].double_value = clrBlue; ma_handle = IndicatorCreate( NULL, PERIOD_CURRENT, IND_MA, 5, params ); if ( ma_handle != INVALID_HANDLE ) { ChartIndicatorAdd( 0, 0, ma_handle ); }
这段代码应该是有效的,BUT....,唉...。
没有 用IndicatorCreate() 函数工作--事实证明,创建你的自定义指标 更容易。不过,由于你只引用了部分代码,所以有一个问题:你在使用变量params之前是否将其归零了?例如,像这样。
MqlParam params; ZeroMemory(params);
而你的条目回收的是什么错误代码?
你做到了。
ArrayResize(params,5);?
另外,IND_MA(iMA)指标没有 "颜色 "这样的参数,而你已经指定了它。看看这里的iMA 使用实例: MQL5参考/ 访问时间序列和指标/ IndicatorCreate。
这段代码应该是有效的
这是为什么呢?首先解释为什么颜色是一个实数?
params[4].type = TYPE_COLOR; params[4].double_value = clrBlue;
下午好,stringo和Yedelkin!
你可能没有仔细阅读我的信息,其中说到
"太糟糕了,开发商没有想到这一点。"
现在,让我解释一下我为什么要写上面的代码。
从移动平均线的设置中,你可以清楚地看到,该指标有7个参数(5个主要参数+2条线)。
这是它在 "参数 "选项卡中的内容。
如果你可以 "手动 "改变所有的 参数,这意味着必须有
开发者做了什么--以编程方式改变所有 参数!?
在IndicatorCreate 函数中,但没有到最后(或它是一个BAG)。
MqlParam 结构允许你输入一种颜色--TYPE_COLOR(ENUM_DATATYPE)。
从MQL5参考。
颜色类型 是 用来存储颜色信息的,在内存中占用4个字节。 第一个字节被忽略,其余3个字节包含RGB成分。
......
整数表示法被写成十六进制或十进制数字。十六进制的数字是0x00BBGGRR
//----整数表示法
0xFFFFFFFF //白色
16777215 //白色
0x008000 //绿色
32768 //绿色
引用完毕。
结构 MqlParam
{
ENUM_DATATYPE type; // 输入参数类型,ENUM_DATYPE 的枚举值
long integer_value; // 用于存储整数值的字段
double double_value; // 用于存储双数或浮点数 的字段
string string_value; // 用于存储字符串类型值 的字段
};
(我首先尝试了长的没有成功,然后我又尝试了双的--也没有成功,这仍然在代码中)。
它应该是这样的。
MqlParam params[5];
.........
params[4].type =TYPE_COLOR。
params[4].integer_value = clrBlue; // - 蓝色 0x00FF0000 (16711680)
stringo,我回答了你的问题 "为什么不呢"?
再一次,很遗憾开发商没有做颜色的改变。
尊敬的米哈伊尔
下午好,stringo和Yedelkin!
你可能没有仔细阅读我的信息,其中说到
"太糟糕了,开发商没有想到这一点。"
米卡拉斯, 这里已经有这么多专家在为别人下结论了,这让人害怕。请不要增加他们的数量。
接下来,我通过提出具体的、不带感情色彩的问题来帮助你。你不回答他们,而是告诉我 "你的生活是如何走到这一步的"。 你想要什么?-说服别人说有你检测到的错误,或 "以程序方式 "改进你的代码?如果你看到一些 "错误"--联系服务台,并对情况进行完整的描述。如果你想 "程序化 "地工作--深入到指标的创建和运行中。
下午好!
如何改变标准指标的颜色?
谢谢你,米哈伊尔