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

 
Igorz2006:
Danke, ich werde es ausprobieren. Kursverlauf für Bitcoin und Krypto muss zur Analyse importiert werden

Five hat ein geschlossenes Verlaufsformat, ich habe noch nie von einem Import gehört. Es ist einfacher, eine Demo zu öffnen, in der alle erforderlichen Zeichen vorhanden sind.

 

Guten Tag!

Eröffnen Sie zwei Kaufpositionen und drei Verkaufspositionen. Zählen Sie die offenen Stellen.

Es gab keine Probleme bei der Eröffnung der Positionen, aber es gab Schwierigkeiten bei der Auszählung.

Bitte helfen Sie einem Studienanfänger)

input int PositionSell = 
5;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  
  int buy_count  = 0;
  int sell_count = 0;

//---объявление и инициализация запроса и резкльтата
   MqlTradeResult  result_sell  = {0};
   MqlTradeRequest request_sell = {0};

   request_sell.action = TRADE_ACTION_DEAL;
   request_sell.symbol = Symbol();
   request_sell.volume = 0.1;
   request_sell.type   = ORDER_TYPE_SELL;

   MqlTradeResult  result_bay  = {0};
   MqlTradeRequest request_bay = {0};

   request_bay.action = TRADE_ACTION_DEAL;
   request_bay.symbol = Symbol();
   request_bay.volume = 0.1;
   request_bay.type   = ORDER_TYPE_BUY;



   if(PositionsTotal() < PositionSell)
     {
      OrderSend(request_sell,result_sell);
      OrderSend(request_sell,result_sell);
      OrderSend(request_sell,result_sell);

      OrderSend(request_bay,result_bay);
      OrderSend(request_bay,result_bay);
     } else return;

   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelect(_Symbol))
     {
      switch(PositionGetInteger(POSITION_TYPE)) //Здесь выдает  ошибку implicit conversion from 'number' to 'string'
           {
            case POSITION_TYPE_BUY:  buy_count++;  break; 
            case POSITION_TYPE_SELL: sell_count++; break;
           }

        }
     }
     Print("Ордеров на покупку: " + buy_count + ", Ордеров на продажу: " + sell_count);
  }
 
Mihail Marchukajtes:

Liebe Kolleginnen und Kollegen!

Bitte teilen Sie uns Folgendes mit. Die Funktion OnTester berechnet zwei Parameter. Gibt es eine Möglichkeit, dass bei der Optimierung auf einen Parameter der zweite Parameter einfach in der Optimierungstabelle ausgegeben wird? Und wenn ja, wie ist dies zu tun? Ich danke Ihnen!

Liebe Kollegen, gibt es keine Antwort auf meine Frage?
 
Pineapple88:

Guten Tag!

Eröffnen Sie zwei Kaufpositionen und drei Verkaufspositionen. Zählen Sie die offenen Stellen.

Es gab keine Probleme bei der Eröffnung der Positionen, aber es gab Schwierigkeiten bei der Auszählung.

Bitte helfen Sie einem Studienanfänger)

     for(int i=0; i<PositionsTotal(); i++)
     {
          if( PositionGetTicket(i) == 0 )                        continue;
          if( PositionGetString(POSITION_SYMBOL) != _Symbol )    continue;
          switch( (int)PositionGetInteger(POSITION_TYPE) )
           {
               case POSITION_TYPE_BUY:  buy_count++;  break; 
               case POSITION_TYPE_SELL: sell_count++; break;
           }
     }
 
Konstantin Nikitin:

Ich danke Ihnen! Ich werde es mir ansehen...

 
Pineapple88:

Ich danke Ihnen! Ich werde es mir ansehen...

Lesen Sie PositionGetTicket, PositionGetSymbol, PositionSelect. Besonders die Notiz.

 
Guten Tag, ich brauche Hilfe. Ich kann nicht verstehen, warum
Zum Beispiel:
double f=1,11215;
double g=1,17545;
double j=f-(f-g);
//Ergebnis: 1.17545

Warum nicht 1,1661?
Wo kann ich darüber lesen?
 
Reznik Nikolai:
Guten Tag, ich brauche Hilfe. Ich kann nicht verstehen, warum
Zum Beispiel:
double f=1,11215;
double g=1,17545;
double j=f-(f-g);
Print(j);
//Ergebnis: 1.17545

Warum nicht 1,1661?
Wo kann ich darüber lesen?

Sie MÜSSEN es in Ihrem Grundschul-Rechenlehrbuch der dritten Klasse lesen.

 
Endlich mt4 gefunden, macht es viel einfacher
 

Guten Tag zusammen!

Bitte um Hilfe.

Mein Expert Advisor eröffnet eine Position an der Kreuzung von zwei Waggons. Ich versuche, eine Position mit einer anderen zu schließen, aber es wird der Fehler [Ungültige Anfrage] angezeigt. Ich denke, es gibt einen Fehler beim Ausfüllen der Anfrageparameter?

void OnTick()
  {

   MqlTradeResult  result_bay  = {0};
   MqlTradeRequest request_bay = {0};

   request_bay.action = TRADE_ACTION_DEAL;
   request_bay.symbol = Symbol();
   request_bay.volume = 0.1;
   request_bay.type   = ORDER_TYPE_BUY;

   MqlTradeResult  result_sell  = {0};
   MqlTradeRequest request_sell = {0};

   request_sell.action = TRADE_ACTION_DEAL;
   request_sell.symbol = Symbol();
   request_sell.volume = 0.1;
   request_sell.type   = ORDER_TYPE_CLOSE_BY;

   double MovingAverage1[], MovingAverage2[]; //задаем два массиса для МА

   int MovingAverageIndic1 = iMA(_Symbol,0,20,0,MODE_EMA,PRICE_CLOSE);
   int MovingAverageIndic2 = iMA(_Symbol,0,200,0,MODE_EMA,PRICE_CLOSE);

   ArraySetAsSeries(MovingAverage1,true);
   ArraySetAsSeries(MovingAverage2,true);

   CopyBuffer(MovingAverageIndic1,0,0,3,MovingAverage1);
   CopyBuffer(MovingAverageIndic2,0,0,3,MovingAverage2);

   if(
      (MovingAverage1[0]>MovingAverage2[0]) &&
      (MovingAverage1[1]<MovingAverage2[1])
   )
     {

      if(PositionsTotal()==0)
         OrderSend(request_bay,result_bay);
     }

   if(
      (MovingAverage1[0]<MovingAverage2[0]) &&
      (MovingAverage1[1]>MovingAverage2[1])
   )

     {
      if(
         (MovingAverage1[0]<MovingAverage2[0]) &&
         (MovingAverage1[1]>MovingAverage2[1])
      )
        {
         if(PositionsTotal()==1)
         
         OrderSend(request_sell,result_sell); 
           }


     }




  }