来自一个 "傻瓜 "的问题 - 页 141

 
Yedelkin:

问题似乎出在其他方面。

值 "3 "不会以任何方式返回 :)毕竟,枚举的编号是从零开始的。

使用EnumToString 函数来输出枚举值
 
在MQL5中,类型为 PERIOD_M1 的周期值... PERIOD_MN1 是整数类型的值?我想用开关运算符来比较它们。例如,如果表达正确。
input ENUM_TIMEFRAMES Period_code=PERIOD_H4;
int result; string big;

switch (Period_code)
{
case PERIOD_H4: { result=1; big="data 1"; break; }
case PERIOD_D1: { result=2; big="data 2"; break; }
}
 

Rosh:

耶德尔金

问题似乎出在其他地方。

值 "3 "不会以任何方式返回 :)因为枚举是从零开始编号的。

使用EnumToString 函数来输出枚举值

奇怪的是,这个建议没有在早些时候出现,当时本地话题的作者将他的结果表述为"回报3"。好吧,让我们沿着不败之路前进。

T-G

返回3 - 即SYMBOL_TRADE_EXECUTION_MARKET。

按照Roche的建议,我们写一个简单的检查(使用EnumToString)。

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

而我们看到的是什么?- 我们看到的是,数字 "3 "并不对应SYMBOL_TRADE_EXECUTION_MARKET。因此,我们回到了https://www.mql5.com/ru/forum/3775/page143#comment_192116

 
Paladin80:
在MQL5中,类型为 PERIOD_M1 的周期值... PERIOD_MN1 是整数类型的值?我想用开关运算符来比较它们。例如,是这样的表达。
ENUM_TIMEFRAMES 是一个枚举(MQL5参考/ 状态检查/ 周期)。枚举是一种整数数据类型(MQL5参考/ 语言基础知识/ 数据类型/ 整数类型/ 枚举)。
 
你好,你能告诉我如何检查某个工具的买入和卖出是否在今天关闭?
 
T-G:
你好,你能告诉我如何检查某个工具的买入和卖出是否在今天关闭?

如果没有人愿意贴出准备好的代码,那么就尝试自己写吧。最简单的方法可能如下:选择某一天的交易历史(HistorySelect),并尝试在历史上搜索与所选符号有关的交易。

交易_符号

已进行交易的符号名称

绳子

然后检查

折扣时间(DEAL_TIME

交易时间

日期时间

и

拒绝接受

市场退出

如果一个符号在当天有几个收盘位置,你也可以得到每个交易的时间,并根据作者的算法进行处理。

 
Yedelkin:

奇怪的是,这个建议没有在早些时候提出,当时本地专题的作者将他的结果说成是"回报3"。好吧,让我们沿着不败之路前进。

按照Roche的建议,我们写一个简单的检查(使用EnumToString)。

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

而我们看到的是什么?- 我们看到的是,数字 "3 "与SYMBOL_TRADE_EXECUTION_MARKET没有任何关系。因此,我们回到了https://www.mql5.com/ru/forum/3775/page143#comment_192116。

这个怎么样?:)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));
T-G

返回3 - 即SYMBOL_TRADE_EXECUTION_MARKET

3在逻辑上SYMBOL_TRADE_EXECUTION_EXCHANGE。

你最好告诉我们,我们想要交易的是什么,在哪里交易...:)

 
Interesting:

这个怎么样?:)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));

嗯,这是同一件事。只是从另一个角度。数字 "3 "和枚举"SYMBOL_TRADE_EXECUTION_MARKET " 的值 完全没有关系也许除了通过优先权关系。

有趣的

3在逻辑上SYMBOL_TRADE_EXECUTION_EXCHANGE

这不是 "逻辑上 "的,但目前就是这样。

 
Yedelkin:

嗯,这是同一件事。只是从不同的角度。数字 "3 "和"SYMBOL_TRADE_EXECUTION_MARKET " 枚举的没有 任何关系唯一的区别在于优先权关系。

这不是 "逻辑上 "的,但目前就是这样。

好吧,我们有交换执行(SYMBOL_TRADE_EXECUTION_EXCHANGE),因此没有TP/SL,这很合理。
 
Interesting:
所以这是有道理的,我们有交换执行(SYMBOL_TRADE_EXECUTION_EXCHANGE),因此没有TP/SL。
我找不到方向,《参考手册》中哪里说过,当有交换执行时,请求不应该包含TP/SL?