string defaultLayout = "Default"; AddPeriod(1, "SMA"); // You can also enter a list of periods string[] AddPeriod(-60, "Hatched"); while(true) { Chart chart = Charts.GetSelectedChart(); long id = chart.ChartID; int tf = chart.TimeFrame; if(!chart.IsHistorical) { tf = -tf; } string layout = GetLayoutFromPeriod(tf); if(layout != null) { if(IsUpdate(id, layout)) { App.Main.UpdateChartLayout(id, layout); chart.IsHistorical = (tf > 0) ? true : false; chart.TimeFrame = Math.Abs(tf); RegisterChart(id, layout); } } else { if(IsUpdate(id, defaultLayout)) { App.Main.UpdateChartLayout(id, defaultLayout); chart.IsHistorical = (tf > 0) ? true : false; chart.TimeFrame = Math.Abs(tf); RegisterChart(id, defaultLayout); } } App.Main.Sleep(500); } #functions# Hashtable save = new Hashtable(); Hashtable entries = new Hashtable(); void AddPeriod(int period, string layout) { if(entries.ContainsKey(period)) { entries[period] = layout; } else { entries.Add(period, layout); } } void AddPeriod(int[] periods, string layout) { for(int i=0;i < periods.Length;i++) { AddPeriod(periods[i], layout); } } string GetLayoutFromPeriod(int period) { if(entries.ContainsKey(period)) { return entries[period].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; } }