Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1139

 
kuznat399:
Ci sono dei robot per Android?


Non c'è autotrading nella versione mobile di Metatrader ed è improbabile che appaia nel prossimo futuro. Se vuoi controllare il robot dal tuo telefono, hai bisogno di un VPS che ospiti il terminale con il robot, + il software per l'accesso remoto sul tuo telefono.
 
Puoi dirmi se la visualizzazione non viene visualizzata nel tester (build 1065) - può essere corretto?
 
Apro dieci grafici settimanali di coppie di valute in MT5 e 800 megabyte di storia dei tick vengono caricati nel terminale. È costantemente caricato, anche se non ci sono quasi cambiamenti sui grafici. La domanda è perché ho bisogno della cronologia dei tick, se uso solo i grafici settimanali? A proposito, su MT4 i grafici settimanali si aprono istantaneamente e senza ritardo.
 
sober:
Apro dieci grafici settimanali di coppie di valute in MT5 e il terminale carica 800 megabyte di storia dei tick. È costantemente caricato, anche se non ci sono quasi cambiamenti sui grafici. La domanda è perché ho bisogno della cronologia dei tick, se uso solo i grafici settimanali? A proposito, su MT4 i grafici settimanali si aprono istantaneamente senza alcun ritardo.


questa è una caratteristica di mt5 - caricare tutto su m1 e poi costruire il periodo richiesto... ....

e così ogni volta, per ogni simbolo

 
Ci sono due blocchi di plug-in per MT5 (blocco di segnali e ordini e blocco di trailing). L'ho preso in MQL5. Ho messo i file "MQL5\Include\Expert\Signal" e "MQL5\Include\Expert". Sto chiedendo aiuto.
 

L'idea dell'EA è di comprare o vendere quando il prezzo tocca un livello orizzontale o una linea di tendenza disegnata manualmente. Ho fatto un EA con diversi EA funzionanti e indicatori. Ma l'EA non funziona. O meglio, apre solo SELL senza alcun segnale sul primo tick. Cosa c'è che non va?

/+------------------------------------------------------------------+

//| |

//| Copyright © 2010, MetaQuotes Software Corp.

//| http://www.mql4.com/ru/users/rustein |

//+------------------------------------------------------------------+

#define MAGIC 131313 //aprire un canale verso l'interno

//---------------------------------------



extern inttern TF=15;


//+------------------------------------------------------------------+

extern int StopLoss = 300;

//--------------------------------------------



extern double TakeProfit = 3000;

//--------------------------------------


extern int Per_MA= 20;



//---- costanti


#define OP_BUY_ 0

#define OP_SELL_ 1



//-------------------------------------------------------------------+

extern double Lots = 0.1;

extern double MaximumRisk = 1;

extern double DecreaseFactor = 0;



bool b_1=true, s_1=true;


//+------------------------------------------------------------------+

//| Calcolare le posizioni aperte

//+------------------------------------------------------------------+

double MA=iMA(NULL,TF,Per_MA,0,0,0,1);





int CalcolaOrdiniCorrenti(simbolo stringa)

{

int buys=0,sells=0;

//----

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)

{

se(OrderType()==OP_BUY) compra++;

se(OrderType()==OP_SELL) vende++;

}

}

//---- volume degli ordini di ritorno

if(buys>0) return(buys);

else return(-sells);

}

//+------------------------------------------------------------------+

//| Calcolare la dimensione ottimale del lotto

//+------------------------------------------------------------------+

doppio LottiOttimizzati()

{

doppio lotto=Lotti;

int orders=HistoryTotal(); // totale degli ordini della storia

int perdite=0; // numero di ordini di perdite senza una pausa

//---- selezionare la dimensione del lotto

//lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,2);

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100/MarketInfo(Symbol(),MODE_TICKVALUE)/StopLoss,2);

//---- calcolare il numero di ordini di perdite senza una pausa

se(Fattore di diminuzione>0)

{

for(int i=ordini-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Errore nella storia!"); break; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continua;

//----

if(OrderProfit()>0) break;

se(OrderProfit()<0) perdite++;

}

if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,2);

}

//---- restituire la dimensione del lotto

se(lotto<0,01) lotto=0,01;

ritorno(lotto);

}

//-------------------------------------------------

/* questa parte dell'indicatore

int CheckBreakoutLines(int shift)

{

// Oggetti totali

int obj_total = ObjectsTotal();

// Ora del bar

datetime now = Time[shift];

// Iterare

for(int i = obj_total - 1; i >= 0; i--)

{

// Nome dell'oggetto

stringa label = ObjectName(i);

// Tipi

int OType = ObjectType(label);

bool trendline = false;

bool hline = false;

// Prezzo da valutare

doppio cprice = 0;

// Linee di tendenza

se(OType == OBJ_TREND )

{

bool ray = ObjectGet(label, OBJPROP_RAY);

se(!ray)

{

datetime x1 = ObjectGet(label, OBJPROP_TIME1);

datetime x2 = ObjectGet(label, OBJPROP_TIME2);

if(x1 < ora && x2 < ora) continua;

}

cprice = GetCurrentPriceOfLine(label, shift);

linea di tendenza = vero;

} else if(OType == OBJ_HLINE ) {

cprice = ObjectGet(label, OBJPROP_PRICE1);

hline = vero;

} else {

continuare;

}

// Breakout e falsi breakout di trendlines e hlines

if(MA>cprice &&Ask<cprice)

{

if(trendline) { return(OP_BUY_); } else if(hline) { return(OP_BUY_); }

} else if(MA>cprice &&Ask<cprice) {

if(trendline) { return(OP_SELL_); } else if(hline) { return(OP_SELL_); }

}

}

return(EMPTY_VALUE);

}


double GetCurrentPriceOfLine(string label, int shift)

{

double price1 = ObjectGet(label, OBJPROP_PRICE1);

double price2 = ObjectGet(label, OBJPROP_PRICE2);

datetime d1 = ObjectGet(label, OBJPROP_TIME1);

datetime d2 = ObjectGet(label, OBJPROP_TIME2);

int shiftfrom = iBarShift(Symbol(), 0, d1, false);

int shiftto = iBarShift(Symbol(), 0, d2, false);

int lapse = MathAbs(shiftto - shiftfrom);

int distance = MathAbs(shift - shiftfrom);

doppio pendiente = (prezzo2 - prezzo1) / giro;

doppio cpoint = prezzo1 + (distanza * pendiente);

ritorno(cpoint);

}


//-------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+

//controllare le condizioni di ordine aperto

//+------------------------------------------------------------------+

void CheckForOpen()

{

int res;


//--------------------------------------------------------------------+

//--------------------------------------------------------------------+

//---- condizioni di acquisto

se(OP_BUY_&&b_1)

{

res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-(StopLoss*Point),Ask+TakeProfit*Point," VV",MAGIC,0,Green);

b_1=falso; s_1=vero;

ritorno;

}


//---- condizioni di vendita

se(OP_SELL_&&s_1)

{

res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+(StopLoss*Point),Bid-TakeProfit*Point," VV",MAGIC,0,Red);

s_1=falso;b_1=vero;

ritorno;

}

//----

}


//+------------------------------------------------------------------+

//| Iniziare la funzione |

//+------------------------------------------------------------------+

void start()

{

//---- controllare la storia e il commercio

if(Bars<100 || IsTradeAllowed()==false) return;

//---- calcolare gli ordini aperti in base al simbolo corrente

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

}


//+------------------------------------------------------------------+

//|---------------------------// END //------------------------------|

//+------------------------------------------------------------------+

Warstein
Warstein
  • www.mql5.com
Профиль трейдера
 
ValerVL35:

L'idea dell'EA è di comprare o vendere quando il prezzo tocca un livello orizzontale o una linea di tendenza disegnata manualmente. Ho fatto un EA con diversi EA funzionanti e indicatori. Ma l'EA non funziona. O meglio, apre solo SELL senza alcun segnale sul primo tick. Cosa c'è che non va?

/+------------------------------------------------------------------+

//| |

//| Copyright © 2010, MetaQuotes Software Corp.

//| http://www.mql4.com/ru/users/rustein |

//+------------------------------------------------------------------+

#define MAGIC 131313 //aprire un canale verso l'interno

//---------------------------------------



extern inttern TF=15;


//+------------------------------------------------------------------+

extern int StopLoss = 300;

//--------------------------------------------



extern double TakeProfit = 3000;

//--------------------------------------


extern int Per_MA= 20;



//---- costanti


#define OP_BUY_ 0

#define OP_SELL_ 1

.....................................

.....................................

//---- controllare la storia e il commercio

if(Bars<100 || IsTradeAllowed()==false) return;

//---- calcolare gli ordini aperti in base al simbolo corrente

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

}


//+------------------------------------------------------------------+

//|---------------------------// END //------------------------------|

//+------------------------------------------------------------------+

Ho caricato il programma nel blocco note e ho cancellato le righe vuote. È diventato possibile coprire con uno sguardo. Ha premuto il pulsante SRC e ha incollato. Ecco cosa è venuto fuori. 1) Perché si dovrebbe definire

#define  OP_BUY_  0
#define  OP_SELL_ 1

se abbiamo già OP_BUY=0 e OP_SELL=1

2) La radice di tutto il male è in questo frammento. Una stessa condizione (MA>cprice &&Ask<cprice) viene controllata due volte, e vengono prese decisioni diverse.

      // Breakouts and false breakouts of trendlines and hlines
      if(MA>cprice &&Ask<cprice)
      {
         if(trendline) { return(OP_BUY_); } else if(hline) { return(OP_BUY_); }
      } else if (MA>cprice &&Ask<cprice) {
        if(trendline) { return(OP_SELL_); } else if(hline) { return(OP_SELL_); }    
      }

3) Dopo di che ogni ramo esegue dei controlli ma il risultato è sempre lo stesso

if(trendline) { return(OP_BUY_); } else if(hline) { return(OP_BUY_); }
if(trendline) { return(OP_SELL_); } else if(hline) { return(OP_SELL_); }

In generale, la linea di cui sopra può essere semplificata e scritta come segue

          if(trendline)return OP_BUY;
          if(hline)    return OP_BUY;
или еще проще
          if(trendline or hline) return OP_BUY;

//+------------------------------------------------------------------+
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                             http://www.mql4.com/ru/users/rustein |
//+------------------------------------------------------------------+
#define  MAGIC  131313 // открытие внутрь канала
//---------------------------------------
extern int TF=15;
extern int    StopLoss          = 300;
extern double TakeProfit = 3000;
extern int Per_MA= 20;
extern double Lots              = 0.1;
extern double MaximumRisk       = 1;
extern double DecreaseFactor    = 0;

//---- constants
#define  OP_BUY_  0
#define  OP_SELL_ 1

bool b_1=true, s_1=true;

//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
 double MA=iMA(NULL,TF,Per_MA,0,0,0,1);
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
//---- select lot size
  //lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,2);
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100/MarketInfo(Symbol(),MODE_TICKVALUE)/StopLoss,2);

//---- calcuulate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,2);
     }
//---- return lot size
   if(lot<0.01) lot=0.01;
   return(lot);
  }
  //-------------------------------------------------

  /* эта часть из индикатора*/
  int CheckBreakoutLines(int shift)
{
   // Total Objects 
   int obj_total = ObjectsTotal();

   // Time of bar 
   datetime now = Time[shift];

   // Iterate
   for(int i = obj_total - 1; i >= 0; i--)
   {
      // Object name
      string label = ObjectName(i);

      // Types
      int OType = ObjectType(label);
      bool trendline = false;
      bool hline = false;

      // Price to evaluate
      double cprice = 0;

      // Trendlines
      if(OType == OBJ_TREND )
      {
         bool ray = ObjectGet(label, OBJPROP_RAY);
         if(!ray)
         {
            datetime x1 = ObjectGet(label, OBJPROP_TIME1);
            datetime x2 = ObjectGet(label, OBJPROP_TIME2);
            if(x1 < now && x2 < now) continue;
         }
         cprice = GetCurrentPriceOfLine(label, shift);
         trendline = true;
      } else if(OType == OBJ_HLINE ) {
         cprice = ObjectGet(label, OBJPROP_PRICE1);
         hline = true;
      } else {
         continue;
      }

      // Breakouts and false breakouts of trendlines and hlines
      if(MA>cprice &&Ask<cprice)
      {
         if(trendline) { return(OP_BUY_); } else if(hline) { return(OP_BUY_); }
      } else if (MA>cprice &&Ask<cprice) {
        if(trendline) { return(OP_SELL_); } else if(hline) { return(OP_SELL_); }    
      }
     }
   return(EMPTY_VALUE);       
}

double GetCurrentPriceOfLine(string label, int shift)
{
   double price1 = ObjectGet(label, OBJPROP_PRICE1);
   double price2 = ObjectGet(label, OBJPROP_PRICE2);
   datetime d1   = ObjectGet(label, OBJPROP_TIME1);
   datetime d2   = ObjectGet(label, OBJPROP_TIME2);
   int shiftfrom = iBarShift(Symbol(), 0, d1, false);
   int shiftto   = iBarShift(Symbol(), 0, d2, false);
   int lapse = MathAbs(shiftto - shiftfrom);
   int distance = MathAbs(shift - shiftfrom);
   double pendiente = (price2 - price1) / lapse;
   double cpoint = price1 + (distance * pendiente);
   return(cpoint);
}
  //-------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   int    res;

//--------------------------------------------------------------------+
//---- buy conditions 
 if(OP_BUY_&&b_1)
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-(StopLoss*Point),Ask+TakeProfit*Point," VV",MAGIC,0,Green);
      b_1=false; s_1=true; 
      return;
     }  

//---- sell conditions
     if(OP_SELL_&&s_1)
 {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+(StopLoss*Point),Bid-TakeProfit*Point," VV",MAGIC,0,Red);
        s_1=false;b_1=true;
      return;
     } 
//----
  }

//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
//---- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false) return;

//---- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
  }   

//+------------------------------------------------------------------+
//|---------------------------// END //------------------------------|
//+------------------------------------------------------------------+
 
LRA:

Ho caricato il programma nel blocco note e ho cancellato le righe vuote. È diventato possibile coprire con uno sguardo. Ha premuto il pulsante SRC e ha incollato. Ecco cosa è venuto fuori. 1) Perché si dovrebbe definire

se abbiamo già OP_BUY=0 e OP_SELL=1

2) La radice di tutto il male è in questo frammento. Una stessa condizione (MA>cprice &&Ask<cprice) viene controllata due volte, e vengono prese decisioni diverse.

3) Dopo di che ogni ramo esegue dei controlli ma il risultato è sempre lo stesso

La linea sopra può essere semplificata e scritta come segue


Grazie per la risposta, ma apre ancora solo SELL, come lo vedo da OP_SELL = 1. Questa condizione è sempre soddisfatta. L'ho riscritto così

Gli ordini hanno smesso di aprirsi, secondo me, int CheckBreakoutLines(int shift) non funziona.

//+------------------------------------------------------------------+
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                             http://www.mql4.com/ru/users/rustein |
//+------------------------------------------------------------------+
#define  MAGIC  131313 // открытие внутрь канала
//---------------------------------------
extern int TF=15;
extern int    StopLoss          = 300;
extern double TakeProfit = 3000;
extern int Per_MA= 20;
extern double Lots              = 0.1;
extern double MaximumRisk       = 1;
extern double DecreaseFactor    = 0;
bool OP_BUY_= false;   
bool OP_SELL_ =false;   

bool b_1=true, s_1=true;

//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
 double MA=iMA(NULL,TF,Per_MA,0,0,0,1);
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
//---- select lot size
  //lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,2);
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/100/MarketInfo(Symbol(),MODE_TICKVALUE)/StopLoss,2);
//---- calcuulate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,2);
     }
//---- return lot size
   if(lot<0.01) lot=0.01;
   return(lot);
  }
  //-------------------------------------------------

  /* эта часть из индикатора*/
  int CheckBreakoutLines(int shift)
{
   // Total Objects 
   int obj_total = ObjectsTotal();
   // Time of bar 
   datetime now = Time[shift];
   // Iterate
   for(int i = obj_total - 1; i >= 0; i--)
   {
      // Object name
      string label = ObjectName(i);
      // Types
      int OType = ObjectType(label);
      bool trendline = false;
      bool hline = false;
      // Price to evaluate
      double cprice = 0;
      // Trendlines
      if(OType == OBJ_TREND )
      {
         bool ray = ObjectGet(label, OBJPROP_RAY);
         if(!ray)
         {
            datetime x1 = ObjectGet(label, OBJPROP_TIME1);
            datetime x2 = ObjectGet(label, OBJPROP_TIME2);
            if(x1 < now && x2 < now) continue;
         }
         cprice = GetCurrentPriceOfLine(label, shift);
         trendline = true;
      } else if(OType == OBJ_HLINE ) {
         cprice = ObjectGet(label, OBJPROP_PRICE1);
         hline = true;
      } else {
         continue;
      }
      // Breakouts and false breakouts of trendlines and hlines
      if(MA>cprice &&Ask<cprice)
      {OP_BUY_= true;
         if(trendline ||hline)  return (OP_BUY_); 
      } else if (MA<cprice &&Bid>cprice) {OP_SELL_ =true;
        if(trendline ||hline)  return (OP_SELL_);     
      }
     }
   return(EMPTY_VALUE);       
}

double GetCurrentPriceOfLine(string label, int shift)
{
   double price1 = ObjectGet(label, OBJPROP_PRICE1);
   double price2 = ObjectGet(label, OBJPROP_PRICE2);
   datetime d1   = ObjectGet(label, OBJPROP_TIME1);
   datetime d2   = ObjectGet(label, OBJPROP_TIME2);
   int shiftfrom = iBarShift(Symbol(), 0, d1, false);
   int shiftto   = iBarShift(Symbol(), 0, d2, false);
   int lapse = MathAbs(shiftto - shiftfrom);
   int distance = MathAbs(shift - shiftfrom);
   double pendiente = (price2 - price1) / lapse;
   double cpoint = price1 + (distance * pendiente);
   return(cpoint);
}
  //-------------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   int    res;

//--------------------------------------------------------------------+
//---- buy conditions 
 if(OP_BUY_&&b_1)
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-(StopLoss*Point),Ask+TakeProfit*Point," VV",MAGIC,0,Green);
      b_1=false; s_1=true; 
      return;
     }  

//---- sell conditions
     if(OP_SELL_ &&s_1)
 {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+(StopLoss*Point),Bid-TakeProfit*Point," VV",MAGIC,0,Red);
        s_1=false;b_1=true;
      return;
     } 
//----
  }

//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void start()
  {
//---- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
  }   

//+------------------------------------------------------------------+
//|---------------------------// END //------------------------------|
//+------------------------------------------------------------------+
Warstein
Warstein
  • www.mql5.com
Профиль трейдера
 

Cari professionisti. Cosa devo fare prima o dopo l'installazione di MT4 in modo che in seguito la cronologia delle quotazioni venga scritta/letta da qualsiasi disco tranne quello di sistema o non è possibile?

MT4 da tutti i broker scarica tutto in C:-Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (rispettivamente per ogni broker e per ogni loro terminale). Due MT4 su due broker per 3-4 coppie hanno consumato 25GB, cioè tutta la memoria libera. Anche le citazioni necessarie sono caricate nel tester C:\Users\.......\tester\history.

Per favore, aiutatemi a consigliare senza tener conto della reinstallazione di Windows (ho 7) con la riallocazione delle dimensioni del disco. Forse sto facendo qualcosa di sbagliato? Se me lo sono perso ed è già stato discusso da qualche parte - per favore lanciami un link...

Grazie in anticipo.

 
piranija:

Cari professionisti. Cosa devo fare prima o dopo l'installazione di MT4 in modo che la cronologia delle quotazioni venga scritta/letta da qualsiasi disco tranne quello di sistema o non è possibile?

MT4 da tutti i broker scarica tutto in C:-Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (rispettivamente per ogni broker e per ogni loro terminale). Due MT4 su due broker per 3-4 coppie hanno consumato 25 GB, cioè tutta la memoria libera. Anche le citazioni necessarie sono caricate nel tester C:\Users\.......\tester\history.

Per favore, aiutatemi a consigliare senza tener conto della reinstallazione di Windows (ho 7) con la riallocazione delle dimensioni del disco. Forse sto facendo qualcosa di sbagliato? Se me lo sono perso ed è già stato discusso da qualche parte - per favore lanciami un link...

Grazie in anticipo.

Basta copiare l' intera cartella del terminale in un'unità non di sistema, creare un collegamento ad essa e scrivere lo switch /portable


Motivazione: