
- 2021.08.10
- www.mql5.com
遍历订单方法不对
直接手动开一单,用开的单号(1076906852)直接写进去,也是一串数字啊??
if (PositionSelectByTicket(1076906852)==true)
{
double sl = NormalizeDouble(PositionGetDouble( POSITION_SL),_Digits);
}
调试结果 sl=1.4049744770787528E-319
直接手动开一单,用开的单号(1076906852)直接写进去,也是一串数字啊??
if (PositionSelectByTicket(1076906852)==true)
{
double sl = NormalizeDouble(PositionGetDouble( POSITION_SL),_Digits);
}
调试结果 sl=1.4049744770787528E-319
Print(" PositionSelectByTicket(1076906852)=", PositionSelectByTicket(1076906852) );
if (PositionSelectByTicket(1076906852)==true)
{
double sl = NormalizeDouble(PositionGetDouble( POSITION_SL),_Digits);
}
可以考虑先打印看调用结果。
Print(" PositionSelectByTicket(1076906852)=", PositionSelectByTicket(1076906852) );
if (PositionSelectByTicket(1076906852)==true)
{
double sl = NormalizeDouble(PositionGetDouble( POSITION_SL),_Digits);
}
可以考虑先打印看调用结果。
直接printf 在mt5客户端可以显示正确结果, 在程序调试窗口确是一堆看不懂的数字,莫非这软件有BUG?
直接printf 在mt5客户端可以显示正确结果, 在程序调试窗口确是一堆看不懂的数字,莫非这软件有BUG?
那就是调试中没有获取到该订单。感觉似乎在程序初始化时没有读取订单,而并非此代码段的问题。
直接printf 在mt5客户端可以显示正确结果, 在程序调试窗口确是一堆看不懂的数字,莫非这软件有BUG?
每次开仓订单号是不一样的,
订单设置magic,再for循环查找该magic,这是常用且实用的方法。
在MT5中随便开一个订单(带止损),然后在EA测试中 测试止损的值
void OnTick()
{
if(PositionSelect(_Symbol))
{
double _SL = PositionGetDouble(POSITION_SL) ; //开仓止损水平
double _TP = PositionGetDouble(POSITION_TP) ; //开仓获利水平
double PROFIT = PositionGetDouble(POSITION_PROFIT); //当前利润
int a=0;
}
}
调试中插入 _SL _TP和 PROFIT的值,怎么显示如下一串数字? _SL 为1.6546258479223347E-320 ; _TP 为-5977167.9992803046479821205; PROFIT为-7.3783727404262270E-261
麻烦哪位大神能告诉我怎么处理??谢谢各位