[{"data":1,"prerenderedAt":323},["ShallowReactive",2],{"user-guide:faq/alerts/alerts-on-indicators-and-scripts":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":23,"tree":24},"faq/alerts/alerts-on-indicators-and-scripts","faq/alerts/alerts-on-indicators-and-scripts.md",{"title":7,"description":8,"category":9,"kind":10,"keywords":11,"updatedAt":21,"popularity":22},"Can I set an alert on an indicator or my own script?","Yes. Open the alert dialog from the bell on the indicator's legend row, the right-click menu, or Alert on, Indicators. A script alerts on its outputs or on the signals it declares.","alerts","faq",[12,13,14,15,16,17,18,19,20],"indicator alert","script alert","custom alert","alert condition","ma cross","crossing","wrun alert","signal","alert()","2026-10-20",11,"---\ntitle: 'Can I set an alert on an indicator or my own script?'\ndescription: \"Yes. Open the alert dialog from the bell on the indicator's legend row, the right-click menu, or Alert on, Indicators. A script alerts on its outputs or on the signals it declares.\"\ncategory: alerts\nkind: faq\nkeywords:\n  [indicator alert, script alert, custom alert, alert condition, ma cross, crossing, wrun alert, signal, alert()]\nupdatedAt: '2026-10-20'\npopularity: 11\n---\n\n# Can I set an alert on an indicator or my own script?\n\n**Yes.** Indicator alerts work on built-in indicators and on wrun scripts. Open the alert dialog from the bell on the indicator's legend row, from the chart's right-click menu, or from **Alert on**, **Indicators** in the alerts menu. Pick an output or a signal, pick the condition (crossing, entering or leaving a channel, moving up or down), and save.\n\nFor your own script, two things matter:\n\n- **Publish it first.** An alert runs a published version of the script; on a draft, the chart asks you to publish.\n- **Declare the signals you want.** Every drawn output can be a condition, and an `alert()` call in your code adds a ready-made signal to the alert dialog. [Alerts in the wrun docs](/wrun/functions/alerts) shows how.\n\nOpenMarket checks indicator alerts on its servers, at most once a second for each indicator, so a value that crosses a level and comes back within the same second can be missed ([when an alert checks and fires](/wrun/functions/alerts#when-an-alert-checks-and-fires)). How many you can keep armed at once depends on your plan ([Plans and limits](/learn/getting-started/plans-and-limits)). Custom scripts do not run on CME futures yet, so neither do their alerts.\n",{"type":25,"children":26,"data":316,"position":318},"root",[27,30,113,114,129,130,250,251],{"type":28,"value":29},"text","\n",{"type":31,"tagName":32,"properties":33,"children":34,"position":110},"element","p",{},[35,55,62,79,86,103],{"type":31,"tagName":36,"properties":37,"children":38,"position":48},"strong",{},[39],{"type":28,"value":40,"position":41},"Yes.",{"start":42,"end":45},{"line":43,"column":43,"offset":44},3,58,{"line":43,"column":46,"offset":47},7,62,{"start":49,"end":52},{"line":43,"column":50,"offset":51},1,56,{"line":43,"column":53,"offset":54},9,64,{"type":28,"value":56,"position":57}," Indicator alerts work on built-in indicators and on wrun scripts. Open the alert dialog from the bell on the indicator's legend row, from the chart's right-click menu, or from ",{"start":58,"end":59},{"line":43,"column":53,"offset":54},{"line":43,"column":60,"offset":61},186,241,{"type":31,"tagName":36,"properties":63,"children":64,"position":74},{},[65],{"type":28,"value":66,"position":67},"Alert on",{"start":68,"end":71},{"line":43,"column":69,"offset":70},188,243,{"line":43,"column":72,"offset":73},196,251,{"start":75,"end":76},{"line":43,"column":60,"offset":61},{"line":43,"column":77,"offset":78},198,253,{"type":28,"value":80,"position":81},", ",{"start":82,"end":83},{"line":43,"column":77,"offset":78},{"line":43,"column":84,"offset":85},200,255,{"type":31,"tagName":36,"properties":87,"children":88,"position":98},{},[89],{"type":28,"value":90,"position":91},"Indicators",{"start":92,"end":95},{"line":43,"column":93,"offset":94},202,257,{"line":43,"column":96,"offset":97},212,267,{"start":99,"end":100},{"line":43,"column":84,"offset":85},{"line":43,"column":101,"offset":102},214,269,{"type":28,"value":104,"position":105}," in the alerts menu. Pick an output or a signal, pick the condition (crossing, entering or leaving a channel, moving up or down), and save.",{"start":106,"end":107},{"line":43,"column":101,"offset":102},{"line":43,"column":108,"offset":109},353,408,{"start":111,"end":112},{"line":43,"column":50,"offset":51},{"line":43,"column":108,"offset":109},{"type":28,"value":29},{"type":31,"tagName":32,"properties":115,"children":116,"position":126},{},[117],{"type":28,"value":118,"position":119},"For your own script, two things matter:",{"start":120,"end":123},{"line":121,"column":50,"offset":122},5,410,{"line":121,"column":124,"offset":125},40,449,{"start":127,"end":128},{"line":121,"column":50,"offset":122},{"line":121,"column":124,"offset":125},{"type":28,"value":29},{"type":31,"tagName":131,"properties":132,"children":133,"position":247},"ul",{},[134,135,167,168,246],{"type":28,"value":29},{"type":31,"tagName":136,"properties":137,"children":138,"position":163},"li",{},[139,156],{"type":31,"tagName":36,"properties":140,"children":141,"position":150},{},[142],{"type":28,"value":143,"position":144},"Publish it first.",{"start":145,"end":147},{"line":46,"column":121,"offset":146},455,{"line":46,"column":148,"offset":149},22,472,{"start":151,"end":153},{"line":46,"column":43,"offset":152},453,{"line":46,"column":154,"offset":155},24,474,{"type":28,"value":157,"position":158}," An alert runs a published version of the script; on a draft, the chart asks you to publish.",{"start":159,"end":160},{"line":46,"column":154,"offset":155},{"line":46,"column":161,"offset":162},116,566,{"start":164,"end":166},{"line":46,"column":50,"offset":165},451,{"line":46,"column":161,"offset":162},{"type":28,"value":29},{"type":31,"tagName":136,"properties":169,"children":170,"position":242},{},[171,189,196,209,216,235],{"type":31,"tagName":36,"properties":172,"children":173,"position":183},{},[174],{"type":28,"value":175,"position":176},"Declare the signals you want.",{"start":177,"end":180},{"line":178,"column":121,"offset":179},8,571,{"line":178,"column":181,"offset":182},34,600,{"start":184,"end":186},{"line":178,"column":43,"offset":185},569,{"line":178,"column":187,"offset":188},36,602,{"type":28,"value":190,"position":191}," Every drawn output can be a condition, and an ",{"start":192,"end":193},{"line":178,"column":187,"offset":188},{"line":178,"column":194,"offset":195},83,649,{"type":31,"tagName":197,"properties":198,"children":199,"position":206},"code",{},[200],{"type":28,"value":20,"position":201},{"start":202,"end":203},{"line":178,"column":194,"offset":195},{"line":178,"column":204,"offset":205},92,658,{"start":207,"end":208},{"line":178,"column":194,"offset":195},{"line":178,"column":204,"offset":205},{"type":28,"value":210,"position":211}," call in your code adds a ready-made signal to the alert dialog. ",{"start":212,"end":213},{"line":178,"column":204,"offset":205},{"line":178,"column":214,"offset":215},157,723,{"type":31,"tagName":217,"properties":218,"children":220,"position":230},"a",{"href":219},"/wrun/functions/alerts",[221],{"type":28,"value":222,"position":223},"Alerts in the wrun docs",{"start":224,"end":227},{"line":178,"column":225,"offset":226},158,724,{"line":178,"column":228,"offset":229},181,747,{"start":231,"end":232},{"line":178,"column":214,"offset":215},{"line":178,"column":233,"offset":234},206,772,{"type":28,"value":236,"position":237}," shows how.",{"start":238,"end":239},{"line":178,"column":233,"offset":234},{"line":178,"column":240,"offset":241},217,783,{"start":243,"end":245},{"line":178,"column":50,"offset":244},567,{"line":178,"column":240,"offset":241},{"type":28,"value":29},{"start":248,"end":249},{"line":46,"column":50,"offset":165},{"line":178,"column":240,"offset":241},{"type":28,"value":29},{"type":31,"tagName":32,"properties":252,"children":253,"position":313},{},[254,263,281,288,306],{"type":28,"value":255,"position":256},"OpenMarket checks indicator alerts on its servers, at most once a second for each indicator, so a value that crosses a level and comes back within the same second can be missed (",{"start":257,"end":260},{"line":258,"column":50,"offset":259},10,785,{"line":258,"column":261,"offset":262},179,963,{"type":31,"tagName":217,"properties":264,"children":266,"position":276},{"href":265},"/wrun/functions/alerts#when-an-alert-checks-and-fires",[267],{"type":28,"value":268,"position":269},"when an alert checks and fires",{"start":270,"end":273},{"line":258,"column":271,"offset":272},180,964,{"line":258,"column":274,"offset":275},210,994,{"start":277,"end":278},{"line":258,"column":261,"offset":262},{"line":258,"column":279,"offset":280},266,1050,{"type":28,"value":282,"position":283},"). How many you can keep armed at once depends on your plan (",{"start":284,"end":285},{"line":258,"column":279,"offset":280},{"line":258,"column":286,"offset":287},327,1111,{"type":31,"tagName":217,"properties":289,"children":291,"position":301},{"href":290},"/learn/getting-started/plans-and-limits",[292],{"type":28,"value":293,"position":294},"Plans and limits",{"start":295,"end":298},{"line":258,"column":296,"offset":297},328,1112,{"line":258,"column":299,"offset":300},344,1128,{"start":302,"end":303},{"line":258,"column":286,"offset":287},{"line":258,"column":304,"offset":305},386,1170,{"type":28,"value":307,"position":308},"). Custom scripts do not run on CME futures yet, so neither do their alerts.",{"start":309,"end":310},{"line":258,"column":304,"offset":305},{"line":258,"column":311,"offset":312},462,1246,{"start":314,"end":315},{"line":258,"column":50,"offset":259},{"line":258,"column":311,"offset":312},{"quirksMode":317},false,{"start":319,"end":321},{"line":50,"column":50,"offset":320},0,{"line":22,"column":50,"offset":322},1247,1792479961467]