Не разберусь в справочнике с вопросом: мышкой нужно указать свечу и клик левой кнопки по этой свече запускает выполнение советника. После выполнения ждём следующего клика ТОЛЬКО по свече. Без свечи все клики советник игнорирует.
Мозг (мышиный) КИПИТ!!! Помогите!!!
А где это хоть написано??? покажи)
Да функций много! Собственно по тому и запутался!
Смысл в том, что я не могу автоматически посчитать сдвиг (shift) от последнего бара до бара на котором я кликаю мышкой. Тут и функции ChartTimeOnDropped, СhartXOnDropped, ChartYOnDropped, CHARTEVENT_CLICK. Не врублюсь: как получить разницу по оси Х от нулевого (текущего) бара (свечи) до указанной кликом мышки?
Может я влез не туда?
Да функций много! Собственно по тому и запутался!
Смысл в том, что я не могу автоматически посчитать сдвиг (shift) от последнего бара до бара на котором я кликаю мышкой. Тут и функции ChartTimeOnDropped, СhartXOnDropped, ChartYOnDropped, CHARTEVENT_CLICK. Не врублюсь: как получить разницу по оси Х от нулевого (текущего) бара (свечи) до указанной кликом мышки?
Может я влез не туда?
В терминале есть кнопка "Перекрестие". Если на неё нажать, то мышка превратится в большущий крест. Наводим этот крест на нулевую свечу, зажимаем и удерживаем левую кнопку мыши. Далее тянем указатель мыши влево до нужной свечи. Рядом с указателем появляются числа. Это количество свеч, цена и пункты. Насколько я понимаю, Вы хотите это всё просчитывать кодом? Если так, то зачем, если оно уже встроенными в терминал средствами работает?
В терминале есть кнопка "Перекрестие". Если на неё нажать, то мышка превратится в большущий крест. Наводим этот крест на нулевую свечу, зажимаем и удерживаем левую кнопку мыши. Далее тянем указатель мыши влево до нужной свечи. Рядом с указателем появляются числа. Это количество свеч, цена и пункты. Насколько я понимаю, Вы хотите это всё просчитывать кодом? Если так, то зачем, если оно уже встроенными в терминал средствами работает?
встроенными средствами в MQL оно не работает
можете убедиться - сделать простой советник который принтует события от мыши.
включено перекрестие - события часты и адекватны. выключено - не шатко не валко. Включить перекрестие штатно нельзя
В терминале есть кнопка "Перекрестие". Если на неё нажать, то мышка превратится в большущий крест. Наводим этот крест на нулевую свечу, зажимаем и удерживаем левую кнопку мыши. Далее тянем указатель мыши влево до нужной свечи. Рядом с указателем появляются числа. Это количество свеч, цена и пункты. Насколько я понимаю, Вы хотите это всё просчитывать кодом? Если так, то зачем, если оно уже встроенными в терминал средствами работает?
Благодарю за комментарий. Смысл в том, что мне перекрестие не нужно: мне нужно выбрать свечу из потока уже в прошлом и автоматически посчитать её размер от хая до лоу + спред. Идея такая: визуально я вижу нужный мне паттерн, навожу мышку на свечу, кликаю и над нею (или в ином месте, в алерте) получаю размер свечи в сумме со спредом. По минимуму и максимуму ( в зависимости от направления сделки) выставляется лимитник и СЛ. В идеальном варианте от эквити и дистанции СЛ рассчитывается размер лота для сделки. ВСЁ! Так что перекрестие - оно и в терминале перекрестие! Мне оно ни к чему!
Я понимаю, что это сложно, но на данном этапе я пытаюсь найти решение как от нулевой свечи автоматически просчитать сдвиг до указанной мышкой свечи. Потом буду искать варианты определения размера выделенной свечи, лота и т.п... Но это потом.
Я понимаю, что это сложно, но на данном этапе я пытаюсь найти решение как от нулевой свечи автоматически просчитать сдвиг до указанной мышкой свечи. Потом буду искать варианты определения размера выделенной свечи, лота и т.п... Но это потом.
Да что тут сложного?
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())); } }
Благодарю за комментарий. Смысл в том, что мне перекрестие не нужно: мне нужно выбрать свечу из потока уже в прошлом и автоматически посчитать её размер от хая до лоу + спред. Идея такая: визуально я вижу нужный мне паттерн, навожу мышку на свечу, кликаю и над нею (или в ином месте, в алерте) получаю размер свечи в сумме со спредом. По минимуму и максимуму ( в зависимости от направления сделки) выставляется лимитник и СЛ. В идеальном варианте от эквити и дистанции СЛ рассчитывается размер лота для сделки. ВСЁ! Так что перекрестие - оно и в терминале перекрестие! Мне оно ни к чему!
Я понимаю, что это сложно, но на данном этапе я пытаюсь найти решение как от нулевой свечи автоматически просчитать сдвиг до указанной мышкой свечи. Потом буду искать варианты определения размера выделенной свечи, лота и т.п... Но это потом.
сделайте по другому (кстати и отладится будет проще) - создайте объект "вертикальная линия", он будет типа курсора, и когда он перемещается (события OBJECT_DRAG , OBJECT_CHANGE) - считывайте время и смотрите на который бар приходится.
потом, если возникнет желание переделаёте уже на клик мыша
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не разберусь в справочнике с вопросом: мышкой нужно указать свечу и клик левой кнопки по этой свече запускает выполнение советника. После выполнения ждём следующего клика ТОЛЬКО по свече. Без свечи все клики советник игнорирует.
Мозг (мышиный) КИПИТ!!! Помогите!!!