string defaultLayout = "Default"; AddSymbol("A", "SMA"); // You can also enter a list of symbols string[] AddSymbol("AA", "RSI"); while(true) { Chart chart = Charts.GetSelectedChart(); long id = chart.ChartID; string layout = GetLayoutFromSymbol(chart.SymbolName); if(layout != null) { if(IsUpdate(id, layout)) { App.Main.UpdateChartLayout(id, layout); RegisterChart(id, layout); } } else { if(IsUpdate(id, defaultLayout)) { App.Main.UpdateChartLayout(id, defaultLayout); RegisterChart(id, defaultLayout); } } App.Main.Sleep(500); } #functions# Hashtable save = new Hashtable(); Hashtable entries = new Hashtable(); void AddSymbol(string symbol, string layout) { if(entries.ContainsKey(symbol)) { entries[symbol] = layout; } else { entries.Add(symbol, layout); } } void AddSymbol(string[] symbols, string layout) { for(int i=0;i < symbols.Length;i++) { AddSymbol(symbols[i], layout); } } void AddSymbol(Symbol[] symbols, string layout) { for(int i=0;i < symbols.Length;i++) { AddSymbol(symbols[i].Name, layout); } } string GetLayoutFromSymbol(string symbol) { if(entries.ContainsKey(symbol)) { return entries[symbol].ToString(); } else { return null; } } void RegisterChart(long id, string layout) { if(save.ContainsKey(id)) { save[id] = layout; } else { save.Add(id, layout); } } bool IsUpdate(long id, string layout) { if(save.ContainsKey(id)) { if(save[id] == layout) { return false; } else { return true; } } else { return true; } }