感谢您的文章
你们好、
我是个新手。我有丰富的编程经验,但才开始用 MQL5 编程--这是我的第一门类似于 C++ 的语言。我一直在阅读参考文档,但没有发现我的错误--我期望从 expoMA 返回的值在图表上打印/注释 为 0.0--我是不是犯了某种语法错误?我在编译时没有遇到任何问题/错误。如果您能提供任何意见,我们将不胜感激。
void OnTick( { int days = 3; double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double movingAverageValues[]; double bidAskAverage = (Ask + Bid)/2; int exponentialMovingAverage = iMA(_Symbol,_Period,MA_Period,0,MODE_EMA,PRICE_CLOSE); ArraySetAsSeries(movingAverageValues,true); CopyBuffer(exponentialMovingAverage,0,0,3,movingAverageValues); double alpha = expoMA(days); double dEMA = bidAskAverage - movingAverageValues[1]; // 这里的索引 1 代表 t - 1 值的 EMA Comment("The ask price is: " + DoubleToString(Ask,5) + "\n" "The bid price is: " + DoubleToString(Bid,5) + "\n" "The average price is: " + DoubleToString(bidAskAverage,5) + "\n" "The custom expoMA value is: " + DoubleToString(alpha,5) + "\n" "The dEMA value is: " + DoubleToString(dEMA,5)) ; } double expoMA(int days=2) { double alpha = 2 / (days + 1); NormalizeDouble(alpha,5); return(alpha); }
spinner461:
你们好
我是个新手。我有丰富的编程经验,但才开始用 MQL5 编程--这是我的第一门类似于 C++ 的语言。我一直在阅读参考文档,但没有发现我的错误--我期望从 expoMA 返回的值在图表上打印/注释 为 0.0--我是不是犯了某种语法错误?我在编译时没有遇到任何问题/错误。如果您能提供任何意见,我们将不胜感激。
double expoMA(int days=2) { double alpha = 2.0 / (days + 1); //... }
您将 2/4 除以整数 (0),然后解析为 double。相反,你应该让除数或被除数中的一个是 double(这样除法就在 "最详细 "的数据类型中完成了)。
其他选项可以是(在除数为 int 的情况下):
double alpha = double(2) / (days + 1); double alpha = 2 / (days + 1.0); double alpha = 2 / double(days + 1);这可能是 Python 的一个错误,嘿嘿
曼努埃尔-亚历杭德罗-塞科斯-佩雷斯
您正在将 2/4 除以整数 (0),然后将其解析为 double。相反,你应该让除数或被除数中的一个是 double(这样除法就在 "最详细 "的数据类型中进行了)。
其他选项可以是(被除数是一个 int):
这可能是 python 的一个错误。嘿,曼纽尔、
非常感谢!上面的提示非常管用。你让我不用再花很多时间去寻找根本原因了。
哦,天哪,真的是这样!
我怎样才能创建一个函数,不仅在蜡烛图开始时,而且在新蜡烛图形成之前,每根蜡烛图只允许 1 笔交易或开仓。newbar 函数只允许在新蜡烛开始时进行交易
有很多骗人的袋子
为译者点赞。
读完第一篇文章后,我曾有过怀疑,但现在我确信,作者是想向白痴程序员解释他们是白痴。作者,别见怪,这篇文章是写给你看的。此外,你对读者的傲慢态度也让你的作品失去了意义。
新文章 更好的程序员(第 02 部分):停止做这 5 件事变为一名成功的 MQL5 程序员已发布:
对于任何想要提高编程职业生涯的人来说,这是一篇必读文章。 本系列文章旨在尽最大可能令您成为最佳程序员,无论您有多少经验。 研讨的思路适用于 MQL5 编程萌新和专业人士。
我在本系列文章中经常使用 noob(菜鸟) 这个词来描述 MQL5 编程方面经验较少的人(请不要因此而感到冒犯)。 它令其很容易建立联系。 这并不意味着本文仅针对菜鸟。 绝对不是! 这适用于所有人,无论您有多少编程经验,因为您曾为菜鸟的原因是您的编码习惯和行为 ……,而不是有多少年的编码经验。
对于那些尚未读过的人,第一篇文章在此,那么我来继续推进这个任务,将菜鸟培养为专业人士。
作者:Omega J Msigwa