Помогите разобраться с мышкой

 

Не разберусь в справочнике с вопросом: мышкой нужно указать свечу и клик левой кнопки по этой свече запускает выполнение советника. После выполнения ждём следующего клика ТОЛЬКО по свече. Без свечи все клики советник игнорирует.

Мозг (мышиный) КИПИТ!!! Помогите!!!

 
Vladimir Zinenco:

Не разберусь в справочнике с вопросом: мышкой нужно указать свечу и клик левой кнопки по этой свече запускает выполнение советника. После выполнения ждём следующего клика ТОЛЬКО по свече. Без свечи все клики советник игнорирует.

Мозг (мышиный) КИПИТ!!! Помогите!!!

А где это хоть написано??? покажи)

 
to_ha #:

А где это хоть написано??? покажи)

Да функций много! Собственно по тому и запутался!

Смысл в том, что я не могу автоматически посчитать сдвиг (shift) от последнего бара до бара на котором я кликаю мышкой. Тут и функции ChartTimeOnDropped, СhartXOnDropped, ChartYOnDropped, CHARTEVENT_CLICK. Не врублюсь: как получить разницу по оси Х от нулевого (текущего) бара (свечи) до указанной кликом мышки?

Может я влез не туда?

 
Vladimir Zinenco #:

Да функций много! Собственно по тому и запутался!

Смысл в том, что я не могу автоматически посчитать сдвиг (shift) от последнего бара до бара на котором я кликаю мышкой. Тут и функции ChartTimeOnDropped, СhartXOnDropped, ChartYOnDropped, CHARTEVENT_CLICK. Не врублюсь: как получить разницу по оси Х от нулевого (текущего) бара (свечи) до указанной кликом мышки?

Может я влез не туда?

В терминале есть кнопка "Перекрестие". Если на неё нажать, то мышка превратится в большущий крест. Наводим этот крест на нулевую свечу, зажимаем и удерживаем левую кнопку мыши. Далее тянем указатель мыши влево до нужной свечи. Рядом с указателем появляются числа. Это количество свеч, цена и пункты. Насколько я понимаю, Вы хотите это всё просчитывать кодом? Если так, то зачем, если оно уже встроенными в терминал средствами работает?

 
Vitaly Murlenko #:

В терминале есть кнопка "Перекрестие". Если на неё нажать, то мышка превратится в большущий крест. Наводим этот крест на нулевую свечу, зажимаем и удерживаем левую кнопку мыши. Далее тянем указатель мыши влево до нужной свечи. Рядом с указателем появляются числа. Это количество свеч, цена и пункты. Насколько я понимаю, Вы хотите это всё просчитывать кодом? Если так, то зачем, если оно уже встроенными в терминал средствами работает?

встроенными средствами в MQL оно не работает

можете убедиться - сделать простой советник который принтует события от мыши.

включено перекрестие - события часты и адекватны. выключено - не шатко не валко. Включить перекрестие штатно нельзя

 
Vitaly Murlenko #:

В терминале есть кнопка "Перекрестие". Если на неё нажать, то мышка превратится в большущий крест. Наводим этот крест на нулевую свечу, зажимаем и удерживаем левую кнопку мыши. Далее тянем указатель мыши влево до нужной свечи. Рядом с указателем появляются числа. Это количество свеч, цена и пункты. Насколько я понимаю, Вы хотите это всё просчитывать кодом? Если так, то зачем, если оно уже встроенными в терминал средствами работает?

Благодарю за комментарий. Смысл в том, что мне перекрестие не нужно: мне нужно выбрать свечу из потока уже в прошлом и автоматически посчитать её размер от хая до лоу + спред. Идея такая: визуально я вижу нужный мне паттерн, навожу мышку на свечу, кликаю и над нею (или в ином месте, в алерте) получаю размер свечи в сумме со спредом. По минимуму и максимуму ( в зависимости от направления сделки) выставляется лимитник и СЛ. В идеальном варианте от эквити и дистанции СЛ рассчитывается размер лота для сделки. ВСЁ! Так что перекрестие - оно и в терминале перекрестие! Мне оно ни к чему!

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

 
Vladimir Zinenco #:

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

Да что тут сложного?

void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam  // параметр события типа string 
                 )
{
   if (id == CHARTEVENT_CLICK)
   {
      int nX = (int)lparam;
      int nY = (int)dparam;
      datetime dtTime = 0;
      double fPrice = 0.0;
      int nSubWindow = 0;
      ChartXYToTimePrice(0, nX, nY, nSubWindow, dtTime, fPrice);
      int nBarIndex = iBarShift(NULL, PERIOD_CURRENT, dtTime);
      
      Comment("Клик мыши на свече №", nBarIndex, "\nHigh: ", DoubleToString(iHigh(NULL, PERIOD_CURRENT, nBarIndex), Digits()),
              "\nLow: ", DoubleToString(iLow(NULL, PERIOD_CURRENT, nBarIndex), Digits()));
   }
}
 
Vladimir Zinenco #:

Благодарю за комментарий. Смысл в том, что мне перекрестие не нужно: мне нужно выбрать свечу из потока уже в прошлом и автоматически посчитать её размер от хая до лоу + спред. Идея такая: визуально я вижу нужный мне паттерн, навожу мышку на свечу, кликаю и над нею (или в ином месте, в алерте) получаю размер свечи в сумме со спредом. По минимуму и максимуму ( в зависимости от направления сделки) выставляется лимитник и СЛ. В идеальном варианте от эквити и дистанции СЛ рассчитывается размер лота для сделки. ВСЁ! Так что перекрестие - оно и в терминале перекрестие! Мне оно ни к чему!

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

сделайте по другому (кстати и отладится будет проще) - создайте объект "вертикальная линия", он будет типа курсора, и когда он перемещается (события OBJECT_DRAG , OBJECT_CHANGE) - считывайте время и смотрите на который бар приходится.

потом, если возникнет желание переделаёте уже на клик мыша

 
Ihor Herasko #:

Да что тут сложного?

Слов нет, одни эмоции!!! Это именно то, что нужно!!!  Благодарю!