对MT5的祝愿 - 页 14 1...789101112131415161718192021...117 新评论 Dmitry Voronkov 2010.03.02 23:00 #131 stringo: 梳理了一下,修好了。谢谢你。 do { rates_total=CopyRates(Symbol(),PERIOD_M1,time1,time2,rates); err++; } 谢谢你的纠正,几乎不错,为什么几乎... 在帮助中说 start_time [in] 第一个元素对应的酒吧时间。 而第一个元素是0。 但最后一个元素是好的。 如果这是它的原意,请修复帮助。 Slava 2010.03.03 10:49 #132 vdv2001: 谢谢你的纠正,几乎不错,为什么几乎... 在帮助中说 start_time [in] 第一个元素对应的酒吧时间。 而第一个元素是0。 但最后一个元素是好的。 如果这是它的本意,请修复帮助。 情况是,日期到日期变量中的start_time和stop_time可以是任何东西--在任何情况下它们形成一个范围。让我们试着在文档中更清楚地说明这一点 Dmitry Voronkov 2010.03.04 08:42 #133 stringo: 情况是,在日期到日期的情况下,start_time和stop_time可以是任何 - 在任何情况下,它们形成一个范围。让我们试着在文件中更具体地说明这一点 也就是说,你是说Copy*函数在日期到日期的情况下会返回所有的元素,除了开始的那个?所以我需要这样写表达式。 do { rates_total=CopyRates(Symbol(),PERIOD_M1,time1-PeriodSeconds(PERIOD_M1),time2,rates); err++; } 这个问题对我非常重要。 Dmitry Voronkov 2010.03.04 08:51 #134 请注意,当你切换到新的一天时,就会发生这样的事情。 更新之后,一切都归于平静。 观察过渡到新的一天的形成,我经常注意到这种转变,最有趣的是在第二天更新图表的第一个条形图形成的时刻没有带来结果。(我可能是错的,但我认为我以前的帖子也与此有关)。 defoille 2010.03.05 18:44 #135 Bild 252. 主菜单:<图形>-<图形工具> 时间段显示。 Yedelkin 2010.03.06 14:26 #136 uncleVic: 不幸的是,最新版本的CAccountInfo并没有进入构建。 在附件中,你会发现FreeMarginCheck方法(到目前为止只针对SYMBOL_CALC_MODE_FOREX)。 如果你有任何意见和(或)想法,请来信。 我发现,FreeMarginCheck方法需要改进。 1.我们来考虑SYMBOL_CALC_MODE_FOREX的情况。 work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。 bid=SymbolInfoDouble(work,SYMBOL_BID)。 保证金=出价*成交量*合约大小/杠杆。 margin=free_margin。 突破。 如果SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)和Currency()的两个和值变成相等,那么bid变量得到0的数值,margin变量得到free_margin的数值。 为了解决这个问题,我做了以下工作。 case SYMBOL_CALC_MODE_FOREX: bid=1.0。 如果(SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency()) { work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。 bid=SymbolInfoDouble(work,SYMBOL_BID)。} 保证金=出价*成交量*合约大小/杠杆。 margin=free_margin。 突破。 Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте www.mql5.com Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5 Dmitry Voronkov 2010.03.06 19:02 #137 请问,Copy*()函数何时能正常工作? 在每个新建筑中,它们都停止工作,难道没有人使用它们吗? Victor Kirillin 2010.03.08 11:33 #138 vdv2001: 谢谢你的纠正,几乎不错,为什么几乎... 在帮助中说 start_time [in] 第一个元素对应的酒吧时间。 而第一个元素是0。 但最后一个元素是好的。 如果这是你的本意,请修正帮助。 从你的例子中不清楚时间1的价值是如何获得的。重现这种情况的尝试并不成功。 附加的文件: testcopyratestimes.mq5 2 kb Victor Kirillin 2010.03.08 12:42 #139 Yedelkin: 发现FreeMarginCheck方法需要完善。 谢谢你的评论。纠正了。 Yedelkin 2010.03.10 19:23 #140 Yedelkin: 发现FreeMarginCheck方法需要完善。 2.另一个问题如下。再次考虑SYMBOL_CALC_MODE_FOREX的情况。 work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。 bid=SymbolInfoDouble(work,SYMBOL_BID)。 如果符号 变量的基础货币不是直接报价的货币(例如CADJPY),SymbolInfoDouble(work,SYMBOL_BID)将输出0。 2.1 此外,不清楚为什么在计算第二个变量(出价)时要使用投标价格。毕竟,我们需要确保计算出价 的货币是以牺牲存款货币为代价 购买的,即 "买入保证金货币,卖出存款货币"。而如果在某一货币对中,存款货币处于第二位,那么我们就必须使用ASK价格来执行指定的操作。 为了纠正这种情况,我做了以下工作。 双重课程。//--- switch(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE)){ case SYMBOL_CALC_MODE_FOREX: 课程=1.0。 //---检查存款货币是否为当前货币对的基础货币。//对。如果是,那么课程变量的值将保持为1.0。 如果(SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency()){ work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。 //-----检查是否有一个货币对的基础货币与 //当前货币对的基础货币,且报价货币与入金货币相同 //(即,如果存款是美元,请查看直接报价) 如果(SymbolInfoDouble(work,SYMBOL_ASK)!=0) 课程=SymbolInfoDouble(work,SYMBOL_ASK)。 //---- 如果不满足上述条件,改变符号的顺序//工作变量中的货币没有得到满足,我们得到了一个带有基础货币的货币对。 //与存款货币相匹配,报价货币与基础货币相同。 //当前货币对(如果存款是美元,我们获得具有反向报价的货币对)。 否则{ work=Currency()+SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)。 course=1/SymbolInfoDouble(work,SYMBOL_BID)。}} 保证金=课程*数量*合同_大小/杠杆。 margin=free_margin。 突破。 Документация по MQL5: Основы языка / Типы данных / Тип string www.mql5.com Основы языка / Типы данных / Тип string - Документация по MQL5 MQL5 细则手册:指标子窗口控件 - 滚动条 StringFormat(). 回顾和现成的例子 交易者生活窍门: 利用 defines (#define) 1...789101112131415161718192021...117 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
梳理了一下,修好了。谢谢你。
谢谢你的纠正,几乎不错,为什么几乎...
在帮助中说
start_time [in] 第一个元素对应的酒吧时间。
而第一个元素是0。
但最后一个元素是好的。
如果这是它的原意,请修复帮助。
谢谢你的纠正,几乎不错,为什么几乎...
在帮助中说
start_time [in] 第一个元素对应的酒吧时间。
而第一个元素是0。
但最后一个元素是好的。
如果这是它的本意,请修复帮助。
情况是,在日期到日期的情况下,start_time和stop_time可以是任何 - 在任何情况下,它们形成一个范围。让我们试着在文件中更具体地说明这一点
也就是说,你是说Copy*函数在日期到日期的情况下会返回所有的元素,除了开始的那个?所以我需要这样写表达式。
这个问题对我非常重要。
请注意,当你切换到新的一天时,就会发生这样的事情。
更新之后,一切都归于平静。
观察过渡到新的一天的形成,我经常注意到这种转变,最有趣的是在第二天更新图表的第一个条形图形成的时刻没有带来结果。(我可能是错的,但我认为我以前的帖子也与此有关)。
Bild 252.
主菜单:<图形>-<图形工具> 时间段显示。
不幸的是,最新版本的CAccountInfo并没有进入构建。
在附件中,你会发现FreeMarginCheck方法(到目前为止只针对SYMBOL_CALC_MODE_FOREX)。
如果你有任何意见和(或)想法,请来信。
我发现,FreeMarginCheck方法需要改进。
1.我们来考虑SYMBOL_CALC_MODE_FOREX的情况。
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。
bid=SymbolInfoDouble(work,SYMBOL_BID)。
保证金=出价*成交量*合约大小/杠杆。
margin=free_margin。
突破。
如果SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)和Currency()的两个和值变成相等,那么bid变量得到0的数值,margin变量得到free_margin的数值。
为了解决这个问题,我做了以下工作。
case SYMBOL_CALC_MODE_FOREX:
bid=1.0。
如果(SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency())
{
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。
bid=SymbolInfoDouble(work,SYMBOL_BID)。
}
保证金=出价*成交量*合约大小/杠杆。
margin=free_margin。
突破。
请问,Copy*()函数何时能正常工作?
在每个新建筑中,它们都停止工作,难道没有人使用它们吗?
谢谢你的纠正,几乎不错,为什么几乎...
在帮助中说
start_time [in] 第一个元素对应的酒吧时间。
而第一个元素是0。
但最后一个元素是好的。
如果这是你的本意,请修正帮助。
从你的例子中不清楚时间1的价值是如何获得的。重现这种情况的尝试并不成功。
发现FreeMarginCheck方法需要完善。
发现FreeMarginCheck方法需要完善。
2.另一个问题如下。再次考虑SYMBOL_CALC_MODE_FOREX的情况。
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。
bid=SymbolInfoDouble(work,SYMBOL_BID)。
如果符号 变量的基础货币不是直接报价的货币(例如CADJPY),SymbolInfoDouble(work,SYMBOL_BID)将输出0。
2.1 此外,不清楚为什么在计算第二个变量(出价)时要使用投标价格。毕竟,我们需要确保计算出价 的货币是以牺牲存款货币为代价 购买的,即 "买入保证金货币,卖出存款货币"。而如果在某一货币对中,存款货币处于第二位,那么我们就必须使用ASK价格来执行指定的操作。
为了纠正这种情况,我做了以下工作。
双重课程。
//---
switch(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE))
{
case SYMBOL_CALC_MODE_FOREX:
课程=1.0。
//---检查存款货币是否为当前货币对的基础货币。
//对。如果是,那么课程变量的值将保持为1.0。
如果(SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)!=Currency())
{
work=SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)+Currency()。
//-----检查是否有一个货币对的基础货币与
//当前货币对的基础货币,且报价货币与入金货币相同
//(即,如果存款是美元,请查看直接报价)
如果(SymbolInfoDouble(work,SYMBOL_ASK)!=0)
课程=SymbolInfoDouble(work,SYMBOL_ASK)。
//---- 如果不满足上述条件,改变符号的顺序
//工作变量中的货币没有得到满足,我们得到了一个带有基础货币的货币对。
//与存款货币相匹配,报价货币与基础货币相同。
//当前货币对(如果存款是美元,我们获得具有反向报价的货币对)。
否则
{
work=Currency()+SymbolInfoString(symbol,SYMBOL_CURRENCY_MARGIN)。
course=1/SymbolInfoDouble(work,SYMBOL_BID)。
}
}
保证金=课程*数量*合同_大小/杠杆。
margin=free_margin。
突破。