Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1695

 
MakarFX #:

Danke, Makar, ich werde es an den EA anhängen und es mir ansehen.

 
MakarFX #:

Makar danke Alles funktioniert genau so, wie ich es wollte. Ich danke Ihnen!!!

 
MakarFX #:

Ich möchte, dass überflüssige Zeilen von selbst gelöscht werden, z. B. nach 24 Stunden.

Vielen Dank im Voraus!!!

 
EVGENII SHELIPOV #:

Ich möchte, dass überflüssige Zeilen von selbst gelöscht werden, z. B. nach 24 Stunden.

Vielen Dank im Voraus!!!

int OnInit()
  {
   if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0)
     {
      ObjectCreate(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StartTime*3600),0);
      ObjectSetInteger(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue);
      ObjectCreate(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StopTime*3600),0);
      ObjectSetInteger(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue);
     }
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0)
     {
      if(ObjectFind(0,"Начало торговли"+TimeToString(Time[1],TIME_DATE))==0)
        {
         ObjectMove(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),0,Time[0]+(StartTime*3600),0)
         ObjectMove(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),0,Time[0]+(StopTime*3600),0)
        }
      if(CountTrade(0)==0 && CountTrade(1)==0 && TradeSignal()==0)
         SendFirsOrder(0);
      if(CountTrade(1)==0 && CountTrade(0)==0 && TradeSignal()==1)
         SendFirsOrder(1);
     }

   //-----
  }
 
Nerd Trader #:

Aus der Hilfe:
"Um sicherzustellen, dass Sie eine sich nicht wiederholende Sequenz erhalten, verwenden Sie MathSrand(GetTickCount()), da GetTickCount()
seit dem Start des Betriebssystems ansteigt und seit 49 Tagen nicht mehr wiederholt wird".

Verwenden Sie einen Taschenrechner, um zu sehen, wie viele Versuche nötig sind, um den ersten wiederholten Wert (einen der zuvor erzeugten) für rand() zu erhalten.

 

Aus meiner Erfahrung - schreiben Sie nicht kyrillisch

Eröffnung ECN MT4

/+----------------------------------------------------------------------------+
//|    Функция открытия ордера  (c) BeerGod 2015                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" - текущий символ)                   |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - MagicNumber                                                        |
//+----------------------------------------------------------------------------+
//  OpenPosition(string symbol,int operation,double volume,int slippage,double stoploss,double takeprofit,string comment,int magic,color);
int OpenPosition(string sy, int op, double ll, int Slippage, int sl, int tp, string comment, int mn,color Color)
  {
   if(op == 0)  // открытие BUY
     {
      // проверяем доступность свободных средств
      if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))
        {
         Print(sy," ",ll," It is impossible to open the order Buy, not enough money.");
         return(0);
        }
      RefreshRates();

      // открываем ордер
      int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,comment,mn,0,Color);
      if(ticketbuy<0)
         Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError());
      else
         Print(sy," OpenPosition. OrderSend Buy successfully");

      //      Sleep (Pause);

      // модифицируем ордер (выставляем тейпрофит и стоплосс)
      if(sl !=0 || tp !=0)
        {
         //--- вычисленные значения цен SL и TP должны быть нормализованы
         double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
         double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
         //--- если входящие значения ноль то заменяем цену модификации на ноль
         if(sl == 0)
            BSLoss = 0;
         if(tp == 0)
            BTProfit = 0;

         bool resbuy = OrderModify(ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,clrNONE);
         if(!resbuy)
            Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError());
         else
            Print(sy," OpenPosition. OrderModify Buy successfully");
        }
     }

   if(op == 1)   // открытие Sell
     {
      // проверяем доступность свободных средств
      if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))
        {
         Print(sy," ",ll," It is impossible to open the order Sell, not enough money.");
         return(0);
        }
      RefreshRates();

      // открываем ордер
      int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,comment,mn,0,Color);
      if(ticketsell<0)
         Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError());
      else
         Print(sy," OpenPosition. OrderSend Sell successfully");

      //      Sleep (Pause);

      // модифицируем ордер (выставляем тейпрофит и стоплосс)
      if(sl !=0 || tp !=0)
        {
         //--- вычисленные значения цен SL и TP должны быть нормализованы
         double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
         double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
         //--- если входящие значения ноль то заменяем цену модификации на ноль
         if(sl == 0)
            SSLoss = 0;
         if(tp == 0)
            STProfit = 0;

         bool ressell = OrderModify(ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,clrNONE);
         if(!ressell)
            Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError());
         else
            Print(sy," OpenPosition. OrderModify Sell successfully");
        }
     }
   return (0);
  }
//--- End ---
 

Einen guten Tag an Sie alle!

Bitte geben Sie an, wo Sie die grundlegenden Informationen über dynamische zweidimensionale Arrays in MQL4 finden können. Mich interessiert vor allem, wie man sie erstellt. Wie wird es verwendet? Welche Funktionen sind für sie anwendbar?
Ich danke Ihnen.

 
ANDREY #:

Einen guten Tag an Sie alle!

Bitte geben Sie an, wo Sie die grundlegenden Informationen über dynamische zweidimensionale Arrays in MQL4 finden können. Mich interessiert vor allem, wie man sie erstellt. Wie wird es verwendet? Welche Funktionen sind für sie anwendbar?
Ich danke Ihnen.

Dokumentation Arrays

Und die Dynamik bezieht sich nur auf die erste Dimension. Die anderen Dimensionen sind statisch.
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
 
Valeriy Yastremskiy #:

Dokumentation Arrays

Und zwar dynamisch nur in der ersten Dimension. Die anderen Dimensionen sind statisch.

CArray und dergleichen - können Sie dynamische Arrays beliebiger Dimension erstellen, die in jeder Dimension veränderbar sind.

Документация по MQL5: Стандартная библиотека / Коллекции данных
Документация по MQL5: Стандартная библиотека / Коллекции данных
  • www.mql5.com
Коллекции данных - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin #:

CArray und dergleichen - können Sie dynamische Arrays beliebiger Dimension erstellen, die in jeder Dimension veränderbar sind.

Ich danke Ihnen für Ihre Hilfe. Aber Sie geben mir einen Link zu den Informationen über dynamische Arrays in MQL5. Ich bin noch dabei, MQL4 zu beherrschen , oder ist der Code von MQL5 auch fürMQL4 geeignet, was dynamische Arrays angeht ?
Danke
.

Grund der Beschwerde: