ОШИБКА 134, объясните, ПОЖАЛУЙСТА, как её иправить!

 
Помогите, пожалуйста, выполнить проверку на наличие свободных средств перед тем, как открыть ордер! У меня это выглядит так:
     if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0); 
        }
ОЧЕНЬ ПРОШУ, ОБЪЯСНИТЕ!
 
Можно и так считать, если расчет вести только для окна, на котором работает Советник.

double Lots;            // Размер стандартного лота
double MaximumRisk      = 0.05; // Максимальный риск            
 
       Lots=NormalizeDouble(AccountFreeMargin()*MaximumRisk/AccountLeverage()/10.0/Bid,1);
 
Michel_S писал (а):

Можно и так считать, если расчет вести только для окна, на котором работает Советник.

double Lots;            // Размер стандартного лота
double MaximumRisk      = 0.05; // Максимальный риск            
 
       Lots=NormalizeDouble(AccountFreeMargin()*MaximumRisk/AccountLeverage()/10.0/Bid,1);

такой расчет спасает, но механизм его другой - большая часть депо не используется согласно политике по управлению рисками, поэтому денег при небольшом % риска должно хватать всегда. Пример же с 001 говорит его о желании использовать свободную маржу до последней копейки и он точно не сработает с парой GBPUSD, т.к. маржи на лот в нынешние дни необходимо примерно USD1,900, а не USD1,000.
 
Vita писал (а):
Michel_S писал (а):

Можно и так считать, если расчет вести только для окна, на котором работает Советник.

double Lots;            // Размер стандартного лота
double MaximumRisk      = 0.05; // Максимальный риск            
 
       Lots=NormalizeDouble(AccountFreeMargin()*MaximumRisk/AccountLeverage()/10.0/Bid,1);

такой расчет спасает, но механизм его другой - большая часть депо не используется согласно политике по управлению рисками, поэтому денег при небольшом % риска должно хватать всегда. Пример же с 001 говорит его о желании использовать свободную маржу до последней копейки и он точно не сработает с парой GBPUSD, т.к. маржи на лот в нынешние дни необходимо примерно USD1,900, а не USD1,000.
Я прошу прощения - невнимательно прочитал вопрос ветки....

Проверку я провожу так:
    if(NormalizeDouble(AccountFreeMargin()/AccountLeverage()/10.0/Bid,2)<lot)
       {
        Print("Свободных СРЕДСТВ НЕ ХВАТАЕТ для открытия ",lot," ЛОТОВ !...");
        return;
       }
Причина обращения: