Создание линии-индикатора показывающей потенциальный профит

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Maksim Neimerik
31756
Maksim Neimerik  
Привет! Захотелось мне сделать такой индикатор-линию, но столкнулся с проблемой: сделать это после события не проблема (то есть взяли линию потащили куда нужно отпустили и появился нужный расчет профита), но вот сделать это во время движения линии никак не получается... Думаю дело в обработчике событий, но не найду нужного типа событий... Может кто наставить на путь истинный? 
Alexey Viktorov
27915
Alexey Viktorov  
На мой взгляд описание слишком скудное. Я лично совсем не понял задачу.
Maksim Neimerik
31756
Maksim Neimerik  
Alexey Viktorov:
На мой взгляд описание слишком скудное. Я лично совсем не понял задачу.

Да, я подозревал что так будет... Попробую иначе: у нас есть 3 ордера рыночных без стопов и профитов. Я кидаю на график линию OBJ_HLINE и в том месте где она появилась появляется так же OBJ_LABEL с посчитанным потенциальным профитом или лосом НА ЦЕНЕ ЛИНИИ. Примерно так:

дальше я выделяю линию и тащу ее вниз и ВО ВРЕМЯ движения показатели метки меняются, то есть прибыль или убыток меняются... Ну как смог так и объяснил:)

Maksim Neimerik
31756
Maksim Neimerik  

Пробовал так:

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
   {
      if(id==CHARTEVENT_OBJECT_CLICK)
      {
         ObjectSetInteger(0,"Profit Box",OBJPROP_XDISTANCE,(int)lparam);
         ObjectSetInteger(0,"Profit Box",OBJPROP_YDISTANCE,(int)dparam-18);
      }
   }   

работает, но только по завершении движения...

получается как бы все обработчики событий срабатывают уже после завершения самого события...

Alexey Viktorov
27915
Alexey Viktorov  

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

Я-бы сделал её по текущей цене или между аском и бидом. И на каждом тике менял ей цену вместе с изменением цены инструмента. А когда руками линию сдвинули, тут и рисуем лейбл. Это в обработчике OnChartEvent() а потом в OnCalculate() считается расстояние до линии, множится на цену тика и лот, каждый тик и меняется текст лейбла. Вот и всё.

Maksim Neimerik
31756
Maksim Neimerik  
Alexey Viktorov:

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

Я-бы сделал её по текущей цене или между аском и бидом. И на каждом тике менял ей цену вместе с изменением цены инструмента. А когда руками линию сдвинули, тут и рисуем лейбл. Это в обработчике OnChartEvent() а потом в OnCalculate() считается расстояние до линии, множится на цену тика и лот, каждый тик и меняется текст лейбла. Вот и всё.

Нет, кажется вы не поняли суть задачи... я не знаю как еще объяснить

Alekseu Fedotov
1480
Alekseu Fedotov  

Думаю понял правильно.

Это скрипт, описание внутри.

Maksim Neimerik
31756
Maksim Neimerik  
Alekseu Fedotov:

Думаю понял правильно.

Это скрипт, описание внутри.

Все равно не то! Как посчитать профит я знаю, здесь главное изменять данные ВО ВРЕМЯ ДВИЖЕНИЯ ЛИНИИ (как в тейк профите стандартном если эго руками перетягивать то в левом конце пунктирной линии видно меняющееся значение профита и количества пипсов)

Alekseu Fedotov
1480
Alekseu Fedotov  
Maksim Neimerik:

Все равно не то! Как посчитать профит я знаю, здесь главное изменять данные ВО ВРЕМЯ ДВИЖЕНИЯ ЛИНИИ (как в тейк профите стандартном если эго руками перетягивать то в левом конце пунктирной линии видно меняющееся значение профита и количества пипсов)

Так вроде так есть, двигая линию показывает данные "Баланс: **** Профит ***** ( **% от Depo)"


Ну ладно, рад был помочь 

Alexey Viktorov
27915
Alexey Viktorov  
Ну, теперь понятно, что замысел нереального. Дело в том, что прочесть цену линии можно только тогда, когда она "свободна".  Может попробовать читать координаты мыши в момент перетаскивания?
Maksim Neimerik
31756
Maksim Neimerik  
Alexey Viktorov:
Ну, теперь понятно, что замысел нереального. Дело в том, что прочесть цену линии можно только тогда, когда она "свободна".  Может попробовать читать координаты мыши в момент перетаскивания?

Я тоже так думал, но какое событие обрабатывать? Нет такого события... Клик есть, клик на объекте есть а передвижение мыши - нет, ну или я плохо искал...

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий