Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 498

 
Artyom Trishkin:

Kein Fehler: eine Schleife mit globalem i (blau) und eine weitere Schleife mit lokalem i (rot)

Der Compiler wird sich beschweren
 
pako:
Der Compiler wird fluchen.
Ja, das wird es. Aber es passt besser zur Frage als je zuvor ;)
 
Artyom Trishkin:

Kein Fehler: eine Schleife mit globalem i (blau) und eine weitere Schleife mit lokalem i (rot)

Sogar ich verstehe es... Das i (blau) ist die Wohnung und das i (rot) ist die Toilette. :))))

 
Guten Tag, können Sie beraten, wie man ZigZag in EA.EA im Allgemeinen arbeiten, aber links Signale eine Menge, geklebt, um es ZZ, aufgehört zu arbeiten. Kann nicht öffnen Datei ZigZag auf den Test, keine Debugging überhaupt, auf der Demo nicht kaufen eine einzige Bestellung, was gibt es zu tun?
xtern string   ZigZag                       = "Данные ZigZag";
extern int      InpDepth                      = 20;
extern int      InpDeviation                  = 5;
extern int      InpBackstep                   = 3;

double MacdCurrent,SignalCurrent,SignalMAPrevious,SignalMAThis,
       PriceCurrentOpen,PriceCurrentClose,SignalParabolic,ZZThis,ZZPrevious;
int    ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
 if (Digits==3||Digits==5)
 {
  slippage*=10;
 }   
 return(INIT_SUCCEEDED);
} 
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
 datetime EaStartTime = StringToTime(StartTime);  // время начала работы советника
 datetime EaEndTime = StringToTime(EndTime);      // время окончания работы советника
 datetime CurrTime = TimeCurrent();               // это если нужно взять время терминала
 if (CurrTime < EaStartTime || CurrTime >= EaEndTime)
  return;                                         // если еще не время торговать - выход
 {
  MacdCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_MAIN,0);
  SignalCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,Macd_Applied_Price,MODE_SIGNAL,0);
  SignalMAPrevious=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price,1);
  SignalMAThis=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,MA_Applied_Price,0);
  SignalParabolic=iSAR(NULL,0,InpSARStep,InpSARMaximum,0);
  ZZThis=iCustom(NULL,0,ZigZag,InpDepth,InpDeviation,InpBackstep,0,0);
  ZZPrevious=iCustom(NULL,0,ZigZag,InpDepth,InpDeviation,InpBackstep,0,4);
   if (CountTrades()==0) CheckForOpen();
 }
}  
void CheckForOpen()
 
Alexey Viktorov:

Sogar ich habe es herausgefunden... Das i (blau) ist die Wohnung und das i (rot) ist die Toilette. :))))

Sie sollten ein populärwissenschaftliches Buch schreiben, Sie haben offensichtlich ein Talent, Dinge einfach zu erklären ))

Mit einer erklärten

#property strict

wird lediglich eine Warnung ausgeben, dass das lokale i das globale überschreibt.

Deklaration von 'i' verdeckt globale Deklaration in Zeile 20 test.mq4 25 13

 
Alexey Volchanskiy:

Sie sollten ein populärwissenschaftliches Buch schreiben, Sie haben offensichtlich ein Talent, Dinge einfach zu erklären ))

Mit einer erklärten

wird lediglich eine Warnung ausgeben, dass das lokale i das globale überschreibt.

Deklaration von 'i' verdeckt globale Deklaration in Zeile 20 test.mq4 25 13

Meine Leser haben ein ausgeprägtes Talent für solch einfache Erklärungen. Ich habe keine solchen Talente... Ein Mann ist kein Schriftsteller, er ist ein Leser...
 
Alexey Viktorov:
Das ist es, was Artyom erklärt hat. Ich habe keine solchen Talente... Sie sind kein Schriftsteller, Sie sind ein Leser...
Na ja... wir sind sibirische Wattebäuschchen ;)
 
Nickolay72:
Hallo, können Sie mir sagen, wie man ZigZag in der EA laufen, im Allgemeinen, arbeiten, aber die linken Signale eine Menge, geklebt, um es ZZ, aufgehört zu arbeiten. Kann nicht öffnen Sie die Datei ZigZag auf den Test, Debugging überhaupt nicht gehen, auf der Demo nicht kaufen, eine einzige Bestellung. was gibt es zu tun?

In den benutzerdefinierten Indikatoren ist eine DateiZigZag, wenn ja, ist es genau dort genannt, wie wenn Sie es aus dem EA zugreifen?

  ZZThis=iCustom(NULL,0,ZigZag,InpDepth,InpDeviation,InpBackstep,0,0);
  ZZPrevious=iCustom(NULL,0,ZigZag,InpDepth,InpDeviation,InpBackstep,0,4);
 
Vladimir Zubov:

Wenn ja, befindet sich die DateiZigZag in den benutzerdefinierten Indikatoren und wird sie so aufgerufen, wie sie beim Zugriff über den Expert Advisor aufgerufen wird?

Sie sollten den Dateinamen in Anführungszeichen ohne die Erweiterung angeben. Es ist seltsam, es lässt sich gut kompilieren. Was war die ursprünglicheZigZag-Variable?

ZZThis=iCustom(NULL,0,"ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);
 

Ausgleichen oder Kompensieren von einzelnen Minuspunkten in einer fünf

es gibt eine Funktion, aber sie funktioniert nicht

//+------------------------------------------------------------------+
//| Считаем лот в зависимости от полученного профита                 |
//+------------------------------------------------------------------+
double Volume(void)
  {
   double lot=Lots;
//--- Получим доступ к истории
   HistorySelect(0,TimeCurrent());
//--- Сделки в истории
   int orders=HistoryDealsTotal();
//--- Тикет последней сделки  
   ulong ticket=HistoryDealGetTicket(orders-1);
   if(ticket==0)
     {
      Print("Нет сделок в истории! ");
      lot=Lots;
     }
//--- Профит сделки
   double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
//--- Лот сделки
   double lastlot=HistoryDealGetDouble(ticket,DEAL_VOLUME);
//--- Профит отрицательный
   if(profit<0.0)
     {
      //--- Увеличиваем следующий лот
      lot=lastlot*KLot;
      Print(" Cделка закрыта по стопу! ");
     }
//--- Приводим лот к минимальному
   double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   if(lot<minvol)
      lot=minvol;
//--- Если лот больше максимального то начальный лот
   if(lot>MaxLot)
      lot=Lots;
//--- Возвращаем торговый объем
   return(lot);
  }
//+------------------------------------------------------------------+
//| Смотрим тип последней закрытой сделки                            |
//+------------------------------------------------------------------+
int LastDealType(void)
  {
   int type=0;
//--- Получим доступ к истории
   HistorySelect(0,TimeCurrent());
//--- Сделки в истории
   int orders=HistoryDealsTotal();
//--- Тикет последней сделки  
   ulong ticket=HistoryDealGetTicket(orders-1);
//--- Нет сделок в истории
   if(ticket==0)
     {
      Print("Нет сделок в истории! ");
      type=0;
     }
   if(ticket>0)
     {
      //--- Последняя сделка BUY 
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
        {
         type=2;
        }
      //--- Последняя сделка SELL
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
        {
         type=1;
        }
     }
//---
   return(type);
  }
Grund der Beschwerde: