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

 
Wo finde ich eine Option im Terminal, um Hilfsindikatoren zu erstellen, die nicht mit dem geöffneten Chart verknüpft sind?
 
BillionerClub:
Wo finde ich eine Option im Terminal, um Hilfsindikatoren zu erstellen, die nicht mit dem geöffneten Chart verknüpft sind?

Wenn Sie einen HANDLE-Indikator erstellen, müssen Sie lediglich den gewünschten Zeitrahmen und das Symbol angeben. Zum Beispiel deriRSI-Indikator:

int  iRSI( 
   string              symbol,            // имя символа 
   ENUM_TIMEFRAMES     period,            // период 
   int                 ma_period,         // период усреднения 
   ENUM_APPLIED_PRICE  applied_price      // тип цены или handle 
   );
 
Vladimir Karputov:

Wenn Sie einen HANDLE-Indikator erstellen, müssen Sie lediglich den gewünschten Zeitrahmen und das Symbol angeben. Zum Beispiel deriRSI-Indikator:

Nein, ich meine es ernst. Ich glaube, Renat sagte in irgendeinem Beitrag über die Erstellung von Hilfs-, nicht an Chart-EAs oder so etwas gebunden.

 
BillionerClub:

Nein, das ist es, was ich meine. Ich glaube, Renat hat in einem Beitrag von der Erstellung zusätzlicher, nicht kartierter EAs oder etwas Ähnlichem gesprochen.

Es heißt Dienstleistungen. Wir haben sie noch nicht.

 

Ich habe eine funktionierende Funktion unter MT4, die die Verfügbarkeit des Servers prüft, bevor ich eine Bestellung aufgebe (Parameter bool refreshrates - Refresh-Quotes und int count - Anzahl der Prüfungen mit Pause, wenn der Server nicht verfügbar ist, Ergebnis gibt false - kann handeln, true Server ist nicht verfügbar. d.h. es ist bequem, if(ServerDisable() return;) zu verwenden:

bool ServerDisable(bool refreshrates=false,int count=10)
  {
   for(int i=0;i<count;i++)
     {
      if(IsConnected())
        {
         if(IsTradeAllowed())
           {
            if(!IsTradeContextBusy())
              {
                 {
                  if(refreshrates)RefreshRates();
                  return(false);
                 }
              }
           }
        }
      Sleep(157);
     }
   Print(__FUNCTION__," Торговый сервер не отвечает");
   return(true);
  }

Helfen Sie mir, diese Konstruktion für MT5 korrekt umzuschreiben, sie heißtTerminalInfoInteger() Anfrageparameter in der MT5-Hilfe (d.h. ich suche eine Analogie in MT5 zu den MT4-Standardfunktionen IsConnected(), IsTradeAllowed()... ) und wie führt man RefreshRates() aus?

 
Igor Makanu:

Ich habe eine funktionierende Funktion unter MT4, die die Verfügbarkeit des Servers prüft, bevor ich eine Bestellung aufgebe (Parameter bool refreshrates - Refresh-Quotes und int count - Anzahl der Prüfungen mit Pause, wenn der Server nicht verfügbar ist, Ergebnis gibt false - kann handeln, true Server ist nicht verfügbar. d.h. es ist bequem, if(ServerDisable() return;) zu verwenden:

Helfen Sie mir, diese Konstruktion für MT5 korrekt umzuschreiben, sie heißt TerminalInfoInteger() Anfrageparameter in der MT5-Hilfe (d.h. ich suche eine Analogie in MT5 zu den MT4-Standardfunktionen IsConnected(), IsTradeAllowed()... ) und wie führt man RefreshRates() aus?

Ich benutze nur dieses eine und es scheint ausreichend zu sein.

TerminalInfoInteger(TERMINAL_CONNECTED)

 
Vitaly Muzichenko:

Ich verwende nur dieses, es scheint zu genügen

TerminalInfoInteger(TERMINAL_CONNECTED)

Ich möchte nicht über komplizierte Broker diskutieren, die Konstruktion, die ich oben gezeigt habe, bietet die Möglichkeit, eine Order zu platzieren und OnTick() bei Tick-Eingang zu verlassen, wenn es keine Möglichkeit gibt, mit Orders zu diesem Tick zu arbeiten

Ich benötige genaue Analoga für MT5 fts: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - bestätigt ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

 
Igor Makanu:

Ich möchte nicht über knifflige Broker diskutieren, die Konstruktion, die ich oben gezeigt habe, bietet die Möglichkeit, Orders zu platzieren und OnTick() zu beenden, wenn es auf diesem Tick keine Möglichkeit gibt, mit Orders zu arbeiten

Ich benötige genaue Entsprechungen für die MT5-Funktionen: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - bestätigt), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

IsTradeContextBusy() kann ausgeschlossen werden, der fünfte Thread ist immer frei

RefreshRates() aktualisiert die vordefinierten Ask/Bid-Variablen.

#define Bid (::SymbolInfoDouble(_Symbol, ::SYMBOL_BID))
#define Ask (::SymbolInfoDouble(_Symbol, ::SYMBOL_ASK))

dann werden die Preise immer aktuell sein

 
Igor Makanu:

Ich möchte nicht über knifflige Broker diskutieren, die Konstruktion, die ich oben gezeigt habe, bietet die Möglichkeit, Orders zu platzieren und OnTick() zu beenden, wenn es auf diesem Tick keine Möglichkeit gibt, mit Orders zu arbeiten

Ich benötige genaue Analoga für MT5 fts: IsConnected()(TerminalInfoInteger(TERMINAL_CONNECTED) - bestätigt), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()

Ich nehme an, Sie meinen, dass die Ticks zwar laufen, aber der Handel deaktiviert ist?

Wenn ja, hätte ich auch gerne einen solchen Scheck, aber bisher hat mir noch niemand etwas angeboten.

 
Vitaly Muzichenko:

IsTradeContextBusy() kann ausgeschlossen werden, der fünfte Thread ist immer frei

https://www.mql5.com/ru/articles/4332

IsConnected() TerminalInfoInteger(TERMINAL_CONNECTED)

IsTradeAllowed() MQLInfoInteger(MQL_TRADE_ALLOWED)

RefreshRates() SymbolInfoDouble(_Symbol, ::SYMBOL_BID)

IsTradeContextBusy() muss analog sein oder begründen, warum dies nicht möglich ist


Ich brauche ein Analogon und nichts weiter, ich habe die obige Funktion gestern anhand der Hilfe umgeschrieben, aber es besteht Unsicherheit über die korrekte Interpretation (verschiedene Wörter beschrieben), jetzt möchte ich die Korrektheit im Forum bestätigen:

//_______________________________________________________________________
bool ServerDisable(bool refreshrates=false,int count=10)
  {
   if(MQLInfoInteger(MQL_TESTER)|| MQLInfoInteger(MQL_OPTIMIZATION))return(false);
   for(int i=0;i<count;i++)
     {
      if(TerminalInfoInteger(TERMINAL_CONNECTED))if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
        {
#ifdef __MQL5__
         if(refreshrates) SymbolInfoDouble(_Symbol,SYMBOL_BID);
         return(false);
#else
#ifdef __MQL4__
         if(!IsTradeContextBusy())
           {
            if(refreshrates) RefreshRates();
            return(false);
           }
#endif   // __MQL4__
#endif
        }
      Sleep(157);
     }
   Print(__FUNCTION__," Торговый сервер не отвечает");
   return(true);
  }
//___________________________________________________________________________
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
  • www.mql5.com
— В чем сила, брат?                                   —А сила, брат, в дефайнах                     Вы все ещё пишете на MQL4 и хотите перейти на MQL5, но не знаете с чего начать? Тогда мы идём к вам! Теперь появилась возможность комфортно работать в редакторе MetaEditor MQL5 и при этом использовать MQL4-нотацию (справедливости ради замечу...