Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 256
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
Auf meinem alten Laptop mit i3-Prozessor habe ich noch WinXP 32 bit, das von MT5 nicht unterstützt wird. Kürzlich habe ich den Arbeitsspeicher auf 6 GB aufgestockt. Ich möchte ein 64-Bit-Betriebssystem installieren, auf dem MT4 und MT5 laufen. Was ist vorzuziehen - Win7 oder Win8.1
Ich bevorzuge die 7. Das Büro hat eine 8, eine 10 und eine 7. Die Terminals auf 7 sind stabiler. Aus unbekannten Gründen sind die Tester in 7 auf schwachen Computern schneller. Die 8ka ist überhaupt nicht sehr übergangsweise. Sie verbraucht die meisten Ressourcen. 10 mehr Ressourcen für sich selbst benötigt.
Auf meinem alten Laptop mit i3-Prozessor war noch WinXP 32 Bit installiert, das von MT5 nicht unterstützt wird. Kürzlich habe ich den Arbeitsspeicher auf 6 GB aufgestockt. Ich möchte ein 64-Bit-Betriebssystem installieren, das MT4 und MT5 unterstützt. Was ist vorzuziehen - Win7 oder Win8.1?
Gehen Sie auf die Website des Herstellers Ihres Laptops und sehen Sie nach, für welches Betriebssystem die offiziellen Treiber maximal geeignet sind, und das wird Ihr bevorzugtes Betriebssystem sein. Wenn die Treiber für Win 8.1 sind, können Sie Win 10 ausprobieren. Wenn die Treiber in Win 7 landen, gibt es keine große Auswahl.
Guten Tag, können Sie bitte helfen.
Ich muss einen Take-Profit zu diesem EA hinzufügen und Parameter anzeigen, die sich ändern, wenn der EA läuft.
es gibt zwei Warnungen Rückgabewert von 'OrderClose' sollte überprüft werden auch bitte korrigieren
extern double Lots = 0.1;
extern double MaximumRisk = 0.3;
extern double DecreaseFactor = 100;
double st1,st2;
//+------------------------------------------------------------------+
Offene Positionen berechnen //|
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(AuftragsSymbol()==Symbol())
{
if(OrderType()==OP_BUY) kauft++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- Rücksendeauftragsvolumen
if(Käufe>0) return(Käufe);
sonst return(-sells);
}
//+------------------------------------------------------------------+
//| Berechnung der optimalen Losgröße |
//+------------------------------------------------------------------+
double LotsOptimized()
{
Doppellose=Lose;
int orders=HistoryTotal(); // Summe der historischen Aufträge
int losses=0; // Anzahl der Verlustaufträge ohne Pause
//---- Losgröße auswählen
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,3);
//---- berechnet die Anzahl der Verlustaufträge ohne Unterbrechung
if(DecreaseFactor>0)
{
for(int i=Bestellungen-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Fehler in der Historie!"); break; }
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) weiter;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) Verluste++;
}
if(Verluste>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- return lot size
if(lot<0.1) lot=0.1;
zurück(lot);
}
//+------------------------------------------------------------------+
//| Prüfung auf offene Auftragsbedingungen |
//+------------------------------------------------------------------+
void CheckForOpen()
{
int res;
if(Volumen[0]>1) return;
//---- kaufen -----------------------
wenn ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if ((Open[0]<Open[1])&&(Close[0]<Close[1])
//
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,15,0,",0,0,Blue);
Rückkehr;
}
//---- verkaufen ------------------------
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if((Open[0]>Open[1])&&(Close[0]>Close[1]))
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,15,0,",0,0,Red);
Rückkehr;
}
}
//------------Закрытие позиций----------------------------------------
void CheckForClose2()
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
If(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);
//CheckForOpen();
}
//
//+------------------------------------------------------------------+
//| Prüfung auf enge Auftragsbedingungen |
//+------------------------------------------------------------------+
void CheckForClose1()
{
if(Volumen[0]>1) return;
//Prüfung auf Verlust
wenn ((Kontoprofit()<0)&&(MathAbs(Kontoprofit())>=(Kontomarge()*MaximumRisk)))
{
CheckForClose2();
Print("Verlust", KontoGewinn());
}/**/
//---- Auftragsart prüfen
if(Auftragsart()==OP_BUY)
{
if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if ((Open[0]>Open[1])&&(Close[0]>Close[1]))
CheckForClose2();
}
if(OrderType()==OP_SELL)
{
wenn ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0))
if ((Open[0]<Open[1])&&(Close[0]<Close[1]))
CheckForClose2();
}
}
//+------------------------------------------------------------------+
//| Startfunktion |
//+------------------------------------------------------------------+
void start()
{
//---- berechnet offene Aufträge nach aktuellem Symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
sonst CheckForClose1();
//---
}
//+-----------------------------------------------+
Ich habe die Berechnung von SL und TP hinzugefügt, aber es wäre schön, wenn man ihre Überprüfung hinzufügen könnte. Wie das geht, können Sie in dem Artikelhttps://www.mql5.com/ru/articles/2555#invalid_SL_TP_for_position nachlesen.
Ihre Warnung ist nicht kritisch. Das Ergebnis von OrderClose wird einfach ignoriert, daher die Warnung. Sie können z.B. die Funktion CheckForClose2 das Ergebnis von OrderClose zurückgeben lassen. Oder Sie können es so lassen, wie es ist.
Außerdem fiel mir auf, dass die Namen der Funktionen CheckForClose2,CheckForOpen usw. seltsam waren .Und sie führen Handelsgeschäfte durch.
Hallo zusammen. Kann mir jemand helfen, den EA zu bearbeiten. Ich muss die Funktion zum Öffnen von Aufträgen entfernen, damit der EA nicht von selbst Aufträge öffnet, sondern nur mit manuell geöffneten Aufträgen arbeitet. Vielen Dank im Voraus.
Entfernen Sie die Funktion zum Öffnen von Aufträgen und setzen Sie magic auf 0. Der Roboter wird manuell geöffnete Aufträge aufnehmen und ihnen folgen. Wenn wir wollen, dass der Roboter nur einzelne Orders verfolgt und nicht alle in einer Reihe, dann machen Sie die Eingabe in Buy und Sell, zum Beispiel, indem Sie die entsprechende Schaltfläche, die der Roboter erstellen und verarbeiten sollte in OnChartEvent Ereignis CHARTEVENT_OBJECT_CLICK von jedem von ihnen. Magic muss in diesem Fall größer als 0 sein, um nur mit seinen eigenen Aufträgen zu arbeiten.
https://www.mql5.com/ru/forum/131859/page9#434297
isTradeTimeString()
isTradeTimeInt()
Hallo.
Eine solche Panne... Ich teste einen! Experte für 3 Computer. Auf 2 von ihnen arbeiten genau, während auf einer von ihnen bekomme ich immer irgendeine Art von Fehler in den Berechnungen - im Allgemeinen ist es nicht richtig zu berechnen Stop-Loss oder falsche Auslösung.
Die Hardware ist nicht neu, aber auch nicht alt.
Ist jemandem so etwas schon einmal passiert?
Die Hardware ist nicht neu, aber auch nicht alt.
Hatte jemand Probleme damit?
Alle drei sind mit demselben Broker/Dealer-Server verbunden? (Ich meine, ist es dieselbe Geschichte?) Wenn nicht, ist das die erste Anlaufstelle.