Я пытаюсь создать простой тестер стратегий для автоматической торговли, но для некоторых активов функция «Купить» не работает с кодом ошибки 10014 «TRADE_RETCODE_INVALID_VOLUME». Самое простое решение для этого, на мой взгляд, - заранее знать минимальный объем актива, принимаемого для торговли им. Мой код до сих пор:
void OnTick()
{
double ask = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK), _Digits);
MqlRates PriceInfo[];
ArraySetAsSeries(PriceInfo, true);
int PriceData = CopyRates(_Symbol, _Period, 0 ,3, PriceInfo);
if(PositionsTotal() == 0)
{
bool result = trade.Buy(
100, //100, 10, 1, 0.1, 0.01, 0.001... any value gives "invalid volume"
NULL,
ask,
ask-300 * _Point, // stop loss
ask+150 * _Point, // take profit
NULL
);
if(result){
double balance = AccountInfoDouble(ACCOUNT_BALANCE);
Comment("Preco de compra: " + ask + " stop loss: " + (ask-300 * _Point) + " take profit: " + (ask+150 * _Point) );
}
else{
Comment("Erro ao realizar compra");
}
}
}
Я просто хочу заменить первый параметр функции покупки минимальным ДЕЙСТВИТЕЛЬНЫМ объемом для данного символа. Заранее спасибо.