usingSystem;usingcAlgo.API;usingcAlgo.API.Collections;usingcAlgo.API.Internals;namespacecAlgo.Robots{[Robot(AccessRights = AccessRights.None, AddIndicators = true)]publicclassPopupNotificationStatesDemo:Robot{protectedoverridevoidOnStart(){varpanel=newStackPanel{Orientation=Orientation.Vertical,HorizontalAlignment=HorizontalAlignment.Center,VerticalAlignment=VerticalAlignment.Center};// InProgressvarinProgressBtn=newButton{Text="Show: InProgress",Margin=5};inProgressBtn.Click+=_=>{Notifications.ShowPopup("In progress","Starting a long-running task…",PopupNotificationState.InProgress);};panel.AddChild(inProgressBtn);// SuccessvarsuccessBtn=newButton{Text="Show: Success",Margin=5};successBtn.Click+=_=>{Notifications.ShowPopup("Success","The operation completed successfully.",PopupNotificationState.Success);};panel.AddChild(successBtn);// ErrorvarerrorBtn=newButton{Text="Show: Error",Margin=5};errorBtn.Click+=_=>{Notifications.ShowPopup("Error","Something went wrong. Please check the logs or try again.",PopupNotificationState.Error);};panel.AddChild(errorBtn);// PartialvarpartialBtn=newButton{Text="Show: Partial",Margin=5};partialBtn.Click+=_=>{Notifications.ShowPopup("Partial result","Completed with partial success (e.g. some orders filled).",PopupNotificationState.Partial);};panel.AddChild(partialBtn);// InformationvarinfoBtn=newButton{Text="Show: Information",Margin=5};infoBtn.Click+=_=>{Notifications.ShowPopup("Information","General update: your settings were saved.",PopupNotificationState.Information);};panel.AddChild(infoBtn);Chart.AddControl(panel);}protectedoverridevoidOnTick(){// Handle price updates here if needed}protectedoverridevoidOnStop(){// Cleanup if needed}}}
protectedoverridevoidOnPositionClosed(PositionClosedEventArgsargs){varpos=args.Position;varreason=pos.ClosingReason.ToString();Notifications.ShowPopup("Position Closed",$"Closed due to {reason}. PnL: {pos.GrossProfit}",PopupNotificationState.Information);}
protectedoverridevoidOnBar(){if(Account.Equity<100){Notifications.ShowPopup("Trade Blocked","Equity too low to place trade",PopupNotificationState.Error);return;}ExecuteMarketOrder(TradeType.Sell,SymbolName,1000);}