[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 593

 
Dimka-novitsek:
Entschuldigung, welche Begrenzungszeichen?


ein Punkt und ein Komma. Nun, die Begrenzungszeichen der Liste sind unterschiedlich: Komma und Semikolon.

Versuchen Sie, mit den richtigen Trennzeichen zu importieren. Oder ändern Sie die regionalen Einstellungen mit den richtigen Trennzeichen. Viel Glück!

 
Danke!!!! Ja, da ist ein Punkt. Und wie ändern Sie die regionalen Einstellungen auf die richtigen Trennzeichen?
 
In welcher Reihenfolge sollten Sie die Ganzilla-Software installieren? Oder sollte ich in den entsprechenden Thread posten?
 
Dimka-novitsek:
Danke!!!! Ja, da ist ein Punkt. Und wie ändern Sie die regionalen Einstellungen auf die richtigen Trennzeichen?
Warum sollten Sie die regionalen Einstellungen ändern? Deshalb sind sie regional, weil sie nur einmal eingerichtet werden. Die Einstellungen werden in EXCEL vorgenommen. Sie können auch FAC überprüfen. Es gibt einen der letzten Beiträge über diese Separatoren.
 

Danke !!!

Entschuldigung, können Sie mir einen Link zu einem der letzten Beiträge über diese Begrenzungszeichen geben?

Ich habe gegoogelt, mit Yandex geforscht und versucht, das numerische Format über das Format Hausnummer-Nummer-Nummer anzuwenden, aber nichts ist passiert. Nicht manuell überschreiben vierhundert Punkte in zapatye! Mächtig und klug, aber dumm!

Igitt, ich habe es vermint!

 
Dimka-novitsek:

Danke !!!

Entschuldigung, können Sie mir einen Link zu einem der letzten Beiträge über diese Trennwände geben?

https://www.mql5.com/ru/forum/131853/page5
 
Ich danke Ihnen!!!
 

Ich habe eine einfache Frage, aber ich verstehe immer noch nicht das Wesen der Schließung mehrerer Aufträge)

Bitte erklären Sie mir, warum die erste Variante des Codes genauso funktioniert wie die zweite (in der ersten Variante über select_by_pos wurden alle 4 offenen Geschäfte über den 0. Index geschlossen, aber in der zweiten, 1und 2, 3 und 4)

Ich brauche ein nützliches Handbuch oder etwas, um zu sehen, wie die Leute Aufträge schließen, damit sie sie nicht verpassen, oder ein Handbuch, wie man sie richtig schließt und wie select_by_pos funktioniert), weil ich überall einige abgeschnittene Beispiele sehe und keine Beispiele mit seiner Verwendung in der Hilfe)

Ich kann Ihnen ein gutes Video-Tutorial zur Programmierung in MQL4 geben).

OPTION 1 (bei dieser Variante wurden alle 4 offenen Aufträge während des Tests geschlossen, obwohl alle 4 Aufträge mit dem Index 0 ausgewählt wurden, als sie geschlossen wurden):

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);

}

2. OPTION (auch hier wurden alle 4 Trades geschlossen, aber die Indizes 1,2,3 und 4):

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);

}


 

Guten Abend, ich bitte um Hilfe bei einem MACD Expert Advisor für mehrere Währungen. Der EA befolgt die Kriterien für die Positionseröffnung korrekt, aber das Schließen "unter der Bedingung" funktioniert nicht. Ich habe zwar begonnen, einen Trailing-Stop zu verwenden, aber der korrekte Abschluss gibt mir keine Sicherheit.

//+------------------------------------------------------------------+
string lSymbol;
int init ()
{ 
 lSymbol = Symbol();
 return (0);
}
int deinit()
{return(0);}
int start()
  {
   double MacdCurrent, MacdPrevious, SignalCurrent;
   double SignalPrevious, MaCurrent, MaPrevious;
   double bid, ask, point, digits;
   int cnt, ticket, total;
   
  total = SymbolOrdersTotal (lSymbol);
  
  if (total<1);
  {
    bid   = MarketInfo(lSymbol,MODE_BID);
    ask   = MarketInfo(lSymbol,MODE_ASK);
    point = MarketInfo(lSymbol,MODE_POINT);
    digits= MarketInfo(lSymbol,MODE_DIGITS);

So sieht der Hauptteil aus

 for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==lSymbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // should it be closed?
            if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
               MacdCurrent>(MACDCloseLevel*point))
                {
                 OrderClose(OrderTicket(),OrderLots(),bid,3,Violet); // close position
                 return(0); // exit
                }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(bid-OrderOpenPrice()>point*TrailingStop)
                 {
                  if(OrderStopLoss()<bid-point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),bid-point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // should it be closed?
            if(MacdCurrent<0 && MacdCurrent>SignalCurrent &&
               MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*point))
              {
               OrderClose(OrderTicket(),OrderLots(),ask,3,Violet); // close position
               return(0); // exit
              }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-ask)>(point*TrailingStop))
                 {
                  if((OrderStopLoss()>(ask+point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),ask+point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                }
              }
           }
        }
     }
   return(0);
  }
  
   
  int SymbolOrdersTotal(string lSymbol)
{
   int Res=0;
   int total=OrdersTotal();
   for (int i=0;i<total;i++) 
   {
      if (OrderSelect(i, SELECT_BY_POS))
      {
         if (OrderSymbol()==lSymbol)
         {
            Res++;
         }
      }
   }
   return(Res);
}
// the end.

Und dies ist ein enger Block. Bitte helfen Sie mir, den Fehler zu finden!

 
Vinin:

Ist das Verzeichnis vorhanden?


Ja, beide im Ordner "Expert"... und im Ordner tester.

aber das Bildschirmfoto funktioniert immer noch nicht.