[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 174

 

Dies ist der Bereich, in dem der Marktauftrag ausgelöst wird, wenn das Limit nicht gesetzt werden kann. Vielleicht liegt genau hier das Problem? Im Testgerät hat es funktioniert :(

ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,timecl,blue);
if(ticket<1){/// Fehlerbehandlung
err=GetLastError();
if(err==147){/// Zeitüberschreitung
Err147=true;
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,0,Blue);
if(ticket>0){
WriteOrder(ticket,timecl);
}else{
err=GetLastError();
if(err==130){
if(Set_order_from_market){
RefreshRates();
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue);
if(ticket<1){
err=GetLastError();
Print("Fehler beim Setzen des Auftrags vom Markt # ",err,
"Auftragsart = KAUFEN",
"Offener Preis =",Ask,
"Preis = ",Ask,
"Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
}
}
if(err==130){
if(Bestellung_vom_Markt einstellen){
RefreshRates();
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue);
if(ticket<1){
err=GetLastError();
Print("Fehler beim Setzen des Auftrags vom Markt # ",err,
"Auftragsart = KAUFEN",
"Offener Preis =",Ask,
"Preis = ",Ask,
"Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
Print("4 Order setting error # ",err);
}
}
}
}
 

am Anfang der Funktion einfügen
sll = NormalizeDouble (sll, MarketInfo( Symbol (), MODE_DIGITS)); tpp = NormalizeDouble (tpp, MarketInfo( Symbol (), MODE_DIGITS))

 
alsu:

put
sll = NormalizeDouble (sll, MarketInfo( Symbol (), MODE_DIGITS)); tpp = NormalizeDouble (tpp, MarketInfo( Symbol (), MODE_DIGITS));



Stände wie dieser. Leider kenne ich mich mit dem Code nicht so gut aus...

if(typ>0){
if(CountOpOrd(4,magic)<1){
if(buy!=0){
if(OpPrise(buy){RefreshRates();
if(buy-Ask<stlw*Point){NormalizeDouble(Ask+stlw*Point,Digits);}
if(sl<0){sll=NormalizeDouble(buy-((buy-sell)*(sl/(-100))),Digits);}
if(sl>0){sll=NormalizeDouble(buy-sl*Point*mno,Digits);}
if(tp>){tpp=NormalizeDouble(buy+tp*Point*mno,Digits);}
if(tp<0){tpp=NormalizeDouble(buy+((buy-sell)*(-tp/100)),Digits);}
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,timecl,Blue);
if(ticket<1){/// Fehlerbehandlung
err=GetLastError();
if(err==147){/// Verfallszeit nicht zulassen
Err147=true;
ticket=OrderSend(Symbol(),4,lot,buy,3*mno,sll,tpp,NULL,magic,0,Blue);
if(ticket>0){
WriteOrder(ticket,timecl);
}else{
err=GetLastError();
if(err==130){
if(Set_order_from_market){
RefreshRates();
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue);
if(ticket<1){
err=GetLastError();
Print("Fehler beim Setzen des Auftrags vom Markt # ",err,
"Auftragsart = KAUFEN",
"Offener Preis =",Ask,
"Preis = ",Ask,
"Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
}
}
if(err==130){
if(Bestellung_vom_Markt einstellen){
RefreshRates();
ticket=OrderSend(Symbol(),0,lot,Ask,3*mno,sll,tpp,NULL,magic,0,Blue);
if(ticket<1){
err=GetLastError();
Print("Fehler beim Setzen des Auftrags vom Markt # ",err,
"Auftragsart = KAUFEN",
"Offener Preis =",Ask,
"Preis = ",Ask,
"Stop Loss = ",sll,
" TakeProfit = ",tpp);
}
}else{
}
}
Print("4 Order setting error # ",err);
}
}
}
}
 

Die Logik ist verwirrend, man kann sie nicht verstehen.

Diese Zeile bewirkt überhaupt nichts:

if(buy-Ask<stlw*Point){NormalizeDouble(Ask+stlw*Point,Digits);

Diejenigen, die es geschrieben haben, müssen es erst herausfinden :))

Im Allgemeinen sollten Sie meine Zeilen kurz vor der Eröffnung von Aufträgen eingeben. Das wird das Problem nicht verschlimmern, aber wenn der Fehler weiterhin besteht, wird es offensichtlich sein, dass er durch eine Verletzung der Haltestellenebene verursacht wurde, denn 130 ist die einzige Möglichkeit, einen Fehler zu machen.

 
alsu:

Die Logik ist verwirrend, man kann sie nicht verstehen.

Diese Zeile bewirkt überhaupt nichts:

Diejenigen, die es geschrieben haben, müssen es erst herausfinden :))

Im Allgemeinen sollten Sie meine Zeilen kurz vor der Eröffnung von Aufträgen eingeben. Das wird das Problem nicht verschlimmern, aber wenn der Fehler weiterhin besteht, wird es offensichtlich sein, dass er durch eine Verletzung der Haltestellenebene verursacht wurde, denn 130 ist die einzige Möglichkeit, einen Fehler zu machen.

https://www.mql5.com/ru/code/10111 - hier. Vielleicht gibt es hier eine Antwort...
 

Der Tippgeber ist ein bisschen schief...

Fragen Sie lieber den Autor: Zeigen Sie mir meine Zeile, die nichts bewirkt. xrust ist ein erfahrener Mann, er wird herausfinden, wie man das Problem beheben kann.

 
alsu:

Ein bisschen schief EA...

Fragen Sie lieber den Autor: Zeigen Sie mir meine Zeile, die nichts bewirkt. xrust ist ein erfahrener Mann, er wird herausfinden, wie man es optimieren kann.


Zumindest tut er das :)

Es gibt Bugs, aber keine fatalen...

xrust meldetsich nicht :(

Ich selbst warte auf eine Version ohne Bugs. Vielleicht wird er es herausbringen...

 
wie heißt das ALERT-Zeichen? weil es piept und blubbert, wenn das Signal gegeben wird, und ich kann es nicht finden ((...)
 
Rossi:
wie heißt die ALERT-Tabelle? weil es piept und gurgelt, wenn das Signal gegeben wird, und ich kann sie nicht finden ((...
Alert()
 
Können Sie mir bitte sagen, wie ich einen abgeschlossenen Auftrag auswählen kann? Der Punkt ist, ich will eine Position zu schließen(manuell geöffnet und die Position wird immer ein - das ist das Maximum), so dass die Musik zu spielen, wenn der Auftrag im Plus war, wenn negativ, dann die andere, wenn in Null, dann die dritte. Sie können die Bedingungen über OrderProfit eingeben, aber ich weiß nicht, wie man den letzten geschlossenen Auftrag aus der Historie entfernt.
Grund der Beschwerde: