[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 679

 


亲爱的程序员们。
请回答以下问题。

输出时有8位小数。为什么不正常化呢?

double open_sss=NormalizeDouble(iOpen(Symbol(),PERIOD_M5,elapsed_bar),Digits);
Print("open_sss= "+open_sss);

http://savepic.ru/1435355.gif

 
Hedin:


尊敬的程序员, ,请回答以下问题:


输出有8位小数为什么不正常化?

http://savepic.ru/1435355.gif


如果在关于函数NormalizeDouble() 的帮助中写到,它四舍五入到指定的精度,并返回double类型,那么你的一切都对了,如果你需要一个小数点后有指定精度的文本字符串,那么你应该使用DoubleToStr()。
 
IgorM:


我一定是误解了int startH = Hour();的意思--它将给出当前的服务器时间--小时,我将寻找零小时,或任何其他小时。


谢谢,现在可以了。

但为什么它在Hour()函数中不起作用,我还是不明白。

它给了我们北方时间的当前小时。例如,让它成为5。

因此,当我们调用open[i+5]时,我们得到的是 在一天之初,即上午0:00时开盘的蜡烛的开盘价

请解释一下我到底哪里不明白?

 
webgreck:


谢谢你,现在可以了。

但为什么它在Hour()函数中不起作用,我还是不明白。

它给了我们北方时间的当前小时。例如,让它成为5。

因此,当我们调用open[i+5]时,我们得到的是在一天之初,即上午0:00开盘的蜡烛的开盘价。

请解释一下我到底哪里不明白?


服务器时间是服务器时间(TimeCurrent()),你的电脑上有(TimeLocal();),函数Hour()。

"返回程序开始时最后一个已知的服务器时间的当前小时(0,1,2,...23)(这个值在程序执行 过程中不会改变)。注意:最后一个已知的服务器时间在测试过程中是模拟的。"

如果不改变,我自己都不知道该怎么做--也许只有测试者需要。

 
webgreck:

你能告诉我我做错了什么吗?

我需要找到小时图上第一根蜡烛的开盘价,即0:00的那根蜡烛,并从这根蜡烛到现在的蜡烛,找到最大的价格值。

为什么我总是得到当日第一支蜡烛的高点。

我是这样做的。

在Time[]中循环,找到所需的条形图,然后从该条形图中循环,找到一个极值
 

同事们,有谁知道如何使测试员不扣除交易的佣金?也许在MT4里有一个文件,其中规定了特定工具的合同的佣金金额?

让我解释一下我需要它的原因。除了货币之外,我还对Uber和RTS指数的期货感兴趣。快速不适合用于机器人开发。例如,我的经纪公司有一个合同的佣金 - rts指数期货的CFD(听起来,但...:)) - 这是一个敲诈勒索...10份绿皮书的费用。这就是为什么即使是250便士的交易,在测试器中也有1美元的损失。这是令人难以置信的,我有工具和报价,但不可能测试和优化它。

帮助!

 
Blaid73:

同事们,有谁知道如何使测试员不扣除交易的佣金?也许在MT4里有一个文件,其中规定了特定工具的合同的佣金金额?

让我解释一下我需要它的原因。除了货币之外,我还对Uber和RTS指数的期货感兴趣。快速不适合用于机器人开发。例如,我的经纪公司有一个合同的佣金 - rts指数期货的CFD(听起来,但...:)) - 这是一个敲诈勒索...10份绿皮书的费用。这就是为什么即使是250便士的交易,在测试器中也有1美元的损失。这是令人难以置信的,我有工具和报价,但不可能测试和优化它。

帮助!


可能是这个:https://www.mql5.com/ru/forum/119830

 

请告知如何以及如何改变代码以做同样的事情,但工作更快。

if (BB_1>BB_2 && BB_2<=BB_3 && BB_1<0)                               // Найден разворот BB вверх
      {
      switch (tf)
         {
            case 1:     TrBBTurnUP_M1 =true;  TrBBTurnDN_M1=false;      // Флаг разворота вверх на М1
            case 5:     TrBBTurnUP_M5 =true;  TrBBTurnDN_M5=false;      // Флаг разворота вверх на М5
            case 15:    TrBBTurnUP_M15=true;  TrBBTurnDN_M15=false;     // Флаг разворота вверх на М15 
            case 30:    TrBBTurnUP_M30=true;  TrBBTurnDN_M30=false;     // Флаг разворота вверх на М30 
            case 60:    TrBBTurnUP_H1 =true;  TrBBTurnDN_H1=false;      // Флаг разворота вверх на H1
            case 240:   TrBBTurnUP_H4 =true;  TrBBTurnDN_H4=false;      // Флаг разворота вверх на H4
            case 1440:  TrBBTurnUP_D1 =true;  TrBBTurnDN_D1=false;      // Флаг разворота вверх на D1
            case 10080: TrBBTurnUP_W1 =true;  TrBBTurnDN_W1=false;      // Флаг разворота вверх на W1
            case 43200: TrBBTurnUP_MN =true;  TrBBTurnDN_MN=false;      // Флаг разворота вверх на MN
         }
      }

这只是一个大函数的一部分,其中有很多这样的检查,对性能影响很大。我已经在这里问过关于代码优化 的问题,但我没有得到任何答案,我在搜索中也没有找到任何东西...没有人知道或愿意分享它,这真的是一个秘密吗......?至少要有文章的链接...在您的闲暇时间阅读...反正不可能完全测试...

 
我怎样才能与你联系?我有很多问题,希望得到一些建议。
 
artmedia70:

请告知如何以及如何改变代码以做同样的事情,但工作更快: ...

我会用一个现成的数组取代开关,为什么每次都要分配预定义的值?
原因: