Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1158

 

Favor informar onde se encontra o erro.

Código:

//+------------------------------------------------------------------+
//|                                                     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);
  }

A função está sendo avaliada

int iBars(string symbol,int tf)

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

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

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

Favor informar onde se encontra o erro.

Código:

A função está sendo avaliada

Tente colocar seu cursor sobre iBars e clique em F1, e leia o que ele diz
 
Alekseu Fedotov:
Tente colocar seu cursor sobre iBars e clique em F1, e leia o que ele diz
Entendi. Tudo funciona. Estou descrevendo aqui a função iBars, enquanto já está descrita em
MQL4_to_MQL5.mqh
 

Olá,

Eu tenho um indicador que salva dados em um arquivo, como fazer vários indicadores em um gráfico escrever dados em arquivos diferentes para leitura a partir deles se a reinicialização acontecer ?

O indicador está na janela principal, se estiver em uma janela separada, eu seria capaz de anexar o nome do arquivo ao número da janela. Certamente deve haver alguma forma simples,

Obrigado!

 
Vitaliy Sendyaev:

Olá,

Eu tenho um indicador que salva dados em um arquivo, como fazer vários indicadores em um gráfico escrever dados em arquivos diferentes para leitura a partir deles se a reinicialização acontecer ?

O indicador está na janela principal, se estiver em uma janela separada, eu seria capaz de anexar o nome do arquivo ao número da janela. Certamente deve haver alguma forma simples,

Obrigado!

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

E isso é algo a ser colocado no nome do arquivo.

 
KhuKhu:

Olá.

Você poderia ajudar a corrigir dois erros.

1. 1 ordem deve abrir em uma barra (agora abre aleatoriamente)

2. Para abrir corretamente 1 ordem com um volume definido (agora está abrindo com volumes diferentes)

A idéia é que esta EA abra um acordo de 10% do depósito em um bar (eu esperava que sim), mas isso não está acontecendo.

Mas isso não acontece.

1. Os fundos gratuitos são

AccountEquity();


2. esta entrada

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

provavelmente deveria ter este aspecto:

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

E isto é algo a ser colocado no nome do arquivo.


É necessário mudar o nome do arquivo todas as vezes à mão, certamente há uma saída, para gerar o nome automaticamente ?

 
Vitaliy Sendyaev:

Você tem que mudar o nome do arquivo manualmente toda vez, certamente existe uma maneira de gerar o nome automaticamente...

Por que todas as vezes? Somente quando o próximo indicador for carregado na tabela.

 
Vitaliy Sendyaev:

Olá,

Eu tenho um indicador que salva dados em um arquivo, como fazer vários indicadores em um gráfico escrever dados em arquivos diferentes para leitura a partir deles se a reinicialização acontecer ?

O indicador está na janela principal, se estiver em uma janela separada, eu seria capaz de anexar o nome do arquivo ao número da janela. Certamente deve haver alguma forma simples,

Obrigado!

No formulário OnInit I Nome do Arquivo = Nome do Símbolo + Horário
 
STARIJ:
Eu formulário Nome do arquivo = Nome do símbolo + Prazo no OnInit

Tanto quanto eu entendo, ele precisa executar várias cópias do indicador a partir de um gráfico, para que eles escrevam em arquivos diferentes.

Razão: