Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 126

 
MosheDayan:
Können Sie mir mehr über das Signal sagen, ist es von MT oder von einem Dritten?
Das können Sie, es steht hier . Es überträgt einfach Ihren Handel anstelle der Levels und jeder kann mitmachen, wenn ihm das System gefällt.
 

Danke für die Hilfe, das Problem ist behoben.

 
Ist es möglich, das Autotrading für das gesamte Terminal oder für einen einzelnen Expert Advisor zu stoppen bzw. zu starten, z. B. in Abhängigkeit von einem bestimmten Indikator?
 
Andrey Sokolov:
Kann das Autotrading für das gesamte Terminal oder für einen einzelnen EA deaktiviert/gestoppt werden, z. B. in Abhängigkeit von den Daten eines Indikators?

Sie können globale Variablen des Terminals verwenden, den gleichen GP für alle von ihnen vorschreiben und den Wert überwachen, zum Beispiel, wenn es 0 ist - alle EAs nicht handeln.

Sie können auch die WinAPI verwenden, um die Schaltfläche für den automatischen Handel auf dem Terminal-Panel zu finden und sie zu drücken.

 
Vitalie Postolache dankt Ihnen
 
Hallo, gibt es einen Code, um Text auf einem Diagramm (Aufkleber, Erinnerung) anzuzeigen, der sich nicht mit dem Diagramm bewegt, sondern fixiert ist? Ich danke Ihnen!
 
Vladimir.Tyumen:
Hallo, gibt es einen Code, um Text auf einem Diagramm (Aufkleber, Erinnerung) anzuzeigen, der sich nicht mit dem Diagramm bewegt, sondern fixiert ist? Ich danke Ihnen!
OBJ_LABEL
 
Hallo alle, gerade begonnen, die Sprache zu lernen, kam vor kurzem über ein Video-Tutorial zum Erstellen eines Rasters EA, schrieb, kompiliert, 0 Fehler, 0 Warnungen. Aber ich kann nicht sehen, mein Roboter offenen Trades, möchte ich fragen, wer nicht zu faul ist)))

Vielen Dank im Voraus!


extern double Lots      = 0.1;
extern double Profit    = 50;
extern int Step         = 30;
extern int Magic        = 6677;
extern int Slippage     = 5;

extern int maPeriod     =100;
extern int maShift      =1;

double ma, FindLastBuyPrice, price;
//------------------------------------------------------------------
//___ПРОВЕРКА_ЗНАКОВ_ПОСЛЕ_ТОЧКИ___
//------------------------------------------------------------------
int OnInit()
{
   if (Digits == 3 || Digits == 5)
   {
      Step     *= 10;
      Slippage *= 10;
   }
   return(INIT_SUCCEEDED);
}
//---------------------------------------------
void OnDeinit(const int reason)
{

}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
void OnTick()
{
  
   ma = iMA(Symbol(),0,maPeriod, maShift, MODE_SMA, PRICE_CLOSE, 0);
  
   if (CountBuy() && CountSell() == 0 && Bid < ma)//
   {
      if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Продажу");
   }
   if (CountBuy() && CountSell() == 0 && Ask < ma)
   {
      if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      
   }
   if (CountBuy() >=1)
   {
      price = FindLastBuyPrice();
      if ((price - Ask) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      }
   }
  
   if (CountSell() >=1)
   {
      price = FindLastBuyPrice();
      if ((Bid - price) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Ппродажу");
      }
   }
  
  
   double op = CalculateProfit();
   if (op >= Profit)
   {
      CloseAll();
   }      
  
}
//------------------------------------------------------------------
void CloseAll()
{
   for (int i = OrdersTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПОКУПКУ");
               }
            }
            if (OrderType() == OP_SELL)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПРОДАЖУ");
               }
            }
         }
      }
   }
}
//------------------------------------------------------------------
double CalculateProfit()  // Считаем профит по всем ордерам
{
   double oProfit = 0;
   for (int i=OrdersTotal() -1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
               oProfit += OrderProfit();
            }
         }
      }
   }
  
   return(oProfit);

}
//------------------------------------------------------------------
double FindLastBuyPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
double FindLastSellPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+


 

Hallo zusammen. Hier ist eine Frage:

Ich habe einen Indikator mit Bibliothek, für den ich einen Expert Advisor schreiben muss.

Welches Schema von Maßnahmen ist notwendig, um eine Vervielfachung der Dateien zu vermeiden, und es sollte zwei oder eine als Ergebnis sein. Ich möchte beide verwenden.


Voznesen:
Hallo alle, gerade begonnen, die Sprache zu lernen, kam vor kurzem über ein Video-Tutorial, wie man ein Raster EA erstellen, schrieb, kompiliert, 0 Fehler, 0 Warnungen. Aber der Roboter nicht öffnen Trades. Ich bin den Code aus, um zu sehen, wenn jemand faul ist)))
Wie soll sie den Handel eröffnen? Zu welchen Bedingungen?
 
trader781:

Hallo zusammen. Hier ist eine Frage:

Ich habe einen Indikator mit Bibliothek und muss ihn verwenden, um einen Expert Advisor zu schreiben.

Welches Schema von Maßnahmen ist notwendig, um eine Vervielfachung der Dateien zu vermeiden, und es sollte zwei oder eine als Ergebnis sein. Idealerweise sollten sie kombiniert werden.


Arbeit mit benutzerdefinierten Indikatoren, die als Ressourcen verbunden sind

Für die Arbeit von mql4-Programmen benötigen Sie möglicherweise einen oder mehrere benutzerdefinierte Indikatoren, die alle in den Code des ausführbaren mql4-Programms aufgenommen werden können. Durch die Einbeziehung von Indikatoren als Ressourcen kann die Programmverteilung vereinfacht werden.

Das einzige Problem ist, dass es auf einem anderen Computer nicht kompiliert werden kann, wenn sich dort keine Include-Dateien befinden.
Ресурсы - Программы MQL4 - Справочник MQL4
Ресурсы - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Ресурсы - Программы MQL4 - Справочник MQL4