[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 65
Können Sie mir sagen, wie ich eine Datei in einem Skript wieder öffnen kann: Datei öffnen - durchsehen - Datei schließen, wenn ich versuche, sie wieder zu öffnen, sagt sie "Ende der Datei"...
Hallo, können Sie mir sagen, ob jemand schon einmal auf dieses Problem gestoßen ist: Im Währungsdiagramm-Fenster verschwindet manchmal das Diagramm selbst, dann heißt es Refresh und alles ist wieder da. Zu diesem Zeitpunkt fangen die Expertenberater manchmal an, fehlerhaft zu arbeiten (Eröffnung von Geschäften ohne Bedingungen). Heute sogar einen Handel mit maximalem Lot eröffnet. Ich habe es bemerkt und mit 2,5 Punkten Verlust geschlossen. Hier ist der Code für die Bestimmung des Loses. Ich denke, dass dies nicht der Fall sein sollte. Ich vermute, dass dies an den letzten beiden Zeilen liegt. Aber wie?
//======================================================================== //определение лота//========================================================================double Free =AccountFreeMargin();
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
LOT=NormalizeDouble(AccountFreeMargin()*RISK/100000,2);
if (LOT*One_Lot > Free) // Не хватает даже..
{ // ..на минимальн. лот:(Comment("денег нет " );
return(0); // ..и выход
}
elseComment("деньга есть " );
if(LOT<Min_Lot)
LOT=Min_Lot;
if(LOT>Max_Lot)
LOT=Max_Lot;
далее открытие ордера по условиям.
Können Sie mir sagen, ob es möglich ist, Text in einem Diagramm anzuzeigen, z. B.
Ausgabe als separate Funktion, so dass sie wie folgt aufgerufen werden kann:
Sehen Sie sich diese Funktion an:
//+----------------------------------------------------------------------------+void iPrint(bool print, string mess1, string mess2="", string mess3="", string mess4="",
int sz=9, color cl1=Aqua, color cl2=Aqua, color cl3=Aqua, color cl4=Aqua) {
string NameGrafText, message, nm;
int i, y, k, LenStr, shift, Win_Num=-1, num=0;
color cl;
if (mess1=="") {
Print("Func iPrint: Передана пустая строка, выходим");
return;
}
Win_Num=WindowFind("Win_Inform");
if (print || Win_Num<0) {
message=mess1+mess2+mess3+mess4;
Print(message);
return;
}
k=ArraySize(Mass_Name_Message)-1;
if (StringLen(mess1)>0) num++;
if (StringLen(mess2)>0) num++;
if (StringLen(mess3)>0) num++;
if (StringLen(mess4)>0) num++;
for (i=k; i>=0; i--) {
NameGrafText=Mass_Name_Message[i];
if (StringLen(NameGrafText)>0)
if (ObjectFind(NameGrafText)==Win_Num) {
if (i+num>k) {
ObjectDelete(NameGrafText);
Mass_Name_Message[i]="";
}
elseif (i+num<=k) {
Mass_Name_Message[i+num]=Mass_Name_Message[i];
y=ObjectGet(NameGrafText, OBJPROP_YDISTANCE); // координата YObjectSet (NameGrafText, OBJPROP_YDISTANCE, y+(sz+1)*num); // координата YObjectSet (NameGrafText, OBJPROP_COLOR, LightSeaGreen); // цвет
}
}
}
shift=num;
int v=GetTickCount();
for (i=0; i<num; i++) {
shift--;
NameGrafText=Prefix+"_Graf_Text_"+i+"_"+sy+"_"+v;
int app=0;
while (ObjectFind(NameGrafText)==Win_Num) {
app++;
NameGrafText=Prefix+"_Graf_Text_"+i+"_"+sy+"_"+v+"_"+app;
}
Mass_Name_Message[num-1-i]=NameGrafText;
switch (i) {
case0: message=mess1; cl=cl1; break;
case1: message=mess2; cl=cl2; break;
case2: message=mess3; cl=cl3; break;
case3: message=mess4; cl=cl4; break;
default:message=mess1; cl=cl1; break;
}
ObjectCreate (NameGrafText, OBJ_LABEL, Win_Num, 0, 0);
ObjectSetText(NameGrafText, message, sz, "Courier New", cl);
ObjectSet (NameGrafText, OBJPROP_COLOR, cl); // цветObjectSet (NameGrafText, OBJPROP_CORNER, 2); // уголObjectSet (NameGrafText, OBJPROP_XDISTANCE, 150); // координата ХObjectSet (NameGrafText, OBJPROP_YDISTANCE, 2+(sz+1)*shift); // координата YWindowRedraw();
}
return;
}
//+----------------------------------------------------------------------------+
Es sucht nach einem leeren Win_Inform-Indikatorfenster auf dem Chart und zeigt, falls vorhanden, Meldungen darin an. Wenn nicht, wird es mit print ausgegeben.
Verwendet das auf globaler Ebene deklarierte Array string Mass_Name_Message[10]. Dies ist ein Array zum Speichern von Objektnamen. Sie können die Größe an Ihre Bedürfnisse anpassen. Die Prefix-Variable speichert Namen von Experten, damit diese ihre eigenen Objekte identifizieren können, um eine korrekte Handhabung von grafischen Objekten zu ermöglichen. Sie wird ebenfalls global deklariert und hat den Typ String. Sie können es wahrscheinlich herausfinden...
Es schneidet eine lange Nachricht ab, z. B. wenn Sie versuchen, die Zeile "Überprüfen Sie Ihre EA-Einstellungen, um das Einstellungsfenster zu öffnen, drücken Sie F7" zu kommentieren.
bleibt nur dies übrig: "Überprüfen Sie Ihre EA-Einstellungen, um das Einstellungsfenster zu öffnen", und dann wird er abgeschnitten, obwohl der Text nicht einmal zur Hälfte des Fensters steht.
Können Sie mir bitte sagen, ob es eine Möglichkeit gibt, diese Beschränkung aufzuheben?
Es schneidet eine lange Nachricht ab, zum Beispiel wenn Sie versuchen, die Zeile "Überprüfen Sie Ihre EA-Einstellungen, drücken Sie F7, um das Einstellungsfenster zu öffnen" zu kommentieren.
bleibt nur dies übrig: "Überprüfen Sie Ihre EA-Einstellungen, um das Einstellungsfenster zu öffnen", und dann wird er abgeschnitten, obwohl der Text nicht einmal zur Hälfte des Fensters steht.
Können Sie mir bitte sagen, ob es eine Möglichkeit gibt, diese Beschränkung aufzuheben?
Versuchen Sie meine Funktion. Sie befindet sich über Ihrem Beitrag auf dieser Seite. Eine Zeichenfolge in mehrere Zeichenfolgen aufteilen, so dass jede Zeichenfolge nicht mehr als 64 Zeichen lang ist. Meine Funktion gibt diese geteilten Zeilen übereinander aus. Wenn dann die nächste Nachricht angezeigt wird, werden die alten Nachrichten oben in Graustufen dargestellt, und die neue Nachricht wird in der Farbe angezeigt, die Sie beim Aufruf meiner Funktion festgelegt haben.
Ich habe die Historie heruntergeladen und zufällig festgestellt, dass ich ein Loch in USDJPY von 2012.01.16 bis 2012.03.20 habe. Als ich versuchte, sie erneut herunterzuladen, antwortete das Terminal, dass ich den gesamten Verlauf habe. Wie kann ich diese Lücke schließen? Wie kann ich den Verlauf ohne Löcher hochladen? Und gibt es eine Möglichkeit zu überprüfen, ob es eine Lücke in der Historie gibt?
artmedia70: Versuchen Sie meine Funktion. Sie steht über Ihrem Beitrag auf dieser Seite. Eine Zeichenfolge in mehrere Zeichenfolgen aufteilen, so dass jede Zeichenfolge nicht mehr als 64 Zeichen lang ist. Meine Funktion gibt diese geteilten Zeilen übereinander aus. Wenn dann die nächste Nachricht angezeigt wird, werden die alten Nachrichten oben in Graustufen dargestellt, und die neue Nachricht wird in der Farbe angezeigt, die Sie beim Aufruf meiner Funktion festgelegt haben.
Danke, aber es ist ein bisschen kompliziert für mich, und Ihre Funktion gibt 4 Nachrichten auf einmal aus, während ich eine brauche. Es werden nicht mehr als 64 Zeichen in einer Zeile angezeigt?
Roll, danke für den Tipp, hier ist eine Funktion zur Anzeige eines Kommentars in der linken unteren Ecke des Diagramms, falls jemand es braucht:
void mycomment(color c,string mytext)
{
string name="mycomment";
if(ObjectFind(name)<0) ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet("mycomment", OBJPROP_CORNER, 2);
ObjectSet(name,OBJPROP_XDISTANCE,5);
ObjectSet(name,OBJPROP_YDISTANCE,7);
ObjectSetText(name,mytext,12,"",c);
}
Hallo zusammen!
Können Sie mir sagen, ob es möglich ist, Text in einem Diagramm anzuzeigen, z. B.
Ausgabe als separate Funktion, so dass sie wie folgt aufgerufen werden kann:
Sehen Sie sich diese Funktion an:
Es sucht nach einem leeren Win_Inform-Indikatorfenster auf dem Chart und zeigt, falls vorhanden, Meldungen darin an. Wenn nicht, wird es mit print ausgegeben.
Beispielanruf:
Verwendet das auf globaler Ebene deklarierte Array string Mass_Name_Message[10]. Dies ist ein Array zum Speichern von Objektnamen. Sie können die Größe an Ihre Bedürfnisse anpassen. Die Prefix-Variable speichert Namen von Experten, damit diese ihre eigenen Objekte identifizieren können, um eine korrekte Handhabung von grafischen Objekten zu ermöglichen. Sie wird ebenfalls global deklariert und hat den Typ String. Sie können es wahrscheinlich herausfinden...
Truthahn in einem Anhänger
Ich bin mit einem kleinen Problem mit meiner Funktion konfrontiert:
void mycomment(color c,string mytext)
{
string name="mycomment";
if(ObjectFind(name)<0) ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet("mycomment", OBJPROP_CORNER, 2);
ObjectSet(name,OBJPROP_XDISTANCE,5);
ObjectSet(name,OBJPROP_YDISTANCE,7);
ObjectSetText(name,mytext,12,"",c);
}
Es schneidet eine lange Nachricht ab, z. B. wenn Sie versuchen, die Zeile "Überprüfen Sie Ihre EA-Einstellungen, um das Einstellungsfenster zu öffnen, drücken Sie F7" zu kommentieren.
bleibt nur dies übrig: "Überprüfen Sie Ihre EA-Einstellungen, um das Einstellungsfenster zu öffnen", und dann wird er abgeschnitten, obwohl der Text nicht einmal zur Hälfte des Fensters steht.
Können Sie mir bitte sagen, ob es eine Möglichkeit gibt, diese Beschränkung aufzuheben?
Nein, maximale Zeilenlänge im Etikett = 62 Zeichen.
Formatieren Sie den Text in mehrere Zeilen (Beschriftungen), oder verwenden Sie Comment() - es sind 255 Zeichen möglich
Nachstehend finden Sie den Code selbst.
Wenn Sie eine einfachere Lösung haben, würde ich mich über einen Kommentar freuen.
Ich bin mit einem kleinen Problem mit meiner Funktion konfrontiert:
void mycomment(color c,string mytext)
{
string name="mycomment";
if(ObjectFind(name)<0) ObjectCreate(name,OBJ_LABEL,0,0,0);
ObjectSet("mycomment", OBJPROP_CORNER, 2);
ObjectSet(name,OBJPROP_XDISTANCE,5);
ObjectSet(name,OBJPROP_YDISTANCE,7);
ObjectSetText(name,mytext,12,"",c);
}
Es schneidet eine lange Nachricht ab, zum Beispiel wenn Sie versuchen, die Zeile "Überprüfen Sie Ihre EA-Einstellungen, drücken Sie F7, um das Einstellungsfenster zu öffnen" zu kommentieren.
bleibt nur dies übrig: "Überprüfen Sie Ihre EA-Einstellungen, um das Einstellungsfenster zu öffnen", und dann wird er abgeschnitten, obwohl der Text nicht einmal zur Hälfte des Fensters steht.
Können Sie mir bitte sagen, ob es eine Möglichkeit gibt, diese Beschränkung aufzuheben?
Wie kann ich diese Lücke schließen?
Wie kann ich den Verlauf ohne Löcher hochladen?
Und gibt es eine Möglichkeit zu überprüfen, ob es eine Lücke in der Historie gibt?
Versuchen Sie meine Funktion. Sie steht über Ihrem Beitrag auf dieser Seite. Eine Zeichenfolge in mehrere Zeichenfolgen aufteilen, so dass jede Zeichenfolge nicht mehr als 64 Zeichen lang ist. Meine Funktion gibt diese geteilten Zeilen übereinander aus. Wenn dann die nächste Nachricht angezeigt wird, werden die alten Nachrichten oben in Graustufen dargestellt, und die neue Nachricht wird in der Farbe angezeigt, die Sie beim Aufruf meiner Funktion festgelegt haben.