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

 

Bitte teilen Sie uns mit, wo der Fehler liegt.

Code:

//+------------------------------------------------------------------+
//|                                                     InitMQL4.mqh |
//|                                                 Copyright DC2008 |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "keiji"
#property copyright "DC2008"
#property link      "https://www.mql5.com"
//--- Объявление констант
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>
//---
//#define extern input
#define OBJPROP_TIME1 300 //datetime Получает/устанавливает первую координату времени 
#define OBJPROP_PRICE1 301 //double Получает/устанавливает первую координату цены 
#define OBJPROP_TIME2 302 //datetime Получает/устанавливает вторую координату времени 
#define OBJPROP_PRICE2 303 //double Получает/устанавливает вторую координату цены 
#define OBJPROP_TIME3 304 //datetime Получает/устанавливает третью координату времени 
#define OBJPROP_PRICE3 305 //double Получает/устанавливает третью координату цены 
//---
//OBJPROP_COLOR 6 color Получает/устанавливает цвет объекта 
//OBJPROP_STYLE 7 int Получает/устанавливает стиль линии объекта 
//OBJPROP_WIDTH 8 int Получает/устанавливает ширину линии объекта 
//OBJPROP_BACK 9 bool Получает/устанавливает флаг фонового отображения объекта 
//---
#define OBJPROP_RAY 310 //bool Получает/устанавливает флаг свойства луч для объектов типа OBJ_TREND и ему подобных 
//---
//OBJPROP_ELLIPSE 11 bool Получает/устанавливает флаг отображения полного эллипса для объекта OBJ_FIBOARC 
//OBJPROP_SCALE 12 double Получает/устанавливает значение масштаба объекта 
//OBJPROP_ANGLE 13 double Получает/устанавливает значение угла в градусах объекта OBJ_TRENDBYANGLE 
//OBJPROP_ARROWCODE 14 int Получает/устанавливает код стрелки объекта OBJ_ARROW. Может быть одним из символов wingdings или один из предопределенных кодов стрелок 
//OBJPROP_TIMEFRAMES 15 int Получает/устанавливает свойство отображения объекта на различных периодах. Может быть одним или комбинацией нескольких из констант видимости объекта. 
//OBJPROP_DEVIATION 16 double Получает/устанавливает размер отклонения для объекта OBJ_STDDEVCHANNEL 
//OBJPROP_FONTSIZE 100 int Получает/устанавливает размер шрифта для объектов OBJ_TEXT и OBJ_LABEL 
//OBJPROP_CORNER 101 int Получает/устанавливает номер угла привязки для объекта OBJ_LABEL. Принимает значения 0-3 
//OBJPROP_XDISTANCE 102 int Получает/устанавливает расстояние X-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL 
//OBJPROP_YDISTANCE 103 int Получает/устанавливает расстояние Y-координаты в пикселях относительно угла привязки для объекта OBJ_LABEL 
//---
#define OBJPROP_FIBOLEVELS 200 //int Получает/устанавливает число уровней объекта Fibonacci. Может быть от 1 до 32 
//---
//OBJPROP_LEVELCOLOR 201 color Получает/устанавливает цвет линии уровня объекта 
//OBJPROP_LEVELSTYLE 202 int Получает/устанавливает стиль линии уровня объекта 
//OBJPROP_LEVELWIDTH 203 int Получает/устанавливает ширину линии уровня объекта 
#define  OBJPROP_FIRSTLEVEL1 211 //int Получает/устанавливает значения уровня объекта Fibonacci с индексом n. Индекс n может быть от 0 до (количество уровней -1), но не более 31 
#define  OBJPROP_FIRSTLEVEL2 212
#define  OBJPROP_FIRSTLEVEL3 213
#define  OBJPROP_FIRSTLEVEL4 214
#define  OBJPROP_FIRSTLEVEL5 215
#define  OBJPROP_FIRSTLEVEL6 216
#define  OBJPROP_FIRSTLEVEL7 217
#define  OBJPROP_FIRSTLEVEL8 218
#define  OBJPROP_FIRSTLEVEL9 219
#define  OBJPROP_FIRSTLEVEL10 220
#define  OBJPROP_FIRSTLEVEL11 221
#define  OBJPROP_FIRSTLEVEL12 222
#define  OBJPROP_FIRSTLEVEL13 223
#define  OBJPROP_FIRSTLEVEL14 224
#define  OBJPROP_FIRSTLEVEL15 225
#define  OBJPROP_FIRSTLEVEL16 226
#define  OBJPROP_FIRSTLEVEL17 227
#define  OBJPROP_FIRSTLEVEL18 228
#define  OBJPROP_FIRSTLEVEL19 229
#define  OBJPROP_FIRSTLEVEL20 230
#define  OBJPROP_FIRSTLEVEL21 231
#define  OBJPROP_FIRSTLEVEL22 232
#define  OBJPROP_FIRSTLEVEL23 233
#define  OBJPROP_FIRSTLEVEL24 234
#define  OBJPROP_FIRSTLEVEL25 235
#define  OBJPROP_FIRSTLEVEL26 236
#define  OBJPROP_FIRSTLEVEL27 237
#define  OBJPROP_FIRSTLEVEL28 238
#define  OBJPROP_FIRSTLEVEL29 239
#define  OBJPROP_FIRSTLEVEL30 240
#define  OBJPROP_FIRSTLEVEL31 241
//---
#define MODE_OPEN 0
#define MODE_CLOSE 3
#define MODE_VOLUME 4 
#define  MODE_REAL_VOLUME 5
//---
#define DOUBLE_VALUE 0
#define FLOAT_VALUE 1
#define LONG_VALUE INT_VALUE
//---
#define  CHART_BAR 0
#define  CHART_CANDLE 1
//---
#define MODE_ASCEND 0
#define MODE_DESCEND 1
//---
#define MODE_LOW 1
#define MODE_HIGH 2
#define MODE_TIME 5
#define MODE_POINT 11
#define MODE_TICKVALUE 16
#define MODE_TICKSIZE 17
#define MODE_SWAPLONG 18
#define MODE_SWAPSHORT 19
#define MODE_STARTING 20
#define MODE_EXPIRATION 21
#define MODE_TRADEALLOWED 22
#define MODE_MINLOT 23
#define MODE_LOTSTEP 24
#define MODE_MAXLOT 25
#define MODE_SWAPTYPE 26
#define MODE_PROFITCALCMODE 27
#define MODE_MARGINCALCMODE 28
#define MODE_MARGININIT 29
#define MODE_MARGINMAINTENANCE 30
#define MODE_MARGINHEDGED 31
#define MODE_MARGINREQUIRED 32
#define MODE_FREEZELEVEL 33
//---
#define EMPTY -1
//---
#define CharToStr CharToString
#define StrToDouble StringToDouble
#define StrToInteger (int)StringToInteger
#define StrToTime StringToTime
#define StringSetChar StringSetCharacter
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES TFMigrate(int tf)
  {
   switch(tf)
     {
      case 0: return(PERIOD_CURRENT);
      case 1: return(PERIOD_M1);
      case 5: return(PERIOD_M5);
      case 15: return(PERIOD_M15);
      case 30: return(PERIOD_M30);
      case 60: return(PERIOD_H1);
      case 240: return(PERIOD_H4);
      case 1440: return(PERIOD_D1);
      case 10080: return(PERIOD_W1);
      case 43200: return(PERIOD_MN1);

      case 2: return(PERIOD_M2);
      case 3: return(PERIOD_M3);
      case 4: return(PERIOD_M4);
      case 6: return(PERIOD_M6);
      case 10: return(PERIOD_M10);
      case 12: return(PERIOD_M12);
      case 16385: return(PERIOD_H1);
      case 16386: return(PERIOD_H2);
      case 16387: return(PERIOD_H3);
      case 16388: return(PERIOD_H4);
      case 16390: return(PERIOD_H6);
      case 16392: return(PERIOD_H8);
      case 16396: return(PERIOD_H12);
      case 16408: return(PERIOD_D1);
      case 32769: return(PERIOD_W1);
      case 49153: return(PERIOD_MN1);
      default: return(PERIOD_CURRENT);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
ENUM_MA_METHOD MethodMigrate(int method)
  {
   switch(method)
     {
      case 0: return(MODE_SMA);
      case 1: return(MODE_EMA);
      case 2: return(MODE_SMMA);
      case 3: return(MODE_LWMA);
      default: return(MODE_SMA);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
ENUM_APPLIED_PRICE PriceMigrate(int price)
  {
   switch(price)
     {
      case 1: return(PRICE_CLOSE);
      case 2: return(PRICE_OPEN);
      case 3: return(PRICE_HIGH);
      case 4: return(PRICE_LOW);
      case 5: return(PRICE_MEDIAN);
      case 6: return(PRICE_TYPICAL);
      case 7: return(PRICE_WEIGHTED);
      default: return(PRICE_CLOSE);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
ENUM_STO_PRICE StoFieldMigrate(int field)
  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }

//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
//enum MAIN_SIGNAL_MODE{ MODE_MAIN,         MODE_SIGNAL };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
//+------------------------------------------------------------------+
int DayOfWeek()
  {
   MqlDateTime tm;
   TimeCurrent(tm);
   return(tm.day_of_week);
  }
//+------------------------------------------------------------------+
int iBarShift(datetime barTime)
  {
   datetime lastbar[];
   datetime curr=(datetime)SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
   int res=CopyTime(NULL,NULL,curr,barTime,lastbar);
   if(res<=0)
     {
      Print("Getting High data is failed! Error",GetLastError());
      return(0);
     }
   return(res-1);
  }
//+------------------------------------------------------------------+  
double iFractalsMQL4(string symbol,
                     int tf,
                     int mode,
                     int shift)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int handle=iFractals(symbol,timeframe);
   if(handle<0)
     {
      Print("Объект iFractals не создан: Ошибка ",GetLastError());
      return(-1);
     }
   else
      return(CopyBufferMQL4(handle,mode-1,shift));
  }
//+------------------------------------------------------------------+ 
int Hour()
  {
   MqlDateTime tm;
   TimeCurrent(tm);
   return(tm.hour);
  }
//+------------------------------------------------------------------+  
int Minute()
  {
   MqlDateTime tm;
   TimeCurrent(tm);
   return(tm.min);
  }
//+------------------------------------------------------------------+
int iBars(string symbol,int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   int BARS=Bars(symbol,timeframe); 
   return(BARS);
  }

Die Funktion wird ausgewertet

int iBars(string symbol,int tf)

iBars ',' - unexpected token 
'_Symbol' - some operator expected

Не могу понять в чем проблема. Если в отдельном файле компилирую то все в порядке. Здесь выскакивает ошибка.

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
Александр:

Bitte teilen Sie uns mit, wo der Fehler liegt.

Code:

Die Funktion wird ausgewertet

Versuchen Sie, den Cursor auf iBars zu setzen und auf F1 zu klicken, und lesen Sie, was dort steht
 
Alekseu Fedotov:
Versuchen Sie, den Cursor auf iBars zu setzen und auf F1 zu klicken, und lesen Sie, was dort steht
Ich hab's. Alles funktioniert. Ich beschreibe die Funktion iBars hier, während sie bereits in
MQL4_to_MQL5.mqh
 

Hallo,

Ich habe einen Indikator, der Daten in einer Datei speichert. Wie kann man mehrere Indikatoren in einem Diagramm dazu bringen, Daten in verschiedene Dateien zu schreiben, um sie zu lesen, wenn eine Neuinitialisierung stattfindet?

Der Indikator befindet sich im Hauptfenster. Wenn er sich in einem separaten Fenster befindet, könnte ich den Dateinamen an die Fensternummer anhängen. Es muss doch einen einfachen Weg geben,

Danke!

 
Vitaliy Sendyaev:

Hallo,

Ich habe einen Indikator, der Daten in einer Datei speichert. Wie kann man mehrere Indikatoren in einem Diagramm dazu bringen, Daten in verschiedene Dateien zu schreiben, um sie zu lesen, wenn eine Reinitialisierung stattfindet?

Der Indikator befindet sich im Hauptfenster. Wenn er sich in einem separaten Fenster befindet, könnte ich den Dateinamen an die Fensternummer anhängen. Es muss doch einen einfachen Weg geben,

Danke!

input string prefix = "что-то";

Und das ist etwas, das man in den Dateinamen schreiben sollte.

 
KhuKhu:

Hallo.

Könnten Sie helfen, zwei Fehler zu korrigieren.

1. 1 Auftrag sollte auf einem Balken geöffnet werden (wird jetzt zufällig geöffnet)

2. Um 1 Auftrag mit einem bestimmten Volumen korrekt zu öffnen (jetzt wird er mit verschiedenen Volumen geöffnet)

Die Idee ist, dass dieser EA sollte ein Geschäft von 10% der Kaution auf einer Bar öffnen (ich hatte so gehofft), aber es ist nicht geschehen.

Aber das ist nicht der Fall.

1. Freie Mittel sind

AccountEquity();


2. dieser Eintrag

if (! NumberOfBarOpenLastPos(NULL,mper[tf_bar],OP_BUY, magic) ==0) 

sollte wahrscheinlich wie folgt aussehen:

if (NumberOfBarOpenLastPos(NULL,mper[tf_bar],OP_BUY, magic)!=0) 
 
Alexey Viktorov:

Und das ist etwas, das man in den Dateinamen schreiben muss.


Es ist notwendig, den Dateinamen jedes Mal von Hand zu ändern, gibt es nicht eine Möglichkeit, den Namen automatisch zu generieren?

 
Vitaliy Sendyaev:

Sie müssen den Namen der Datei jedes Mal manuell ändern. Gibt es nicht eine Möglichkeit, den Namen automatisch zu generieren?

Warum jedes Mal? Erst wenn der nächste Indikator in das Diagramm geladen wird.

 
Vitaliy Sendyaev:

Hallo,

Ich habe einen Indikator, der Daten in einer Datei speichert. Wie kann man mehrere Indikatoren in einem Diagramm dazu bringen, Daten in verschiedene Dateien zu schreiben, um sie zu lesen, wenn eine Neuinitialisierung stattfindet?

Der Indikator befindet sich im Hauptfenster. Wenn er sich in einem separaten Fenster befindet, könnte ich den Dateinamen an die Fensternummer anhängen. Es muss doch einen einfachen Weg geben,

Danke!

In OnInit I form File Name = Symbol Name + TimeFrame
 
STARIJ:
I form Dateiname = Symbolname + Zeitrahmen in OnInit

Soweit ich verstanden habe, müssen mehrere Kopien des Indikators in einem Diagramm ausgeführt werden, damit sie in verschiedene Dateien geschrieben werden.