[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 593

 
Dimka-novitsek:
Scusa, quali delimitatori?


un punto e una virgola. Beh, i delimitatori delle liste sono diversi, virgola e punto e virgola.

Prova a importare con i delimitatori corretti. Oppure rifare le impostazioni regionali con i delimitatori giusti. Buona fortuna

 
Grazie!!!! Sì, c'è un punto lì. E come si fa a cambiare le impostazioni regionali con i delimitatori giusti?
 
In quale ordine si deve installare il software Ganzilla? O devo postare nel thread appropriato?
 
Dimka-novitsek:
Grazie!!!! Sì, c'è un punto lì. E come si fa a cambiare le impostazioni regionali con i delimitatori corretti?
Perché toccare le impostazioni regionali? Ecco perché sono regionali, perché sono impostati solo una volta. Le impostazioni sono in EXCEL. Puoi anche controllare il FAC. C'è uno degli ultimi post su questi separatori.
 

Grazie !!!

Scusa, puoi darmi un link a uno degli ultimi post su questi delimitatori!

Googlato, Yandexed - provato ad applicare il formato numerico tramite il formato Home-number-number, non è successo nulla. Non sovrascrivere manualmente quattrocento punti in zapatye! Potente e intelligente che eccelle, ma stupido!

Ugh, l'ho minato!

 
Dimka-novitsek:

Grazie !!!

Scusa, puoi darmi un link a uno degli ultimi post su questi divisori!

https://www.mql5.com/ru/forum/131853/page5
 
Grazie!!!
 

Ho una domanda semplice, ma non ho ancora capito l'essenza della chiusura di ordini multipli)

Per favore, spiegatemi perché la prima variante del codice funziona allo stesso modo della seconda (nella prima variante tramite select_by_pos tutti i 4 trade aperti sono stati chiusi tramite l'indice 0, ma nella seconda, 1 e 2 3 e 4)

Ho bisogno di un manuale utile o qualcosa per vedere come la gente chiude gli ordini in modo da non perderli, o un manuale su come chiuderli correttamente e come funziona select_by_pos) perché tutti gli esempi sono alcuni troncati, e il manuale non ha affatto esempi del suo uso)

Posso darvi un buon video tutorial sulla programmazione in MQL4).

OPZIONE 1 (in questa variante tutti e 4 gli ordini aperti sono stati chiusi durante il test, anche se tutti e 4 gli ordini sono stati selezionati con indice 0 alla chiusura):

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);

}

2a OPZIONE (anche qui sono stati chiusi tutti e 4 i trade, ma gli indici 1,2,3 e 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);

}


 

Buona sera, sto chiedendo aiuto per un Expert Advisor MACD multicurrency. L'EA segue correttamente i criteri di apertura delle posizioni, ma la chiusura "a condizione" non funziona. Ho certamente iniziato a usare un trailing stop, ma la chiusura corretta non mi dà tregua.

//+------------------------------------------------------------------+
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);

Ecco come appare la parte principale

 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.

E questo è un blocco stretto. Per favore, aiutatemi a trovare l'errore!

 
Vinin:

Esiste la directory?


Sì, entrambi nella cartella Expert... e nella cartella tester.

ma lo screenshot continua a non funzionare.