Ошибки, баги, вопросы - страница 122

 
sergey1294:
Наверно не дождусь когда заработает нормально функция OrderCalcMargin() для CFD, фьючерсов, индексов и т.д. Может кто поделиться формулами как правильно вычислять маржу для этих инструментов

А в справке разве нет? Вроде была...
 
Interesting:

А я наверно весь и привел, уж больше и сообразить не могу в чем причина...

Попробую описать ситуацию более подробно.

Существует простенький класс "CMqlTimer", в задачу этого класса входит отслеживание момента смены различных временных интервалов: час, день, неделя, месяц, год.

Выполняется все до примитива просто, к примеру, если минуты равны 0 значит наступил "новый час"; если номер дня недели не соответствует записанному в переменную произошла смена суток ("00:00:00" по времени сервера). Ну и так далее.

Анализ происходит при срабатывании таймера, с интервалом в 1 секунду, работа ведется в CMqlTimer::OnTimer(). Если сменился определенный временной интервал должна выполниться определенная функция. К примеру, если наступили "новые" сутки должна выполниться функция CMqlTimer::OnRolloverDay().


Так вот, если все остальное убрать и оставить только суть OnRolloverDay() получится примерно следующее:

Все пользовательские события отслеживаются и передаются на обработку основному классу

Выглядит это примерно так

Так вот, в режиме тестирования события не доходят до OnChartEvent, т.е. советник в режиме тестирования не может обработать событие отправленное при помощи EventChartCustom. Проверял при помощи отображения всех (всех подряд) событий в лог.

PS

самое интересное то что на демке все события доходят, а в тестере работать отказывается.

До 319 все работало и в тестере события успешно обрабатывались. Правда последний релиз где это работало сказать не могу...

alexvd:
Спасибо. Будем думать.
Можно поинтересоваться как продвигаются дела в данном направлении? Очень мне нужна нормальная работа событий в тестере...
 
Interesting:
А в справке разве нет? Вроде была...

точно есть нашел, не понятны следующие переменные в формулах, выделил красным

Идентификатор

Описание

Формула

SYMBOL_CALC_MODE_FOREX

Forex mode – расчет прибыли и маржи для Форекс

Margin:  Lots*Contract_Size/Leverage

Profit:   (close_price-open_price)*Contract_Size*Lots

SYMBOL_CALC_MODE_FUTURES

Futures mode – расчет залога и прибыли для фьючерсов

Margin: Lots *InitialMargin*Percentage/100

Profit:  (close_price-open_price)*TickPrice/TickSize*Lots

SYMBOL_CALC_MODE_CFD

CFD mode – расчет залога и прибыли для CFD

Margin: Lots *ContractSize*MarketPrice*Percentage/100

Profit:  (close_price-open_price)*Contract_Size*Lots

SYMBOL_CALC_MODE_CFDINDEX

CFD index mode – расчет залога и прибыли для CFD на индексы

Margin: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize

Profit:  (close_price-open_price)*Contract_Size*Lots

SYMBOL_CALC_MODE_CFDLEVERAGE

CFD Leverage mode – расчет залога и прибыли для CFD при торговле с плечом

Margin: (Lots*ContractSize*MarketPrice*Percentage)/Leverage

Profit:  (close_price-open_price)*Contract_Size*Lots

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
Можно поинтересоваться как продвигаются дела в данном направлении? Очень мне нужна нормальная работа событий в тестере...

По вашему запросу заявка сформирована - не потеряется!

 
alexvd:

По вашему запросу заявка сформирована - не потеряется!

Спасибо. будем ждать...
 

Баг - раньше работало, а теперь нет. 

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  // вот так работает
     Print(TimeCurrent()+2*PeriodSeconds(PERIOD_D1));
  // а вот так нет (а раньше работало)  
     datetime    time_end=0;
     time_end=TimeCurrent()+2*PeriodSeconds(PERIOD_D1);
     Print(time_end);
  }
 
Prival:

Баг - раньше работало, а теперь нет. 

 

А у меня работает.

вот результ :

2010.09.08 20:15:12    Черновик1_1 (EURUSD,M15)    2010.09.10 19:15:04
2010.09.08 20:15:12    Черновик1_1 (EURUSD,M15)    2010.09.10 19:15:04

 
Prival:

Баг - раньше работало, а теперь нет. 

У меня оба варианта работают. Билд 324
 


2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

а у меня нет, неработает. цифорки разные. билд 324. Win7 64 бита

 

Prival:

2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.08 12:32:25
2010.09.08 21:09:13 00 (EURUSD,M1) 2010.09.10 19:09:13

У меня так:

2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15
2010.09.08 21:18:04 PrivalTest (EURUSD,H1) 2010.09.10 19:18:15                            

На минутках:

2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24
2010.09.08 21:30:15 PrivalTest (EURUSD,M1) 2010.09.10 19:30:24 

Win XP. 

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