Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
проблема в том что сам терминал при тесте не выводит все Print которые я делаю. а выводит только те которые возле ошибки возникают
ну разве что только самому сравнить попробовать результат AccountFreeMarginCheck с состоянием свободных средств без учета оного . но тогда какой смысл вообще от AccountFreeMarginCheck
можете смеяться или нет но лог говорит что
что после покупки лота останется свободно 10346.0888 - это AccountFreeMarginCheck
а свободной маржи на тот момент уже нет - -2412.839200000003 (минус) - это AccountFreeMargin
о каком окружении речь еще может идти ?
добавил строку в итоге
можете смеяться или нет но лог говорит что
что после покупки лота останется свободно 10346.0888 - это AccountFreeMarginCheck
а свободной маржи на тот момент уже нет - -2412.839200000003 (минус) - это AccountFreeMargin
о каком окружении речь еще может идти ?
добавил строку в итоге
На других брокерах воспроизводится? Возможно, конкретно у этого неправильно что-то настроено.
Если везде такое, тогда в сервис-деск прямая дорога.
Хотел написать точно такой же ответ, но Вы опередили
Да, бывает такое, но не у всех брокеров.
Топик-стартеру: Проверьте работу своего кода на демке где-нибудь в другом месте.
Если проблема повторится - ошибка в коде, однозначно.
Код простейший. И только на селл ордерах, если исправить на бай все хорошо. МТ4 б1010.
Update Написал в Обращения в сервисдеск на 53 стр. Код сократил.
bool CheckTrade(double vlots)
{
//check on money
if(((AccountFreeMarginCheck(Symbol(), OP_SELL,vlots )<=0) || (GetLastError()==134))) {Print("Not enough money for Sell ",vlots, " ", Symbol()); return(false); }
return(true);
}
..
tbid=Bid;
if(AccountFreeMarginCheck(Symbol(), OP_SELL,1 )>0)
{
//Check 4 trade
if (CheckTrade(1))
{
tic=OrderSend(Symbol(),OP_SELL, 1, tbid, 3, NormalizeDouble(tbid+3,Digits()), NormalizeDouble(tbid-3,Digits()), comment, magicid, 0, col);
if(tic<0) {
terror=GetLastError(); Print("Error open order: ",terror);
}else {Print("Order ("+IntegerToString(tic), ") Bid=",DoubleToStr(tbid,4));}
}
}