Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Код не смотрел.Сорри.
Но думаю причина может крыться в разных размерах пункта с тиком, на акциях это часто бывает.
При нормализации цены часто ограничиваются NormalizeDouble(), но когда пункты не равны тикам этого не достаточно.
попробуйте нормализовать цену так:
Спасибо большое!
То есть вот так, но почему-то 1 ошибка где-то есть
Код не смотрел.Сорри.
Но думаю причина может крыться в разных размерах пункта с тиком, на акциях это часто бывает.
При нормализации цены часто ограничиваются NormalizeDouble(), но когда пункты не равны тикам этого не достаточно.
попробуйте нормализовать цену так:
уже комбинаторикой пробовал. Не получается в код впихнуть Ваш вариант)
//БЫЛО tp=NormalizeDouble(tp,_Digits);
//------------
/*
//вар2 price price tp: 2 ошибка, 0 предупреждений
double NormalizePrice(string symb, double price)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
price = NormalizeDouble(MathRound(tp / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(price);
}
*/
/*
//вар3 price tp tp: 4 ошибка, 0 предупреждений
double NormalizePrice(string symb, double Price)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
tp = NormalizeDouble(MathRound(tp / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(tp);
}
*/
/*
//вар4 tp price tp: 6 ошибка, 0 предупреждений
double NormalizePrice(string symb, double price/tp)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
price/tp = NormalizeDouble(MathRound(price/tp / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(price);
}
*/
/*
//вар5 tp tp price: 3 ошибка, 0 предупреждений
double NormalizePrice(string symb, double tp)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
tp = NormalizeDouble(MathRound(price / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(price);
}
*/
/*
//вар6 price tp price: 2 ошибка, 0 предупреждений
double NormalizePrice(string symb, double price)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
tp = NormalizeDouble(MathRound(price / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(price);
}
*/
/*
//вар7 tp tp tp: 1 ошибка, 0 предупреждений
double NormalizePrice(string symb, double tp)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
tp = NormalizeDouble(MathRound(tp / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(tp);
}
*/
/*
//вар8 tp price price: 4 ошибка, 0 предупреждений
double NormalizePrice(string symb, double tp)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
price = NormalizeDouble(MathRound(price / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(price);
}
*/
/* ОБРАЗЕЦ вар1 price price price
double NormalizePrice(string symb, double price)
{
double tick_size = SymbolInfoDouble(symb, SYMBOL_TRADE_TICK_SIZE);
if(tick_size == 0)
return 0;
price = NormalizeDouble(MathRound(price / tick_size) * tick_size, (int)SymbolInfoInteger(symb, SYMBOL_DIGITS));
return(price);
}
*/
уже комбинаторикой пробовал. Не получается в код впихнуть Ваш вариант)
...Вставляйте правильно код -
----------------
MQL5.community - Памятка пользователя
Кнопка
предназначена для вставки исходного кода в текст сообщения. При нажатии появляется пустое окно, в которое необходимо вставить код и далее нажать кнопку Вставить. Для отмены вставки кода необходимо нажать кнопку Отмена.
уже комбинаторикой пробовал. Не получается в код впихнуть Ваш вариант)
Всё проще)
Всё проще)
А где я не так код вставил)))
На всякий случай проверил, что в коде нет невидимых символов (бывают когда с мессенджеров копируешь еще всякий мусор подтягивается).
Тот вариант который Вы в сообщении №14 написали от 2024.11.10 11:32 соответствует моему варианту 1. И по нему получаем 5 ошибок. Код я прислал, можете /* */ убрать и убедиться, что я сделал как Вы указали. Не понимаю.
А где я не так код вставил)))
прога с вариантами вставки кода.
Вы функцию воткнули в тело другой функции. Так делать нельзя.
Поправил.