错误、漏洞、问题 - 页 1886 1...187918801881188218831884188518861887188818891890189118921893...3184 新评论 Alexandr Bryzgalov 2017.05.12 09:16 #18851 Vladimir Karputov: 那么问题是什么呢?你在哪里可以看到,在数字 "i "下有一个位置,有这样那样的票,用于这样那样的符号?一般来说,除了简单的输出序列号外,你还可以输出票据和符号。对于不同的情况,一个函数给出相同的值,这是否正常?ZS:顺便说一下,帖子里有一个问题。问题是,如果我选择买入,函数(PositionGetInteger(POSITION_TYPE))返回0而如果你选择了一个不存在的位置,函数也会返回0 Vladimir Karputov 2017.05.12 09:17 #18852 Alexandr Bryzgalov: 对于不同的情况,一个函数给出相同的值,这是否正常? 什么是 "不同情况"?并按我上面的建议做。 关于交易、自动交易系统和交易策略测试的论坛 虫子、虫子、问题 Vladimir Karputov, 2017.05.12 11:15 ...一般来说,除了简单地输出序列号外,还要输出票据和符号。 fxsaber 2017.05.12 09:19 #18853 Alexandr Bryzgalov:我知道我需要检查,但事情可能发生......位置获取积分该函数返回先前用PositionGetSymbol或PositionSelect函数选择的一个开放位置的请求属性。位置属性应该是datetime,int类型。该函数有2种变体。1.直接返回该属性的值。longGetInteger(ENUM_POSITION_PROPERTY_INTEGERproperty_id// Property identifier);2.根据函数的成功,返回真或假。如果成功,属性值将被放置在目标变量中,该变量通过引用传递给最后一个参数。boolPositionGetInteger(ENUM_POSITION_PROPERTY_INTEGERproperty_id,// property identifier长&long_var//获取属性的值);参数属性_id位置属性的[in]标识符。该值可以是enumENUM_POSITION_PROPERTY_INTEGER中的一个值。long_var[out] 长类型的变量,取所请求的属性的值。返回的值一个值是tymelong。在执行不成功的情况下,返回0。 马吉克的情况比较薄。因此,做一个检查(PositionGetInteger(POSITION_TICKET) > 0)是符合逻辑的。 Документация по MQL5: Торговые функции / PositionGetInteger www.mql5.com Торговые функции / PositionGetInteger - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Alexandr Bryzgalov 2017.05.12 09:21 #18854 fxsaber: 魔法的情况更微妙。因此,做一个检查(PositionGetInteger(POSITION_TICKET) > 0)是合乎逻辑的。是的,你必须检查,这很好。但当你写一个函数时,你总是试图确保它在不同情况下返回不同的值。 我认为在不同情况下从函数中得出相同的值是不正确的。 fxsaber 2017.05.12 09:23 #18855 Alexandr Bryzgalov:但当你写一个函数时,你总是试图为不同的情况获得不同的值。 这就是提到魔术的原因。如果PositionGetInteger(POSITION_MAGIC)出现错误,该如何返回? Alexandr Bryzgalov 2017.05.12 09:25 #18856 fxsaber: 这就是魔术师提到它的原因。如果PositionGetInteger(POSITION_MAGIC)出现错误,该如何返回? 0--手动打开的位置,正确吗? Vladimir Karputov 2017.05.12 09:27 #18857 Alexandr Bryzgalov:如果一个函数在不同情况下给出相同的值,可以吗?ZS:顺便说一下,帖子里有一个问题。问题是,如果我选择买入,函数(PositionGetInteger(POSITION_TYPE))返回0。如果你选择了一个不存在的位置,函数也将返回0 所以第一个调用是在你保证了一个位置时使用的(就像你在循环中一样)。而这里是第二种形式的调用bool PositionGetInteger( ENUM_POSITION_PROPERTY_INTEGER property_id, // идентификатор свойства long& long_var // сюда примем значение свойства );适用于职位被突然选中的情况。做到这一点,相信你在 "结果 "变量中得到的东西--一切都会水到渠成。//+------------------------------------------------------------------+ //| posi.mq5 | //| sanyooooook | //| http://sn-bot.ru | //+------------------------------------------------------------------+ #property copyright "sanyooooook" #property link "http://sn-bot.ru" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- int tot=PositionsTotal(); for(int i=0;i<tot;i++) { ulong OrderTicket_=PositionGetTicket(i); long cmd=PositionGetInteger(POSITION_TYPE); if(OrderTicket_>0 && cmd<=POSITION_TYPE_SELL) Print("N",i,"cmd=",cmd); } ulong OrderTicket_=PositionGetTicket(100); long cmd=-3; bool result=PositionGetInteger(POSITION_TYPE,cmd); if(result) Print("N100 cmd=",cmd); } //+------------------------------------------------------------------+ fxsaber 2017.05.12 09:29 #18858 Alexandr Bryzgalov: 0--位置是手动打开的,正确吗? 是的,但任何其他数值也会产生误导。 Alexandr Bryzgalov 2017.05.12 09:36 #18859 Vladimir Karputov: 所以第一个调用是在你保证了一个位置时使用的(就像你在循环中一样)。而这里是第二种形式的调用适用于职位被突然选中的情况。做到这一点,相信你在 "结果 "变量中得到的东西--一切都会落到实处。这不是问题,问题是该函数在不同情况下返回相同的值。我知道如何检查它。原来的问题是,这到底是否正常?SZY:一个错误可以在无意中产生,然后在100000个代码中你会厌倦寻找它。什么,你不需要犯错吗?) Vladimir Karputov 2017.05.12 09:37 #18860 Alexandr Bryzgalov:这不是问题,但该函数在不同情况下返回相同的值。我知道如何检查它问题原本是关于这到底是否正常? 在我看来,你并没有检查我给你看的代码。这样吧:你先检查一下,然后再问问题。 1...187918801881188218831884188518861887188818891890189118921893...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么问题是什么呢?
你在哪里可以看到,在数字 "i "下有一个位置,有这样那样的票,用于这样那样的符号?一般来说,除了简单的输出序列号外,你还可以输出票据和符号。
对于不同的情况,一个函数给出相同的值,这是否正常?
ZS:顺便说一下,帖子里有一个问题。
问题是,如果我选择买入,函数(PositionGetInteger(POSITION_TYPE))返回0
而如果你选择了一个不存在的位置,函数也会返回0
对于不同的情况,一个函数给出相同的值,这是否正常?
什么是 "不同情况"?并按我上面的建议做。
关于交易、自动交易系统和交易策略测试的论坛
虫子、虫子、问题
Vladimir Karputov, 2017.05.12 11:15
...
一般来说,除了简单地输出序列号外,还要输出票据和符号。
我知道我需要检查,但事情可能发生......
位置获取积分
该函数返回先前用PositionGetSymbol或PositionSelect函数选择的一个开放位置的请求属性。位置属性应该是datetime,int类型。该函数有2种变体。
1.直接返回该属性的值。
longGetInteger(
ENUM_POSITION_PROPERTY_INTEGERproperty_id// Property identifier
);
2.根据函数的成功,返回真或假。如果成功,属性值将被放置在目标变量中,该变量通过引用传递给最后一个参数。
boolPositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGERproperty_id,// property identifier
长&long_var//获取属性的值
);
参数
属性_id
位置属性的[in]标识符。该值可以是enumENUM_POSITION_PROPERTY_INTEGER中的一个值。
long_var
[out] 长类型的变量,取所请求的属性的值。
返回的值
一个值是tymelong。在执行不成功的情况下,返回0。
魔法的情况更微妙。因此,做一个检查(PositionGetInteger(POSITION_TICKET) > 0)是合乎逻辑的。
是的,你必须检查,这很好。
但当你写一个函数时,你总是试图确保它在不同情况下返回不同的值。
我认为在不同情况下从函数中得出相同的值是不正确的。但当你写一个函数时,你总是试图为不同的情况获得不同的值。
这就是魔术师提到它的原因。如果PositionGetInteger(POSITION_MAGIC)出现错误,该如何返回?
如果一个函数在不同情况下给出相同的值,可以吗?
ZS:顺便说一下,帖子里有一个问题。
问题是,如果我选择买入,函数(PositionGetInteger(POSITION_TYPE))返回0。
如果你选择了一个不存在的位置,函数也将返回0
所以第一个调用是在你保证了一个位置时使用的(就像你在循环中一样)。而这里是第二种形式的调用
适用于职位被突然选中的情况。
做到这一点,相信你在 "结果 "变量中得到的东西--一切都会水到渠成。
0--位置是手动打开的,正确吗?
所以第一个调用是在你保证了一个位置时使用的(就像你在循环中一样)。而这里是第二种形式的调用
适用于职位被突然选中的情况。
做到这一点,相信你在 "结果 "变量中得到的东西--一切都会落到实处。
这不是问题,问题是该函数在不同情况下返回相同的值。
我知道如何检查它。
原来的问题是,这到底是否正常?
SZY:一个错误可以在无意中产生,然后在100000个代码中你会厌倦寻找它。
什么,你不需要犯错吗?)
这不是问题,但该函数在不同情况下返回相同的值。
我知道如何检查它
问题原本是关于这到底是否正常?
在我看来,你并没有检查我给你看的代码。这样吧:你先检查一下,然后再问问题。