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

 
Können Sie mir beibringen, wie man einen Handel in MT4 vom Markt und von Pending Orders aus eröffnet und schließt?
 

Hallo liebe Programmierer!!!
Ich mache einen Tick-Zähler für den Kerzenständer und muss etwas falsch gemacht haben! Ich möchte, dass es Ticks zählen, wenn der Preis nur nach oben, aber es zählt, wenn es nach oben und wenn es nach unten (alle Ticks, und ich möchte nur wachsende Ticks) Schauen Sie sich plz...

double CountTickBUY()
{

double old_price;
double delta_cur; 
double price = 0;
double old_open_price = 0;

for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
         if(OrderSymbol() == _Symbol && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
           {
           old_price = iClose(NULL, 0 , i);
           price = iOpen(NULL, 0 , i);

           delta_cur = old_price > price;
           if(delta_cur > 0) 
             {
             count_plusbuy++;
             }
           }
   }
   return(count_plusbuy);
}
 
sviter-pro:

Hallo liebe Programmierer!!!
Ich mache einen Zeckenzähler für die Kerze, und irgendetwas ist schiefgegangen! Ich möchte, dass es Ticks zählen, wenn der Preis nur nach oben, aber es zählt, wenn es nach oben und wenn es nach unten (alle Ticks, und ich möchte nur wachsende Ticks) Schauen Sie sich plz...

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}
 
Konstantin Nikitin:

Ich danke Ihnen vielmals!

 

Konstantin Nikitin: Считает тики на кождой свече хорошо, но по 2 раза! Тоесть если отсчет пошел от 1.00000 и дошел до 1.00100 он 100 пунктов щитает, потом когда спустилась цена до 1.00080 он ждет и не считает, но когда цена опять начинает расти от 1.00080 то опять начинает считать пункты, а надо что бы ждал до 1.00100 и от нее считал дальше!!!

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}



 

Bitte erklären Sie, was genau die Funktion"IsTradeAllowed" prüft, wenn ihre zweite Form aufgerufen wird.

Ich weiß, dass im ersten Formular geprüft wird, ob der automatische Handel erlaubt ist und ob der Handelsfluss frei ist. Was ist mit der zweiten Form? Welche Prüfungen finden genau statt, wenn das zweite Formular aufgerufen wird?

 
Asa saas:

Bitte erklären Sie, was genau die Funktion"IsTradeAllowed" prüft, wenn ihre zweite Form aufgerufen wird.

Ich weiß, dass im ersten Formular geprüft wird, ob der automatische Handel erlaubt ist und ob der Handelsfluss frei ist. Was ist mit der zweiten Form? Was genau wird geprüft, wenn das zweite Formular aufgerufen wird?

Die zweite Form des Aufrufs liefert Informationen über die Möglichkeit, für ein bestimmtes Symbol zu einem bestimmten Zeitpunkt zu handeln.


Ob der Handelsstrom frei ist isTradeContextBusy

 
Alekseu Fedotov:

Die zweite Form des Aufrufs liefert Informationen über die Möglichkeit, für ein bestimmtes Symbol zu einem bestimmten Zeitpunkt zu handeln.


Ob der Handelsstrom frei ist isTradeContextBusy

Prüft die erste Form der Funktion "IsTradeAllowed" nicht auch, ob der Handelsfaden frei ist oder nicht?

Ich verwende einfach die zweite Form der Funktion "IsTradeAllowed", um herauszufinden, ob der Markt geöffnet ist, bevor ich Aufträge ausführe.

Ich verstehe jedoch nicht ganz, ob ich eine separate Funktion verwenden muss, um zu prüfen, ob ein freier Fluss wie "IsTradeContextBusy" verfügbar ist, oder ob die zweite Form von "IsTradeAllowed" diese Prüfung bereits übernimmt.

 
Asa saas:

Prüft die erste Form von "IsTradeAllowed" nicht auch, ob der Handelsfluss frei ist oder nicht?

Ich verwende einfach die zweite Form der Funktion "IsTradeAllowed", um herauszufinden, ob der Markt geöffnet ist, bevor ich Transaktionen mit Aufträgen durchführe.

Ich bin mir jedoch nicht ganz sicher, ob ich eine separate Funktion verwenden muss, um zu prüfen, ob ein freier Fluss wie "IsTradeContextBusy" verfügbar ist, oder ob die zweite Form von "IsTradeAllowed" diese Prüfung bereits übernimmt.

1. Nein

2. Nein, es erlaubt nicht, mit Expert Advisors zu handeln, aber es kann es manuell tun

3. eine weitere Funktion zur Überprüfung des Handelsflusses ("IsTradeContextBusy()") verwenden müssen

 
Asa saas:

Prüft das erste Formular "IsTradeAllowed" nicht auch, ob der Handelsfluss frei ist oder nicht?

Ja, das tut sie. Zumindest steht das so in der Dokumentation. Ich weiß selbst nicht, warum das so ist, aber die Tatsache bleibt dieselbe:

Возвращаемое значение

Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false.

Ich verwende einfach die zweite Form der Funktion "IsTradeAllowed", um herauszufinden, ob der Markt geöffnet ist, bevor ich Aufträge ausführe.

Allerdings bin ich mir nicht ganz sicher, ob die Funktion zur Prüfung, ob der freie Fluss verfügbar ist, wie "IsTradeContextBusy" separat verwendet werden muss oder ob die zweite Form "IsTradeAllowed" diese Prüfung bereits durchführt.

Aber bei der zweiten Form ist es nicht klar. Sie ist für die Zeit in der Zukunft oder in der Vergangenheit zuständig.