[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 42
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Haben die DoCs ein Limit für die Anzahl der Trades?
Einige haben nicht nur eine Begrenzung der Anzahl der Angebote, sondern sogar eine Begrenzung der Anzahl der Anfragen.
Sie sind solche Erfinder! :-))
Die übrigen bleiben bis zum Ende des Tests offen, obwohl ein bedingtes Schließen eines Auftrags erfolgen sollte, wenn ein anderer geöffnet wird.
Eine weitere Frage zu den Fehlern 4051 und 134 bei der Verwendung von OrderClose(), was bedeuten sie? Ich habe Informationen aus dem Protokoll kopiert.
Die letzte Option scheint mehr oder weniger gut funktioniert zu haben. Es ist zwar möglich, die Berechnungen zu vereinfachen
Bitte um Rat! Wie kann ich zwei schwebende Aufträge mit derselben Magie, aber mit unterschiedlichem Lot schließen?
int start()
{
double MyLastBullOpenPrice=0;
for(int Cnt=0;Cnt<OrdersTotal();Cnt++)
{
OrderSelect(Cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==12345 && OrderType()==OP_BUY)
{
MyLastBullOpenPrice=OrderOpenPrice();
double Cena=OrderOpenPrice()+5*Point;
double Totalcena= Bid;
if (Totalcena>Cena)
{
if (OrdersTotal()>0)
{ for (int i=OrdersTotal()-1; i>=0; i--)
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{ if(BestellMagischeNummer()==12345)
{ if(OrderDelete(OrderTicket())==true)
{
Print("Fehler = ",GetLastError()); return(0);
}
} } }
}
}
return(MyLastBullOpenPrice);
}
Die übrigen bleiben bis zum Ende des Tests offen, obwohl ein bedingtes Schließen eines Auftrags erfolgen sollte, wenn ein anderer geöffnet wird.
Eine weitere Frage zu den Fehlern 4051 und 134 bei der Verwendung von OrderClose(), was bedeuten sie? Ich habe Informationen aus dem Protokoll kopiert.
134 - kein Geld, 4051 - falsche Parameter an die Funktion übergeben.
Was den Punkt angeht - stellen Sie sicher, dass die Variable magick nur einmal zugewiesen wird, vorzugsweise in der Funktion init(), andernfalls hat jeder Auftrag seine eigene magick und das Ergebnis wird so sein, wie Sie es beschreiben.
Bitte helfen Sie mir, eine Zeichenersetzungsfunktion für eine Zeichenkette durch Arrays hinzuzufügen (oder zu schreiben).
Haben zwei Arrays von Zeichen:
string symbols1[] = {"a", "b", "c", "d"};string symbols2[] = {"1", "2", "3", "4"};
Versucht, eine Funktion zu schreiben, die den Text badc mit 2143 ersetzen würde, basierend auf den Arrays, stellte sich wie folgt heraus:
string ReplaceSymbolsInStr(string text){
string textMod[] ={""};
string symbols1[] = {"a","b","c","d"};
string symbols2[] = {"1","2","3","4"};
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2;
}
return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array];
int NewArraySize = ArraySize(textMod)+1;
ArrayResize(textMod,NewArraySize);
textMod[i1]=OneSymbolMod;
string textNew;
textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :(
return (textNew);
}
}
Ich weiß, dass es falsch ist, und ich kann das Array überhaupt nicht zu einer Zeichenkette zusammensetzen. Bitte um Hilfe.
Einige haben nicht nur eine Begrenzung der Anzahl der Angebote, sondern sogar eine Begrenzung der Anzahl der Anfragen.
Sie sind solche Erfinder! :-))
Bitte helfen Sie mir, eine Funktion zur Ersetzung von Zeichen in einer Zeichenfolge durch Arrays hinzuzufügen (oder zu schreiben).
Haben zwei Arrays von Zeichen:
string symbols1[] = {"a", "b", "c", "d"};string symbols2[] = {"1", "2", "3", "4"}
Versucht, eine Funktion zu schreiben, die den Text badc mit 2143 ersetzen würde, basierend auf den Arrays, stellte sich wie folgt heraus:
string ReplaceSymbolsInStr(string text){
string textMod[] ={""};
string symbols1[] = {"a","b","c","d"};
string symbols2[] = {"1","2","3","4"};
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) int PosSymbolIn1array=i2;
}
return(-1);
string OneSymbolMod = symbols2[PosSymbolIn1array];
int NewArraySize = ArraySize(textMod)+1;
ArrayResize(textMod,NewArraySize);
textMod[i1]=OneSymbolMod;
string textNew;
textNew=StringConcatenate(textMod[1],textMod[2]...);//собрать массив в строку вообще не могу :(
return (textNew);
}
}
Ich weiß, dass es falsch ist, und ich kann das Array überhaupt nicht zu einer Zeichenkette zusammensetzen. Bitte um Hilfe.
Sie sollten den Index des Zeichens im Ersetzungsarray gefunden haben, warum also ein weiteres Array erstellen?
Versuchen Sie, ihn in der ersten Schleife in eine einfache Textvariable einzufügen:
string ReplaceSymbolsInStr(string text)
{string symbols1[] = {"a", "b", "c", "d"};
string symbols2[] = {"1", "2", "3", "4"};
string textNew="";
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol) {textNew = textNew + symbols2[ i2 ]; i2=ArraySize(symbols1) ; }
}
}
return (textNew);
}
Oder noch einfacher ist es so:
string ReplaceSymbolsInStr(string text)
{string symbols1[4] = {"a", "b", "c", "d"}; // Größe des Arrays entsprechend der Anzahl der enthaltenen Symbole
string textNew="";
for (int i1=0; i1< StringLen(text) ; i1++)
{
string OneSymbol = StringSubstr(text,i1,1);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==OneSymbol )
{
textNew = textNew + (i2+1); // die Nummer des Symbols selbst wird dem zurückgegebenen Text hinzugefügt
i2=ArraySize(symbols1) ; // Abschluss der Suchschleife
}
}
}
return (textNew);
}
Guten Tag!
Könnten Sie mir bitte mitteilen (oder einen Beispiel-Link angeben), wie ich Daten im csv-Format automatisch per E-Mail versenden kann?
Ich danke Ihnen.