А что не то в этом значении?
При пересчете делении расчет из за этого не правильный как я понял. (может значение и правильное но формат видно не тот)
double tickValue = SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE); double stts = SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE) ; ( tickValue / stts * SymbolInfoDouble(sDirect, SYMBOL_BID));
По-моему, значение вполне правильное.
А вот что расчитывается - я не соображу. Берется величина тика, делится на размер тика, и умножается на бид. Для чего? Что получаем при этом? Стоимость пункта? Ну, вроде все посчитано правильно...
Экспоненциальный формат отображает число в экспоненциальном виде, заменяя часть числа на E+n, в котором E (показатель экспоненты) умножает предыдущее число на 10 до n-йточки.
0.00001 = 1*10^-5 = 1е-5 100000 = 1*10^5 = 1e5 0.0000179999 = 1.8*10^-5 = 1.8е-5
Просто способ отображения длинных чисел.
По-моему, значение вполне правильное.
А вот что расчитывается - я не соображу. Берется величина тика, делится на размер тика, и умножается на бид. Для чего? Что получаем при этом? Стоимость пункта? Ну, вроде все посчитано правильно...
SYMBOL_TRADE_TICK_VALUE | Значение SYMBOL_TRADE_TICK_VALUE_PROFIT | double |
SYMBOL_TRADE_TICK_VALUE_PROFIT | Рассчитанная стоимость тика для прибыльной позиции | double |
Стоимость тика берется и делиться на минимальное изменение цены
SYMBOL_TRADE_TICK_SIZE | Минимальное изменение цены | double |
Получается вот такое значение Может ли тик во столько раз изменять цену.
(может я не то считаю мне нужно стоимость пункта или пипса )
Я так понял, нужно в итоге это:
//лот = процент риска от баланса / (размер стоплосса * Размер минимального изменения цены в валюте депозита / Минимальный шаг изменения цены в пунктах) lot=balance*max_risk/100/(stoploss*point*SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
Вставил Ваш код, понял что значение
SYMBOL_TRADE_TICK_VALUE
показывает так же . Мне нужно было просто цену пипса в валюте счета. Попробовал вот так
double pips=(_Point*SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE));
пока показывает вроде правильно (буду смотреть дальше), видно лишние движения были в коде.
Спасибо за подсказки.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Функция возвращает не то значение. Как с этим бороться?
результат
Так же было что _Point также возвращал подобное значение, но поменял терминал и проблема исчезла. Теперь неожиданно возникла эта, хотя сначала работала нормально.