Здравствуйте все!
Скажите, сотоварищи, возможно ли в код советника прописать команду для включения вместо курсора-стрелки режим курсора-перекрестия на графике?
Пишите сразу, при каких условиях это должно срабатывать
Пишите сразу, при каких условиях это должно срабатывать
Пишу сейчас советник-помощник выставления отложенных ордеров. Хочу в визуальном режиме: советник говорит "Укажите уровень входа", включает режим курсора-перекрестия и ждёт клика пользователем по графику.
Пишу сейчас советник-помощник выставления отложенных ордеров. Хочу в визуальном режиме: советник говорит "Укажите уровень входа", включает режим курсора-перекрестия и ждёт клика пользователем по графику.
А почему бы не ставить для этого простую горизонтальную линию или ценовую метку (или еще чего можно придумать)? Перекрестие придется вызывать с помощью Win API. С горизонтальной линией (или каким-то другими графическими объектами) таких проблем не будет.
А почему бы не ставить для этого простую горизонтальную линию или ценовую метку (или еще чего можно придумать)? Перекрестие придется вызывать с помощью Win API. С горизонтальной линией (или каким-то другими графическими объектами) таких проблем не будет.
Привык к перекрестию :) А другие варианты не лучше стандартного курсора.
Так-то, после команды эксперта можно кликнуть по колесу мыши и затем указывать точку входа на графике, но хочется и это переложить на советник ;)
Привык к перекрестию :) А другие варианты не лучше стандартного курсора.
Так-то, после команды эксперта можно кликнуть по колесу мыши и затем указывать точку входа на графике, но хочется и это переложить на советник ;)
Примерно так.
#property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 #property strict int OnInit(void) { // Включение сообщений о перемещении мыши по окну чарта ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1); return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { } void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_MOUSE_MOVE) { int window=0; datetime dt =0; double price =0; ChartXYToTimePrice(0,(int)lparam,(int)dparam,window,dt,price); SetHLine("h_cross_hair", price,0, 1, clrSilver); SetVLine("v_cross_hair", dt, 0, 1, clrSilver); ChartRedraw(0); } } int OnCalculate (const int rates_total, const int prev_calculated, const int begin, const double &price[]) { return(rates_total); } void SetHLine(string nm, double p1=0, int st=0, int wd=1,color cl=clrRed) { if(ObjectFind(0,nm)<0) { ObjectCreate(0,nm,OBJ_HLINE,0,0,0); ObjectSetInteger(0,nm,OBJPROP_STYLE,st); ObjectSetInteger(0,nm,OBJPROP_WIDTH,wd); ObjectSetInteger(0,nm,OBJPROP_COLOR,cl); ObjectSetString(0,nm,OBJPROP_TOOLTIP,"\n"); ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true); ObjectSetInteger(0,nm,OBJPROP_SELECTED,false); ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false); ObjectSetInteger(0,nm,OBJPROP_BACK,false); } ObjectSetDouble(0,nm,OBJPROP_PRICE,p1); } void SetVLine(string nm, datetime tm1=0, int st=0, int wd=1,color cl=clrRed) { if(ObjectFind(0,nm)<0) { ObjectCreate(0,nm,OBJ_VLINE,0,0,0); ObjectSetInteger(0,nm,OBJPROP_STYLE,st); ObjectSetInteger(0,nm,OBJPROP_WIDTH,wd); ObjectSetInteger(0,nm,OBJPROP_COLOR,cl); ObjectSetString(0,nm,OBJPROP_TOOLTIP,"\n"); ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true); ObjectSetInteger(0,nm,OBJPROP_SELECTED,false); ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false); ObjectSetInteger(0,nm,OBJPROP_BACK,false); } ObjectSetInteger(0,nm,OBJPROP_TIME,tm1); }
Примерно так.
Виталий, круто! Попробую себе прикрутить, спасибо!
Виталий, круто! Попробую себе прикрутить, спасибо!
Виталий, спасибо - работает! :) Благодарю ;)
DeInit сам доточу.
Пишу сейчас советник-помощник выставления отложенных ордеров. Хочу в визуальном режиме: советник говорит "Укажите уровень входа", включает режим курсора-перекрестия и ждёт клика пользователем по графику.
Через AutoIt легко сделать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте все!
Скажите, сотоварищи, возможно ли в код советника прописать команду для включения вместо курсора-стрелки режим курсора-перекрестия на графике?