错误、漏洞、问题 - 页 73

 
Swan:

或不需要覆盖,或按头寸符号的要价、出价来要求

PositionGetSymbol函数 会自动选择一个位置进行进一步工作。

事实上,PositionGetSymbol提供顺序选择,PositionSelect提供直接选择。

Документация по MQL5: Торговые функции / PositionGetSymbol
Документация по MQL5: Торговые функции / PositionGetSymbol
  • www.mql5.com
Торговые функции / PositionGetSymbol - Документация по MQL5
 
Swan:

或者你不需要搜索一个位置,或者要价,通过一个位置符号出价

结果是,PositionGetInteger(POSITION_TYPE)被PositionSelect 使用,没有选择。事实上,这并不是好事(正如斯拉瓦提醒我的那样)...:)

stringo

PositionGetSymbol函数 会自动选择一个位置进行进一步工作。

事实上,PositionGetSymbol提供顺序选择,PositionSelect提供直接选择。

在此基础上,有必要在循环中准确地应用 PositionGetSymbol,然后对其他一切感兴趣......
 

好吧,如果使用心灵感应,那么if(PositionSelect(Symbol()))你必须把它代替循环 :)

最好检查LevelProfit-LevelWLoss是否不低于SymbolInfoInteger(Symbol,SYMBOL_TRADE_STOPS_LEVEL)。

而这些双打的比较是不正确的......

否则应该可以)。


ps:不确定,但对于sl/tp的修改,偏差>0不会增加任何好处。

 

标识符为OBJPROP_TIMEObjectGetInteger()不能正确工作

为了再现错误,创建一个名为 "1 "的 "矩形 "对象

运行下面的脚本,显示我们新创建的名为 "1 "的矩形的四个锚点坐标。

void OnStart()
{ 
  Comment(ObjectGetDouble(0,"1",OBJPROP_PRICE,0),"   ",
          StringToTime   (IntegerToString(ObjectGetInteger(0,"1",OBJPROP_TIME, 0))),"\n",
          
          ObjectGetDouble(0,"1",OBJPROP_PRICE,1),"   ",
          StringToTime   (IntegerToString(ObjectGetInteger(0,"1",OBJPROP_TIME, 1))));

}

我们看到,价格坐标的定义是正确的,但时间坐标却不是。


Документация по MQL5: Графические объекты / ObjectGetInteger
Документация по MQL5: Графические объекты / ObjectGetInteger
  • www.mql5.com
Графические объекты / ObjectGetInteger - Документация по MQL5
 
joo:

标识符为OBJPROP_TIMEObjectGetInteger()不能正确工作

为了再现错误,创建一个名为 "1 "的 "矩形 "对象

运行下面的脚本,显示我们新创建的名为 "1 "的矩形的四个锚点坐标。

我们看到,价格坐标的定义是正确的,但时间坐标却不是。



感受不同

  Comment(ObjectGetDouble(0,"1",OBJPROP_PRICE,0),"   ",
          datetime(ObjectGetInteger(0,"1",OBJPROP_TIME, 0)),"\n",
          
          ObjectGetDouble(0,"1",OBJPROP_PRICE,1),"   ",
          datetime(ObjectGetInteger(0,"1",OBJPROP_TIME, 1)));
 
joo:

标识符为OBJPROP_TIMEObjectGetInteger()不能正确工作

为了再现错误,创建一个名为 "1 "的 "矩形 "对象

运行下面的脚本,显示我们新创建的名为 "1 "的矩形的四个锚点坐标。

我们看到,价格坐标的定义是正确的,但时间坐标却不是。



以下是剧本。

//+------------------------------------------------------------------+
//|                                                       123123.mq5 |
//|                                  2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string msg="";
//---
   msg+=DoubleToString(ObjectGetDouble(ChartID(),"123456",OBJPROP_PRICE,0),_Digits)+" "+
        TimeToString(ObjectGetInteger(ChartID(),"123456",OBJPROP_TIME,0),TIME_DATE|TIME_MINUTES)+"\n";
   msg+=DoubleToString(ObjectGetDouble(ChartID(),"123456",OBJPROP_PRICE,1),_Digits)+" "+
        TimeToString(ObjectGetInteger(ChartID(),"123456",OBJPROP_TIME,1),TIME_DATE|TIME_MINUTES)+"\n";
   Comment(msg);
  }
//+------------------------------------------------------------------+

而这就是结果。

 
stringo:

感受不同

谢谢你,我感觉到了不同。

你明确地将值类型设置为日期时间

而我使用了数据转换

但这不意味着该结构

StringToTime   (IntegerToString(

不能正常工作?

 
joo:

谢谢你,我感觉到了不同。

你明确地将值类型设置为日期时间

而我使用了数据转换。

但这不意味着该结构

它的工作不是很正常吗?

不是说这是错的。这些行动实在是没有必要。

查看StringToTime()函数 的帮助,你会明白为什么结果不正确。

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
joo:

谢谢你,我感觉到了不同。

你明确地将值类型设置为日期时间

而我使用了数据转换。

但这不意味着该结构

不能正常工作?

并非如此。通过转换IntegerToString,你收到一个 "12345612345 "类型的字符串,而StringToTime应该输入一个格式为 "2010.07.29 08:10 "的字符串。

然而,你已经让我们看到了我们的错误。在你的案例中,我们应该返回日期1970.01.01 00:00并设置last_error

 
stringo:

并非如此。通过转换IntegerToString,你收到了一个类型为 "12345612345 "的字符串,而StringToTime应该收到一个格式为 "2010.07.29 08:10 "的字符串。

然而,你已经让我们看到了我们的错误。在你的案例中,我们应该返回日期1970.01.01 00:00并设置last_error

那么,我的信息没有白费,正如我已经想到的那样?