Есть такая функция - MarketInfo(), и идентификатор к ней - MODE_TICKVALUE - стоимость одного тика в валюте депозита.
Другими словами если я высчитаю например сумму которую хочу предназначить на трансакцию как
riskmoney=NormalizeDouble(AccountBalance()*Risk/100,2);
где Risk это процент, который хочу использовать для сделки в валюте депозита
Затем высчитаю величину изменения цены при минимальном лоте при плече например 1:100 тоже в валюте депозита
markpointprice=MarketInfo(Symbol(),MODE_MINLOT)*MarketInfo(Symbol(),MODE_TICKVALUE);
MarketInfo(Symbol(),MODE_TICKVALUE) - если я правильно понимаю это величина для одного лота?И после этого можно высчитать максимальный стоплосс для минимального лота путем деления
maxstoploss=NormalizeDouble(riskmoney/markpointprice,0)
И после этого нахожу нужный мне лот как
lots=NormalizeDouble(maxstoploss/stoploss*MarketInfo(Symbol(),MODE_MINLOT),1 или 2 в зависимости от величины минимального лота); где stoploss заданый стоплосс.
Я правильно понимаю иль где-то ошибаюсь?
Спасибо
Другими словами если я высчитаю например сумму которую хочу предназначить на трансакцию как
riskmoney=NormalizeDouble(AccountBalance()*Risk/100,2);
где Risk это процент, который хочу использовать для сделки в валюте депозита
Затем высчитаю величину изменения цены при минимальном лоте при плече например 1:100 тоже в валюте депозита
markpointprice=MarketInfo(Symbol(),MODE_MINLOT)*MarketInfo(Symbol(),MODE_TICKVALUE);
MarketInfo(Symbol(),MODE_TICKVALUE) - если я правильно понимаю это величина для одного лота?И после этого можно высчитать максимальный стоплосс для минимального лота путем деления
maxstoploss=NormalizeDouble(riskmoney/markpointprice,0)
И после этого нахожу нужный мне лот как
lots=NormalizeDouble(maxstoploss/stoploss*MarketInfo(Symbol(),MODE_MINLOT),1 или 2 в зависимости от величины минимального лота); где stoploss заданый стоплосс.
Я правильно понимаю иль где-то ошибаюсь?
Спасибо
Советую запустить такой скрипт. Сразу всё будет видно и спрашивать никогоне нужно будет.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день - вечер.
Хочу написать функцию, которая по заданным параметрам : величина стоплосса, используемый риск, валюта провождения счета, будет высчитывать величину открываемого лота. Встретился с такой проблемой :
при помощи функции BV=StringSubstr(Symbol(),0,3); нахожу базовую валюту для пары . И в случае если "USD" не присутствует в моей паре мне необходимо найти котировку базовой валюты к доллару . Как я могу проверить какая пара существует BV+"USD" или "USD"+BV ?
Такую же проверку мне необходимо сделать при переводе денег с валюты провождения счета в доллары.
Спасибо .