У GKFX такой же терминал, как у остальных, сделанный компанией Метаквотс. И котировки тоже особо ничем не отличаются.
Теперь давайте по конкретике. Глубоко не полез, пока поверхностно.
Вот этот кусок у вас делает проверку на отсутствие открытых позиций:
PHP:
if(NoExistPos(dTFATR) && Trade)
Код функции NoExistPos() такой:
PHP:
bool NoExistPos(double dTFATR)
{
//---
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderMagicNumber() != Magic || OrderSymbol() != _Symbol) continue;
if(fabs(Point*OrderProfit()/OrderLots()/MarketInfo(_Symbol, MODE_TICKVALUE)) < dTFATR) return(false);//-->
}
}
//-->
return(true);
Единственный момент, когда эксперт может определить, что есть открытые позы и запретить открывать новую, здесь:
PHP:
if(fabs(Point*OrderProfit()/OrderLots()/MarketInfo(_Symbol, MODE_TICKVALUE)) < dTFATR) return(false);
Если это условие не удовлетворено, то советник посчитает, что открытых позиций нет. Но заметьте, тут нет непосредственной проверки на наличие открытых позиций. Тут проверяется какая-то другая логика, которая базируется на прибыли ордера, объеме и минимальном шаге цены.
Для пример, я для проверки наличия открытых позиций использую следующий код:
PHP:
if (orders_total_expert(ExpertMagicNumber)==0)
...
int orders_total_expert(int magicNumber)
{
//----
int cnt, total;
total=OrdersTotal();
totalExpert=0;
if (OrdersTotal()>0)
{
for (cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if ((OrderMagicNumber()==magicNumber) && (Symbol()==OrderSymbol()))
{
totalExpert++;
}
}
}
//----
return(totalExpert);
}