Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 354

 
Arsen_Syharev:
Welchen Befehl muss ich schreiben, um die Fraktale Sell1 und Sell2 gleichzeitig zu öffnen?
Es gibt nichts im Forum.
 
Hallo Freunde, könnten Sie eine einfache Funktion vorschlagen, die, wenn irgendwelche Bedingungen erfüllt sind... (SigPF==1 oder SigPF==2) und OrdersTotal>0, d. h. nur Aufträge, die sich derzeit auf dem Markt befinden, sollten verarbeitet werden, wenn eine der SigPF-Bedingungen eintritt.

Dies ist die externe Variable, die die Bedingung innerhalb der Funktion überprüft
extern int PF_price_in_pips=70;
Die Funktion sollte:
1.definieren, mit welcher Art von Aufträgen wir es zu tun haben... wenn SigPF==1, dann ist es ein Kaufauftrag, wenn SigPF==2, dann ist es ein Verkaufsauftrag
2. Prüfen Sie den aktuellen Preis und wenn
ein Kaufauftrag vorliegt und SigPF==1 auf dem Markt vorhanden ist, dann

die Differenz zwischen dem aktuellen Kurs, zu dem der Kaufauftrag eröffnet werden soll, und einem der offenen Kurse der bereits auf dem Markt befindlichen Aufträge höher ist als PF_price_in_pips, sollte die Funktion valid_signal=true zurückgeben


jetzt Verkaufsaufträge auf dem Markt vorhanden sind und SigPF==2 gesetzt wurde, dann

die Differenz zwischen dem Preis einer bereits auf dem Markt befindlichen offenen Order und dem aktuellen Preis, zu dem die Verkaufsorder eröffnet wird, höher ist als PF_price_in_pips, dann sollte die Funktion das Flag valid_signal=true zurückgeben

Wenn der Abstand zwischen dem Eröffnungskurs des neuen Auftrags und dem Auftreten von Kauf-/Verkaufssignalen geringer ist als PF_price_in_pips, sollte die Funktion valid_signal=false zurückgeben.

Grundsätzlich, kurz gesagt, sollte die Funktion den Abstand zwischen dem Eröffnungskurs der neuen Order bei Kauf- und Verkaufssignalen (SigPF==1, SigPF==2) und den bereits im Markt befindlichen Eröffnungskursen der Order prüfen... und wenn dieser Abstand größer ist als PF_price_in_pips, dann sollte das valid_signal=true zurückgegeben werden. Damit soll vermieden werden, dass Aufträge zu sehr nahe beieinander liegenden Preisen eröffnet werden! Und eine andere Sache ... mein EA handelt nur auf die Eröffnung eines neuen bar ... nicht auf alle Ticks ... aber ich glaube nicht, dass es darauf ankommt... Ich muss sowieso die Geld- und Briefkurse berücksichtigen ...

Hilfe bei dieser Funktion... ! Wenn etwas nicht klar ist, werde ich versuchen, es zu erklären ... oder Bilder zu zeigen! Helfen Sie mir einfach) Danke!
 

Ich bin mir nicht sicher, ob ich die Begriffe richtig verstanden habe, aber...

   int PF_price_in_pips=70;
   int OrdTotal=OrdersTotal();
   bool valid_signal=false;
   int SigFF;
   
   if(OrdersTotal()>0)
   {
   for(int i=OrdTotal-1; i>=0; i --)
     {
      if(!OrderSelect(i,SELECT_BY_POS))
         continue;

      if(OrderType()==OP_BUY && SigFF==1 && Ask+OrderOpenPrice()>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;
      if(OrderType()==OP_SELL && SigFF==2 && OrderOpenPrice()-Bid>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;

     }
     }
 
Arsen_Syharev:
Können Sie mir sagen, welchen Befehl ich schreiben muss, damit bei gleichzeitiger Eröffnung der Fraktale Sell1 und Sell2 eine Order
Welcher Wert von Sell1 und Sell2 würde sich für Sie eignen, um einen Auftrag zu eröffnen. //Ich kann deine Qualen nicht mehr mit ansehen....
 
Arsen_Syharev:
Können Sie mir sagen, welchen Befehl ich schreiben muss, damit beim gleichzeitigen Öffnen der Fraktale Sell1 und Sell2 eine Order geöffnet wird?
if (Sell1 !=0 && Sell2 != 0){

/* Если по текущей цене */ 

OrderSend(Symbol1, OP_SELL, Lots, Bid, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELL, Lots, Bid, 1, 0,0, 0, Magik, 0, Red); 

/*Если по пробитию фракталов отложенными ордерами */

 OrderSend(Symbol1, OP_SELLSTOP, Lots, Sell1, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELLSTOP, Lots, Sell2, 1, 0,0, 0, Magik, 0, Red);  

} 

Aber das muss ein SEHR SEHR grobes Beispiel sein

 
Wissen Sie, ob es möglich ist, mehr als ein Signal für ein Konto zu unterzeichnen?
 

Hallo Kollegen, bin seit kurzem in euren Reihen :). Ich habe die Nase voll von ausstehenden Aufträgen und beschloss, ein Skript zu verwenden, das ich aus dem Internet heruntergeladen habe, aber es war nicht zufriedenstellend: Ich hatte nur in einer Richtung Fehler, und das andere Skript platzierte nur einen Auftrag in jeder Richtung. Sie besteht im Wesentlichen darin, dass eine bestimmte Anzahl von schwebenden Aufträgen in beide Richtungen eröffnet wird. Frage: Wie kann ich für jede Order einen Trailing Stop setzen? Dies ist ein Skript, kein Expert Advisor. Die Orders wurden eröffnet, der Trailing-Stop wurde an sie angehängt, und das ist alles, das Skript hat seine Arbeit getan. Wie kann ich das Skript verwenden, um einen regulären Trailing-Stop auszulösen, der durch einen Rechtsklick auf eine Order ausgeführt wird? 4. MetaTrader Build 765.

 
entitie:

Hallo Kollegen, bin seit kurzem in euren Reihen :). Ich habe die Nase voll von ausstehenden Aufträgen und beschloss, ein Skript zu verwenden, das ich aus dem Internet heruntergeladen habe, aber es war nicht zufriedenstellend: Ich hatte nur in einer Richtung Fehler, und das andere Skript platzierte nur einen Auftrag in jeder Richtung. Sie besteht im Wesentlichen darin, dass eine bestimmte Anzahl von schwebenden Aufträgen in beide Richtungen eröffnet wird. Frage: Wie kann ich für jede Order einen Trailing Stop setzen? Dies ist ein Skript, kein Expert Advisor. Die Orders wurden eröffnet, der Trailing-Stop wurde an sie angehängt, und das ist alles, das Skript hat seine Arbeit getan. Wie kann ich das Skript verwenden, um einen regulären Trailing-Stop auszulösen, der durch einen Rechtsklick auf eine Order ausgeführt wird? 4. MetaTrader Build 765.

Freelance macht alles).
 

Hallo zusammen!

Die Aufgabe ist wie folgt - Ich muss Aufträge nach einem bestimmten Abstand Schritt auf EURUSD.m zu kaufen und auf EURUSD.m1 zu verkaufen öffnen. Dieses Problem wird durch den nachstehenden Code gelöst.

Wenn sich der Kurs jedoch gegen uns entwickelt hat, müssen wir immer noch Kaufaufträge für EURUSD.m eröffnen, vorausgesetzt, der Kurs hat sich seit dem letzten Verkaufsauftrag für EURUSD.m1 in einem Abstand von Step*2 entwickelt. Diese Bedingung funktioniert unter der Voraussetzung, dass der Eröffnungskurs niedriger ist als der Kurs der letzten Kauforder für EURUSD.m.

Ich weiß nicht, wie man das macht. Ich würde gerne helfen.

// бай евро доллар
if (rates[1].open < rates[1].close && !PositionSelect(Symbol1)) 
   {
      LastPriceBuy = OpenBuy(Symbol1,Lot); // если бычья свеча и нет открытой позиции по этому символу
   }
if (GlobalVariableCheck ("bb_1")) GlobalVariableGet("bb_1", bb_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol1) && LastPriceBuy > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceBuy+Step*_Point < SymbolInfoDouble(Symbol1,SYMBOL_ASK)) 
   {LastPriceBuy = OpenBuy(Symbol1,Lot);} // открытие позиции в бай по евро доллару всех последующих ордеров 
  }    

// сел евро доллар
if (rates[1].open > rates[1].close && !PositionSelect(Symbol3)) {LastPriceSell = OpenSell(Symbol3,Lot);} // если бычья свеча и нет открытой позиции по этому символу
if (GlobalVariableCheck ("ss_1")) GlobalVariableGet("ss1_", ss_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol3) && LastPriceSell > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceSell-Step*_Point > SymbolInfoDouble(Symbol3,SYMBOL_BID))
   {LastPriceSell = OpenSell(Symbol3,Lot);} // открытие позиции в селл по евро доллару всех последующих ордеров 
  } 
 
zfs:
Freiberufler machen das alles).

Ein sehr wertvoller und informativer Antwortkommentar, ich schlage vor, Sie nutzen ihn auch...

Tatsächlich gibt es keinen einfachen Befehl, der nach dem Eröffnen einer Order einen Standard-Trailing-Stop über diese legt?

Grund der Beschwerde: