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

 

Ich führe den Expert Advisor im Strategy Tester aus. Beim Ändern eines BUYSTOP-Auftrags wird ein Fehler erzeugt:

Ich verstehe nicht, warum. Der Preis, zu dem meine Order angeboten wird, ist 40 höher als der Ask-Preis, StopLevel =30. Der Preis ist normalisiert, was ist noch erforderlich?

 
khorosh:

Ich führe den Expert Advisor im Strategy Tester aus. Beim Ändern eines BUYSTOP-Auftrags wird ein Fehler erzeugt:

Ich verstehe nicht, warum. Der Preis, zu dem meine Order angeboten wird, ist 40 höher als der Ask-Preis, StopLevel =30. Der Preis ist normalisiert, was ist noch erforderlich?

Ich habe es bei einem Makler gesehen - statt 10, versuchen Sie, es um 11 Pips höher zu setzen.
 
Лауреат:
Bitte beraten Sie, wie man eine Funktion für die Einstellung der erforderlichen Anzahl von Aufträgen zu machen! zum Beispiel, um eine bestimmte Anzahl von Aufträgen ohne mehr zu öffnen. in mql4
 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("Die erforderliche Anzahl der geöffneten Orders"); wenn dies verwendet wird, werden mehrere aufeinanderfolgende Orders geöffnet! keine Orders, wenn es ein weiteres Handelssignal gibt, wie also die erforderliche Anzahl von Orders öffnen lassen, wenn es nach der ersten geöffneten Order weitere Handelssignale gibt! ?
 

Warum hilft niemand, bitte?

 
Лауреат:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("Die erforderliche Anzahl an geöffneten Aufträgen"); wenn dies verwendet wird, werden mehrere aufeinanderfolgende Aufträge geöffnet ! nicht Aufträge, wenn es ein weiteres Handelssignal gibt, wie also die erforderliche Anzahl an Aufträgen öffnen lassen, wenn es nach dem ersten geöffneten Auftrag weitere Handelssignale gibt ! ?
enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if(!Сигнал())Флаг=Зеленый;

   if(Сигнал()>0 && Флаг==Зеленый)
   {
      OrderSend(Покупка...);
      Флаг=Красный;
   }

   if(Сигнал()<0 && Флаг==Зеленый)
   {
      OrderSend(Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()  // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
Das könnte nur 5 Zeilen lang sein, aber ich bin zu faul zum Denken...
 

Leute, raten Sie mir, wo ich den Trailing-Stop, der auf diese Weise funktioniert, finden kann, oder helfen Sie mir, ihn zu korrigieren:

Zum Beispiel wurde eine KAUFEN-Order mit TP = 100 und SL = 200 eröffnet, und wenn der Preis auf KAUFEN ging und 50 Punkte überschritt, dann wurde SL zumEröffnungspreis, während TP auf 50 Punkte verschoben wurde und so weiter ständig????

void TrailingPositions(int otype)
{

int cnt = OrdersTotal();

int lMinProfit = 0; // Min. Pips

int lTrailingStop = 40; // Nachlaufende Position (die Anzahl der Punkte ab dem vorherigen SL-Abstand)

int lTrailingStep = 20; // Schleppnetzlevel (die Anzahl der Punkte, nach denen der Vorgang ausgelöst wird)

for (int i=0; i<cnt; i++)
{
if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
if (OrderSymbol() != Symbol()) continue;

if (OrderType() == OP_BUY && otype == OP_BUY) {
if (Bid-OrderOpenPrice() > lMinProfit*Point) {
if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, Blue))
Print("Trailing Stop funktioniert");
}
}
}

if (OrderType() == OP_SELL && otype == OP_SELL) {
if (OrderOpenPrice()-Ask > lMinProfit*Point) {
if(OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red))
Print("Trailing Stop funktioniert");
}
}
}
 
LRA:
Er könnte um 5 Zeilen kürzer sein, aber ich bin zu faul zum Denken...
Gute Idee, ich werde es ausprobieren müssen. Danke. wird es jedoch mit onticket void OnTick() Funktion funktionieren?
 
Hallo Kameraden! Bitte helfen Sie mir bei der Installation des Objekts "Button", ich muss Code im Expert Advisor platzieren, so dass direkt auf dem Chart Button im gedrückten oder nicht gedrückten Zustand einen Wert von bool zurückgibt. Vielen Dank im Voraus!
 
Arseniy Barudkin:
Hallo Kameraden! Bitte helfen Sie mit der Einstellung der "Button"-Objekt, ich brauche, um Code in der EA zu platzieren, so dass direkt auf dem Diagramm die Schaltfläche in der gedrückten oder nicht gedrückten Zustand würde einen bool-Wert zurück. Vielen Dank im Voraus!
ObjectGetInteger(ChartId(),"имя кнопки",OBJPROP_STATE)

hier ist