-
ФорумРазделы
2018.09.01 16:00
#2
Все. Я нашел причину, НО ВСЕ ЕЩЕ НЕ УСТРАНИЛ.
Причина в том что мой компилятор не видит написанный код. Как будто код куда то слетает.. (может я слишком много кода написал..)
Ведь когда страница пустая и нет ни одного события и ни одной функции, то такую же ошибку выдает.
Пока что помогает только перезагрузка Windows.
2018.09.01 18:43
#3
Yuriy Vins:
Все. Я нашел причину, НО ВСЕ ЕЩЕ НЕ УСТРАНИЛ.
Причина в том что мой компилятор не видит написанный код. Как будто код куда то слетает.. (может я слишком много кода написал..)
Ведь когда страница пустая и нет ни одного события и ни одной функции, то такую же ошибку выдает.
Пока что помогает только перезагрузка Windows.
Что-то вы совсем делаете не то.
2018.09.04 12:46
#4
Yuriy Vins:
Все. Я нашел причину, НО ВСЕ ЕЩЕ НЕ УСТРАНИЛ.
Причина в том что мой компилятор не видит написанный код. Как будто код куда то слетает.. (может я слишком много кода написал..)
Ведь когда страница пустая и нет ни одного события и ни одной функции, то такую же ошибку выдает.
Пока что помогает только перезагрузка Windows.
Терминал установлен или скопирован?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
- Войти через Google
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
- Войти через Google
-
#4 081
Проблема с удвоением лота в советнике
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой удвоения лота если последняя сделка сработала в минус. Почему-то лот удваивается по два раза подряд. Вот скрин из тестера:
Помогите пожалуйста разобраться. За ранее огромное спасибо!
1 2015.01.02 09:00 sell 1 0.10 1.2053 1.2103 1.2003 0.00 2000.00
2 2015.01.02 22:23 t/p 1 0.10 1.2003 1.2103 1.2003 0.50 2000.50
3 2015.01.02 22:23 sell 2 0.10 1.2001 1.2051 1.1951 0.00 2000.50
4 2015.01.05 00:00 t/p 2 0.10 1.1951 1.2051 1.1951 0.50 2001.00
5 2015.01.05 00:00 buy 3 0.10 1.1948 1.1898 1.1998 0.00 2001.00
6 2015.01.05 00:02 s/l 3 0.10 1.1898 1.1898 1.1998 -0.50 2000.50
7 2015.01.05 00:02 sell 4 0.10 1.1898 1.1948 1.1848 0.00 2000.50
8 2015.01.05 00:39 s/l 4 0.10 1.1948 1.1948 1.1848 -0.50 2000.00
9 2015.01.05 00:39 buy 5 0.20 1.1948 1.1898 1.1998 0.00 2000.00
10 2015.01.05 14:34 s/l 5 0.20 1.1898 1.1898 1.1998 -1.00 1999.00
11 2015.01.05 14:34 sell 6 0.20 1.1898 1.1948 1.1848 0.00 1999.00
12 2015.01.05 22:40 s/l 6 0.20 1.1948 1.1948 1.1848 -1.00 1998.00
13 2015.01.05 22:40 buy 7 0.40 1.1948 1.1898 1.1998 0.00 1998.00
14 2015.01.06 12:27 s/l 7 0.40 1.1898 1.1898 1.1998 -2.01 1995.99
15 2015.01.06 12:27 sell 8 0.40 1.1898 1.1948 1.1848 0.00 1995.99
16 2015.01.06 19:18 s/l 8 0.40 1.1948 1.1948 1.1848 -2.00 1993.99
17 2015.01.06 19:18 buy 9 0.80 1.1948 1.1898 1.1998 0.00 1993.99
18 2015.01.06 22:09 s/l 9 0.80 1.1898 1.1898 1.1998 -4.00 1989.99
19 2015.01.06 22:09 sell 10 0.80 1.1898 1.1948 1.1848 0.00 1989.99
20 2015.01.07 12:55 t/p 10 0.80 1.1848 1.1948 1.1848 4.01 1994.00
21 2015.01.07 12:55 sell 11 1.60 1.1846 1.1896 1.1796 0.00 1994.00
22 2015.01.08 10:58 t/p 11 1.60 1.1796 1.1896 1.1796 8.04 2002.03
23 2015.01.08 10:58 sell 12 0.10 1.1794 1.1844 1.1744 0.00 2002.03
24 2015.01.09 18:03 s/l 12 0.10 1.1844 1.1844 1.1744 -0.50 2001.53
25 2015.01.09 18:03 buy 13 0.10 1.1844 1.1794 1.1894 0.00 2001.53
26 2015.01.12 12:31 s/l 13 0.10 1.1794 1.1794 1.1894 -0.50 2001.03
27 2015.01.12 12:31 sell 14 0.20 1.1794 1.1844 1.1744 0.00 2001.03
28 2015.01.12 16:50 s/l 14 0.20 1.1844 1.1844 1.1744 -1.00 2000.03
29 2015.01.12 16:50 buy 15 0.20 1.1844 1.1794 1.1894 0.00 2000.03
30 2015.01.13 11:46 s/l 15 0.20 1.1794 1.1794 1.1894 -1.01 1999.03
31 2015.01.13 11:46 sell 16 0.40 1.1794 1.1844 1.1744 0.00 1999.03
32 2015.01.14 11:36 t/p 16 0.40 1.1744 1.1844 1.1744 2.00 2001.03
33 2015.01.14 11:36 sell 17 0.40 1.1742 1.1792 1.1692 0.00 2001.03
34 2015.01.14 15:30 s/l 17 0.40 1.1792 1.1792 1.1692 -2.00 1999.03
35 2015.01.14 15:30 buy 18 0.10 1.1792 1.1742 1.1842 0.00 1999.03
36 2015.01.14 15:51 t/p 18 0.10 1.1842 1.1742 1.1842 0.50 1999.53
37 2015.01.14 15:51 buy 19 0.80 1.1844 1.1794 1.1894 0.00 1999.53
38 2015.01.14 16:35 s/l 19 0.80 1.1794 1.1794 1.1894 -4.00 1995.53
39 2015.01.14 16:35 sell 20 0.10 1.1794 1.1844 1.1744 0.00 1995.53
40 2015.01.14 23:59 close at stop 20 0.10 1.1790 1.1844 1.1744 0.04 1995.57
//+------------------------------------------------------------------+
//| Begemot.mq4 |
//| Begemot32 |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Begemot32"
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
extern double Lot;
double OrPrice;
double OrLots;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert start function |
//+------------------------------------------------------------------+
int start()
{
for(int i=0;i<OrdersTotal();i++)
{
if (OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY)) // Выбираем последний ордер из истории.
{
OrPrice=OrderProfit(); //узнаем профит закрытого ордера
OrLots=OrderLots(); //узнаем объем(лот)закрытого ордера
}
}
if(OrPrice<0) { //если профит меньше нуля (отрицательный показатель) то..
Lot=OrLots*2; // ...умножаем лот на 2
if(OrdersTotal() == 0 && Open[0]<Close[0] && Close[0]==High[0]) // если нет ордеров и восходящая свеча то..
{
OrderSend(Symbol(), OP_BUY, Lot, Ask, 3, Ask-50*Point, Ask+50*Point); // открываем ордер на БАЙ с удвоенным лотом
}
else
if(OrdersTotal() == 0 && Open[0]>Close[0] && Close[0]==Low[0]) // если нет ордеров и нисходящая свеча то..
{
OrderSend(Symbol(), OP_SELL, Lot, Bid, 3, Bid+50*Point, Bid-50*Point); // открываем ордер на СЕЛЛ с удвоенным лотом
}
else
Print("ORDER NE USTANOVLEN!!!");
}
else // если последний ордер закрылся с положительным результатом (цена больше или равна нулю)то..
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0 && Open[0]<Close[0] && Close[0]==High[0]) // если нет ордеров и восходящая свеча то..
{
OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask-50*Point, Ask+50*Point); // открываем ордер на БАЙ
}
else
Print("BUY - ORDER NE USTANOVLEN!!!");
//ОТКРЫТИЕ ОРДЕРА НА ПРОДАЖУ
if(OrdersTotal() == 0 && Open[0]>Close[0] && Close[0]==Low[0]) // если нет ордеров и нисходящая свеча то..
{
OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, Bid+50*Point, Bid-50*Point); // открываем ордер на СЕЛЛ
}
else
Print("ORDER NE USTANOVLEN!!!");
return(0);
}
Последнее редактирование модератором: 20.07.2015
-
#4 082
Всем здравствуйте.
Для тестировании стратегии на H1 необходимо получать данные о закрытии предыдущего дня.
В Индикаторе пишу следующее (соответственно предварительно объявив “CloseLine” в OnInit()) :
int OnCalculate(const int rates_total, const int prev_calculated,
const datetime &time[], const double &open[],
const double &high[], const double &low[],
const double &close[], const long &tick_volume[],
const long &volume[], const int &spread[])
{
Close_Day=iClose(“EURUSD”,PERIOD_D1,1);
ObjectSet(“CloseLine”,OBJPROP_PRICE1,Close_Day);
return(rates_total);
}
В результате цена с ТФ Day не изменяется, и линия не перестраивается.
Помогите пожалуйста.
Спасибо
-
#4 083
Добрый день!
Подкиньте, пожалуйста, кусок кода для закрытия всех ордеров при общем убытке X пунктов или X% от депозита.
http://fxgeneral.com/forum/topic/779-советники-мартингейл-на-основе-перцептрона-tdi-с/
Посмотри, если не поленишься, мои разработки со старого форума – там есть тот код, который тебе нужен…
Если возникнут вопросы – чиркани и я постараюсь максимально быстро проанализировать и ответить.
-
#4 084
Как выловить сигнал стрелку из индикатора для советника
Подскажите как вытащить появление стрелочки на предыдущем баре из индикатора во вложении. По ним хочу открывать и закрывать позиции при добавлении фильтров…
Буду ОЧЕНЬ благодарен за помощь. На форуме новенький, если нужно писать в другую ветку, извините….
Посмотреть вложение #Forexsignal30_01.ex4
-
#4 085
Подскажите как вытащить появление стрелочки на предыдущем баре из индикатора во вложении. По ним хочу открывать и закрывать позиции при добавлении фильтров…
Буду ОЧЕНЬ благодарен за помощь. На форуме новенький, если нужно писать в другую ветку, извините….
Посмотреть вложение 213570
double RedArr = iCustom(Symbol(),0,"#Forexsignal30_01",RISK,CountBars,SoundON,EmailON,0,1); //сигнал от красной стрелки
double GreenArr = iCustom(Symbol(),0,"#Forexsignal30_01",RISK,CountBars,SoundON,EmailON,1,1);//сигнал от зеленой стрелки
-
#4 086
Спасибо огромное.
Для новичком напишу, что само появление стрелочки (например зеленой) прописывается так:
GreenArr!=0 && GreenArr!=EMPTY_VALUE
-
#4 087
Спасибо огромное.
Для новичком напишу, что само появление стрелочки (например зеленой) прописывается так:GreenArr!=0 && GreenArr!=EMPTY_VALUE
Ну да, для новичков прописывается так, но только для новичков.
-
#4 088
Ну да, для новичков прописывается так, но только для новичков.
А не для новичков? Приведите пример. Будет полезно для развития. И в чем разница, объясните пож-та.
-
#4 089
А не для новичков? Приведите пример. Будет полезно для развития. И в чем разница, объясните пож-та.
не новички, при сравнении содержимого double переменных, используют < и >, а не != и ==.
-
#4 090
не новички, при сравнении содержимого double переменных, используют < и >, а не != и ==.
:laugh:
А совсем умудренные корифеи заморачиваются функциями типа CompareDoubles из _https://www.mql5.com/ru/articles/1561
-
#4 091
Подскажите пож-та.
пишу советник для полуавтоматической торговли…
НА демке нет пока возможности проверить.
Будет ли этот советник закрывать сделки при появлении стрелки.
При компиляции ошибка “event handling function not found”, но как я понял это ошибка означает что нет открытия позиции, но я планирую ручками открывать, и автоматом (советником) закрывать.
Заранее Спасибо!
//--- Inputs
extern double RISK = 5;
extern double CountBars = 500;
extern double SoundON = 0;
extern double EmailON = 0;
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
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())
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//--- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForClose()
{
double RedArr; //сигнал от красной стрелки
double GreenArr; //сигнал от зеленой стрелки
//--- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//--- Берем стрелки
RedArr = iCustom(Symbol(),0,"#Forexsignal30_01",RISK,CountBars,SoundON,EmailON,0,1);
GreenArr = iCustom(Symbol(),0,"#Forexsignal30_01",RISK,CountBars,SoundON,EmailON,1,1);
//---
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
//--- check order type
if(OrderType()==OP_BUY)
{
if(RedArr!=0 && RedArr!=EMPTY_VALUE)
{
if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
if(OrderType()==OP_SELL)
{
if(GreenArr!=0 && GreenArr!=EMPTY_VALUE)
{
if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
}
//---
}
-
#4 092
Подскажите пож-та.
пишу советник для полуавтоматической торговли…
НА демке нет пока возможности проверить.
Будет ли этот советник закрывать сделки при появлении стрелки.
При компиляции ошибка “event handling function not found”, но как я понял это ошибка означает что нет открытия позиции, но я планирую ручками открывать, и автоматом (советником) закрывать.
Заранее Спасибо!
Не будет вообще работать. Где функция OnTick() или OnTimer()?
Накидал пользовательских функций, а вызывать то кто их будет?
-
#4 093
Чё себе приключения придумывать?!!!
…”event handling function not found”, но как я понял это ошибка означает что нет открытия позиции, …
а на самом деле:
….Добавлена ошибка компиляции “event handling function not found” при отсутствии в программе точек входа (OnStart, OnTick и т.д.)….
Не правильное понимание – неправильный результат.
Надо бы со структурой программ в MQL познакомиться.
Последнее редактирование: 29.07.2015
-
#4 094
Случайно попался не доработанный индюк, считает бычьи и медвежьи свечи
но не обновляется, что нужно поправить???
//+------------------------------------------------------------------+
//| Copyright © 2010 |
//| indikator MA.mq4|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009. All rights reserved."
#property link "1yuriy1@gmail.com"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Orange
extern int bar = 1000;// количество кирпичей РЕНКО для отображения линии
extern int Sum = 34; // суммируемое количество последних баров, от 1 до Sum=34
double line[];
int i,limit,sum;
//========================================================
int init() {
IndicatorBuffers(1);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(0, line);
IndicatorDigits(Digits);
IndicatorShortName("indikator MA");
return(0);
}
int deinit()
{
return(0);
}
//====================================================================
int start() {
limit = bar - IndicatorCounted();
i = limit;
//РИСУЕМ ГРАФИК
//--------------------------------------------------------------------
while(i>=0)
{
sum=0;
for(int t = Sum; t > 0; t--){
if(Open[i+t-1]-Close[i+t-1]>0)sum=sum-1; else sum=sum+1;
}
line[i] = sum;
i--;
}
//--------------------------------------------------------------------
return(0);
}
//+------------------------------------------------------------------+
-
#4 095
Случайно попался не доработанный индюк, считает бычьи и медвежьи свечи
но не обновляется, что нужно поправить???//+------------------------------------------------------------------+ //| Copyright © 2010 | //| indikator MA.mq4| //+------------------------------------------------------------------+ #property copyright "Copyright © 2009. All rights reserved." #property link "1yuriy1@gmail.com" #property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Orange extern int bar = 1000;// количество кирпичей РЕНКО для отображения линии extern int Sum = 34; // суммируемое количество последних баров, от 1 до Sum=34 double line[]; int i,limit,sum; //======================================================== int init() { IndicatorBuffers(1); SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); SetIndexBuffer(0, line); IndicatorDigits(Digits); IndicatorShortName("indikator MA"); return(0); } int deinit() { return(0); } //==================================================================== int start() { limit = bar - IndicatorCounted(); i = limit; //РИСУЕМ ГРАФИК //-------------------------------------------------------------------- while(i>=0) { sum=0; for(int t = Sum; t > 0; t--){ if(Open[i+t-1]-Close[i+t-1]>0)sum=sum-1; else sum=sum+1; } line[i] = sum; i--; } //-------------------------------------------------------------------- return(0); } //+------------------------------------------------------------------+
Если нужна вся история, сделай так: в строке
limit = bar - IndicatorCounted();
замени bar на Bars, если нужно ограничение по истории, замени на:
limit = MathMin(Bars - IndicatorCounted(),bar);
-
#4 096
Если нужна вся история, сделай так: в строке
limit = bar - IndicatorCounted();
замени bar на Bars, если нужно ограничение по истории, замени на:
limit = MathMin(Bars - IndicatorCounted(),bar);
Работает*hi*
Спасибо дружище))
-
#4 097
Скажите как прописать:
За последние 10 баров одно из значений 0-го буфера стохастика было больше 80.
Спасибо.
-
#4 098
ПОМОГИТЕ ПОЖАЛУЙСТА НАПИСАТЬ ВОТ ТАКОЙ ИНДИКАТОР ИСОИ (Импульс Силы Открытого Интереса):
Что бы высчитать ИСОИ – можно использовать любое кол-во баров но не меньше 3х….
Коэффициент ИСОИ со знаком «-« – интерес в шорт
Коэффициент ИСОИ со знаком «+« – интерес в лонг
ИСОИ
от 0 до +- 0.5 слабый импульс
от +- 0.5 до +- 1.0 сильный импульс
Возьмем к примеру 5 баров.
Теперь суммируем объем (V) – 21597
Суммируем время (Т) -23089 или 6.41 часа
Суммируем Дельту со знаком (D) – +639
Суммируем цену в пунктах (минимальная и максимальная цена за 5 баров) (Р) – 25 пунктов.
1. Вычисляем коэффициент диапазона
Т Р = K
6.41 25 = 0.23
2. Вычисляем соотношение Дельты
D x 100% V = G
+639 х 100% 21597 = 2.96%
2. Вычисляем ИСОИ
K x G = ИСОИ
0.23 х 2.96 = 0.68
Или 68% – импульс Открытого Интереса – сильный…
-
#4 099
ПОМОГИТЕ ПОЖАЛУЙСТА НАПИСАТЬ ВОТ ТАКОЙ ИНДИКАТОР ИСОИ (Импульс Силы Открытого Интереса):
Что бы высчитать ИСОИ – можно использовать любое кол-во баров но не меньше 3х….
Коэффициент ИСОИ со знаком «-« – интерес в шорт
Коэффициент ИСОИ со знаком «+« – интерес в лонг
ИСОИ
от 0 до +- 0.5 слабый импульс
от +- 0.5 до +- 1.0 сильный импульс
Возьмем к примеру 5 баров.
Теперь суммируем объем (V) – 21597
Суммируем время (Т) -23089 или 6.41 часа
Суммируем Дельту со знаком (D) – +639
Суммируем цену в пунктах (минимальная и максимальная цена за 5 баров) (Р) – 25 пунктов.
1. Вычисляем коэффициент диапазона
Т Р = K
6.41 25 = 0.23
2. Вычисляем соотношение Дельты
D x 100% V = G
+639 х 100% 21597 = 2.96%
2. Вычисляем ИСОИ
K x G = ИСОИ
0.23 х 2.96 = 0.68
Или 68% – импульс Открытого Интереса – сильный…
А как у тебя получилось за 5 баров больше шести часов?
Если Н1 то не больше пяти часов, а если Н4 то гораздо больше…
А в общем-то эффективность метода надо проверять. Но у меня сейчас нет времени этим заниматься.
-
#4 100
Коллеги перезагрузка.)*hi* Вопрос к профи.
Есть идея с изменением процента закрытия дальнего с изменением просадки по Эквити.
А именно условие. Внешние переменные и условие. Сообразил так.
extern double CloseProfitprc = 1; //закрывать по суммарному проц
extern double PercentLossCloseProfitprc1 = 1;
extern double PercentLossCloseProfitprc2 = 5;
extern double PercentLossCloseProfitprc3 = 10;
extern double PercentLossCloseProfitprc4 = 20;
int start3()
{
if (AccountEquity()<=AccountBalance()*(1-PercentLossCloseProfitprc1 /100)) {CloseProfitprc=1;}
else
if (AccountEquity()<=AccountBalance()*(1-PercentLossCloseProfitprc2 /100)) {CloseProfitprc=0.5;}
else
if (AccountEquity()<=AccountBalance()*(1-PercentLossCloseProfitprc3 /100)) {CloseProfitprc=0.1;}
else
if (AccountEquity()<=AccountBalance()*(1-PercentLossCloseProfitprc4 /100)) {CloseProfitprc=0.01;}
//////////////////////////////////////
return(0);
}
Работать будет.? Что я пока не врубаюсь. Может без else?
Everyone has to go through same process
Please understand: MetaQuotes has changed almost everything in MQL. They have tried to make MQL compatible with old versions but there are still points they did not make compatible intentionally. We host thousands of source code from clients and i would like to introduce you to common compiler problems in new Metatrader Builds. This may help you to adapt your code. This page will be updated continiously, plesae check this page regularly and post it to your friends.
Variable Names does not allow special characters and points
Statement from MetaQuotes about this subject is clear: “Now, variable names cannot contain special characters and points, and new MQL4 language keywords cannot be used as names. Old MQL4 programs can be recompiled with the new compiler in order to easily correct all such errors while following the compiler’s messages.” We see many such errors, fixing this kind of error is pretty easy. You open your source in MetaEditor and start replacing all variable names with specialchars (this also includes point) with names without specialchars. This is very easy and common compiler error in new builds. Compiler may throw “semicolor expected” error by this problem.
System Functions cannot be overwritten
New compiler is protecting System Functions. As example: if you had a function called “string StringReplace” in your code and Metatrader has introduced new function (they have introduced many new functions) with same name, this will collide and you will see error “override system function” in your compiler.
Cross References
int pos2 = pos2;
This was possible in previous compiler now you will get “undeclared identifier”. New compiler is more strict but this was bad coding style anyways, so its good you fix such problems in your code. New compiler will throw error anyways. There is no way to ignore this error.
event handling function not found
This may have several reasons. Make sure you have read this page first to understand about event handling functions. They are basically start(), init(), deinit(), OnStart(), OnInit(), OnDeinit(), OnTick(), OnTrade() etc… Make sure you have at least OnInit() or init() and start() or OnStart() functions defined in your source code. If this does not solve your problem we have discovered strange behaviour in new compiler. Simply remove the start() or/and init() line in MetaEditor and type it once again and try to compile again. This is usually working and probably a bug on compiler. For Video Demonstratino check: Watch Video
Expressions are not allowed on a global scope
Normally every expression must be inside a function and out ouf functions you can only define new variables and define compiler settings. If you get this error make sure and find any expression outside of function. Here is very good example:
Fixing this error is easy as well, simply locate such lines and make sure you put them inside proper event function such as OnInit or OnStart. Of course you must know what you are doing to decide where it should be placed
Invalid index value
double Spread[0];
This is not allowed anymore. Arrays with 0 size does not exist. Its better you simply remove [0] tag if you dont use ArrayResize later. If you are using ArrayResize later start with a start index like “[10]” instead of “[0]”. You may also try to put “[1]” to fix this error. But depending on intention it may vary how to fix this error. You may also get “array required” error if you remove [0] index. This means that your source code requires an error. Try to put [10] for example.
Reserved words cannot be used as Variable Name
If you get “unexpected token” you may be using a reserved word as variable name:
bool long=false;
bool short=false;
As you know new compiler now supports new variable types long and short. These are reserved keywords for mql and they cannot be used in variable names anymore. There are dozenz of other keywords they have been introduced in new mql compiler. Make sure you change variable names simply. For example append an understore to fix this problem, of course you must change whole source code with this variable name, otherwise you will get big gargabe. This error may also throw “name expected” error in combination.
“comma expected” but problem somewhere else
If you have a code like this:
#property link "http://www.fx1.net"
#define link "http://www.metaquotes.net/"
Compiler shows you the error somewhere random! If you dobule click to compiler error, it brings you to nirvana. This is obviously a bug inside Compiler. This is caused by using “link” property also inside #define. There are many predefined properties. Finding this error is not very easy. Check all your #define lines if they contain any reserved property keyword!
Switch needs type of integer
Previous MQL compiler did not throw any error here but its different now. Try to fix this error by rewriting and re-thinking your algoritm. Non-integer values cannot be compared well without loosing precission, thats why MQL requires integer values. This is industry standard for switch expression. Please adapt your code regarding that.
Case value already used
case 1: Ls_4 = "no error"; break;
case 1: Ls_4 = "no error and no result"; break;
This is now allowed anymore. Please resolve this conflict. New switch cannot manage such a conflict and throws “case value already used” error
100
File reading error
101
Error of opening an *. EX4 for writing
103
Not enough free memory to complete compilation
104
Empty syntactic unit unrecognized by compiler
105
Incorrect file name in #include
106
Error accessing a file in #include (probably the file does not exist)
108
Inappropriate name for #define
109
Unknown command of preprocessor (valid #include, #define, #property, #import)
110
Symbol unknown to compiler
111
Function not implemented (description is present, but no body)
112
Double quote (“) omitted
113
Opening angle bracket (<) or double quote (“) omitted
114
Single quote (‘) omitted
115
Closing angle bracket “>” omitted
116
Type not specified in declaration
117
No return operator or return is found not in all branches of the implementation
118
Opening bracket of call parameters was expected
119
Error writing EX4
120
Invalid access to an array
121
The function is not of void type and the return operator must return a value
122
Incorrect declaration of the destructor
123
Colon “:” is missing
124
Variable is already declared
125
Variable with such identifier already declared
126
Variable name is too long (> 250 characters)
127
Structure with such identifier already defined
128
Structure is not defined
129
Structure member with the same name already defined
130
No such structure member
131
Breached pairing of brackets
132
Opening parenthesis “(” expected
133
Unbalanced braces (no “}”)
134
Difficult to compile (too much branching, internal stack levels are overfilled)
135
Error of file opening for reading
136
Not enough memory to download the source file into memory
137
Variable is expected
138
Reference cannot be initialized
140
Assignment expected (appears at declaration)
141
Opening brace “{” expected
142
Parameter can be a dynamic array only
143
Use of “void” type is unacceptable
144
No pair for “)” or “]”, i.e. “(or” [ ” is absent
145
No pair for “(or” [ “, i.e. “) “or”] ” is absent
146
Incorrect array size
147
Too many parameters (> 64)
149
This token is not expected here
150
Invalid use of operation (invalid operands)
151
Expression of void type not allowed
152
Operator is expected
153
Misuse of break
154
Semicolon “;” expected
155
Comma “,” expected
156
Must be a class type, not struct
157
Expression is expected
158
“non HEX character” found in HEX or too long number (number of digits> 511)
159
String-constant has more than 65534 characters
160
Function definition is unacceptable here
161
Unexpected end of program
162
Forward declaration is prohibited for structures
163
Function with this name is already defined and has another return type
164
Function with this name is already defined and has a different set of parameters
165
Function with this name is already defined and implemented
166
Function overload for this call was not found
167
Function with a return value of void type cannot return a value
168
Function is not defined
170
Value is expected
171
In case expression only integer constants are valid
172
The value of case in this switch is already used
173
Integer is expected
174
In #import expression file name is expected
175
Expressions are not allowed on global level
176
Omitted parenthesis “)” before “;”
177
To the left of equality sign a variable is expected
178
The result of expression is not used
179
Declaring of variables is not allowed in case
180
Implicit conversion from a string to a number
181
Implicit conversion of a number to a string
182
Ambiguous call of an overloaded function (several overloads fit)
183
Illegal else without proper if
184
Invalid case or default without a switch
185
Inappropriate use of ellipsis
186
The initializing sequence has more elements than the initialized variable
187
A constant for case expected
188
A constant expression required
189
A constant variable cannot be changed
190
Closing bracket or a comma is expected (declaring array member)
191
Enumerator identifier already defined
192
Enumeration cannot have access modifiers (const, extern, static)
193
Enumeration member already declared with a different value
194
There is a variable defined with the same name
195
There is a structure defined with the same name
196
Name of enumeration member expected
197
Integer expression expected
198
Division by zero in constant expression
199
Wrong number of parameters in the function
200
Parameter by reference must be a variable
201
Variable of the same type to pass by reference expected
202
A constant variable cannot be passed by a non-constant reference
203
Requires a positive integer constant
204
Failed to access protected class member
205
Import already defined in another way
208
Executable file not created
209
‘OnCalculate’ entry point not found for the indicator
210
The continue operation can be used only inside a loop
211
Error accessing private (closed) class member
213
Method of structure or class is not declared
214
Error accessing private (closed) class method
216
Copying of structures with objects is not allowed
218
Index out of array range
219
Array initialization in structure or class declaration not allowed
220
Class constructor cannot have parameters
221
Class destructor can not have parameters
222
Class method or structure with the same name and parameters have already been declared
223
Operand expected
224
Class method or structure with the same name exists, but with different parameters (declaration!=implementation)
225
Imported function is not described
226
ZeroMemory() is not allowed for objects with protected members or inheritance
227
Ambiguous call of the overloaded function (exact match of parameters for several overloads)
228
Variable name expected
229
A reference cannot be declared in this place
230
Already used as the enumeration name
232
Class or structure expected
235
Cannot call ‘delete’ operator to delete the array
236
Operator ‘ while’ expected
237
Operator ‘delete’ must have a pointer
238
There is ‘default’ for this ‘switch’ already
239
Syntax error
240
Escape-sequence can occur only in strings (starts with ”)
241
Array required – square bracket ‘[‘ does not apply to an array, or non arrays are passed as array parameters
242
Can not be initialized through the initialization sequence
243
Import is not defined
244
Optimizer error on the syntactic tree
245
Declared too many structures (try to simplify the program)
246
Conversion of the parameter is not allowed
247
Incorrect use of the ‘delete’ operator
248
It’s not allowed to declare a pointer to a reference
249
It’s not allowed to declare a reference to a reference
250
It’s not allowed to declare a pointer to a pointer
251
Structure declaration in the list of parameter is not allowed
252
Invalid operation of typecasting
253
A pointer can be declared only for a class or structure
256
Undeclared identifier
257
Executable code optimizer error
258
Executable code generation error
260
Invalid expression for the ‘switch’ operator
261
Pool of string constants overfilled, simplify program
262
Cannot convert to enumeration
263
Do not use ‘virtual’ for data (members of a class or structure)
264
Cannot call protected method of class
265
Overridden virtual functions return a different type
266
Class cannot be inherited from a structure
267
Structure cannot be inherited from a class
268
Constructor cannot be virtual (virtual specifier is not allowed)
269
Method of structure cannot be virtual
270
Function must have a body
271
Overloading of system functions (terminal functions) is prohibited
272
Const specifier is invalid for functions that are not members of a class or structure
274
Not allowed to change class members in constant method
276
Inappropriate initialization sequence
277
Missed default value for the parameter (specific declaration of default parameters)
278
Overriding the default parameter (different values in declaration and implementation)
279
Not allowed to call non-constant method for a constant object
280
An object is necessary for accessing members (a dot for a non class/structure is set)
281
The name of an already declared structure cannot be used in declaration
284
Unauthorized conversion (at closed inheritance)
285
Structures and arrays cannot be used as input variables
286
Const specifier is not valid for constructor/destructor
287
Incorrect string expression for a datetime
288
Unknown property (#property)
289
Incorrect value of a property
290
Invalid index for a property in #property
291
Call parameter omitted – <func (x,)>
293
Object must be passed by reference
294
Array must be passed by reference
295
Function was declared as exportable
296
Function was not declared as exportable
297
It is prohibited to export imported function
298
Imported function cannot have this parameter (prohibited to pass a pointer, class or structure containing a dynamic array, pointer, class, etc.)
299
Must be a class
300
#import was not closed
302
Type mismatch
303
Extern variable is already initialized
304
No exported function or entry point found
305
Explicit constructor call is not allowed
306
Method was declared as constant
307
Method was not declared as constant
308
Incorrect size of the resource file
309
Incorrect resource name
310
Resource file opening error
311
Resource file reading error
312
Unknown resource type
313
Incorrect path to the resource file
314
The specified resource name is already used
315
Argument expected for the function-like macro
316
Unexpected symbol in macro definition
317
Error in formal parameters of the macro
318
Invalid number of parameters for a macro
319
Too many parameters for a macro
320
Too complex, simplify the macro
321
Parameter for EnumToString() can be only an enumeration
322
The resource name is too long
323
Unsupported image format (only BMP with 24 or 32 bit color depth is supported)
324
An array cannot be declared in operator
325
The function can be declared only in the global scope
326
The declaration is not allowed for the current scope
327
Initialization of static variables with the values of local variables is not allowed
328
Illegal declaration of an array of objects that do not have a default constructor
329
Initialization list allowed only for constructors
330
No function definition after initialization list
331
Initialization list is empty
332
Array initialization in a constructor is not allowed
333
Initializing members of a parent class in the initialization list is not allowed
334
Expression of the integer type expected
335
Memory required for the array exceeds the maximum value
336
Memory required for the structure exceeds the maximum value
337
Memory required for the variables declared on the global level exceeds the maximum value
338
Memory required for local variables exceeds the maximum value
339
Constructor not defined
340
Invalid name of the icon file
341
Could not open the icon file at the specified path
342
The icon file is incorrect and is not of the ICO format
343
Reinitialization of a member in a class/structure constructor using the initialization list
344
Initialization of static members in the constructor initialization list is not allowed
345
Initialization of a non-static member of a class/structure on a global level is not allowed
346
The name of the class/structure method matches the name of an earlier declared member
347
The name of the class/structure member matches the name of an earlier declared method
348
Virtual function cannot be declared as static
349
The const modifier is not allowed for static functions
350
Constructor or destructor cannot be static
351
Non-static member/method of a class or a structure cannot be accessed from a static function
352
An overload operation (+,-,[],++,– etc.) is expected after the operator keyword
353
Not all operations can be overloaded in MQL4
354
Definition does not match declaration
355
An invalid number of parameters is specified for the operator
356
Event handling function not found
357
Method cannot be exported
358
A pointer to the constant object cannot be normalized by a non-constant object
359
Class templates are not supported yet
360
Function template overload is not supported yet
361
Function template cannot be applied
362
Ambiguous parameter in function template (several parameter types can be applied)
363
Unable to determine the parameter type, by which the function template argument should be normalized
364
Incorrect number of parameters in the function template
365
Function template cannot be virtual
366
Function templates cannot be exported
367
Function templates cannot be imported
368
Structures containing the objects are not allowed
369
String arrays and structures containing the objects are not allowed
370
A static class/structure member must be explicitly initialized
371
Compiler limitation: the string cannot contain more than 65 535 characters
372
Inconsistent #ifdef/#endif
373
Object of class cannot be returned, copy constructor not found
374
Non-static members and methods cannot be used
375
OnTesterInit() impossible to use without OnTesterDeinit()
376
Redefinition of formal parameter ‘%s’
377
Macro __FUNCSIG__ and __FUNCTION__ cannot appear outside of a function body
378
Invalid returned type. For example, this error will be produced for functions imported from DLL that return structure or pointer.
379
Template usage error
380
Not used
381
Illegal syntax when declaring pure virtual function, only “=NULL” or “=0” are allowed
382
Only virtual functions can be declared with the pure-specifier (“=NULL” or “=0”)
383
Abstract class cannot be instantiated
384
A pointer to a user-defined type should be applied as a target type for dynamic casting using the dynamic_cast operator
385
“Pointer to function” type is expected
386
Pointers to methods are not supported
387
Error — cannot define the type of a pointer to function
388
Type cast is not available due to private inheritance
389
A variable with const modifier should be initialized during declaration
Suchmaschine –
Reisen –
Wavesnode –
Facebook Forum –
Spam Firewall
—————————————————————————————————————————–
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 – 2023, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 – 2023 vbdesigns.de
SEO by vBSEO 3.6.1