Já existe uma tentativa de fechar posição por código. Parece correcto deixar o utilizador controlar o facto de fecho de posição. 10 tentativas não é uma panaceia
O terminal foi actualizado para 1983. Existem alguns erros estranhos no testador ao criar objectos gráficos (estou a criar linhas verticais e linhas de tendência). Em 1981 tudo era normal.
Agora recebo erros 4001.
Código de criação:
//+------------------------------------------------------------------+//| Создаем трендовую линию на чарте |//+------------------------------------------------------------------+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 funçãomytrade.PositionClose(conststring symbol,ulong deviation=ULONG_MAX) da biblioteca padrão está a faltar um parâmetro de comentário:conststring comment=""".
A lógica que já existe está quebrada.
Isto é mais interessante.
Se não alterarmos as chamadas, o comentário será substituído como antes.
Se aprovarmos explicitamente o NULL, copiamos o comentário existente
A lógica que já existe está a ser violada.
Ninguém usa essa lógica. Mais uma razão para o utilizar.
A lógica que já existe está quebrada.
Isto é mais interessante.
Se não alterar os desafios, o comentário será substituído como antes.
Se passar explicitamente NULL, então copie o comentário existente
Por favor, dê uma vista de olhos e
faz 10 (!!!) tentativas de fechar uma posição:( Tive situações deste tipo ao depurar (Netting, Real, Abertura):
a linha realçada é a 2ª tentativa de fechar uma posição :) Como se pode ver pelos registos, não foi totalmente bem sucedido.
Neste momento, estou a utilizá-lo:
Já existe uma tentativa de fechar posição por código. Parece correcto deixar o utilizador controlar o facto de fecho de posição. 10 tentativas não é uma panaceia
A lógica que já existe está quebrada.
Isto é mais interessante.
Se não alterarmos as chamadas, o comentário será substituído como antes.
Se aprovarmos explicitamente o NULL, copiamos o comentário existente
Ou talvez seja mais conveniente.
Então, quem quer que precise, escreverá por cima com um valor vazio. O valor por defeito será copiado.
Caros programadores!
O terminal foi actualizado para 1983. Existem alguns erros estranhos no testador ao criar objectos gráficos (estou a criar linhas verticais e linhas de tendência). Em 1981 tudo era normal.
Agora recebo erros 4001.
Código de criação:
Pergunta para programadores.
A funçãomytrade.PositionClose(conststring symbol,ulong deviation=ULONG_MAX) da biblioteca padrão está a faltar um parâmetro de comentário:conststring comment=""".
É um lapso?
Parece mais apropriado escrever aqui:
https://www.mql5.com/ru/forum/302709#comment_10570043