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

 
Sepulca:
而且,如果计算积分,不要把它们与积分混淆。说双倍SPRED=要价-出价点数,甚至双倍SPRED=(要价-出价)/点数。


在我看来,这只是水平上的一个问题))))。OrderOpenPrice()是一个双数,但要看到真正的开盘价,我必须做一个字符串?)

而要做减法或加法又需要做双倍的字符串,好吧,不是胡说八道,嗯? 或者我不明白的地方)

 
vadynik:


在我看来,这只是公平竞争环境下的一个问题))。 OrderOpenPrice()是一个双数,但为了看到真正的开盘价,我必须把它变成一个字符串?)

我必须从一个字符串中做一个双倍数来做减法或加法,这不是很疯狂吗? 或者我错过了什么?)


不,通过取出OrderOpenPrice()值,你甚至不需要对其进行归一化处理,但要打印出来,你需要设置必要的精度。许多经纪公司在日志中默认打印的变量只有小数点后四位,尽管他们在开单时使用小数点后五位...
 
vadynik:


在我看来,这只是水平上的一个问题))))。OrderOpenPrice()是一个双数,但要看到真正的开盘价,我必须要做一个字符串?)

为了做减法或加法,还需要做一个双倍的字符串,好吧,不是胡说八道,是吗?)


尽管是的)))它必须是历史上的))))。要看到五位数的开盘价,你必须把它做成一个字符串()。

作为一项规则,双倍值默认只输出小数点后四位。所以你必须把它们翻译成字符串.....(((((。

 

如何告诉我请一些成熟的专家顾问在MQL4和5,而且时间很短,有时你需要检查一个想法或帮助别人,最终创建一个机器人的基础,并完成自己的写作...

我将不胜感激,提前感谢!=)。

 
Ekburg:

如何告诉我请一些成熟的专家顾问在MQL4和5,而且时间很短,有时你需要检查一个想法或帮助别人,最终创建一个机器人的基础,并完成自己的写作...

我将不胜感激,提前感谢!=)。

什么不是建筑套装?你拿着 "方块 "去建造;)
 
Sepulca:


虽然是)))),但这一定是历史性的)))要看到五位数的开盘价,你必须把它做成一个字符串()

作为一项规则,双倍默认值只输出小数点后四位。所以你必须将它们翻译成字符串.....(((((。


为什么规范化对OrderOpenPrice()不起作用
 
evillive:
什么不是建筑套装?拿着 "方块 "去建造;)


非常有用,谢谢,我将使用它,但不是那个))。我需要的正是一个构造函数,我知道一个很好的构造函数,但它是用英语写的,让专家用不同的语言......)
 
Sepulca:


虽然是的)))它必须是历史性的)))))。要看到五位数的开盘价,你必须把它做成一个字符串()

作为一项规则,双倍值默认只输出小数点后四位。所以你必须把它们翻译成字符串.....(((((。

大惊小怪的是什么呢?在任何情况下,当你打印 出来时,你就会把你输出的所有东西转换成丁字裤。即使你只是双PRICE=Ask; Print(PRICE); PRICE会自动穿上丁字裤,然后打印出来。使用DoubleToStr(),你只需指定内裤的尺寸,用哪个精度来输出丁字裤中的双数。
 

我是如此愚蠢...

剧本

int start()
{

 for(int i=OrdersTotal()-1;i<=0;i--)
 {
    if(OrderSelect(i, SELECT_BY_POS)==true) 
      {
            Print("Normalized OOP order#", OrderTicket()," is ",NormalizeDouble(OrderOpenPrice(),5)); 
            Print("doubletostr OOP order#", OrderTicket()," is ",DoubleToStr(OrderOpenPrice(),5)); 
            Print("Symbol of order#",OrderTicket() ," is ",OrderSymbol()); 
            Print("Volume of order#",OrderTicket() ," is ",OrderLots()); 
      }
      else Print("OrderSelect() error - ",GetLastError());

 }
   return(0);
}

在日志中没有显示任何东西,有两个市场位置,一个是eurodol.一个是yenodol。

 
evillive:

我是如此愚蠢...

剧本

在日志中没有显示任何东西,有两个市场位置,一个是eurodol.一个是yenodol。


你在循环赋值中出现了错误,它最初是错误的,因此它的主体没有被执行,你没有看到打印结果

int start()
  {
  for(int i=OrdersTotal()-1;i>=0;i--)
     {
     if(OrderSelect(i, SELECT_BY_POS)==true) 
        {
            Print("Normalized OOP order#", OrderTicket()," is ",NormalizeDouble(OrderOpenPrice(),5)); 
            Print("doubletostr OOP order#", OrderTicket()," is ",DoubleToStr(OrderOpenPrice(),5)); 
            Print("Symbol of order#",OrderTicket() ," is ",OrderSymbol()); 
            Print("Volume of order#",OrderTicket() ," is ",OrderLots()); 
        }
     else Print("OrderSelect() error - ",GetLastError());
     }
   return(0);
   }

这就对了。