任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 239

 
Antonius:


有什么问题呢,它是有效的。

 
r772ra:


有什么问题呢,它是有效的。


这个错误真的不在代码中,我应该把 "所有刻度 "而不是 "按开盘价"作为测试模型。当然,这样的测试时间很长。

更加感谢您的帮助!对不起,我为这样的愚蠢行为花费了时间)

 
Antonius:


这个错误其实不在代码中,我应该把 "所有刻度 "而不是 "按开盘价 "作为测试模型。当然,这样的测试时间很长。

更加感谢您的帮助!对不起,我为这样的愚蠢行为花费了时间)

为了测试开盘价,在线条中用1替换0,以检查蜡烛的方向。但随后它将查看第一根柱子以了解方向。有了0,你就有了相等的开盘价和收盘价。
 

告诉我如何教专家如何正确提取数据。

我请他找出最后一个价格的价值。它找到了,但它输出时有四个小数位,并对第五位进行了四舍五入。为了正确的机器人操作,应考虑到第五个字符。

它还将平均价格四舍五入了一点儿。它还将平均价格四舍五入到第四个字符。

我用计算器得到不同的数字。

NormalizeDouble() 已经尝试应用,然而我还没有得到任何结果。

int Oldticketnumber;
double Unused = 0;
int Ticketnumber = 0;
RefreshRates();
for(int cnt = OrdersTotal()-1; cnt >= 0; cnt --)               //Для всехоткрытых ордеров
 {
  if (OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))  // Выбираем со всего масива ордеров
  if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)//Выбирам ордера експерта
   {
   if(OrderType()==OP_BUY)                                              
    {

     BuyAP += OrderOpenPrice()*OrderLots();          // Средневзвешаная цена всех позиций  
  
     Oldticketnumber = OrderTicket();                               // присваиваем тикеты
     if (Oldticketnumber > Ticketnumber)                         //  ищем последний тикет 
      {
      LastPrise = OrderOpenPrice();                         // присваиваем последнюю цену
      Unused = LastPrise;                                       // задаем цену переменной
      Ticketnumber = Oldticketnumber;                          // последный заданый тикет
      }
// далее по  тексту---------------------------------------------------------------------

if (BuyLots != 0)       // Если есть ордера BUY, то вычисляется их средняя цена открытия
    BuyAP /= BuyLots;      

 
Limita:

告诉我如何教专家如何正确提取数据。

我请他找出最后一个价格的价值。 它找到了,但它输出时有四个小数位,并对第五个小数位进行了舍入。为了正确的机器人操作,应考虑到第五个字符。

它还将平均价格四舍五入了一点儿。它 还将平均价格 四舍五入到第四个字符

我用计算器得到不同的数字。

NormalizeDouble()已经尝试应用,然而我还没有得到任何结果。

你在哪里看到这一切?
 
artmedia70:
你在哪里看到这一切?


四舍五入是无法摆脱的。但是,从第5位或第4位数字开始四舍五入的问题
在下面的代码中。

Comment("Средняя цена Buy ",BuyAP, " Sell ",SellAP, " Последняя цена " ,LastPrise);
                                                                              // принтуем
 
Limita:


四舍五入是无法摆脱的。但问题是, 在下面的代码中,是否要从第5位或第4位数字四舍五入

我是这样试的

Comment("Средняя цена Buy ",DoubleToStr(BuyAP,5), " Sell ",DoubleToStr(SellAP,5), " Последняя цена " ,DoubleToStr(LastPrise,5));

字符串DoubleToStr( double value, intdigits)
将一个数字值转换为文本字符串,包含指定精度格式的数字的字符表示。

 

大家好,我有这个任务。

确定一个新条形图的出现(合成),使用最少的代码,不使用与条形图的开盘时间 相联系的变量。解决办法如下。

if (Bid>Open[0] || Bid<Open[0]) return;
在测试器和演示中使用时,有哪些可能的隐患?
 
dmitriy086:

大家好,我有这个任务。

确定一个新条形图的出现(合成),使用最少的代码,不使用与条形图的开盘时间相联系的变量。我以如下方式解决了这个问题。

在测试器和演示中使用它可能存在哪些隐患?


当交易合成物时,你没有这个工具的单一条形,而是一组工具,你可以尝试为每个工具确定一个新条形。交易的工具越多,在时间上出错或滑落的可能性就越大,因为EA挂在一个交易对上,只有当这个工具的刻度线到达时,才会看到其他刻度线。你可以使用
全局变量,但这并没有什么帮助,因为如果你在没有机器人的情况下追踪到另一个货币对的新刻度,你仍然无法交易,因为你的货币对上没有刻度。如果你没有很多工具,最简单的方法是写一个机器人,考虑到它会同时出现在各个地方。

有谁知道是否有可能不在一个单独的指标窗口中显示所有的缓冲区数值?就是指示器窗口左上角的那条白线,在使用的8个缓冲区中看到这么多不必要的数字,很烦人。

 
Desead:


有谁知道是否可以不在一个单独的指示器窗口中显示所有的缓冲区?这是写在指示器窗口左上角的白线,在使用的8个缓冲区中看到这么多不必要的数字是令人讨厌的。


Inite SetIndexLabel(...,"),但缓冲区也会从数据窗口 消失。