int start()
{
int gap=0;
int r=MathAbs(Close[2]-Open[1])/Point;
if (r>=10)
{
gap=gap+1;
}
Comment("ГЭП!========: ",gap,"\n",
"ВЕЛИЧИНА ГЭПА==: ",r,"\n");
return(0);
int gap=0;
int start()
{
int r=MathAbs(Close[2]-Open[1])/Point;
if (r>=10)
{
gap++;
}
Comment("ГЭП!========: ",gap,"\n",
"ВЕЛИЧИНА ГЭПА==: ",r,"\n");
return(0);
int start()
{
staticint gap=0;
int r=MathAbs(Close[2]-Open[1])/Point;
if (r>=10)
{
gap=gap+1;
}
Comment("ГЭП!========: ",gap,"\n",
"ВЕЛИЧИНА ГЭПА==: ",r,"\n");
return(0);
当我进行这样的查询时。
我得到这个结果。
2020.06.17 13:49:53.270 2020.01.02 06:50:00 符号 EURUSD_i 数字 5 点 1e-05
当我提出这样的要求时。
我得到这个结果。
2020.06.17 13:51:58.787 2020.01.02 06:45:00 符号 EURUSD_i 数字 0 点 0.0
同时我想指出,如果我不插入Print函数,我根本没有得到任何错误,订单甚至没有尝试修改自己。仿佛CTrade没有看到我的订单。
检查符号和神奇数字不起作用。
结果。
2020.06.17 14:37:38.147 2020.01.02 06:50:00 Symbol Magic 0 Ticket 2
神奇的数字应该是12345,符号是欧元美元。
为什么我不能得到象征和medgic?
如果你改变了这个字符串。
改为
并删除了通过神奇数字进行的验证,那么我们的价格就会出现问题。
2020.06.17 01:38:24.136 2020.01.02 07:40:00 修改订单#2买入止损0.1 EURUSD_i在1.12086 sl: 1.12023 tp: 1.12275 -> 1.00000, sl: 1.00000 tp: 1.00000 [无效价格]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 CTrade::OrderSend: modify #2 at 1.00000 (sl: 1.00000 tp: 1.00000) [无效的价格]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 BUY STOP修改失败!结果Retcode:10015,Retcode的描述:无效的价格
我已经绞尽脑汁了,而同样的代码在另一个专家顾问中工作正常。
我做错了什么?
CSymbolInfo类的对象初始化不正确(或没有)。
如果你没有这个字符串asymbol.Name(Symbol()),那么就添加它。
如果你有,在Name(string symbol)函数中调试一下会发生什么。
用Refresh()填充m_digits等字段。
s.s. 从你添加的内容来看,你肯定有一个未初始化的符号。
在新的蜱虫到来之前,按钮没有任何移动。这是我的眼睛所能看到的。只要价格发生变化,按钮就会移动。
虽然今天,即使在新的勾选中,按钮也停止了重绘,尽管我没有改变任何东西。只有背景在动。澄清一下--如你所说,你在OnTick中改变了坐标,并声称事实上按钮在下一个tick上移动。从什么开始的下一个刻度? 你改变坐标的那个,还是圣诞节的那个?
你的CSymbolInfo类对象的初始化不正确(或者根本就没有)。
如果你没有这样的字符串asymbol.Name(Symbol()),那么请添加它。
如果你有,在Name(string symbol)函数中调试一下会发生什么。
用Refresh()填充m_digits等字段。
s.s. 从你添加的内容来看,你的asymbol肯定是未初始化的。
它是一个初始化吗?编译时,我得到以下信息
'Trade.mq5 panel' Trade.mq5 panel 1 1
'Trade.mqh' Trade.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'OrderInfo.mqh' OrderInfo.mqh 1 1
'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
'PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
代码生成 1 1
0个错误,0个警告,3192毫秒的时间 1 1
在我开出买入止损单后,我重新计算所有的订单,选择一个开放的订单,并检查符号和Majdic号码是否匹配。
在这个阶段什么都没有发生,正如我在上面写的那样,asymbol.Name()由于某种原因没有返回开仓订单的符号,aorder.Magic()返回值为0(尽管我的魔法数字是121345),asymbol.TickSize()返回值为0。换句话说,检查失败,因此停止对该订单的进一步工作。请澄清"在函数Name(string symbol)中调试发生了什么",我不太理解这句话。我应该添加什么,在哪里添加?
澄清一下--如你所说,你在OnTick中改变了坐标,并声称事实上按钮在下一个tick上移动。从什么开始的下一个刻度? 你改变坐标的那个,还是圣诞节的那个?
在这个阶段,什么都没有发生,因为我已经写过了,函数asymbol.Name()由于某种原因没有返回开仓的订单符号,函数aorder.Magic()返回值0(尽管我的Magic是121345),函数asymbol.TickSize()返回值0。换句话说,检查失败,因此停止对该订单的进一步工作。请澄清"在函数Name(string symbol)中调试发生了什么",我不太理解这句话。我应该添加什么,在哪里添加?
订单 索引/票据 中的错误可能是由魔法0判断的错误。在访问订单结构的时刻,错误顺序的数据被写入那里。在选择循环中,可能下一个数字被放在最后一个 订单组中,而不是你需要的那个。最后一个订单选择的数据将从订单结构中返回。
在我的代码的最上面有几行
这是一个初始化吗?编译时,我得到以下信息
'Trade panel.mq5' Trade panel.mq5 1 1
'Trade.mqh' Trade.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'OrderInfo.mqh' OrderInfo.mqh 1 1
'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
'PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
代码生成 1 1
0个错误,0个警告,3192毫秒的时间 1 1
在我开出买入止损单后,我重新计算所有的订单,选择一个开放的订单,并检查符号和Majdic号码是否匹配。
在这个阶段什么都没有发生,正如我在上面写的那样,asymbol.Name()由于某种原因没有返回开仓订单的符号,aorder.Magic()返回值为0(尽管我的魔法数字是121345),asymbol.TickSize()返回值为0。换句话说,检查失败,因此停止对该订单的进一步工作。请澄清"在函数Name(string symbol)中调试发生了什么",我不太理解这句话。我应该添加什么,在哪里添加?
天啊,你为什么要用你不了解的东西(如果是雅达雅达行李箱呢 )))
而你甚至不屑于阅读所写的内容
如果你没有asymbol.Name(Symbol()),那么就添加它。
s.w. 我想更多地解释一下初始化,但我想那也是无用的。在访问订单结构的时刻,错误的订单数据被存储在那里,根据魔法0,订单索引/票据 可能存在错误。在选择周期中,可能是下一个数字进入了最后一个 订单集,但不是你需要的那个。最后一个订单选择的数据将从订单结构中返回。
下午好!
帮我解决一个简单的问题。
差距计数器。我想计算超过10分的差距。
变量 "差距 "重设为零。我不明白为什么。我已经尝试了所有的方法。我已经试过循环和静态--它不起作用。我怀疑我的循环写错了。
下午好!
帮我解决一个简单的问题。
差距计数器。我想计算超过10分的差距。
变量 "差距 "重设为零。我不明白为什么。我已经尝试了所有的方法。我已经试过循环和静态--它不起作用。我怀疑我的循环写错了。
变量gap在函数start的范围内--每一个新的tick都被重新初始化为0
下午好!
帮我解决一个简单的问题。
差距计数器。我想计算超过10分的差距。
变量 "差距 "重设为零。我不明白为什么。我已经尝试了所有的方法。我已经试过循环和静态--它不起作用。我怀疑我的循环写错了。