错误、漏洞、问题 - 页 1153 1...114611471148114911501151115211531154115511561157115811591160...3184 新评论 Renat Fatkhullin 2014.06.08 11:03 #11521 joo: 论坛帖子中的视频不能播放。在视频的地方有空位。试过很多浏览器。设备 - 联想K900。视频在youtube网站上播放正常。在其他youtube网站上,视频播放....。 让我们检查一下。 Vladimir Karputov 2014.06.08 11:16 #11522 Renat: 如何运行安装在Windows 8.1中的程序?用/portable? 不,我通常在没有/portable的情况下运行它。不仅如此,为了确定,我还安装和卸载了两次MT5。卸载后,我 也手动删除了 AppData中的文件夹。 Vladimir Karputov 2014.06.08 16:47 #11523 如果以普通用户身份在Windows 8.1中工作,MT5终端不会记住输入的账户号码。另外,MetaEditor不保存MQL5存储状态。只有当你以管理员身份工作或在metaeditor64.exe和terminal64.exe文件属性中选择 "以管理员身份运行此程序 "时,才能解决这个问题。但在这种情况下,在普通用户账户下运行时,我必须输入管理员的密码--考虑到安全问题,这是否正确?P.S. 该终端是最新的--但问题并不新。 M1k3 2014.06.09 04:02 #11524 下午好。我有一个相当耗费资源的指标(由7个以上的数组计算),它在终端中只 "间歇性 "地正常加载,我不知道是什么原因。里面没有错误,是MT5终端本身的问题...我想在测试器中进行测试,但在测试器中一直出现错误:我附上一张截图。请指示,是否有可能在测试器启动前处理错误,并在测试器中强行重新加载指标,如果它出现的话? Vladimir Karputov 2014.06.09 04:14 #11525 M1k3:下午好。我有一个相当耗费资源的指标(由7个以上的数组计算),它在终端中只 "间歇性 "地正常加载,我不知道是什么原因。里面没有错误,是MT5终端本身的问题...我想在测试器中进行测试,但在测试器中一直出现错误:我附上一张截图。请教,是否有办法在测试器启动前处理错误,并在测试器中强行重新加载指标,如果出现的话? . 错误是在你的代码中,而不是在终端。甚至还有一个提示,在哪里可以找到这个错误:第302行,第49位。 这个错误是一个数组超出了它的范围。例如,你有一个大小为[4]的数组,但你试图获得值[5]。 M1k3 2014.06.09 04:47 #11526 barabashkakvn: 错误是在你的代码中,而不是在终端。甚至还有一个提示,在哪里可以找到错误:第302行,第49位。 这个错误是一个数组退出其范围。例如,你有一个大小为[4]的数组,但你试图获得值[5]。我无法解决这个问题,数组中充满了引号(100%)或指标值。在终端中,在某一时刻,报价或指标X的值输出为空,而在另一时刻,它输出一个正常的值(不是在第0条)。我不知道为什么会发生这种情况。在测试器中,NULL值总是存在的。当我试图乘以一个报价或指标值时,错误发生了,但那里是NULL。 Vladimir Karputov 2014.06.09 04:52 #11527 M1k3:我无法解决这个问题,数组中充满了引号(100%)或指标值。在终端的某一时刻,报价X的值为空,而在另一时刻,它给出了一个正常的值(不是在第0条)。我不知道为什么会发生这种情况。在测试器中,NULL值总是存在的。当我试图乘以一个报价或指标值时,错误发生了,但那里是NULL。 使用代码调试或在有疑问的代码部分插入Print() 操作符。这样你就会明白错误出在哪里。 Stanislav Korotky 2014.06.09 09:49 #11528 barabashkakvn:这段代码是指标和OnInit()函数的代码。因此,OnInit()是在终端启动的时候处理的--这段代码正确地显示了tick价格。 是OnInit()而不是init()--像你的一样。 如果错误重复,请发送代码和终端版本。错误在于你试图在OnInit()中从指标 中接收市场信息(MarketInfo...)。该指标没有交易功能,因此,在初始化期间,它不等待账户和市场信息的更新。要获得市场数据,请使用EA的 OnInit(),而不是指标。如果你想在指标中使用市场信息,你应该输入一个标志(bool),在第一次运行的情况下,在OnCalculate()函数中检查账户信息(Account...)的正确性,如果你改变时间框架或指标设置,则在OnInit()中。 不要误导人们。无论你是使用指标的init()还是OnInit(),终端都不能保证在已经进行了登录并且知道tick值的情况下,这个处理程序会被调用。所以在OnInit中也很容易得到零。另外,也没有禁止在指标中使用市场信息。但在这种情况下,我们确实必须将初始化转移到指标的计算部分,并在第一个ticks上执行它。 Vladimir Karputov 2014.06.09 10:00 #11529 marketeer: 不要误导人们。不管是使用指标的init()还是OnInit(),终端都不能保证在登录完成并知道tick值时调用这个处理程序。所以在OnInit中也很容易得到零。另外,也没有禁止在指标中使用市场信息。但在这种情况下,我们确实必须将初始化转移到指标的计算部分,并在第一个ticks上执行它。该指标中没有交易功能。专家顾问具有交易功能。因此,当EA调用市场环境和/或账户信息 时,在OnInit()中一切正常。为了证明我的话,这里有一个简单的EA,其中OnInit()提到了交易环境和账户信息。//+------------------------------------------------------------------+ //| test_expert.mq4 | //| Copyright © 2014, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2014, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- выведем всю информацию, доступную из функции AccountInfoDouble() printf("ACCOUNT_BALANCE = %G",AccountInfoDouble(ACCOUNT_BALANCE)); printf("ACCOUNT_CREDIT = %G",AccountInfoDouble(ACCOUNT_CREDIT)); printf("ACCOUNT_PROFIT = %G",AccountInfoDouble(ACCOUNT_PROFIT)); printf("ACCOUNT_EQUITY = %G",AccountInfoDouble(ACCOUNT_EQUITY)); printf("ACCOUNT_MARGIN = %G",AccountInfoDouble(ACCOUNT_MARGIN)); printf("ACCOUNT_FREEMARGIN = %G",AccountInfoDouble(ACCOUNT_FREEMARGIN)); printf("ACCOUNT_MARGIN_LEVEL = %G",AccountInfoDouble(ACCOUNT_MARGIN_LEVEL)); printf("ACCOUNT_MARGIN_SO_CALL = %G",AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL)); printf("ACCOUNT_MARGIN_SO_SO = %G",AccountInfoDouble(ACCOUNT_MARGIN_SO_SO)); //--- MarketInfo Print("Symbol=",Symbol()); Print("Минимальная дневная цена=",MarketInfo(Symbol(),MODE_LOW)); Print("Максимальная дневная цена=",MarketInfo(Symbol(),MODE_HIGH)); Print("Время поступления последней котировки=",(MarketInfo(Symbol(),MODE_TIME))); Print("Последняя поступившая цена предложения=",MarketInfo(Symbol(),MODE_BID)); Print("Последняя поступившая цена продажи=",MarketInfo(Symbol(),MODE_ASK)); Print("Размер пункта в валюте котировки=",MarketInfo(Symbol(),MODE_POINT)); Print("Количество цифр после запятой в цене инструмента=",MarketInfo(Symbol(),MODE_DIGITS)); Print("Спрэд в пунктах=",MarketInfo(Symbol(),MODE_SPREAD)); Print("Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах=",MarketInfo(Symbol(),MODE_STOPLEVEL)); Print("Размер контракта в базовой валюте инструмента=",MarketInfo(Symbol(),MODE_LOTSIZE)); Print("Размер минимального изменения цены инструмента в валюте депозита=",MarketInfo(Symbol(),MODE_TICKVALUE)); Print("Минимальный шаг изменения цены инструмента в пунктах=",MarketInfo(Symbol(),MODE_TICKSIZE)); Print("Размер свопа для ордеров на покупку=",MarketInfo(Symbol(),MODE_SWAPLONG)); Print("Размер свопа для ордеров на продажу=",MarketInfo(Symbol(),MODE_SWAPSHORT)); Print("Календарная дата начала торгов (фьючерсы)=",MarketInfo(Symbol(),MODE_STARTING)); Print("Календарная дата окончания торгов (фьючерсы)=",MarketInfo(Symbol(),MODE_EXPIRATION)); Print("Разрешение торгов по указанному инструменту=",MarketInfo(Symbol(),MODE_TRADEALLOWED)); Print("Минимальный размер лота=",MarketInfo(Symbol(),MODE_MINLOT)); Print("Шаг изменения размера лота=",MarketInfo(Symbol(),MODE_LOTSTEP)); Print("Максимальный размер лота=",MarketInfo(Symbol(),MODE_MAXLOT)); Print("Метод вычисления свопов=",MarketInfo(Symbol(),MODE_SWAPTYPE)); Print("Способ расчета прибыли=",MarketInfo(Symbol(),MODE_PROFITCALCMODE)); Print("Способ расчета залоговых средств=",MarketInfo(Symbol(),MODE_MARGINCALCMODE)); Print("Начальные залоговые требования для 1 лота=",MarketInfo(Symbol(),MODE_MARGININIT)); Print("Размер залоговых средств для поддержки открытых ордеров в расчете на 1 лот=",MarketInfo(Symbol(),MODE_MARGINMAINTENANCE)); Print("Маржа, взимаемая с перекрытых ордеров в расчете на 1 лот=",MarketInfo(Symbol(),MODE_MARGINHEDGED)); Print("Размер свободных средств, необходимых для открытия 1 лота на покупку=",MarketInfo(Symbol(),MODE_MARGINREQUIRED)); Print("Уровень заморозки ордеров в пунктах=",MarketInfo(Symbol(),MODE_FREEZELEVEL)); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ 附加的文件: test_expert.mq4 5 kb Stanislav Korotky 2014.06.09 12:32 #11530 barabashkakvn:该指标中没有交易功能。专家顾问具有交易功能。因此,当EA调用市场环境和/或账户信息 时,在OnInit()中一切正常。为了证明我的话,这里有一个简单的专家顾问,OnInit()调用市场环境和账户信息。 嗯,这个问题最初是关于指标的。而你在回答关于指标的OnInit。专家顾问是另一回事,那里没有问题,但专家顾问不能取代指标。 1...114611471148114911501151115211531154115511561157115811591160...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
论坛帖子中的视频不能播放。在视频的地方有空位。试过很多浏览器。设备 - 联想K900。
如何运行安装在Windows 8.1中的程序?用/portable?
如果以普通用户身份在Windows 8.1中工作,MT5终端不会记住输入的账户号码。另外,MetaEditor不保存MQL5存储状态。只有当你以管理员身份工作或在metaeditor64.exe和terminal64.exe文件属性中选择 "以管理员身份运行此程序 "时,才能解决这个问题。
P.S. 该终端是最新的--但问题并不新。
下午好。
我有一个相当耗费资源的指标(由7个以上的数组计算),它在终端中只 "间歇性 "地正常加载,我不知道是什么原因。里面没有错误,是MT5终端本身的问题...
我想在测试器中进行测试,但在测试器中一直出现错误:我附上一张截图。
请指示,是否有可能在测试器启动前处理错误,并在测试器中强行重新加载指标,如果它出现的话?
下午好。
我有一个相当耗费资源的指标(由7个以上的数组计算),它在终端中只 "间歇性 "地正常加载,我不知道是什么原因。里面没有错误,是MT5终端本身的问题...
我想在测试器中进行测试,但在测试器中一直出现错误:我附上一张截图。
请教,是否有办法在测试器启动前处理错误,并在测试器中强行重新加载指标,如果出现的话?
.
错误是在你的代码中,而不是在终端。甚至还有一个提示,在哪里可以找到错误:第302行,第49位。 这个错误是一个数组退出其范围。例如,你有一个大小为[4]的数组,但你试图获得值[5]。
我无法解决这个问题,数组中充满了引号(100%)或指标值。在终端中,在某一时刻,报价或指标X的值输出为空,而在另一时刻,它输出一个正常的值(不是在第0条)。我不知道为什么会发生这种情况。
在测试器中,NULL值总是存在的。当我试图乘以一个报价或指标值时,错误发生了,但那里是NULL。
我无法解决这个问题,数组中充满了引号(100%)或指标值。在终端的某一时刻,报价X的值为空,而在另一时刻,它给出了一个正常的值(不是在第0条)。我不知道为什么会发生这种情况。
在测试器中,NULL值总是存在的。当我试图乘以一个报价或指标值时,错误发生了,但那里是NULL。
这段代码是指标和OnInit()函数的代码。因此,OnInit()是在终端启动的时候处理的--这段代码正确地显示了tick价格。 是OnInit()而不是init()--像你的一样。 如果错误重复,请发送代码和终端版本。
错误在于你试图在OnInit()中从指标 中接收市场信息(MarketInfo...)。该指标没有交易功能,因此,在初始化期间,它不等待账户和市场信息的更新。
要获得市场数据,请使用EA的 OnInit(),而不是指标。
如果你想在指标中使用市场信息,你应该输入一个标志(bool),在第一次运行的情况下,在OnCalculate()函数中检查账户信息(Account...)的正确性,如果你改变时间框架或指标设置,则在OnInit()中。
不要误导人们。不管是使用指标的init()还是OnInit(),终端都不能保证在登录完成并知道tick值时调用这个处理程序。所以在OnInit中也很容易得到零。另外,也没有禁止在指标中使用市场信息。但在这种情况下,我们确实必须将初始化转移到指标的计算部分,并在第一个ticks上执行它。
该指标中没有交易功能。专家顾问具有交易功能。因此,当EA调用市场环境和/或账户信息 时,在OnInit()中一切正常。
为了证明我的话,这里有一个简单的EA,其中OnInit()提到了交易环境和账户信息。
该指标中没有交易功能。专家顾问具有交易功能。因此,当EA调用市场环境和/或账户信息 时,在OnInit()中一切正常。
为了证明我的话,这里有一个简单的专家顾问,OnInit()调用市场环境和账户信息。