кто как проверяет доступность маржи?
Print(check," ",margin," ",GetLastError());
вернул такое:
2013.07.25 20:34:21 2013.02.04 08:00:00 true 3.0 4753
ничего не понятно, пр икоде:
Print(margin,"---",AccountInfoDouble(ACCOUNT_FREEMARGIN));
запись:
2013.07.25 20:55:36 2013.01.18 13:00:00 27.0---1000.0
Т.е. получается что терминал вернее эксперт получает что да, все ок.
У меня так:
//--- проверка маржи double need_margin = 0.0; ResetLastError(); if ( !OrderCalcMargin( ORDER_TYPE_BUY, pSymbol, Volume, SymbolInfoDouble( pSymbol, SYMBOL_ASK ), need_margin ) ) { Print( "| OrderCalcMargin error #", GetLastError(), "!" ); return(false); } else { double free_margin = AccountInfoDouble( ACCOUNT_FREEMARGIN ); if ( free_margin < need_margin ) { Print( "| Not enough money for open BUY ", DoubleToString( Volume, 2 ), " lots ", pSymbol, " (free = ", DoubleToString( free_margin, 2 ), ", need = ", DoubleToString( need_margin, 2 ), ")!" ); return(false); } }
komposter:
Спасибо. Значит все ок. Отлично.
У меня так:
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Собственно тему написал по своему запросу - статьи читал, Мат часть учил. Гугл не забанил :-)
появилась проблемка
пытаюсь перед открытием сделать проверку на доступную маржу:
if(check && margin<AccountInfoDouble(ACCOUNT_FREEMARGIN))OrderSend(request,result);
В тестере при таком коде - Доступная маржа = 0
по завершению тестера все ок: