Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 256

 
atztek #:
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.

 
atztek #:
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();

//---

}

//+-----------------------------------------------+

MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
  • www.metaquotes.net
Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах
 
bob88 #:



extern double Lots               = 0.1;

extern double MaximumRisk        = 0.3;

extern double DecreaseFactor     = 100;

extern int stopLoss = 15;
extern int takeProfit = 30;


//+------------------------------------------------------------------+

//| Check for open order conditions                                  |

//+------------------------------------------------------------------+

void CheckForOpen()

  {

  int res;
  double openPrice, sl, tp;

 if(Volume[0]>1) return;



//---- покупаем -----------------------

  

  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])) 

    

  //  

     {
      openPrice = NormalizeDouble(Ask, Digits);
      sl = NormalizeDouble(openPrice - stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice + takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Blue);

      return;

     }

//---- продаем ------------------------

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]))

     {
      openPrice = NormalizeDouble(Bid, Digits);
      sl = NormalizeDouble(openPrice + stopLoss * Point, Digits);
      tp = NormalizeDouble(openPrice - takeProfit * Point, Digits);
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),openPrice,3,sl,tp,"",0,0,Red);

      return;

     }

     

  }

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.

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Hallo zusammen. Kann jemand helfen, den EA zu bearbeiten. Ich muss die Funktion zum Öffnen von Aufträgen entfernen, so dass der EA nicht von selbst Aufträge öffnet, sondern nur mit manuell geöffneten Aufträgen arbeitet. Vielen Dank im Voraus.
Dateien:
 
Иван Макаров #:
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.

 
Grüße. Kann jemand beraten, wie man Zeithandel Funktion zu mt4 EA hinzufügen. Ich möchte, dass mein EA von, sagen wir, 00.00 bis 23.00 Uhr arbeitet und den Rest der Stunde nichts tut. Vielleicht hat jemand ein Stück Code und weiß, wie man es implementiert. Ich habe eine gute Idee, wie ich dies in meinem EA umsetzen kann.
 
Иван Макаров Zeithandel Funktion zu mt4 EA hinzufügen. Ich möchte, dass mein EA von 00.00 bis 23.00 Uhr arbeitet und in der nächsten Stunde nichts tut. Vielleicht hat jemand ein Stück Code und weiß, wie man es implementiert. Ich habe eine gute Idee, wie ich dies in meinem EA umsetzen kann.

https://www.mql5.com/ru/forum/131859/page9#434297

isTradeTimeString()

isTradeTimeInt()

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 

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?

 
Zalevsky1234 Stop-Loss oder falsche Auslösung.

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.