Es gibt bereits einen Versuch, die Position per Code zu schließen. Es scheint richtig zu sein, dem Benutzer die Kontrolle über das Schließen der Position zu überlassen. 10 Versuche sind kein Allheilmittel
Das Terminal wurde auf den Stand von 1983 gebracht. Bei der Erstellung von grafischen Objekten (ich erstelle vertikale Linien und Trendlinien) treten im Tester einige seltsame Fehler auf. Im Jahr 1981 war alles normal.
Jetzt erhalte ich die Fehlermeldung 4001.
Erstellungscode:
//+------------------------------------------------------------------+//| Создаем трендовую линию на чарте |//+------------------------------------------------------------------+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));
}
Der Funktionmytrade.PositionClose(conststring symbol,ulong deviation=ULONG_MAX) der Standardbibliothek fehlt ein Kommentarparameter:conststring comment="".
Die bereits vorhandene Logik ist nicht mehr zeitgemäß.
Das ist noch interessanter.
Wenn wir die Aufrufe nicht ändern, wird der Kommentar wie bisher überschrieben.
Wenn wir explizit NULL übergeben, kopieren wir den bestehenden Kommentar
Es wird gegen die bereits bestehende Logik verstoßen.
Niemand benutzt diese Logik. Ein Grund mehr, sie zu nutzen.
Die bereits vorhandene Logik ist nicht mehr zeitgemäß.
Das ist noch interessanter.
Wenn Sie die Herausforderungen nicht ändern, wird der Kommentar wie zuvor überschrieben.
Wenn explizit NULL übergeben wird, dann wird der vorhandene Kommentar kopiert
Bitte sehen Sie sich das an und
es macht 10 (!!!) Versuche , eine Position zu schließen:( Ich hatte solche Situationen beim Debuggen (Netting, Real, Opening):
die hervorgehobene Zeile ist der 2. Versuch, eine Position zu schließen :) Wie Sie aus den Protokollen ersehen können, war es nicht ganz erfolgreich
Im Moment verwende ich es:
Es gibt bereits einen Versuch, die Position per Code zu schließen. Es scheint richtig zu sein, dem Benutzer die Kontrolle über das Schließen der Position zu überlassen. 10 Versuche sind kein Allheilmittel
Die bereits vorhandene Logik ist nicht mehr zeitgemäß.
Das ist noch interessanter.
Wenn wir die Aufrufe nicht ändern, wird der Kommentar wie bisher überschrieben.
Wenn wir explizit NULL übergeben, kopieren wir den bestehenden Kommentar
Vielleicht wird es aber auch bequemer sein.
Derjenige, der sie benötigt, überschreibt sie dann mit einem leeren Wert. Der Standardwert wird übernommen.
Liebe Entwickler!
Das Terminal wurde auf den Stand von 1983 gebracht. Bei der Erstellung von grafischen Objekten (ich erstelle vertikale Linien und Trendlinien) treten im Tester einige seltsame Fehler auf. Im Jahr 1981 war alles normal.
Jetzt erhalte ich die Fehlermeldung 4001.
Erstellungscode:
Frage an die Entwickler.
Der Funktionmytrade.PositionClose(conststring symbol,ulong deviation=ULONG_MAX) der Standardbibliothek fehlt ein Kommentarparameter:conststring comment="".
Ist es ein Versehen?
Es scheint angemessener zu sein, hier zu schreiben:
https://www.mql5.com/ru/forum/302709#comment_10570043