Обсуждение статьи "Торговый эксперт с графическим интерфейсом: Наполнение функционалом (Часть II)" - страница 2

 
Dennis Kirichenko:

Рашид, спасибо за комментарий. Тогда в моём случае расчёт по большей стороне (Buy):


Во втором случае учитывается тот момент, что продавали дёшево, поэтому цена оставшихся покупок стала выше.

Ну тут же все просто - пусть у нас есть куча ордеров по EURUSD. Считаем раздельно для каждого направления и получаем:

  1. общая позиция Buy 20 лотов по 1.2000  = Buy 15 лотов по 1.2000 + Buy 5 лотов по 1.2000
  2. общая позиция Sell 15 лотов по 1.2200
Аннилигируем равные объемы и остается чистыми 5 лотов по 1.2000. Что не так в моих рассуждениях? Откройте в понедельник кучу позиций и посмотрите как будет меняться плавающая прибыль/убыток с изменением цены на 1 пункт.
 
Rashid Umarov:

Ну тут же все просто - пусть у нас есть куча ордеров по EURUSD. Считаем раздельно для каждого направления и получаем:

  1. общая позиция Buy 20 лотов по 1.2000  = Buy 15 лотов по 1.2000 + Buy 5 лотов по 1.2000
  2. общая позиция Sell 15 лотов по 1.2200
Аннилигируем равные объемы и остается чистыми 5 лотов по 1.2000. Что не так в моих рассуждениях? Откройте в понедельник кучу позиций и посмотрите как будет меняться плавающая прибыль/убыток с изменением цены на 1 пункт.

Это такая система в МТ5-хеджинге: аннигиляция встречных позиций идёт по номинальным объёмам. 

Ещё есть альтернатива, о чём написал в предыдущем посте. Там учитывается стоимость каждого купленного/проданного объёма. Результат - отношение стоимости объёма к номинальному.

 
Dennis Kirichenko:

Это такая система в МТ5-хеджинге: аннигиляция встречных позиций идёт по номинальным объёмам.

Можно же писать понятными словами. Я вот тут ничего не понял. Горбачев так общался - много слов, а ни хрена непонятно.
 
Rashid Umarov:
Можно же писать понятными словами. Я вот тут ничего не понял. Горбачев так общался - много слов, а ни хрена непонятно.

Pardon!

Купили 20 лотов по $1,2000.

При этом номинальные объёмы (объёмы в базовой валюте) покупки равны 20*100 000 = EUR 2 000 000. Стоимость этих объёмов в валюте котировки равна $1,2000*2 000 000 = USD 2 400 000.

Под номинальными я имел в виду стоимость объёмов в базовой валюте символа.

 

Ну, я не любитель гонять цифры туда/сюда)

Не говоря уже о потенциальных ошибках округления при  таких операциях.

 
 В файле CProgram.mgh заменил индикатор вместо iStohastic в функциях  "void CProgram::GetHandles(void)" и "void CProgram::GetIndicatorValues(void)"  написал индикатор   m_handles[i]=::iATR(m_symbols[i],StringToTimeframe(tf),5); Скомпилировалось все нормально, но в таблице в столбце "values" одни нули. Что я сделал не так?
 

Alexander:

...

Что я сделал не так?

Нулевой буфер нужно указывать для ATR:

//+------------------------------------------------------------------+
//| Получает значения индикаторов на всех символах                   |
//+------------------------------------------------------------------+
void CProgram::GetIndicatorValues(void)
  {
...
         //--- Попробуем получить значения индикатора
         double values[1];
         received=::CopyBuffer(m_handles[i],0,0,1,values);
...
  }
 

Уважаемые разработчики! Обратите, пожалуйста, внимание на следующую ошибку. Если имя эксперта из данной статьи оставить TradePanel - эксперт запускается (билд 2280). Однако, если переименовать его, например, TradePanel_part_II - эксперт компилируется, но не запускается. В журнал пишет следующее:

2020.02.11 19:18:02.987 TradePanel_part_II (RTS Splice,M1) CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CSeparateLine): 4016

2020.02.11 19:18:02.987 TradePanel_part_II (RTS Splice,M1) CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CSeparateLine): 4016

2020.02.11 19:18:03.042 TradePanel_part_II (RTS Splice,M1) CElement::CreateCanvas > Не удалось создать холст для рисования элемента (CButton): 4016

2020.02.11 19:18:03.042 TradePanel_part_II (RTS Splice,M1) OnInit > Could not create the GUI!

Если же назвать эксперт, например, TradePanel 2 - все норм. Похоже, определенные имена вызывают проблемы с ресурсами.

Причина обращения: