获取当前持仓信息 double lots = PositionGetDouble(POSITION_VOLUME); double profit = PositionGetDouble(POSITION_PROFIT); bool is_buy = PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY;中'POSITION_TYPE_BUY' - undeclared identifier
时间: 2023-06-19 15:10:25 浏览: 43
这个错误是由于'POSITION_TYPE_BUY'未被定义所引起的。您需要在代码文件的顶部添加以下语句:
```
#include <Trade\PositionInfo.mqh>
```
这将允许您使用`POSITION_TYPE_BUY`常量。另外,您需要确保在使用`PositionGetDouble()`和`PositionGetInteger()`函数之前已经打开了一个订单,否则这些函数将返回0,因为它们无法获取当前持仓信息。
相关问题
type=too_many_clauses, reason=too_many_clauses
根据引用[1]的错误提示信息,可以看出是由于查询语句中的子句数量超过了默认的最大子句数量限制(maxClauseCount is set to 1024)导致的。这个限制是为了防止查询语句过于复杂而导致性能下降或者内存溢出。
解决这个问题的方法是通过修改Elasticsearch的配置文件来增加最大子句数量限制。根据引用的信息,可以在配置文件中添加以下内容来将最大子句数量限制增加到10240:
```
indices.query.bool.max_clause_count: 10240
```
这样就可以解决查询语句中子句数量过多的问题了。
代码解释: is_disrupt = bool(is_disrupt) if is_disrupt: is_disrupt = 1 else: is_disrupt = 0
这段代码的作用是将变量is_disrupt转换为一个布尔类型,并且如果is_disrupt为True,则将其转换为整数1,否则转换为整数0。具体来说,bool(is_disrupt)将is_disrupt转换为布尔类型,即True或False。然后,通过if语句判断is_disrupt是否为True,如果是,则将is_disrupt赋值为整数1,否则赋值为整数0。最终,该代码段将确保is_disrupt被转换为整数类型,并且仅取值为0或1。