Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1205

 

почему компилятор выдает предупреждение на эту строку?

datetime time_setup=OrderGetInteger(ORDER_TIME_SETUP);
possible loss of data due to type conversion    
 
Подскажите. При вычитании получаю число 3е-5. Как привести его в вид 0,00003? Спасибо. 
 
awsomdino:

почему компилятор выдает предупреждение на эту строку?

потому что XxxxGetInteger возвращают long (целое со знаком) , а datetime это целое без знака и вообще отдельный тип. Надо директивно приводить

datetime timeProperty = (datetime)XxxGetInteger(...)

 
prom18:
Подскажите. При вычитании получаю число 3е-5. Как привести его в вид 0,00003? Спасибо. 

Где получаете?

 

Здравствуйте!

Функция OnCalculate периодически возвращает 0

prev_calculated = 0

Думаю потому, что график наполняется котировками со стороннего ресурса. Хотя не похоже что график переписывается.

Как в этих условия записать новые данные, не переписывая старые? 

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

void filter(const int rates_total,const int prev_calculated)
  {
 
   int start=prev_calculated;
//--- если значения индикатора уже были рассчитаны на предыдущем тике, то работаем на последнем баре
   if(prev_calculated>0)
      start--;
//---
   for(int p=2; p<Pmax; p++) // отбор по периодам
      for(int b=start>rates_total-Pmax?start:rates_total-Pmax; b<rates_total; b++)
        {
 
Всем доброго времени. Вопрос: в МТ4 при работе в тестере с кроссами (парами без бакса) как тестер считает результаты по закрытым позициям, если счёт, на котором идёт тестирование, долларовый? Тестер для пересчёта итога позиции в доллары берёт курс базовой валюты кросса к доллару на текущий момент или на момент исследуемого интервала? Я сильно подозреваю, что на текущий момент. Если да, то нельзя ли заставить его считать на момент интервала?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Mihail Matkovskij:

В MQL4 только таким способом:

Результат:


Большое спасибо за помощь.

 
Mihail Matkovskij:

Где получаете?

Вот здесь.

double price1=1.23450;
double price2=1.23447;
double delta=price1-price2;
Alert("Разбег ",delta);
 
prom18:

Вот здесь.

Alert("Разбег "+DoubleToString(delta,_Digits));

или Alert(StringFormat("Разбег %.5f",delta));

и вообще привыкайте, это просто разные представления одного и того-же числа. Вспомните школьные годы чудесные - это оттуда

 
Top2n:

Здравствуйте!

Функция OnCalculate периодически возвращает 0

Думаю потому, что график наполняется котировками со стороннего ресурса. Хотя не похоже что график переписывается.

Как в этих условия записать новые данные, не переписывая старые? 

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

Объявите глобальную переменную (не путать с глобальными переменными терминала)

 bool firstRun = false;

и делайте полный пересчёт только на первом тике

// простейшее условие пересчёта
if(!firstRun) {
  // пересчёт ...
  firstRun = true;
}

Если firstRun будет также обнулять вместе с параметрами OnCalculate, то причиной их обнуления является перезапуск индикатора.