Ya hay un intento de cerrar la posición por código. Parece correcto dejar que el usuario controle el hecho de cerrar la posición. 10 intentos no son la panacea
La terminal se actualizó en 1983. Hay algunos errores extraños en el probador al crear objetos gráficos (estoy creando líneas verticales y líneas de tendencia). En 1981 todo era normal.
Ahora recibo el error 4001.
Código de creación:
//+------------------------------------------------------------------+//| Создаем трендовую линию на чарте |//+------------------------------------------------------------------+void DrawTrendLine(conststring id,// Строковый идентификаторconstdatetime t1, // Время первой точки линииconstdatetime t2, // Время второй точки линииconstdouble price,// Цена обеих точек линииconstcolor clr // Цвет линии
)
{
//--- Формируем имя линииconststring name=_prefix+id+TimeToString(t1)+"_"+TimeToString(t2);
//--- Сбрасываем код последней ошибкиResetLastError();
//---//Print( __FUNCTION__,": Создаем тренд-линию "+name+": t1 = "+TimeToString( t1 )+", t2 = "+TimeToString( t2 )+", price = "+DoubleToString( price ) );//--- Создаем объект, проверяем созданиеif(ObjectCreate(0,name,OBJ_TREND,0,t1,price,t2,price)) // Если объект создан
{
//--- Меняем свойства линийObjectSetInteger(0,name,OBJPROP_COLOR,clr);
ObjectSetInteger(0,name,OBJPROP_BACK,true);
ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_DOT);
ObjectSetInteger(0,name,OBJPROP_RAY_LEFT,false);
ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
}
else// Если объект не созданPrint(__FUNCTION__,": ОШИБКА #",GetLastError(),": Объект '"+name+"' не построен! t1 = "+TimeToString(t1)+", t2 = "+TimeToString(t2)+", price = "+DoubleToString(price));
}
//+------------------------------------------------------------------+//| Создаем вертикальную линию на чарте |//+------------------------------------------------------------------+void DrawVLine( conststring id, // Строковый идентификаторconstdatetime time // Время
)
{
//--- Формируем имя линииconststring name=_prefix+id+TimeToString(time);
//--- Сбрасываем код последней ошибкиResetLastError();
//--- Создаем объект, проверяем созданиеif(ObjectCreate(0,name,OBJ_VLINE,0,time,0)) // Если объект создан
{
//--- Меняем свойства линийObjectSetInteger(0,name,OBJPROP_COLOR,_vLineClr);
ObjectSetInteger(0,name,OBJPROP_BACK,true);
ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_DOT);
}
else// Если объект не созданPrint(__FUNCTION__,": ОШИБКА #",GetLastError(),": Объект '"+name+"' не построен! t1 = "+TimeToString(time));
}
A la funciónmytrade.PositionClose(conststring symbol,ulong deviation=ULONG_MAX) de la biblioteca estándar le falta un parámetro de comentario:conststring comment="".
La lógica que ya existe está rota.
Esto es más interesante.
Si no cambiamos las llamadas, el comentario se sobrescribirá como antes.
Si pasamos explícitamente NULL, copiamos el comentario existente
Se está violando la lógica que ya existe.
Nadie utiliza esa lógica. Razón de más para utilizarlo.
La lógica que ya existe está rota.
Esto es más interesante.
Si no cambias los retos, el comentario se sobrescribirá como antes.
Si se pasa explícitamente NULL, se copia el comentario existente
Por favor, eche un vistazo y
hace 10 (!!!) intentos para cerrar una posición:( Tuve estas situaciones cuando depuré (Netting, Real, Opening):
la línea resaltada es el segundo intento de cerrar una posición :) Como se puede ver en los registros, no fue del todo exitoso.
En este momento lo estoy utilizando:
Ya hay un intento de cerrar la posición por código. Parece correcto dejar que el usuario controle el hecho de cerrar la posición. 10 intentos no son la panacea
La lógica que ya existe está rota.
Esto es más interesante.
Si no cambiamos las llamadas, el comentario se sobrescribirá como antes.
Si pasamos explícitamente NULL, copiamos el comentario existente
O tal vez sea más conveniente.
Entonces, quien lo necesite lo sobrescribirá con un valor vacío. Se copiará el valor por defecto.
Queridos desarrolladores
La terminal se actualizó en 1983. Hay algunos errores extraños en el probador al crear objetos gráficos (estoy creando líneas verticales y líneas de tendencia). En 1981 todo era normal.
Ahora recibo el error 4001.
Código de creación:
Pregunta para los desarrolladores.
A la funciónmytrade.PositionClose(conststring symbol,ulong deviation=ULONG_MAX) de la biblioteca estándar le falta un parámetro de comentario:conststring comment="".
¿Es un descuido?
Parece más apropiado escribir aquí:
https://www.mql5.com/ru/forum/302709#comment_10570043