anyone can advise how to code the arrow as attached photo
The example code here to create the arrow.
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_arrow
Use Wingdings code 240 for the right arrow.
https://www.mql5.com/en/docs/constants/objectconstants/wingdings
If you want a dashed line, you can use OBJ_TREND with the OBJPROP_RAY set to false
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_trend
Use Wingdings code 240 for the right arrow.
Actually the arrow codes are 1 for opening a trade and 3 for closing
The example code here to create the arrow.
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_arrow
Use Wingdings code 240 for the right arrow.
https://www.mql5.com/en/docs/constants/objectconstants/wingdings
If you want a dashed line, you can use OBJ_TREND with the OBJPROP_RAY set to false
https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_trend
thanks bro
I made a class a while ago to plot trades... Maybe you can make use of it. :)
Example EA that plots history trades:
#property strict #include <ChartObjects\ChartObjectsArrows.mqh> #include <ChartObjects\ChartObjectsLines.mqh> #include <Arrays\ArrayObj.mqh> class PlotTrade : public CObject { int m_ticket; CChartObjectArrow m_in; CChartObjectArrow m_out; CChartObjectTrend m_line; static ulong s_count; public: PlotTrade():m_ticket(-1){} bool create(int ticket){ m_ticket = ticket; if(!OrderSelect(ticket, SELECT_BY_TICKET) || OrderType() > 1) return false; string name = "__plot_" + string(++s_count) + "_"; int digits = (int)SymbolInfoInteger(OrderSymbol(), SYMBOL_DIGITS); string tooltip = StringFormat("#%d %s\n%s: %s\n%s: %s\nProfit: %s", ticket, OrderType() == OP_BUY ? "BUY" : "SELL", TimeToString(OrderOpenTime()), DoubleToString(OrderOpenPrice(), digits), TimeToString(OrderCloseTime()), DoubleToString(OrderClosePrice(), digits), DoubleToString(OrderProfit() + OrderSwap() + OrderCommission(), 2) ); color line_col = OrderType() == OP_BUY ? clrDodgerBlue : clrRed; if(!m_in.Create(0, name + "in", 0, OrderOpenTime(), OrderOpenPrice(), 1) || !m_out.Create(0, name + "out", 0, OrderCloseTime(), OrderClosePrice(), 3) || !m_line.Create(0, name + "line", 0, OrderOpenTime(), OrderOpenPrice(), OrderCloseTime(), OrderClosePrice() ) || !m_line.RayRight(false) || !m_in.Color(line_col) || !m_line.Color(line_col) || !m_line.Style(STYLE_DOT) || !m_in.Tooltip(tooltip) || !m_out.Tooltip(tooltip) || !m_line.Tooltip(tooltip) ) return false; return true; } int ticket() const { return m_ticket; } virtual int Compare(const CObject *node, const int mode=0) const override { const PlotTrade *other = node; if(this.ticket() > other.ticket()) return 1; if(this.ticket() < other.ticket()) return -1; return 0; } }; ulong PlotTrade::s_count = 0; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ CArrayObj list; int OnInit(){ EventSetMillisecondTimer(1); return INIT_SUCCEEDED; } void OnTimer(){ EventKillTimer(); list.Sort(); for(int i=OrdersHistoryTotal()-1; i>=0; --i){ if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol() == _Symbol){ PlotTrade *plot_trade = new PlotTrade(); if(plot_trade.create(OrderTicket()) && list.Search(plot_trade) < 0) list.InsertSort(plot_trade); else delete plot_trade; } } } void OnTick(){}
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
anyone can advise how to code the arrow as attached photo