来自一个 "傻瓜 "的问题 - 页 46

 
为什么在新向导中没有移动平均线 交叉信号,也没有Alligatora?
 
Rosh:

取出没有偏移的指标值,然后将线条本身混合。这样做会更容易。例如,看看iEnvelopes 中是如何做到的。

是的,但是在mql4中,混合是为数组的每个元素设置的,而在这里是为整行设置的,如何实现同样的结果?
 
kirill-demo:

uncleVic:哪个参数应该改成0? 请给我看看第五种模式。

型号和掩码中的位号是相同的。这里有一些例子。

0 (二进制形式 000000b) - 所有掩码位都被重置,不使用模型。

4 (二进制000100b) - 只有第2位被设置,只有模型2 "主振荡器和信号振荡器线路的交叉 "被使用。

16(二进制形式010000b) - 只有第4位被设置,只有模式4 "振荡器和价格除数 "被使用。

31(二进制形式为011111b)--只有第5位被设置,除模型5 "双振荡器和价格分割 "外的所有模型都被使用。

要设置所使用的信号模型的 "列表",在程序中添加一行。

int usage=4;   // для использования только модели 2
filterXXX.PatternsUsage(usage);
 
uncleVic:

掩码中的型号和位号相匹配。这里有一些例子。

0 (二进制形式 000000b) - 所有掩码位都被重置,不使用模型。

4 (二进制000100b) - 只有第2位被设置,只有模型2 "主振荡器和信号 振荡器线路 的交叉 "被使用。

16(二进制形式为010000b)--只有第4位被设置,只有模型4 "振荡器和价格背离 "被使用。

31(二进制形式为011111b)--只有第5位被设置,除模型5 "双振荡器和价格分割 "外的所有模型都被使用。

要配置所使用的信号模型的 "列表",在程序中添加一行。


你能更清楚地解释吗?我完全不知道比特掩码是什么。
 
uncleVic:

掩码中的型号和位号相匹配。这里有一些例子。

0 (二进制形式 000000b) - 所有掩码位都被重置,不使用模型。

4(二进制形式000100b)- 只有第2位被设置,只有模型2 "主线和信号 振荡器线 的交叉 "被使用。

16(二进制形式010000b)--只有第4位被设置,只有模型4 "震荡器和价格背离 "被使用。

31(二进制形式为011111b)--只有第5位被设置,除模型5 "双振荡器和价格分割 "外的所有模型都被使用。

要配置所使用的信号模型的 "列表",在程序中添加一行。

各位开发者,你们没有羞耻心吗?首先你让MQL5面向对象,这至少意味着封装、多态性和继承,然后你向OOP的第一条鲸鱼吐口水,揭示了对象模型的内脏......Bitmasks....你还把指针向外,shit....

你就不能做一些人性化的方法,比如SetSignalModels(ENUM_MODEL_MA_CROSS, ...)?在支持的情况下,你会更容易

 
Vladix:

各位开发者,你们不感到羞愧吗?首先,你让MQL5面向对象,这至少意味着封装、多态性 和继承,然后你至少吐出了OOP的第一条鲸鱼,揭示了对象模型的内脏。Bitmasks....你还把指针向外,shit....

你就不能做一些人性化的方法,比如SetSignalModels(ENUM_MODEL_MA_CROSS, ...)?有了支持,对你来说会更容易。

说实话?毫无愧色。

对不起,我找不到梯子来爬你的钟楼。

 
那么,谁还能给我解释一下,如何在指标的信号中删除一些信号模式?这样解释:打开这样的文件,找到这样的参数,把它改成这样的参数,或者删除它。这就是全部。解释起来有这么难吗?
 
uncleVic:

说实话?不感到羞愧。

对不起,找不到梯子来爬你的钟楼。

也许我对以下说法的理解有误,如果你发现与你的观点不一致,请纠正我。

程序员写代码是为了让用户的生活更轻松。

在MQL的情况下,用户是MQL程序员,这就是所有这些工作的目的。

梯子是面向对象的编程,它的步骤是由Straustrup、Fowler、Gamma和其他许多人做出的。我希望你已经有时间沉浸在Steve McConnell的《完美代码》和Peter Goodliffe的《编程技巧》的步骤中了?如此多的人想念他们。

 
kirill-demo:
谁能解释一下如何删除指标信号中的一些模式?打开这样的文件,找到这样的参数,把它改成某某,或者删除它。这就是全部。解释起来有这么难吗?

完成向导后,在编辑器中打开专家顾问源码手册。寻找类似的线条。

//--- Creating and tuning filter CSignalMACD
   CSignalMACD *filter;
   if((filter=new CSignalMACD)==NULL) return(-100);
   signal.AddFilter(filter);

要删除一些模式,你需要添加一行,调用参数为<some number> 的PatternsUsage方法。它看起来像这样。

//--- Creating and tuning filter CSignalMACD
   CSignalMACD *filter;
   if((filter=new CSignalMACD)==NULL) return(-100);
   signal.AddFilter(filter);
//--- отключаем модель "двойная дивергенция"
   filter.PatternsUsage(31);
 
Vladix:

也许我对以下说法的理解有误,如果你发现与你的观点有出入,请纠正我。

程序员写代码是为了让用户的生活更轻松。

就MQL而言,用户是MQL程序员,这就是它的意义所在。

梯子是面向对象的编程,它的步骤是由Straustrup、Fowler、Gamma和其他许多人做出的。我希望你已经有时间沉浸在Steve McConnell的《完美代码》和Peter Goodliffe的《编程技巧》的步骤中了?如此多的人想念他们

没有办法进入一个多页的理论辩论。