Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 627
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите, как рассчитать залог по сделке?
Пробовал два подхода
(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)
И вот такой
FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);
double val=AccountFreeMargin()-FreeMarginCheck;
Первый дает странные результаты на EURJPY если валюта депозита USD. Нужно что то добавить в формулу?
Второй тоже работает через раз, то верные значения дает, то какую-то ерунду (это зависит от депозита)
второй вариант и есть правильный способ расчета залога, вернее Вы в переменной val получаете значение свободных средств после выставления ордера, а в переменной FreeMarginCheck и есть сама величина залога
второй вариант и есть правильный способ расчета залога, вернее Вы в переменной val получаете значение свободных средств после выставления ордера, а в переменной FreeMarginCheck и есть сама величина залога
Уверены?
AccountFreeMarginCheck
Возвращает размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете.
Там еще есть нюанс:
Если открыты встречные сделки, т.е. на счете полный или неполный лок, то функция может давать неверные значения.
Уверены?
да, Вы правы, именно так:
Возвращает размер свободных средств, которые останутся после открытия указанного ордера по текущей цене на текущем счете.
насчет открытых сделок, нужно проверять, не помню, но скорее всего то что пишет терминал , должно сойтись с расчетными данными: суммарное количество лотов в каждом направлении сделок (БАЙ/СЕЛЛ) по всем символами потом вызываете для каждого символа
AccountFreeMarginCheck() передав ей лоты в каждом направлении и просуммировав эти результаты
сегодня рынок работает, проверить это не сложно, примерно так:
Приветствую, подскажите что не так в функций? Функция осуществляет торговую паузу по времени, в параметрах начало паузы и конец паузы.
Функция почему то считывает время не с сервера брокера а с компьютера, несмотря на то что прописано TimeCurrent. И вообще сделки закрываются во время паузы, то есть функция не работает.
Приветствую, подскажите что не так в функций? Функция осуществляет торговую паузу по времени, в параметрах начало паузы и конец паузы.
Функция почему то считывает время не с сервера брокера а с компьютера, несмотря на то что прописано TimeCurrent. И вообще сделки закрываются во время паузы, то есть функция не работает.
распринтуйте TimeStart и StrToTime(TimeStart);
затем распринтуйте TimeCurrent()
у Вас в TimeStart не полный формат времени datetime, вернее время будет всегда как текущий день месяц и год при запуске советника, а потом оно будет меняться?
ну и глобально... чтобы определять часы и минуты торговли нужно часы и минуты сравнивать с часами и минутами времени сервера, Вы сравниваете лишь факт того, что время сервера больше заданного
ЗЫ: чтобы не путаться, можете datetime представлять себе как int, чем он по сути и является и сравнивая 2 datetime, Вы сравниваете 2 int
PSPS:
наверное будет Ваш код работать, нужно так попробовать:
я обычно так время считаю:
int h = TimeHour(TimeCurrent());
int m = TimeMinute(TimeCurrent());
а потом сравниваю с настройками советника
Благодарю, попробую разобраться, я просто начинающий), с вариантом && в место || еще не пробовал посмотреть онлайн, кстати в тестере этот код работает, время считывает с терминала, закрытия ордеров во время паузы нет, а в онлайн все иначе.
Здравствуйте! Терминал не запускается в тестере стратегий. Выставляю дату, например (2017,04,01 по 2018,05,29), нажимаю старт, он тут же выдаёт стоп. В журнале пишет следующее,
TestGenerator: no history data 'EURUSD30' from 2017.04.01 to 2018.05.29. И так на любом отрезке. Комп рабочий, я думал может быть оперативы мало. На домашнем компе тоже самое, перезагрузка не помогает, но постоит некоторое время, запускается. Советник скачал в маркете, триал. Если кто знает причину, подскажите пожалуйста?
Здравствуйте! Терминал не запускается в тестере стратегий. Выставляю дату, например (2017,04,01 по 2018,05,29), нажимаю старт, он тут же выдаёт стоп. В журнале пишет следующее,
TestGenerator: no history data 'EURUSD30' from 2017.04.01 to 2018.05.29. И так на любом отрезке. Комп рабочий, я думал может быть оперативы мало. На домашнем компе тоже самое, перезагрузка не помогает, но постоит некоторое время, запускается. Советник скачал в маркете, триал. Если кто знает причину, подскажите пожалуйста?
Вам вроде тестер и пишет, что нет исторических данных, F2 нажмите и загрузите историю, потом перегрузите терминал
Здравствуйте! Терминал не запускается в тестере стратегий. Выставляю дату, например (2017,04,01 по 2018,05,29), нажимаю старт, он тут же выдаёт стоп. В журнале пишет следующее,
TestGenerator: no history data 'EURUSD30' from 2017.04.01 to 2018.05.29. И так на любом отрезке. Комп рабочий, я думал может быть оперативы мало. На домашнем компе тоже самое, перезагрузка не помогает, но постоит некоторое время, запускается. Советник скачал в маркете, триал. Если кто знает причину, подскажите пожалуйста?
no history data не говорит ни о чем?
Вам вроде тестер и пишет, что нет исторических данных, F2 нажмите и загрузите историю, потом перегрузите терминал
Спасибо! Попробую. А обновление терминала может влиять как то? То, что он обновлён или нет, хотя он сам об этом сообщит......