Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 663
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
5 баксов за ответ?
)
Ждемс...
Добрый день. В индикаторе необходимо получить данные из другого индикатора, при загрузке индикатора история отображается, новые значения не обновляются, подскажите в чём ошибка в цикле или ещё где:
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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[])
{
int limit;
int counted_bars = IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = Bars - counted_bars - 500;
for (int i=limit; i>=0; i--)
{
Buf_1[i]=iCustom(Symbol(), 0,"ATR", 0, i);//При подстановке любого индикатора нет обновления!!!
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Такая ситуацию, получаю ошибку - помогите понять, почему возникает ошибка - в MQL5 нельзя менять значение вводимой пользователем переменной?
'Slippage' - constant cannot be modified Kamikadze_MA-may.mq5 67 7
extern int Slippage = 10; // Проскальзывание
int init()
{
//3,5 знаков
if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
{
Slippage*=10;
}
return(INIT_SUCCEEDED);
}
}
Такая ситуацию, получаю ошибку - помогите понять, почему возникает ошибка - в MQL5 нельзя менять значение вводимой пользователем переменной?
'Slippage' - constant cannot be modified Kamikadze_MA-may.mq5 67 7
extern int Slippage = 10; // Проскальзывание
int init()
{
//3,5 знаков
if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
{
Slippage*=10;
}
return(INIT_SUCCEEDED);
}
}
Вот этого в 5-рке нетю
MarketInfo
а про Slippage - не знаю)
Вот этого в 5-рке нетю
MarketInfo
Вот зараза - что ж он его в ошибки то не ставит...
Что за аналог надо использовать?
Вот зараза - что ж он его в ошибки то не ставит...
Что за аналог надо использовать?
В этой же ветке в прошлые выходные разбирались про переход на 5-рку.
От моего поста и назад читаем все посты на 2-3-х страницах
https://www.mql5.com/ru/forum/6343/page662#comment_2930149
В этой же ветке в прошлые выходные разбирались про переход на 5-рку.
От моего поста и назад читаем все посты на 2-3-х страницах
https://www.mql5.com/ru/forum/6343/page662#comment_2930149
MarketInfo(Symbol(),MODE_DIGITS) это (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)
Лучше поглубже смотрите в недра замены в функциях статьи
Будет изящнее и ближе к MQL5
Не торопитесь короче говоря.
Не надо никаких библиотек и чужих функций. Писать нужно на чистом MQL5 учиться.
Такая ситуацию, получаю ошибку - помогите понять, почему возникает ошибка - в MQL5 нельзя менять значение вводимой пользователем переменной?
'Slippage' - constant cannot be modified Kamikadze_MA-may.mq5 67 7
extern int Slippage = 10; // Проскальзывание
int init()
{
//3,5 знаков
if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
{
Slippage*=10;
}
return(INIT_SUCCEEDED);
}
}
MarketInfo(Symbol(),MODE_DIGITS) это (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)
Лучше поглубже смотрите в недра замены в функциях статьи
Будет изящнее и ближе к MQL5
Не торопитесь короче говоря.
Не надо никаких библиотек и чужих функций. Писать нужно на чистом MQL5 учиться.
Кстати, функция из статьи MarketInfoMQL4() приводет к ошибке - как это исправить? (учить два языка - мозг закипит - нужно пока иметь возможность проверять работу идей на фондовом рынке без углубленного кодирования)
'(' - name expected Kamikadze_MA-may.mq5 332 17
'::' - name expected Kamikadze_MA-may.mq5 332 17
double MarketInfoMQL4(string symbol,
int type)
{
switch(type)
{
case MODE_LOW:
return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
case MODE_HIGH:
return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
case MODE_TIME:
return(SymbolInfoInteger(symbol,SYMBOL_TIME));
case MODE_BID:
{
MqlTick last_tick;
SymbolInfoTick(symbol,last_tick);
double Bid=last_tick.bid;
return(Bid);
}
case MODE_ASK:
{
MqlTick last_tick;
SymbolInfoTick(symbol,last_tick);
double Ask=last_tick.ask;
return(Ask);
}
case MODE_POINT:
return(SymbolInfoDouble(symbol,SYMBOL_POINT));
case MODE_DIGITS:
return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
case MODE_SPREAD:
return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
case MODE_STOPLEVEL:
return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
case MODE_LOTSIZE:
return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
case MODE_TICKVALUE:
return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
case MODE_TICKSIZE:
return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
case MODE_SWAPLONG:
return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
case MODE_SWAPSHORT:
return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
case MODE_STARTING:
return(0);
case MODE_EXPIRATION:
return(0);
case MODE_TRADEALLOWED:
return(0);
case MODE_MINLOT:
return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
case MODE_LOTSTEP:
return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
case MODE_MAXLOT:
return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
case MODE_SWAPTYPE:
return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
case MODE_PROFITCALCMODE:
return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
case MODE_MARGINCALCMODE:
return(0);
case MODE_MARGININIT:
return(0);
case MODE_MARGINMAINTENANCE:
return(0);
case MODE_MARGINHEDGED:
return(0);
case MODE_MARGINREQUIRED:
return(0);
case MODE_FREEZELEVEL:
return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));
default: return(0);
}
return(0);
}