double minlot = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
double lotstep = MarketInfo(Symbol(), MODE_LOTSTEP);
double SMALL = 0.0000001;
double lot, nextlot;
//обнуляем внутреннюю переменную ошибкиGetLastError();
//смотрим, насколько дают открытьсяfor(lot=0; lot<maxlot+SMALL && GetLastError()!=ERR_NOT_ENOUGH_MONEY; lot = nextlot)
{
if(lot<minlot) nextlot = minlot;
else nextlot = lot+lotstep;
AccoutFreeMarginCheck(Symbol(), OP_BUY, nextlot);
}
// ответ на вопрос уже в переменной lot, а если вообще открыться нельзя, то там 0. Осталось нормализовать.// Нормализацию правильно проводить от lotstep, а не от minlot, т.к. встречаются ситуации когда, например, // minlot = 3.0, а lotstep = 0.1int dig = -MathFloor(MathLog(lotstep)/MathLog(10));
lot = NormalizeDouble(lot, dig);
帮助我理解这个指标背后的逻辑。
你可能会因为在这里反编译而被禁止。
通过MinLot和LotStep进行处理
例如,我需要这样做 -NormalizeDouble(lot,precision)。
这将做什么(MinLot和LotStep)?
哪里显示它是不完整的?)
一个版主会来弄清楚你发布的代码背后的逻辑。所以你最好把它藏起来,在你被指出可以和不可以看到它的地方之前。
例如,我需要这样做 - NormalizeDouble(lot,precision)。
这将做什么(MinLot和LotStep)?
我只是把它勾画出来。情况是这样的。
哦,我明白了,所以这是一项科学工作。该参数没有存储在任何地方,所以我们会知道。
哦,我明白了,所以这是一项科学工作。该参数没有存储在任何地方,所以我们会知道。
它不能存储在终端的任何地方,因为杠杆可能是浮动的,只有服务器知道它。在我看来,最正确的计算方法是如下。
告诉我为什么可能有错误 130
告诉我为什么可能有错误 130