usingcAlgo.API;usingSystem.Linq;namespacecAlgo{// A sample indicator that shows how to use HistoricalTrade[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]publicclassTest:Indicator{privateStyle_textBlocksStyle;privateStackPanel_stackPanel;privateGrid_tradesGrid;protectedoverridevoidInitialize(){_stackPanel=newStackPanel{Orientation=Orientation.Vertical,HorizontalAlignment=HorizontalAlignment.Center,VerticalAlignment=VerticalAlignment.Center,BackgroundColor=Color.Gold};_textBlocksStyle=newStyle();_textBlocksStyle.Set(ControlProperty.Margin,5);_stackPanel.AddChild(newTextBox{Text="Your Last 10 Trades",FontWeight=FontWeight.ExtraBold,HorizontalAlignment=HorizontalAlignment.Center,Style=_textBlocksStyle});Chart.AddControl(_stackPanel);UpdateLastTradeTextBlock();Positions.Closed+=args=>UpdateLastTradeTextBlock();}publicoverridevoidCalculate(intindex){}privatevoidUpdateLastTradeTextBlock(){if(_tradesGrid!=null)_stackPanel.RemoveChild(_tradesGrid);_tradesGrid=newGrid(11,6);_tradesGrid.AddChild(newTextBlock{Text="Symbol",Style=_textBlocksStyle},0,0);_tradesGrid.AddChild(newTextBlock{Text="Direction",Style=_textBlocksStyle},0,1);_tradesGrid.AddChild(newTextBlock{Text="Volume",Style=_textBlocksStyle},0,2);_tradesGrid.AddChild(newTextBlock{Text="Open Time",Style=_textBlocksStyle},0,3);_tradesGrid.AddChild(newTextBlock{Text="Close Time",Style=_textBlocksStyle},0,4);_tradesGrid.AddChild(newTextBlock{Text="Net Profit",Style=_textBlocksStyle},0,5);varlastTenTrades=History.OrderByDescending(iTrade=>iTrade.ClosingTime).Take(10).ToArray();for(intiRowIndex=1;iRowIndex<=lastTenTrades.Length;iRowIndex++){vartrade=lastTenTrades[iRowIndex-1];_tradesGrid.AddChild(newTextBlock{Text=trade.SymbolName,Style=_textBlocksStyle},iRowIndex,0);_tradesGrid.AddChild(newTextBlock{Text=trade.TradeType.ToString(),Style=_textBlocksStyle},iRowIndex,1);_tradesGrid.AddChild(newTextBlock{Text=trade.VolumeInUnits.ToString(),Style=_textBlocksStyle},iRowIndex,2);_tradesGrid.AddChild(newTextBlock{Text=trade.EntryTime.ToString("g"),Style=_textBlocksStyle},iRowIndex,3);_tradesGrid.AddChild(newTextBlock{Text=trade.ClosingTime.ToString("g"),Style=_textBlocksStyle},iRowIndex,4);_tradesGrid.AddChild(newTextBlock{Text=trade.NetProfit.ToString(),Style=_textBlocksStyle},iRowIndex,5);}_stackPanel.AddChild(_tradesGrid);}}}