Das Problem ist
Ich praktisch nicht wissen, die Sprache, ich brauche, um die Eröffnung von Aufträgen für ein paar vp zu automatisieren, habe ich diesen einfachen Code (Datei angehängt), aber es stellte sich heraus, ungeschickt zu sein,
Nach dem Plan sollte 6 vp zu öffnen, sondern öffnet nur 3 vp, aber manchmal öffnet alle 6, aber dann wieder nicht mehr funktioniert, wie es sollte (ich denke, dies kann aufgrund der Anzahl der Ziffern nach dem Komma sein, wie in dem Block, wo es keine JPY, alles funktioniert gut.
Bitte helfen Sie, dieses Problem zu lösen.
Wenn ich mich nicht schwer tue, brauche ich Hilfe, um es zu schreiben, damit ich den Handel nur auf Kaufen oder Verkaufen umstellen kann.
Datei: DANGER FILE REMOVED
Die Datei sollte über die Schaltfläche angehängt werden.
Das Problem ist
Ich praktisch nicht wissen, die Sprache, ich brauche, um die Eröffnung von Aufträgen für ein paar vp zu automatisieren, habe ich aus diesem einfachen Code (Datei angehängt), aber es stellte sich heraus, ungeschickt zu sein,
Nach dem Plan sollte 6 vp zu öffnen, sondern öffnet nur 3 vp, aber manchmal öffnet alle 6, aber dann wieder aufhört zu arbeiten, wie es sollte (ich denke, dies kann aufgrund der Anzahl der Dezimalstellen, wie in einem Block ohne JPY, alles funktioniert gut.
Bitte helfen Sie, dieses Problem zu lösen.
Und auch, wenn es nicht schwierig ist, wie prompt zu verschreiben, dass es möglich war, die Eröffnung von Geschäften nur kaufen oder verkaufen zu wechseln.
Es gibt eine Reihe von Gründen, die Sie daran hindern, einen Auftrag zu eröffnen. Angenommen, beim ersten Tick werden 3 Aufträge eröffnet
Beim nächsten Tick, ganz am Anfang des Programms, if(OrdersTotal() >= OrderCount) return; dies wird zurückgegeben, da die Anzahl der Aufträge größer ist als OrderCount, was = 1 ist.
Der Rest des Programms wird ignoriert.
Nach diesen Zeilen zu urteilen:
//| Copyright 2021, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Software Corp." #property link "https://www.mql5.com"
Das Programm wurde von MetaQuotes Software Corp. entwickelt. Fragen Sie sie um Rat!
- www.mql5.com
Es gibt eine Reihe von Gründen, die verhindern, dass eine Bestellung geöffnet wird. Angenommen, beim ersten Tick werden 3 Aufträge eröffnet
Beim nächsten Tick, ganz am Anfang des Programms, if(OrdersTotal() >= OrderCount) return; dies wird zurückgegeben, da die Anzahl der Aufträge größer ist als OrderCount, was = 1 ist.
Der Rest des Programms wird ignoriert.
Nach diesen Zeilen zu urteilen:
Das Programm wurde von MetaQuotes Software Corp. entwickelt. Bitte konsultieren Sie sie!
Meinen Sie damit, dass zusätzliche Aufträge eröffnet werden?
Nein, im Gegenteil, Sie brauchen 6 verschiedene Währungspaare und nur 3 sind geöffnet
Übrigens, wo es kein Yen-Bullion gibt, sind alle 6 Paare offen, sowohl Haupt- als auch Gegenpaare, wo es ein Yen-Bullion gibt, sind nur 3 offen
Am einfachsten ist es, nach jedem Öffnen einer Bestellung Sleep() einzugeben, dann hat das Terminal keine Zeit, die Menge zu aktualisieren.
Ich verstehe die Sprache praktisch nicht (
Ich habe meinen Code nur anhand der Beispiele im Web geschrieben
Hilf mir, Sleep() in meinen Code einzubauen
Versuchen Sie es auf diese Weise - kürzer und präziser. Wenn du es selbst herausfindest, wirst du ein Coryphäe des Programmierens sein. Setzen Sie den Cursor auf das Wort und drücken Sie F1
//+------------------------------------------------------------------+ //| Test 3.mq4 | //+------------------------------------------------------------------+ #property strict extern double Lot = 0.01; extern int Slip = 3; extern int Magic = 777; string name[10]={"AUDJPY","CHFJPY","CADJPY","AUDCAD","AUDCHF","CADCHF"}; int cnt[6]; void OnTick() { ArrayInitialize(cnt, 0); // Обнуление счетчиков // Подсчет ордеров по каждому торговому инструменту for(int n=OrdersTotal()-1; n>=0; n--) { if(!OrderSelect(n,SELECT_BY_POS))continue; for(int k=0; k<6; k++) if(OrderSymbol()==name[k]) cnt[k]++; } // Открытие ордеров по каждому торговому инструменту for(int k=0; k<6; k++) if(!cnt[k]) int ticket = OrderSend(name[k],OP_BUY, Lot, MarketInfo(name[k],MODE_ASK), Slip, 0, 0, "", Magic); }
- 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.
Das Problem ist
Ich praktisch nicht wissen, die Sprache, ich brauche, um die Eröffnung von Aufträgen für ein paar vp zu automatisieren, habe ich diesen einfachen Code (Datei angehängt), aber es stellte sich heraus, ungeschickt zu sein,
Nach dem Plan sollte 6 vp zu öffnen, sondern öffnet nur 3 vp, aber manchmal öffnet alle 6, aber dann wieder nicht mehr funktioniert, wie es sollte (ich denke, dies kann aufgrund der Anzahl der Ziffern nach dem Komma sein, wie in dem Block, wo es keine JPY, alles funktioniert gut.
Bitte helfen Sie, dieses Problem zu lösen.
Wenn ich mich nicht schwer tue, brauche ich Hilfe, um es zu schreiben, damit ich den Handel nur auf Kaufen oder Verkaufen umstellen kann.
Datei: DANGER FILE DELETED