Ответ
 
Опции темы
Старый 06.09.2016, 09:42   #4961 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Сообщение от st2050 Посмотреть сообщение
Скажите пожалуйста какой-либо способ расположить графический объект над графиком при том, что в свойствах чарта график сверху.

Докладываю: будучи прикладным программистом, я решил этот вопрос как смог. Тупо запилил свой индикатор свечей.
Может быть это и не лучший выход, но работает. Как говорится, с блекджеком и машками (машки прилагаются там же).
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 08.09.2016, 07:17   #4962 (permalink)
Местный житель
 
Аватар для Pluto
 
Регистрация: 16.05.2011
Сообщений: 92
Репутация: 179
Pluto - Pluto -
Сказал(а) спасибо: 304
Поблагодарили 178 раз(а) в 51 сообщениях
Поинты: 88
Господа, привет! Без вашего совета не обойтись, прошу объяснить.

Есть стрелочный индюк (нестандартные фракталы).
Надо, чтоб сова покупала от нижнего фрактала и продавала от верхнего.

Вот код индюка:

Скрытый текст

PHP код:
//+------------------------------------------------------------------+
//|                                                   MI_Fractal.mq4 |
//|                                                     Орешкин А.В. |
//|                                        http://www.vk.com/mtforex |
//+------------------------------------------------------------------+
#property copyright "Орешкин А.В."
#property link      "http://www.vk.com/mtforex"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Yellow
#property indicator_width1 2
#property indicator_width2 2

//--- input parameters
extern int       leftBars=10;
extern int       rightBars=2;
extern int       difference=10;
//extern int       maximumBars=1000;
extern bool      showUp=true;
extern bool      showDown=true;

bool  UP_Fractal,DOWN_Fractal;
double DEF,up[],down[];

int init()
  {
   
DEF=NormalizeDouble(difference*Point,Digits);
   
SetIndexBuffer(0,up);
   
SetIndexBuffer(1,down);
   
SetIndexStyle(0,DRAW_ARROW);
   
SetIndexStyle(1,DRAW_ARROW);    
   
SetIndexArrow(0,217);
   
SetIndexArrow(1,218);
   return(
0);
  }

int deinit(){return(0);}

int start()
  {   
   
//for (int i=maximumBars;i>rightBars;i--)
   
for (int i=Bars-IndicatorCounted()-leftBars-1;i>rightBars;i--)   
      {
//3
      
UP_Fractal=true;DOWN_Fractal=true;
      
      for (
int x=i+leftBars;x>=i-rightBars;x--)
         {
//0
         
if (x==i) continue;
         if (
High[i]-High[x]<DEFUP_Fractal=false;
         if (
Low[x]-Low[i]<DEFDOWN_Fractal=false;
         }
//0
      
      
up[i]=EMPTY;
      
down[i]=EMPTY;
      
      if (
showUp)   
         if (
UP_Fractal && !DOWN_Fractalup[i]=High[i];
      
      if (
showDown)   
         if (!
UP_Fractal && DOWN_Fractaldown[i]=Low[i]; 
      }
//3
   
return(0);
  } 
[свернуть]


Вот участок кода совы:

Скрытый текст

PHP код:
double upFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,0,0);
double downFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,1,0); 
     
   
//if (upFr!=EMPTY_VALUE)   
   //if (upFr<2) 
   
if (upFr>0)    
     {   
                                          
      
Alert(upFr); 
      
Opn_S=true;                             
      
//Cls_B=true;                                
     
}
 
//if (downFr!=EMPTY_VALUE)
   //if (downFr<2)
   
if (downFr>0)                                              
     {                                         
     
Opn_B=true;                              
     
//Cls_S=true;                             
     

[свернуть]


Проблемы:
В зависимости от условия в if сова открывает только buy не глядя на фракталы или совсем ничего не делает. Если б не было ограничения на количество ордеров, то покупала бы на каждом тике вроде. Значение upFr всегда =2147483647 (на каждом баре). При этом на экране "-1" если нет фрактала, если фрактал есть то Value равно какому то значению 1,ХХХХ (1,1182 например).
Как исправить это?

Пробовал другие подобные индюки, картина не меняется.

upd: если прописать какое-нить другое простецкое условие входа типа

Скрытый текст

PHP код:
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_EMA,PRICE_CLOSE,0); 
if (
Bid>MA_1_t)   {   
                                          
      
Alert(MA_1_t); 
      
Opn_S=true;                             
      
//Cls_B=true;                                
     
}  
 if (
Bid<MA_1_t)
    {                                         
     
Opn_B=true;                              
     
//Cls_S=true;                             
     

[свернуть]

то на М1 видно, что все нормально работает, а со стрелками никак.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2016-09-08_104854.jpg
Просмотров: 29
Размер:	506.0 Кб
ID:	252255  
Вложения:
Тип файла: mq4 ea — копия.mq4 (12.8 Кб, 6 просмотров)
Тип файла: mq4 MI_Fractal.mq4 (1.9 Кб, 4 просмотров)

Последний раз редактировалось Pluto; 08.09.2016 в 07:41.
Pluto вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 08.09.2016, 08:09   #4963 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 309
Репутация: 393
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 394 раз(а) в 127 сообщениях
Поинты: 40
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от Pluto Посмотреть сообщение
Господа, привет! Без вашего совета не обойтись, прошу объяснить.

Есть стрелочный индюк (нестандартные фракталы).
Надо, чтоб сова покупала от нижнего фрактала и продавала от верхнего.

Вот код индюка:

Скрытый текст

PHP код:
//+------------------------------------------------------------------+
//|                                                   MI_Fractal.mq4 |
//|                                                     Орешкин А.В. |
//|                                        http://www.vk.com/mtforex |
//+------------------------------------------------------------------+
#property copyright "Орешкин А.В."
#property link      "http://www.vk.com/mtforex"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Yellow
#property indicator_width1 2
#property indicator_width2 2

//--- input parameters
extern int       leftBars=10;
extern int       rightBars=2;
extern int       difference=10;
//extern int       maximumBars=1000;
extern bool      showUp=true;
extern bool      showDown=true;

bool  UP_Fractal,DOWN_Fractal;
double DEF,up[],down[];

int init()
  {
   
DEF=NormalizeDouble(difference*Point,Digits);
   
SetIndexBuffer(0,up);
   
SetIndexBuffer(1,down);
   
SetIndexStyle(0,DRAW_ARROW);
   
SetIndexStyle(1,DRAW_ARROW);    
   
SetIndexArrow(0,217);
   
SetIndexArrow(1,218);
   return(
0);
  }

int deinit(){return(0);}

int start()
  {   
   
//for (int i=maximumBars;i>rightBars;i--)
   
for (int i=Bars-IndicatorCounted()-leftBars-1;i>rightBars;i--)   
      {
//3
      
UP_Fractal=true;DOWN_Fractal=true;
      
      for (
int x=i+leftBars;x>=i-rightBars;x--)
         {
//0
         
if (x==i) continue;
         if (
High[i]-High[x]<DEFUP_Fractal=false;
         if (
Low[x]-Low[i]<DEFDOWN_Fractal=false;
         }
//0
      
      
up[i]=EMPTY;
      
down[i]=EMPTY;
      
      if (
showUp)   
         if (
UP_Fractal && !DOWN_Fractalup[i]=High[i];
      
      if (
showDown)   
         if (!
UP_Fractal && DOWN_Fractaldown[i]=Low[i]; 
      }
//3
   
return(0);
  } 
[свернуть]


Вот участок кода совы:

Скрытый текст

PHP код:
double upFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,0,0);
double downFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,1,0); 
     
   
//if (upFr!=EMPTY_VALUE)   
   //if (upFr<2) 
   
if (upFr>0)    
     {   
                                          
      
Alert(upFr); 
      
Opn_S=true;                             
      
//Cls_B=true;                                
     
}
 
//if (downFr!=EMPTY_VALUE)
   //if (downFr<2)
   
if (downFr>0)                                              
     {                                         
     
Opn_B=true;                              
     
//Cls_S=true;                             
     

[свернуть]


Проблемы:
В зависимости от условия в if сова открывает только buy не глядя на фракталы или совсем ничего не делает. Если б не было ограничения на количество ордеров, то покупала бы на каждом тике вроде. Значение upFr всегда =2147483647 (на каждом баре). При этом на экране "-1" если нет фрактала, если фрактал есть то Value равно какому то значению 1,ХХХХ (1,1182 например).
Как исправить это?

Пробовал другие подобные индюки, картина не меняется.

upd: если прописать какое-нить другое простецкое условие входа типа

Скрытый текст

PHP код:
MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_EMA,PRICE_CLOSE,0); 
if (
Bid>MA_1_t)   {   
                                          
      
Alert(MA_1_t); 
      
Opn_S=true;                             
      
//Cls_B=true;                                
     
}  
 if (
Bid<MA_1_t)
    {                                         
     
Opn_B=true;                              
     
//Cls_S=true;                             
     

[свернуть]

то на М1 видно, что все нормально работает, а со стрелками никак.
Це правильно.
if (upFr!=EMPTY_VALUE)

iCustom(...,0);
це не правильно

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 08.09.2016, 08:19   #4964 (permalink)
Местный житель
 
Аватар для Pluto
 
Регистрация: 16.05.2011
Сообщений: 92
Репутация: 179
Pluto - Pluto -
Сказал(а) спасибо: 304
Поблагодарили 178 раз(а) в 51 сообщениях
Поинты: 88
Сообщение от eevviill2 Посмотреть сообщение
Це правильно.
if (upFr!=EMPTY_VALUE)

iCustom(...,0);
це не правильно
поставил смещение 1 - не працюе.

Скрытый текст

PHP код:
double upFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,0,1);
double downFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,1,1); 
     
   if (
upFr!=EMPTY_VALUE)   
   
//if (upFr<2) 
   //if (upFr>0)    
     
{   
                                          
      
Alert(upFr); 
      
Opn_S=true;                             
      
//Cls_B=true;                                
     
}
 if (
downFr!=EMPTY_VALUE)
   
//if (downFr<2)
 //  if (downFr>0)                                              
     
{                                         
     
Opn_B=true;                              
     
//Cls_S=true;                             
     

[свернуть]


При значении 3 открывает одну сделку и все.

При "-1" открывается только в бай и на фракталы не смотрит тоже.
Сколько должно быть?

Последний раз редактировалось Pluto; 08.09.2016 в 08:26.
Pluto вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 08.09.2016, 08:33   #4965 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 309
Репутация: 393
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 394 раз(а) в 127 сообщениях
Поинты: 40
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от Pluto Посмотреть сообщение
поставил смещение 1 - не працюе.

Скрытый текст

PHP код:
double upFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,0,1);
double downFr=iCustom(Symbol(),0"MI_Fractal",leftBars,rightBars,difference,showUp,showDown,1,1); 
     
   if (
upFr!=EMPTY_VALUE)   
   
//if (upFr<2) 
   //if (upFr>0)    
     
{   
                                          
      
Alert(upFr); 
      
Opn_S=true;                             
      
//Cls_B=true;                                
     
}
 if (
downFr!=EMPTY_VALUE)
   
//if (downFr<2)
 //  if (downFr>0)                                              
     
{                                         
     
Opn_B=true;                              
     
//Cls_S=true;                             
     

[свернуть]


При значении 3 открывает одну сделку и все.

При "-1" открывается только в бай и на фракталы не смотрит тоже.
Сколько должно быть?
Не вгадав з 3 раз
rightBars=2;

Хоча 3 теж має працювати. Може відкриває 1 бо стоїть перевірка макс ордерів 1?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Pluto (13.09.2016)
Старый 08.09.2016, 09:02   #4966 (permalink)
Местный житель
 
Аватар для Pluto
 
Регистрация: 16.05.2011
Сообщений: 92
Репутация: 179
Pluto - Pluto -
Сказал(а) спасибо: 304
Поблагодарили 178 раз(а) в 51 сообщениях
Поинты: 88
Сообщение от eevviill2 Посмотреть сообщение
Не вгадав з 3 раз
rightBars=2;

Хоча 3 теж має працювати. Може відкриває 1 бо стоїть перевірка макс ордерів 1?
мне надо чтоб в работе одновременно было не более одного ордера. Если в условии входа прописать не стрелочый индюк, а что-нить другое, то сделки нормально открываются по одной, друг за дружкой. Но ради проверки поставил ограничение до 5 ордеров. Все равно, итог печален (при сдвиге =3 одна сделка).
Поставил
extern int rightBars=2;
и сдвиг 2, потом 3. Не помогло.
Pluto вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 04:19   #4967 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Здравствуйте, коллеги. Скажите пожалуйста есть ли в MT4 встроенная горячая клавиша чтобы скрывать/показывать линию цены?

За незнанием таковой делаю программно - в торговой панели.
Зачем? Все для того же - убираю с графика то, что мешает его воспринимать. А для спреда у меня семафорчик есть.

Честно, без линии цены чувствуешь себя совсем по-другому - свободнее и спокойнее.

Код:
void ShowHidePriceLine(bool aShow)
{
   ChartSetInteger(0,CHART_SHOW_BID_LINE,0,aShow);
   ChartSetInteger(0,CHART_SHOW_ASK_LINE,0,aShow);
}
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 06:19   #4968 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Еще вот такой вопрос: как получить тикет того ордера, на котором щелкнули мышкой?

Объясняю зачем. В процессе торговли я оставляю некоторые ордера в долгую.
Моя торговая панель хранит их список и всячески их игнорирует: не рассчитывает для них суммарный профит, суммарные уровни бу, не закрывает их по кнопке "Закрыть все".

Только вот вставлять номера тикетов в список торговой панели приходится ручками. А хотелось бы добавлять щелчком мыши на ордере, но для этого нужно узнать тикет.
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 07:46   #4969 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 309
Репутация: 393
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 394 раз(а) в 127 сообщениях
Поинты: 40
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от st2050 Посмотреть сообщение
Еще вот такой вопрос: как получить тикет того ордера, на котором щелкнули мышкой?

Объясняю зачем. В процессе торговли я оставляю некоторые ордера в долгую.
Моя торговая панель хранит их список и всячески их игнорирует: не рассчитывает для них суммарный профит, суммарные уровни бу, не закрывает их по кнопке "Закрыть все".

Только вот вставлять номера тикетов в список торговой панели приходится ручками. А хотелось бы добавлять щелчком мыши на ордере, но для этого нужно узнать тикет.
OnChartEvent()
?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 07:46   #4970 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 309
Репутация: 393
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 394 раз(а) в 127 сообщениях
Поинты: 40
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от st2050 Посмотреть сообщение
Здравствуйте, коллеги. Скажите пожалуйста есть ли в MT4 встроенная горячая клавиша чтобы скрывать/показывать линию цены?

За незнанием таковой делаю программно - в торговой панели.
Зачем? Все для того же - убираю с графика то, что мешает его воспринимать. А для спреда у меня семафорчик есть.

Честно, без линии цены чувствуешь себя совсем по-другому - свободнее и спокойнее.

Код:
void ShowHidePriceLine(bool aShow)
{
   ChartSetInteger(0,CHART_SHOW_BID_LINE,0,aShow);
   ChartSetInteger(0,CHART_SHOW_ASK_LINE,0,aShow);
}
Зайди в настройки графика и выключи

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 08:07   #4971 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от eevviill2 Посмотреть сообщение
Зайди в настройки графика и выключи
А где там линия Bid выключается?
Она ваще не отключается по-моему, разве что как у ТС программно
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 08:21   #4972 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,655
Репутация: 8591
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 634
Поблагодарили 8,586 раз(а) в 1,569 сообщениях
Поинты: 804
Сообщение от st2050 Посмотреть сообщение
Здравствуйте, коллеги. Скажите пожалуйста есть ли в MT4 встроенная горячая клавиша чтобы скрывать/показывать линию цены?

За незнанием таковой делаю программно - в торговой панели.
Зачем? Все для того же - убираю с графика то, что мешает его воспринимать. А для спреда у меня семафорчик есть.

Честно, без линии цены чувствуешь себя совсем по-другому - свободнее и спокойнее.

Код:
void ShowHidePriceLine(bool aShow)
{
   ChartSetInteger(0,CHART_SHOW_BID_LINE,0,aShow);
   ChartSetInteger(0,CHART_SHOW_ASK_LINE,0,aShow);
}
На основе своего кода сделай скрипт без вызова настроек и назначь ему горячую клавишу.

PS.
А если добавить в код определение - отображена ли линия, тогда можно реализовать переключатель: если линии нет - показать, а при следующем набросе скрипта, если есть линия - скрыть.
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill2 (09.09.2016), st2050 (09.09.2016)
Старый 09.09.2016, 08:33   #4973 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 309
Репутация: 393
eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 231
Поблагодарили 394 раз(а) в 127 сообщениях
Поинты: 40
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от ansol Посмотреть сообщение
А где там линия Bid выключается?
Она ваще не отключается по-моему, разве что как у ТС программно
свойства графика-цвет сетки clrNONE
Миниатюры:
Нажмите на изображение для увеличения
Название: GBPUSDH1.png
Просмотров: 22
Размер:	618.1 Кб
ID:	252334  

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 08:59   #4974 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Сообщение от eevviill2 Посмотреть сообщение
свойства графика-цвет сетки clrNONE
Мде, довольно дебильно, Ask можно одной галкой на второй вкладке убрать.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill2 (09.09.2016)
Старый 09.09.2016, 09:51   #4975 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Сообщение от ansol Посмотреть сообщение
Мде, довольно дебильно, Ask можно одной галкой на второй вкладке убрать.

Товарищи дорогие, коллеги-программисты!
Вспомните пожалуйста анекдот про Холмса и Ватсона на воздушном шаре и программиста. В отличие от них я спрашиваю ровно то что мне нужно.

Анекдот

Летят Холмс с Ватсоном на воздушном шаре. И спят в полете. Просыпаются над какой-то незнакомой землей, видят - внизу какой-то хрен коров пасет.
Снизились они и спрашивают мужика:
- Скажите, сэр, где мы находимся?
- На воздушном шаре.
- Спасибо, сэр! - и летят вверх. Холмс задумчиво говорит:
- Интересная местность, Ватсон! Программист пасет коров!
- Холмс, а с чего вы взяли, что он программист?
- Это элементарно! Во-первых, он долго думал над ответом. Во-вторых, его ответ был абсолютно точен. И в третьих - абсолютно бесполезен!
[свернуть]

По нажатию кнопки открытия ордера торговая панель отображает обе линии цены на экране, запрашивает разрешение на открытие ордера, а после ответа - опять скрывает их. Мне так удобно.
Ордеров я открываю бывает и 20 в день. Неужели же каждый раз лазить на вторую вкладку свойства графика чтобы ставить, а потом обратно снимать галку линии Ask?

Все чем я часто пользуюсь - я имею по клику на своей торговой панели. У меня даже отдельные индикаторы включаются и выключаются на графике по нажатию кнопок - потому что так быстро и удобно.
И Вам всем желаю столько удобства, сколько захотите именно Вы
Миниатюры:
Нажмите на изображение для увеличения
Название: VS_Assistant.jpg
Просмотров: 18
Размер:	54.8 Кб
ID:	252352  
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
DomovenokBrest (09.09.2016)
Старый 09.09.2016, 09:53   #4976 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Сообщение от eevviill2 Посмотреть сообщение
OnChartEvent()
?

Это я плотно использую. Но как в этой процедуре вычислить что клик был по конкретному ордеру и получить его тикет?
Вот вопрос.
Возможно, я воспользуюсь CHARTEVENT_OBJECT_CLICK, предварительно установив графические объекты рядом с ценами открытия ордеров. Я уже думал над таким костылем.

Сообщение от eevviill2 Посмотреть сообщение
свойства графика-цвет сетки clrNONE

Нет, сетку я использую иногда по Ctrl+G.
.

Последний раз редактировалось st2050; 09.09.2016 в 10:17.
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 09:57   #4977 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,010
Репутация: 830
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 844 раз(а) в 555 сообщениях
Поинты: 1310
Цитата:
Ордеров я открываю бывает и 20 в день. Неужели же каждый раз лазить на вторую вкладку свойства графика чтобы ставить, а потом обратно снимать галку линии Ask?

Все чем я часто пользуюсь - я имею по клику на своей торговой панели. У меня даже отдельные индикаторы включаются и выключаются на графике по нажатию кнопок - потому что так быстро и удобно.
И Вам всем желаю столько удобства, сколько захотите именно Вы
Если бы дело было только в ASK, то F8 - галка и всё. Вкладка открывается та, на которой в последний раз был. Т.е. получается очень быстро, а вот BID так не убрать, это понятно.
Подскажи, плз, откуда эта панель? Самопись какая-то? Был бы исходник - мы там наворотим всё, что хошь
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 10:09   #4978 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Сообщение от ansol Посмотреть сообщение
Подскажи, плз, откуда эта панель?

Это моя торговая панель. Я ее засветил чтобы показать, что там есть фичи на все частые случаи моей торговой жизни.
Не распространяю нигде. Не хочу допустить чтобы обращались с просьбами что-то допилить. Мне запросов пользователей и по работе хватает, тысячи их (в буквальном смысле - тысячи пользователей).

Сообщение от ansol Посмотреть сообщение
Был бы исходник - мы там наворотим всё, что хошь

Был бы ответ на вопрос - я бы сам наворотил все что хочу. Стаж больше 20 лет.

Последний раз редактировалось st2050; 09.09.2016 в 10:15.
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 15:51   #4979 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от st2050 Посмотреть сообщение
Это моя торговая панель. Я ее засветил чтобы показать, что там есть фичи на все частые случаи моей торговой жизни.
Не распространяю нигде. Не хочу допустить чтобы обращались с просьбами что-то допилить. Мне запросов пользователей и по работе хватает, тысячи их (в буквальном смысле - тысячи пользователей).




Был бы ответ на вопрос - я бы сам наворотил все что хочу. Стаж больше 20 лет.
Я тут, часть разговора пропустил, а шо тут у Вас происходит?

В моЁм понимании, не на панель надо стремиться, а на автомат. В смысле автоматической торговле.
А Вы что подумали?

Последний раз редактировалось _SERG_; 09.09.2016 в 15:53.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.09.2016, 15:59   #4980 (permalink)
Местный знаток
 
Аватар для st2050
 
Регистрация: 08.09.2012
Сообщений: 311
Репутация: 577
st2050 - st2050 - st2050 - st2050 - st2050 - st2050 -
Сказал(а) спасибо: 362
Поблагодарили 576 раз(а) в 141 сообщениях
Поинты: 399
Благодарю высказавших свое мнение по вопросу отображения линии цены, а особенно - mobidik, который подал идею назначить скрипту горячую клавишу.
Рассказываю как я решил вопрос по нажатию клавиши "P". Легко и удобно!

Код:
#import "user32.dll"
   int RegisterWindowMessageW(string a0);
#import

void OnChartEvent(const int id, const long &lparam,
   const double &dparam, const string &sparam)
{
  if (id==CHARTEVENT_KEYDOWN)
  {
    //P key pressed
    if (int(lparam)==80)
    {
      ShowHidePriceLine(!PriceLinesVisible());
      SendTick();
    }
  }
}

void ShowHidePriceLine(bool aShow)
{
   ChartSetInteger(0,CHART_SHOW_BID_LINE,0,aShow);
   ChartSetInteger(0,CHART_SHOW_ASK_LINE,0,aShow);
}

bool PriceLinesVisible()
{
  return(ChartGetInteger(0,CHART_SHOW_BID_LINE,0)==true);
}

// обновляет индикацию, немедленно эмулируя тик
// особенно полезно в оффлайне
void SendTick() {
   int message = 
      RegisterWindowMessageW("MetaTrader4_Internal_Message");
   int hwd = WindowHandle(Symbol(), Period());
   PostMessageW(hwd, message, 2, 1);
}

Мечтаю управлять компьютером с помощью мысли.
Тогда даже клавишу нажимать не придется
st2050 вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 11:46. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO