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

 
ANDREY:

Guten Tag an alle!

Ich habe mit dem Studium von mql5 begonnen. Zunächst habe ich untersucht, wie Aufträge eröffnet werden. Ich habe es so verstanden, dass der Code zum Öffnen einer Bestellung in einer separaten Include-Datei geschrieben wird. Ich habe jetzt diesen Code und seine endgültige Variante für den Handel gemeistert. Ich war erstaunt, dass die Auftragseröffnung in mql4 viel einfacher und übersichtlicher ist als in mql5.

Ich möchte fragen, ob ich sicher bin, dass ich die Datei mit dem Code zum Öffnen der Bestellung bereits habe und diesen Code nicht schreiben muss. Wenn eine solche Datei irgendwo verfügbar ist, dann muss ich sie nur mit meinem EA verbinden und die Werte der benötigten Auftragsparameter festlegen? Wenn es eine solche Datei gibt, wo und wie sie zu finden ist und wie ihr Name lautet.

Ich danke Ihnen.

Wenn ich Sie richtig verstehe, ist es #include <Trade\Trade.mqh>.

Dateien:
ng4txc.PNG  116 kb
15vegf1.PNG  114 kb
 
SanAlex:

Wenn ich Sie richtig verstehe, ist es #include <Trade\Trade.mqh>.

Vielen Dank für diese wertvollen Informationen.

Verstehe ich das richtig, dass ich diese Dateien nirgendwo suchen muss, sondern einfach an der richtigen Stelle des Codes #include <Trade\Trade.mqh> schreiben muss , und diese Datei wird automatisch meinem Expert Advisor beigefügt, und er wird bei Bedarf darauf zugreifen?

 
ANDREY:

Vielen Dank für die wertvollen Informationen.

Verstehe ich das richtig, dass ich diese Dateien nirgendwo suchen muss, sondern einfach an der richtigen Stelle des Codes #include <Trade\Trade.mqh> schreiben muss , und diese Datei wird automatisch in meinen EA eingebunden, und der EA wird bei Bedarf darauf zugreifen?

Ja! Sie brauchen nicht danach zu suchen, es ist schon da.

Sie können die Codedatei(Moving Averages.mq5 oder MACD Sample.mq5) im Terminal ansehen.

 
SanAlex:

Ja! Sie brauchen nicht danach zu suchen, es ist schon da.

Vielen Dank für die wertvollen Informationen.
Wenn ich richtig verstanden habe, heißt die Datei, die Sie mir geschickt haben, CLASS Diese Datei ist für die Eröffnung einer Bestellung bestimmt. Ich denke, es gibt viele KLASSEN, und jede hat ihren eigenen Zweck, z.B. den Auftrag zu schließen, den Auftrag zu ändern, Informationen auszugeben, usw.

F: Wo kann ich eine Liste aller Kurse mit detaillierten Beschreibungen finden?
Ich danke Ihnen nochmals für Ihre Hilfe.

 
ANDREY:

Vielen Dank für die wertvollen Informationen.
Wenn ich es richtig verstanden habe, heißt die Datei, die Sie mir geschickt haben, CLASS This file is for opening an order. Ich denke, es gibt viele KLASSEN, und jede hat ihren eigenen Zweck, z.B. einen Auftrag abzuschließen, einen Auftrag zu ändern, eine Information auszugeben, usw.

QUESTION Wo kann ich eine Liste aller Klassen mit detaillierten Beschreibungen finden?
Nochmals vielen Dank für Ihre Hilfe.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
Artyom Trishkin:

Vielen Dank für die wertvollen Informationen. Ich werde nun damit beginnen, es zu verdauen, d.h. ..... zu assimilieren, soweit es meine geistige Kapazität betrifft.

 
ANDREY:

Guten Tag an alle!

Ich habe mit dem Studium von mql5 begonnen. Zunächst habe ich untersucht, wie Aufträge eröffnet werden. Ich habe es so verstanden, dass der Code zum Öffnen einer Bestellung in einer separaten Include-Datei geschrieben wird. Ich habe jetzt diesen Code und seine endgültige Variante für den Handel gemeistert. Ich war erstaunt, dass die Auftragseröffnung in mql4 viel einfacher und übersichtlicher ist als in mql5.

Ich möchte fragen, ob ich sicher bin, dass ich die Datei mit dem Code zum Öffnen der Bestellung bereits habe und diesen Code nicht schreiben muss. Wenn eine solche Datei irgendwo verfügbar ist, dann muss ich sie nur mit meinem EA verbinden und die erforderlichen Werte für die Auftragsparameter festlegen? Wenn es eine solche Datei gibt, wo und wie sie zu finden ist und wie ihr Name lautet.

Ich danke Ihnen.

Ich habe einen anderen Ansatz, um einen EA für mich zu schreiben. Ich muss es nur für mich selbst korrigieren.

-( warum das Rad neu erfinden, wenn es schon da ist )

----------------------------------------------------------------------

an dieser Stelle werden die Indikatoren aufgegriffen

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- prepare trade class to control positions if hedging mode is active
   ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
   ExtTrade.SetExpertMagicNumber(MA_MAGIC);
   ExtTrade.SetMarginMode();
   ExtTrade.SetTypeFillingBySymbol(Symbol());
//--- Moving Average indicator
   ExtHandle=iMA(_Symbol,_Period,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
   if(ExtHandle==INVALID_HANDLE)
     {
      printf("Error creating MA indicator");
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

und hier stellen wir sie so ein, dass die Indikatoren entsprechend dem Signal korrekt öffnen

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(rt[1].tick_volume>1)
      return;
//--- get current Moving Average 

   double   ma[1];
   if(CopyBuffer(ExtHandle,0,0,1,ma)!=1)
     {
      Print("CopyBuffer from iMA failed, no data");
      return;

     }
//--- check signals
   ENUM_ORDER_TYPE signal=WRONG_VALUE;

   if(rt[0].open>ma[0] && rt[0].close<ma[0])
      signal=ORDER_TYPE_SELL;    // sell conditions
   else
     {
      if(rt[0].open<ma[0] && rt[0].close>ma[0])
         signal=ORDER_TYPE_BUY;  // buy conditions
     }
//--- additional checking
   if(signal!=WRONG_VALUE)
     {
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
         ExtTrade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
     }
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Um mir zu helfen, ein besseres Verständnis von MQL5 zu bekommen, wäre ich sehr dankbar, wenn Sie diesen einfachen Code von MQL4 in MQL5-Code übersetzen könnten

Vielen Dank für die Hilfe.

int s1,SL,a;
double Lou=Bid,Hay,DL=0.0030;
void OnTick()
{
if (Bid < Lou)
{
Lou=Bid;
}
if (Bid > Hay)
Hay=Bid;
if (Bid - Lou > DL&& Lou!=0)
{
Lou=Bid;
Hay=Bid;
s1=1;
}
////=======================
if (Hay-Bid>0.0000)
if (s1==1)
{
for(int c=0; c<=500;c+=20)
{
a++;
{
SL=300+c;
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,Ask+SL*Point,Ask-SL/3*Point,"300",100);
Lou=Bid;
Hay=Bid;
}
}
a=0;
s1=0;
}
}
 

numPosOr= 4;

numStepCount= 1;

iK = (numPosOr - numStepCount) / numPosOr;

Warum ergibt diese BerechnungiK = 0?

 
Sysmart:

numPosOr= 4;

numStepCount= 1;

iK = (numPosOr - numStepCount) / numPosOr;

Warum ergibt diese BerechnungiK = 0?

Bitte geben Sie mir den gesamten Code