Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 798

 
Доброго времени суток! Изучаю структуру торгового запроса (MqlTradeRequest) в разных вариантах. Взял готовый советник my_first_ea.mq5 из статьи https://www.mql5.com/ru/articles/100 и попытался в исходном коде поменять условие на открытие позиции при пересечении SAR - получилось. Затем добавил код трейлинга (изменение/модификация позиции по SAR) из справочника MQL5 по структуре MqlTradeRequest. Но устойчиво выдает ошибку [Invalid stops]. Видимо что-то с запросом не так. Короче застрял на изучении модификации позиции. Вообще не пойму, что не так делаю???
Файлы:
SAR_SAR.mq5  27 kb
 
Alexey Kozitsyn:

Можно подробнее?

void OnTick()
{
  MqlTick Ticks[];
  
  if (CopyTicksRange(_Symbol, Ticks) != -1)
  {
    ArrayPrint(Ticks);              
    
    ExpertRemove();
  }
}
 
Спасибо за помощь, столько желающих помочь!!!!!!!!!!!! Я про устал читать комментарии к моему коду..............
 
DCodec:
Спасибо за помощь, столько желающих помочь!!!!!!!!!!!! Я про устал читать комментарии к моему коду..............
Нет кода, нет комментариев. 
 

Прошу Вас подсказать, как узнать шаг цены (в спецификации "Размер тика")?

 
Aleksey Vyazmikin:

Прошу Вас подсказать, как узнать шаг цены (в спецификации "Размер тика")?

ht

 
Vladislav Andruschenko:
ht


Спасибо! А я искал и не нашел...

Тогда следующий вопрос, допустим шаг 25, то как организовать округление к числу кратному 25, может функция какая есть?

 
Aleksey Vyazmikin:

Спасибо! А я искал и не нашел...

Тогда следующий вопрос, допустим шаг 25, то как организовать округление к числу кратному 25, может функция какая есть?


Сделал функцию, вроде как работает

//+------------------------------------------------------------------+
//|Функция округления числа до кратного целого                       |
//+------------------------------------------------------------------+
double Okr(double cifra)
  {
     double TickSize=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
     double Okruglenie=NormalizeDouble(cifra/TickSize,_Digits)*TickSize;
     Print ("До кратного округления=",DoubleToString(cifra,_Digits), " После кратного округления=",DoubleToString(Okruglenie,_Digits));
     return(Okruglenie);
  }  
 
Aleksey Vyazmikin:

Спасибо! А я искал и не нашел...

Тогда следующий вопрос, допустим шаг 25, то как организовать округление к числу кратному 25, может функция какая есть?

https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice

Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / NormalizePrice
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / NormalizePrice
  • www.mql5.com
Стандартная библиотека / Торговые классы / CSymbolInfo / NormalizePrice - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Спасибо, но я использую не стандартную торговую библиотеку.