Error 130 ist meist ein Zeichen für ungültige SL oder TP, Stichwort Mindestabstand: MarketInfo(_Symbol,MODE_STOPLEVEL).
- Verwende nicht OrderOpenPrice() für SL und TP, da kann das passieren, besser OrderClosePrice(),
- In schnellen Märkten passiert das (130er) wenn SL oder TP zu nahe sind!
MQL5 ist mir zu kompliziert, die Arrays zum speichern der Kurse & Moving Averages haben bei mir im ersten Versuch eine Frustationsgrenze überschritten...
Ist alles im OnTick() . Ich habe das Gefühl, dass das LongOrder++ oder ShortOrder++ in der for Schleife nicht richtig Rauskommen, sodass die beiden Integer immernoch auf 0 bleiben.( Jmd eine Idee, wie ich aus einer Schleife einen Integer der Ausserhalb dieser schleife ist Addieren bzw. Subtrahieren kann, falls dies nicht schon der Fall ist?
Meine hierbei:
LongOrder=0; for(...){ if( OrderType()== OP_BUY ) {LongOrder++} ... ... ... } } /gilt nun ausserhalb des for loops LongOrder=1?(wenn Order noch nicht geschlossen)
mir ist ja nicht ganz klar was Du mit dem Code hier ausdrücken willst. Jedenfalls ist die Order Selektion nicht korrekt wenn er dir zuviele Order reingibt.
mir ist ja nicht ganz klar was Du mit dem Code hier ausdrücken willst. Jedenfalls ist die Order Selektion nicht korrekt wenn er dir zuviele Order reingibt.
ganz versteh ich es nicht
du baust eine schleife ein um zu wissen das eine order drin ist.
wenn keine rand Bedingungen zu tragen kommen, dann macht er eine order auf
wenn du ihn sagst, du willst max. 17 order dann macht er 17 order zu dem zeitpunkt auf
die mn allein hilft dir hier nicht, da du die rand Bedingungen noch definieren musst, das er zum dem preis keine 2te order aufmachen darf
Bayne,
- verwende doch den Styler (Extras oder Ctrl+,) für Deinen Code und ersetze damit Deinen Code von oben - er ist zZ sehr unübersichtlich!
- Das es zumindest bei MT4 Probleme gibt, wenn man, in einer Schleife die hoch zählt (i++), Positionen löscht, zähle ich immer 'runter: int o=OrdersTotal(); while(o-->){..
- Wie viele Positionen sollen denn maximal zugleich geöffnet sein?
- Sonst könntest Du einen Zeitabstand definieren für die nächste Position: datetime nextPos = TimeCurent()+x; /*Sekunden*/ if (TimeCurrent()>=nextPos) .. /* neue Position */
- Ich kann Dir eins versichern: Es gibt fast nix, was nicht schon für MT4/5 programmiert wurde. Erst suchen (und dann nur etwas ändern) ist wahrscheinlich viel schneller!
MQL5 ist mir zu kompliziert, die Arrays zum speichern der Kurse & Moving Averages haben bei mir im ersten Versuch eine Frustationsgrenze überschritten...
Du wirst da auf lange Sicht nicht drumrum kommen.
Der Mt4 hängt nur noch an der Herz-Lungen-Maschine.
Du investierst unnütze Zeit .....
ganz versteh ich es nicht
du baust eine schleife ein um zu wissen das eine order drin ist.
wenn keine rand Bedingungen zu tragen kommen, dann macht er eine order auf
wenn du ihn sagst, du willst max. 17 order dann macht er 17 order zu dem zeitpunkt auf
die mn allein hilft dir hier nicht, da du die rand Bedingungen noch definieren musst, das er zum dem preis keine 2te order aufmachen darf
@amandoIch sage doch mit LongOrder==0, dass er nur dann eine Order öffnen soll, wenn bei der Vroherigen Zählung in der For Schleife keine LongOrder gefunden werden konnte, danach wird LongOrder doch um 1 eins addiert.
wie mache ich dass denn, dass zu dem gleichen preis keine 2. gekauft wird?
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Was tun bekomme die ganze zeit den "error 1"& "error 130" angezeigt ... (Wichtig -> MT4)
(Zuvor gab es Probleme mit dem "Ticket()" in den OrderModifys, welche jedoch behoben werden konnten.)
Ebenfalls interessant ist, dass es nur 20 Buy Orders gab...