Вопросы от "чайника" - страница 81

 
tol64:

Подскажите, в каких случаях стоимость тика может отличаться в зависимости от того, прибыльная позиция на текущий момент или убыточная?

SYMBOL_TRADE_TICK_VALUE_PROFIT

SYMBOL_TRADE_TICK_VALUE_LOSS

 
Посмотрите поиском по форуму. Врое уже обсуждалось нечто подобное.
 

Нужно получить результат последней сделки. Что делаю не так? :

   i = HistoryDealsTotal(); 
   
   if (i > 1)  {
   	HistorySelect(0,TimeCurrent());
   	ticket = HistoryDealGetTicket(i);
   	profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
   }
 
infera:

Нужно получить результат последней сделки. Что делаю не так? :

 

по моему надо так

   HistorySelect(0,TimeCurrent());

   i = HistoryDealsTotal(); 
   
   if (i > 1)  {
        
        ticket = HistoryDealGetTicket(i-1);
        profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
   }
 
sergey1294:

по моему надо так

Спасибо, заработало.
 

Эксперементирую с удалением не нужных хендлов.В простом примере без строчек IndicatorRelease(ma_handle); все хорошо работает ,быстро.

А так чуть ли не вешает систему в режиме   OHLC.Или как то по другому удалять?

double ma2[];int ma2_handle;double ma[];int ma_handle;

int OnInit()
 {  
  return(0);
 }

void OnTick() 
{ 
    ma_handle  = iMA(_Symbol,_Period,10, 0,MODE_SMA, PRICE_CLOSE);
    ma2_handle = iMA(_Symbol,_Period,100, 0,MODE_SMA, PRICE_CLOSE);
   IndicatorRelease(ma_handle);
   IndicatorRelease(ma2_handle);
}
 
Karlson:

Эксперементирую с удалением не нужных хендлов.В простом примере без строчек IndicatorRelease(ma_handle); все хорошо работает ,быстро.

А так чуть ли не вешает систему в режиме   OHLC.Или как то по другому удалять?

 

Создавать  и удалять хэндлы индикаторов на каждом тике - это неправильно. Это все равно, что глушить и заводить машину на каждом светофоре и перед каждым пешеходным переходом.
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
 
Rosh:
Создавать  и удалять хэндлы индикаторов на каждом тике - это неправильно. Это все равно, что глушить и заводить машину на каждом светофоре и перед каждым пешеходным переходом.

А я хочу уточнить по хэндлам.

Если при деинициализации хэндлы не были удалены (IndicatorRelease), а программа была при этом удалена с графика, хэндлы удаляются автоматически? 

И ещё. В справке написано, что это экономит память. На сколько? Если можно в цифрах, сколько потребляют ресурсов хэндлы индикаторов.

 
tol64:

А я хочу уточнить по хэндлам.

Если при деинициализации хэндлы не были удалены (IndicatorRelease), а программа была при этом удалена с графика, хэндлы удаляются автоматически? 

Да,  если исполнительная система терминала обнаруживает бесхозный хэндл, который никем не востребован, то он будет удален автоматически. Время жизни такого хэндла сейчас не скажу.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
tol64:

И ещё. В справке написано, что это экономит память. На сколько? Если можно в цифрах, сколько потребляют ресурсов хэндлы индикаторов.

Если один и тот же индикатор запрашивается с 10 графиков, то экономия составляет в 10 раз. А так считайте - количество баров, на которых считается индикатор, да помножьте на количество индикаторных буферов. да помножьте на размер типа double да не забудьте память под цветовые буфера если есть.
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Rosh:
Создавать  и удалять хэндлы индикаторов на каждом тике - это неправильно. Это все равно, что глушить и заводить машину на каждом светофоре и перед каждым пешеходным переходом.

Понятное дело.Это была модель.В эксперте функция запускается на новом недельном баре.Создаются новые индикаторы,делается математика.Потом за собой надо убрать..Так вот и там при включении строки IndicatorRelease происходит почти замирание..Достаточно ее убрать , и не смотря на весь мусор все летает.

double ma[];int ma_handle;datetime time[],lastbar;

int OnInit()
 {  
  return(0);
 }

void OnTick() 
{  
   if(CopyTime(_Symbol,PERIOD_W1,0,1,time)<=0) {Print("Error: ",GetLastError());return;}
   if (lastbar!=time[0]) {Optim();}
}


int Optim()
{
   ma_handle  = iMA(_Symbol,PERIOD_M15,20, 0,MODE_SMA, PRICE_CLOSE);
 ------------------

 ------------------
   IndicatorRelease(ma_handle);

   return (0);
}
Причина обращения: