Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1139

 
kuznat399:
Gibt es Roboter für Androiden?


Es gibt kein Autotrading in der mobilen Version von Metatrader und es ist unwahrscheinlich, dass es in absehbarer Zeit erscheinen wird. Wenn Sie den Roboter von Ihrem Telefon aus steuern möchten, benötigen Sie einen VPS, der das Terminal mit dem Roboter hostet, sowie eine Software für den Fernzugriff auf Ihr Telefon.
 
Können Sie mir sagen, ob die Visualisierung in der Testversion (Build 1065) nicht angezeigt wird - kann dies behoben werden?
 
Ich öffne zehn Wochencharts von Währungspaaren im MT5 und 800 Megabyte Tick-Historie werden in das Terminal geladen. Sie wird ständig geladen, obwohl sich die Karten kaum ändern. Die Frage ist, warum ich eine Tick-Historie benötige, wenn ich nur Wochencharts verwende? Übrigens, auf MT4 öffnen sich Wochencharts sofort und ohne Verzögerung.
 
sober:
Ich öffne zehn Wochencharts von Währungspaaren im MT5 und das Terminal lädt 800 Megabyte Tick-Historie. Sie wird ständig geladen, obwohl sich die Karten kaum ändern. Die Frage ist, warum ich eine Tick-Historie benötige, wenn ich nur Wochencharts verwende? Übrigens, auf MT4 öffnen sich Wochencharts sofort und ohne Verzögerung.


dies ist eine Funktion von mt5 - laden Sie alles auf m1 und bauen Sie dann den gewünschten Zeitraum... ....

und somit jedes Mal, für jedes Symbol

 
Es gibt zwei Plug-in-Blöcke für MT5 (Signal- und Orderplatzierungsblock und Trailing-Block). Ich habe es in MQL5 aufgenommen. Ich habe die Dateien "MQL5\Include\Expert\Signal" und "MQL5\Include\Expert" platziert. Ich bitte um Hilfe.
 

Die Idee des EA ist es, zu kaufen oder zu verkaufen, wenn der Preis eine horizontale Ebene oder eine manuell gezogene Trendlinie berührt. Ich habe einen EA aus verschiedenen funktionierenden EAs und Indikatoren erstellt. Aber der EA funktioniert nicht. Oder besser gesagt, er eröffnet nur SELL ohne ein Signal beim ersten Tick. Was ist los?

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

//| |

//| Copyright © 2010, MetaQuotes Software Corp.

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

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

#define MAGIC 131313 //Eingangskanal öffnen

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



extern inttern TF=15;


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

extern int StopLoss = 300;

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



extern double TakeProfit = 3000;

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


extern int Per_MA= 20;



//---- Konstanten


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


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

Offene Positionen berechnen //|

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

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

if(OrderType()==OP_SELL) sells++;

}

}

//---- Rücksendeauftragsvolumen

if(Käufe>0) return(Käufe);

sonst return(-sells);

}

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

//| Berechnung der optimalen Losgröße |

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

double LotsOptimized()

{

Doppellose=Lose;

int orders=HistoryTotal(); // Summe der historischen Aufträge

int losses=0; // Anzahl der Verlustaufträge ohne Pause

//---- Losgröße auswählen

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

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

//---- berechnet die Anzahl der Verlustaufträge ohne Unterbrechung

if(DecreaseFactor>0)

{

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

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Fehler in der Historie!"); break; }

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

//----

if(OrderProfit()>0) break;

if(OrderProfit()<0) Verluste++;

}

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

}

//---- return lot size

if(Los<0,01) Los=0,01;

zurück(lot);

}

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

/* dieser Teil des Indikators

int CheckBreakoutLines(int shift)

{

// Objekte insgesamt

int obj_total = ObjectsTotal();

// Uhrzeit des Taktes

datetime now = Time[shift];

// Iterieren

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

{

// Objektname

string label = ObjectName(i);

// Typen

int OType = ObjectType(label);

bool trendline = false;

bool hline = false;

// Zu bewertender Preis

double cprice = 0;

// Trendlinien

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 < jetzt && x2 < jetzt) weiter;

}

cprice = GetCurrentPriceOfLine(label, shift);

Trendlinie = true;

} else if(OType == OBJ_HLINE ) {

cprice = ObjectGet(label, OBJPROP_PRICE1);

hline = true;

} sonst {

weiter;

}

// Ausbrüche und falsche Ausbrüche von Trendlinien und h-Linien

if(MA>cPreis &&Ask<cPreis)

{

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

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

if(Trendlinie) { 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);

zurück(cpoint);

}


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

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

//| Prüfung auf offene Auftragsbedingungen |

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

void CheckForOpen()

{

int res;


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

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

//---- Kaufbedingungen

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;

Rückkehr;

}


//---- Verkaufsbedingungen

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;

Rückkehr;

}

//----

}


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

//| Startfunktion |

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

void start()

{

//---- check für Geschichte und Handel

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

//---- berechnet offene Aufträge nach aktuellem Symbol

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

}


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

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

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

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

Die Idee des EA ist es, zu kaufen oder zu verkaufen, wenn der Preis eine horizontale Ebene oder eine manuell gezogene Trendlinie berührt. Ich habe einen EA aus verschiedenen funktionierenden EAs und Indikatoren erstellt. Aber der EA funktioniert nicht. Oder besser gesagt, er eröffnet nur SELL ohne ein Signal beim ersten Tick. Was ist los?

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

//| |

//| Copyright © 2010, MetaQuotes Software Corp.

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

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

#define MAGIC 131313 //Eingangskanal öffnen

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



extern inttern TF=15;


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

extern int StopLoss = 300;

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



extern double TakeProfit = 3000;

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


extern int Per_MA= 20;



//---- Konstanten


#define OP_BUY_ 0

#define OP_SELL_ 1

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

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

//---- check für Geschichte und Handel

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

//---- berechnet offene Aufträge nach aktuellem Symbol

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

}


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

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

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

Ich habe das Programm in den Editor geladen und die leeren Zeilen gelöscht. Es wurde möglich, mit einem Blick zu erfassen. Drücken Sie die SRC-Taste und fügen Sie ein. Hier ist das Ergebnis. 1) Warum sollten Sie definieren müssen

#define  OP_BUY_  0
#define  OP_SELL_ 1

wenn wir bereits OP_BUY=0 und OP_SELL=1 haben

2) Die Wurzel des Übels liegt in diesem Fragment. Ein und dieselbe Bedingung (MA>cprice &&Ask<cprice) wird zweimal geprüft, und es werden unterschiedliche Entscheidungen getroffen.

      // 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) Danach führt jeder Zweig Prüfungen durch, aber das Ergebnis ist immer noch dasselbe

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

Im Allgemeinen kann die obige Zeichenkette wie folgt vereinfacht und geschrieben werden

          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:

Ich habe das Programm in den Editor geladen und die leeren Zeilen gelöscht. Es wurde möglich, mit einem Blick zu erfassen. Drücken Sie die SRC-Taste und fügen Sie ein. Hier ist das Ergebnis. 1) Warum sollten Sie definieren müssen

wenn wir bereits OP_BUY=0 und OP_SELL=1 haben

2) Die Wurzel allen Übels liegt in diesem Fragment. Ein und dieselbe Bedingung (MA>cprice &&Ask<cprice) wird zweimal geprüft, und es werden unterschiedliche Entscheidungen getroffen.

3) Danach führt jeder Zweig Prüfungen durch, aber das Ergebnis ist immer noch dasselbe

Die obige Zeile kann wie folgt vereinfacht und geschrieben werden


Danke für die Antwort, aber es öffnet sich immer noch nur SELL, wie ich es sehe, da OP_SELL = 1. Diese Bedingung ist immer erfüllt. Ich habe ihn folgendermaßen umgeschrieben

Die Aufträge haben aufgehört sich zu öffnen, meiner Meinung nach funktioniert int CheckBreakoutLines(int shift) nicht.

//+------------------------------------------------------------------+
//|                      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
Профиль трейдера
 

Liebe Fachleute. Was muss ich vor oder nach der Installation von MT4 tun, damit der Kursverlauf anschließend von jeder beliebigen Festplatte außer der Systemfestplatte geschrieben/gelesen werden kann, oder ist dies NICHT möglich?

MT4 von allen Brokern speichert alles in C:\Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (für jeden Broker bzw. für jedes seiner Terminals). Zwei MT4 bei zwei Brokern für 3-4 Paare verschlangen 25 GB, d.h. den gesamten freien Speicher. Auch die erforderlichen Anführungszeichen werden in das Prüfprogramm C:\Users\.......\tester\history geladen.

Bitte helfen Sie mit Ratschlägen, die eine Neuinstallation von Windows (ich habe 7) mit Neuzuweisung von Festplattengrößen nicht berücksichtigen. Vielleicht mache ich etwas falsch? Wenn ich es verpasst habe und es schon irgendwo besprochen wurde, bitte ich um einen Link...

Vielen Dank im Voraus.

 
piranija:

Liebe Fachleute. Was muss ich vor oder nach der Installation von MT4 tun, damit der Kursverlauf anschließend von jeder beliebigen Festplatte außer der Systemfestplatte geschrieben/gelesen werden kann, oder ist dies NICHT möglich?

MT4 von allen Brokern speichert alles in C:\Users\MAN\AppData\Roaming\MetaQuotes\Terminal\100.......001\history\downloads (für jeden Broker bzw. für jedes seiner Terminals). Zwei MT4 bei zwei Brokern für 3-4 Paare verschlangen 25GB, d.h. den gesamten freien Speicher. Auch die erforderlichen Anführungszeichen werden in das Prüfprogramm C:\Users\.......\tester\history geladen.

Bitte helfen Sie bei der Beratung, ohne Berücksichtigung der Neuinstallation von Windows (ich habe 7) mit Neuzuweisung der Festplattengrößen. Vielleicht mache ich etwas falsch? Wenn ich es verpasst habe und es schon irgendwo besprochen wurde, bitte ich um einen Link...

Vielen Dank im Voraus.

Kopieren Sie einfach den gesamten Terminal-Ordner auf ein systemfremdes Laufwerk, erstellen Sie eine Verknüpfung dazu und schreiben Sie den Schalter /portable