{
  "schemaVersion": "1.0",
  "kind": "ackalgo-builder-tool-reference",
  "documentationRevision": "2026-09-27",
  "editorUrl": "https://ackalgo.coolontop.com/builder/",
  "guides": {
    "th": "https://ackalgo.coolontop.com/builder/guide/th/",
    "en": "https://ackalgo.coolontop.com/builder/guide/en/"
  },
  "executionApi": null,
  "storage": "browser-local",
  "platform": "mt5",
  "evaluationMode": "closed_bar",
  "timeframes": [
    "M1",
    "M2",
    "M3",
    "M4",
    "M5",
    "M6",
    "M10",
    "M12",
    "M15",
    "M20",
    "M30",
    "H1",
    "H2",
    "H3",
    "H4",
    "H6",
    "H8",
    "H12",
    "D1",
    "W1",
    "MN1"
  ],
  "verification": {
    "localPreflight": "available",
    "sourceGeneration": "supported graphs only",
    "exactFileCompiler": "external; not run by website",
    "mt5StrategyTester": "external; not run by website"
  },
  "safetyDefaults": {
    "InpAllowTrading": false,
    "InpAllowRealAccount": false
  },
  "importFormat": {
    "schemaVersion": "1.0",
    "kind": "ackalgo-strategy-workspace",
    "strategySchemaVersion": "1.0",
    "requiredStrategyFields": [
      "schemaVersion",
      "id",
      "name",
      "description",
      "platform",
      "symbol",
      "primaryTimeframe",
      "confirmationTimeframes",
      "evaluationMode",
      "tradeDirection",
      "nodes",
      "edges"
    ],
    "procedure": "Start from an example. Preserve valid node IDs, edge endpoints and operand references. Import through Builder settings, then run Preflight. Structural import success is not export validation."
  },
  "tools": [
    {
      "id": "workspace",
      "title": "Find every workspace control",
      "blocks": [
        {
          "type": "table",
          "headers": [
            "Area / control",
            "How to use it / outcome"
          ],
          "rows": [
            [
              "Strategy name · Saved locally",
              "Rename at the top and inspect save status. Saved locally means this browser, not cloud storage."
            ],
            [
              "Broker symbol · Timeframe",
              "Enter a symbol including a suffix; the field uppercases text, so check the exported name against the broker. Select a primary timeframe and recheck each node after changing it."
            ],
            [
              "Undo · Redo",
              "Undo or redo strategy changes in the current session with buttons or Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z."
            ],
            [
              "Switch to light/dark theme",
              "Switch the editor theme and remember it locally. The guide uses a light reading surface."
            ],
            [
              "Builder settings",
              "Edit Description and Trade direction; export/import JSON; inspect local storage and recovery controls."
            ],
            [
              "Node library",
              "Choose Templates or add blocks from the left categories. Search matches indicator names, abbreviations, categories and keywords, plus tools such as Session Filter and saved My Blocks."
            ],
            [
              "Canvas · Canvas outline",
              "Arrange and connect nodes, or use the outline to select nodes and connect using buttons instead of dragging."
            ],
            [
              "Inspector · PLAIN-ENGLISH RULE",
              "Select a node to edit it. Read its summary after each edit. A node name is a label, not its operational configuration."
            ],
            [
              "Problems · Go to node",
              "Expand errors and warnings; Go to node selects the affected block."
            ],
            [
              "Preflight",
              "Contains Summary, MQL5 Source and MT5 Setup. It checks and exports locally; it does not launch MT5."
            ]
          ]
        }
      ]
    },
    {
      "id": "canvas",
      "title": "Add, connect and reuse blocks",
      "blocks": [
        {
          "type": "ul",
          "items": [
            "Add: choose an indicator from Indicators or search, for example RSI. Use Logic for Compare Values / Session Filter, Entry & Exit for actions, and Risk for sizing.",
            "Quick add: the + control on a node inserts a next-step block based on its kind. Always inspect the resulting connection and rule; it is not automatic strategy design.",
            "Connect: drag from output to input, or open Canvas outline, select a source, then Connect to …. Incompatible links are rejected. Adding a data input can change a condition operand.",
            "Remove a connection by selecting it and pressing Delete/Backspace, or using Remove in the outline. Delete a node in Inspector and use Undo if needed. Recheck Problems for broken references.",
            "Navigate: drag nodes to move them and empty canvas to pan. Use Zoom in / Zoom out / Fit strategy in view and the minimap. Shift supports multi-selection; Inspector edits one selected node at a time.",
            "Duplicate copies the selected node, not the whole strategy with its wiring. Inspect and connect the copy yourself.",
            "Recent contains recently used indicators; Favorites are explicit stars; My Blocks contains configured nodes saved with Save as Block. All are browser-local.",
            "Save as Block supports self-contained single nodes. If disabled, save the independent source node or Export strategy JSON for the entire graph. My Blocks retains up to 20 recent saved blocks."
          ]
        },
        {
          "type": "flow"
        },
        {
          "type": "p",
          "text": "Indicator → Condition carries values; Condition → Market Entry carries signals; Entry → Risk → Exit defines sizing and protection. Session gates time; ATR → Risk binds a stop-distance source. A drawable edge still needs semantic Preflight validation."
        }
      ]
    },
    {
      "id": "rules",
      "title": "Configure indicators and conditions",
      "blocks": [
        {
          "type": "p",
          "text": "Select an indicator and set Timeframe, Output and its parameters using the catalog below. Changing Indicator resets parameters to the new defaults. Indicator line Shift is different from a condition bar shift: bar shift 1 is the latest closed candle; 0 is an unfinished candle and is not Builder's evaluation mode."
        },
        {
          "type": "table",
          "headers": [
            "Operator / field",
            "Meaning and use"
          ],
          "rows": [
            [
              "Crosses above / Crosses below",
              "Detect a side change between closed bars, not merely being above or below. Use for MA crosses or RSI threshold recovery."
            ],
            [
              "Is greater than / Is less than",
              "Compare left and right values at the selected bar. The condition can remain true for many bars."
            ],
            [
              "Breaks above / Breaks below",
              "Detect a level break. Follow the Breakout template for confirmed fractal levels rather than unfinished swing points."
            ],
            [
              "Equals",
              "Listed but export-blocked because a supported tolerance is not configured. Choose an operator that accurately represents your rule."
            ],
            [
              "Left operand / Right operand",
              "Check source and output, such as MACD main versus signal. Edit a threshold when the operand is constant. A read-only source is changed through graph connections."
            ],
            [
              "Signal · Reverse rule for short entries",
              "Long/Short are directional signals; Filter gates other signals. With Long & short, inspect the reverse rule. Different thresholds are better represented as separate conditions, as in the RSI template."
            ]
          ]
        },
        {
          "type": "p",
          "text": "Multiple timeframes can be used within one symbol. Ensure MT5 has the required history. Values must be confirmed at signal time, not future data. Multiple connected conditions are not an unrestricted AND/OR expression editor: inspect the source and test the resulting behavior."
        }
      ]
    },
    {
      "id": "risk",
      "title": "Sessions, position size and exits",
      "blocks": [
        {
          "type": "table",
          "headers": [
            "Tool",
            "Configure and verify"
          ],
          "rows": [
            [
              "Session Filter",
              "Use Start/End in Broker time, not automatically your local time. Check broker server time and DST. Weekdays are Monday–Friday; UTC export and additional day controls are not available."
            ],
            [
              "Market Entry",
              "Market orders only. Match Direction to Strategy settings and Signal. Use maximum 1 position and one trade per bar as required in this version."
            ],
            [
              "Risk percent",
              "Risk per trade is the percentage used to size a position from its stop distance; it is not a price-distance percentage. Inspect the actual calculated lot size in MT5."
            ],
            [
              "Fixed lot",
              "Set lots directly. Check the broker symbol's minimum, maximum and volume step. Fixed lots do not produce a constant monetary risk."
            ],
            [
              "Stop loss / Take profit",
              "Read the field suffix: percent is a price percentage, points uses the symbol's point size, and atr is an ATR multiple. The UI edits the current template's mode; it has no general stop-mode switch. Use the ATR template to practice ATR stops."
            ],
            [
              "Maximum spread",
              "Measured in points, not pips. Check the broker's point size. A limit below the actual spread can prevent entries."
            ],
            [
              "Protected Exit",
              "Use At stop or target. On opposite signal and At session close remain export-blocked. Trailing stop and break-even are not supported export tools in this version."
            ]
          ]
        },
        {
          "type": "p",
          "text": "For example, Stop loss 0.5 percent means a distance of 0.5% of price, not a maximum account loss of 0.5% and not 0.5 pip. Actual risk can change with slippage, gaps and execution conditions."
        }
      ]
    },
    {
      "id": "files",
      "title": "Save, import and recover work",
      "blocks": [
        {
          "type": "p",
          "text": "Autosave uses this browser's local storage, not a user account. Switching browsers, clearing site data or using private mode can make previous work unavailable. Export strategy JSON before closing or moving computers."
        },
        {
          "type": "ul",
          "items": [
            "Import: Builder settings → Import strategy JSON → select file → structural validation → replacement confirmation → check name and Problems. Workspace schema 1.0 and supported strategy structures are accepted.",
            "Local save failed: the open work remains in memory. Export strategy JSON immediately, before refreshing. Check browser storage permissions and capacity.",
            "Local autosave is paused: export current work, and Download recovery bytes for old data if available. Resume local save writes storage again after confirmation; read what will be replaced first.",
            "Corrupt data or a newer schema: do not change a version number just to bypass validation. Preserve recovery bytes and share the file with its error message for diagnosis.",
            "Clear saved browser data removes saved Builder data. Back up first; this is not a general error-fixing step."
          ]
        }
      ]
    },
    {
      "id": "ai",
      "title": "Work with an AI assistant",
      "blocks": [
        {
          "type": "p",
          "text": "An AI can read this HTML guide or download Markdown and reference.json. Builder has no public execution API, broker API or server compilation service. Interaction requires a user-authorized browser, or a JSON file that the user imports."
        },
        {
          "type": "ol",
          "items": [
            "Collect: rules, symbol/timeframe, direction, sizing/stops/spread and the current strategy file. Ask about missing details that change behavior; do not invent risk settings.",
            "Start from a supported example JSON. Preserve schemaVersion, node IDs, edges and references while editing. Consult reference.json for parameter keys and allowed values.",
            "In browser automation, use names and labels such as Builder settings, Canvas outline and Preflight; read the new state after edits. Avoid guessed coordinates or direct local storage writes.",
            "Do not clear data, confirm replacements, transmit customer files elsewhere or enable real trading outside the owner's authorization.",
            "Deliver: a rule summary, strategy JSON, source/manifest if generated, warnings/blockers and actual verification evidence. Mark unperformed compiler/tester steps Not run."
          ]
        },
        {
          "type": "prompt",
          "text": "Help me build a strategy in AckAlgo EA Builder using this guide.\nEntry rules: [specify]\nExit rules: [specify]\nBroker symbol / timeframe: [specify]\nDirection / position sizing / stop loss / take profit / spread: [specify with units]\nUse supported tools only. Ask about missing requirements.\nBack up strategy JSON before editing and review replacement confirmations.\nCheck Problems and Preflight; deliver strategy JSON, .mq5 and manifest when generated.\nReport local validation, source generation, exact-file compilation and MT5 testing separately.\nDo not claim unperformed compiler/backtest results. Do not enable real accounts or place real orders."
        }
      ]
    },
    {
      "id": "limits",
      "title": "Current support boundaries",
      "blocks": [
        {
          "type": "p",
          "text": "Available: templates, visual graphs, indicator parameters, closed-bar conditions, broker sessions, market entries, sizing, stop/target, JSON import/export, local preflight and MQL5 source export for supported graphs."
        },
        {
          "type": "p",
          "text": "Not supported: Catalog only extensions, tolerance-based Equals, UTC session export, pending orders, multiple symbols per strategy, full mobile editing, custom indicator uploads, cloud sync, payments, web backtests, server compilation and broker connections. A visible UI option is not proof of export support."
        },
        {
          "type": "p",
          "text": "For an unsupported requirement, hand off the intended rule, an example and the blocker for development assessment. Do not silently change the strategy's meaning just to pass Preflight."
        }
      ]
    }
  ],
  "templates": [
    {
      "id": "ma-crossover",
      "name": "MA Crossover",
      "description": "Trade a confirmed EMA 20 / EMA 50 crossover on closed bars.",
      "exampleUrl": "https://ackalgo.coolontop.com/builder/guide/examples/ma-crossover.strategy.json"
    },
    {
      "id": "rsi-reversal",
      "name": "RSI Reversal",
      "description": "Trade RSI recovery from oversold and overbought zones.",
      "exampleUrl": "https://ackalgo.coolontop.com/builder/guide/examples/rsi-reversal.strategy.json"
    },
    {
      "id": "fractal-breakout",
      "name": "Breakout",
      "description": "Break the latest fully confirmed, non-empty fractal level on a closed bar.",
      "exampleUrl": "https://ackalgo.coolontop.com/builder/guide/examples/fractal-breakout.strategy.json"
    },
    {
      "id": "session-atr",
      "name": "Broker Session + ATR",
      "description": "Trade only in a broker-time session and size protection from higher-timeframe ATR.",
      "exampleUrl": "https://ackalgo.coolontop.com/builder/guide/examples/session-atr.strategy.json"
    }
  ],
  "indicators": [
    {
      "id": "ac",
      "mql5Function": "iAC",
      "name": "Accelerator Oscillator",
      "shortName": "AC",
      "description": "Measures changes in market momentum acceleration.",
      "category": "bill-williams",
      "keywords": [
        "accelerator",
        "momentum",
        "bill williams",
        "ac"
      ],
      "parameters": [],
      "outputs": [
        {
          "key": "value",
          "label": "AC",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {},
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iac",
      "descriptionTh": "วัดการเปลี่ยนแปลงความเร่งของโมเมนตัม",
      "exportSupported": true
    },
    {
      "id": "ad",
      "mql5Function": "iAD",
      "name": "Accumulation/Distribution",
      "shortName": "A/D",
      "description": "Combines price location and volume to estimate money flow.",
      "category": "volume",
      "keywords": [
        "accumulation",
        "distribution",
        "volume",
        "money flow"
      ],
      "parameters": [
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "A/D",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iad",
      "descriptionTh": "รวมตำแหน่งราคากับปริมาณเพื่อประเมินกระแสการสะสมและกระจาย",
      "exportSupported": true
    },
    {
      "id": "adx",
      "mql5Function": "iADX",
      "name": "Average Directional Index",
      "shortName": "ADX",
      "description": "Measures trend strength with positive and negative direction lines.",
      "category": "trend",
      "keywords": [
        "adx",
        "trend strength",
        "directional movement",
        "di"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "main",
          "label": "ADX",
          "bufferIndex": 0
        },
        {
          "key": "plusDi",
          "label": "+DI",
          "bufferIndex": 1
        },
        {
          "key": "minusDi",
          "label": "-DI",
          "bufferIndex": 2
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iadx",
      "descriptionTh": "วัดความแข็งแรงแนวโน้ม พร้อมเส้นทิศทางบวกและลบ",
      "exportSupported": true
    },
    {
      "id": "adx-wilder",
      "mql5Function": "iADXWilder",
      "name": "Average Directional Index by Wilder",
      "shortName": "ADX Wilder",
      "description": "Welles Wilder's smoothed directional trend-strength measure.",
      "category": "trend",
      "keywords": [
        "adx",
        "wilder",
        "trend strength",
        "directional movement"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "main",
          "label": "ADX",
          "bufferIndex": 0
        },
        {
          "key": "plusDi",
          "label": "+DI",
          "bufferIndex": 1
        },
        {
          "key": "minusDi",
          "label": "-DI",
          "bufferIndex": 2
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iadxwilder",
      "descriptionTh": "วัดความแข็งแรงแนวโน้มด้วยการทำให้เรียบแบบ Wilder",
      "exportSupported": true
    },
    {
      "id": "alligator",
      "mql5Function": "iAlligator",
      "name": "Alligator",
      "shortName": "Alligator",
      "description": "Three smoothed averages used to identify Bill Williams trend phases.",
      "category": "bill-williams",
      "keywords": [
        "alligator",
        "jaw",
        "teeth",
        "lips",
        "bill williams"
      ],
      "parameters": [
        {
          "key": "jawPeriod",
          "label": "Jaw period",
          "type": "integer",
          "defaultValue": 13,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "jawShift",
          "label": "Jaw shift",
          "type": "integer",
          "defaultValue": 8,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "teethPeriod",
          "label": "Teeth period",
          "type": "integer",
          "defaultValue": 8,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "teethShift",
          "label": "Teeth shift",
          "type": "integer",
          "defaultValue": 5,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "lipsPeriod",
          "label": "Lips period",
          "type": "integer",
          "defaultValue": 5,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "lipsShift",
          "label": "Lips shift",
          "type": "integer",
          "defaultValue": 3,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_SMMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_MEDIAN",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "jaw",
          "label": "Jaw",
          "bufferIndex": 0
        },
        {
          "key": "teeth",
          "label": "Teeth",
          "bufferIndex": 1
        },
        {
          "key": "lips",
          "label": "Lips",
          "bufferIndex": 2
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "jawPeriod": 13,
        "jawShift": 8,
        "teethPeriod": 8,
        "teethShift": 5,
        "lipsPeriod": 5,
        "lipsShift": 3,
        "maMethod": "MODE_SMMA",
        "appliedPrice": "PRICE_MEDIAN"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ialligator",
      "descriptionTh": "ค่าเฉลี่ยแบบ smoothed สามเส้นสำหรับพิจารณาช่วงแนวโน้ม",
      "exportSupported": true
    },
    {
      "id": "ama",
      "mql5Function": "iAMA",
      "name": "Adaptive Moving Average",
      "shortName": "AMA",
      "description": "Adapts smoothing speed to changing market efficiency.",
      "category": "trend",
      "keywords": [
        "adaptive",
        "moving average",
        "kama",
        "ama"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "AMA period",
          "type": "integer",
          "defaultValue": 10,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "fastPeriod",
          "label": "Fast EMA period",
          "type": "integer",
          "defaultValue": 2,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "slowPeriod",
          "label": "Slow EMA period",
          "type": "integer",
          "defaultValue": 30,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "AMA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 10,
        "fastPeriod": 2,
        "slowPeriod": 30,
        "shift": 0,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iama",
      "descriptionTh": "ปรับความเร็วการทำให้เรียบตามประสิทธิภาพการเคลื่อนที่ของราคา",
      "exportSupported": true
    },
    {
      "id": "ao",
      "mql5Function": "iAO",
      "name": "Awesome Oscillator",
      "shortName": "AO",
      "description": "Compares short and long median-price momentum.",
      "category": "bill-williams",
      "keywords": [
        "awesome",
        "oscillator",
        "momentum",
        "bill williams",
        "ao"
      ],
      "parameters": [],
      "outputs": [
        {
          "key": "value",
          "label": "AO",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {},
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iao",
      "descriptionTh": "เปรียบเทียบโมเมนตัมราคากึ่งกลางระยะสั้นและยาว",
      "exportSupported": true
    },
    {
      "id": "atr",
      "mql5Function": "iATR",
      "name": "Average True Range",
      "shortName": "ATR",
      "description": "Measures price range and volatility without indicating direction.",
      "category": "volatility",
      "keywords": [
        "atr",
        "average true range",
        "volatility",
        "stop loss"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "ATR",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iatr",
      "descriptionTh": "วัดช่วงแกว่งและความผันผวน ไม่บอกทิศทางราคา",
      "exportSupported": true
    },
    {
      "id": "bears-power",
      "mql5Function": "iBearsPower",
      "name": "Bears Power",
      "shortName": "Bears Power",
      "description": "Measures sellers' ability to push price below an EMA.",
      "category": "momentum",
      "keywords": [
        "bears",
        "sellers",
        "elder",
        "momentum"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 13,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "Bears Power",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 13
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ibearspower",
      "descriptionTh": "วัดแรงขายที่กดราคาต่ำกว่า EMA",
      "exportSupported": true
    },
    {
      "id": "bollinger-bands",
      "mql5Function": "iBands",
      "name": "Bollinger Bands®",
      "shortName": "Bands",
      "description": "Plots volatility envelopes around a moving average.",
      "category": "volatility",
      "keywords": [
        "bollinger",
        "bands",
        "standard deviation",
        "volatility"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "deviation",
          "label": "Deviation",
          "type": "number",
          "defaultValue": 2,
          "min": 0.1,
          "max": 20,
          "step": 0.1
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "middle",
          "label": "Middle band",
          "bufferIndex": 0
        },
        {
          "key": "upper",
          "label": "Upper band",
          "bufferIndex": 1
        },
        {
          "key": "lower",
          "label": "Lower band",
          "bufferIndex": 2
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 20,
        "shift": 0,
        "deviation": 2,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ibands",
      "descriptionTh": "กรอบความผันผวนรอบค่าเฉลี่ยเคลื่อนที่",
      "exportSupported": true
    },
    {
      "id": "bulls-power",
      "mql5Function": "iBullsPower",
      "name": "Bulls Power",
      "shortName": "Bulls Power",
      "description": "Measures buyers' ability to push price above an EMA.",
      "category": "momentum",
      "keywords": [
        "bulls",
        "buyers",
        "elder",
        "momentum"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 13,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "Bulls Power",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 13
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ibullspower",
      "descriptionTh": "วัดแรงซื้อที่ดันราคาเหนือ EMA",
      "exportSupported": true
    },
    {
      "id": "cci",
      "mql5Function": "iCCI",
      "name": "Commodity Channel Index",
      "shortName": "CCI",
      "description": "Measures deviation from the statistical mean price.",
      "category": "momentum",
      "keywords": [
        "cci",
        "commodity channel",
        "overbought",
        "oversold"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_TYPICAL",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "CCI",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "appliedPrice": "PRICE_TYPICAL"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/icci",
      "descriptionTh": "วัดระยะเบี่ยงเบนราคาจากค่าเฉลี่ยทางสถิติ",
      "exportSupported": true
    },
    {
      "id": "chaikin",
      "mql5Function": "iChaikin",
      "name": "Chaikin Oscillator",
      "shortName": "Chaikin",
      "description": "Tracks momentum of the Accumulation/Distribution line.",
      "category": "volume",
      "keywords": [
        "chaikin",
        "accumulation",
        "distribution",
        "volume"
      ],
      "parameters": [
        {
          "key": "fastPeriod",
          "label": "Fast period",
          "type": "integer",
          "defaultValue": 3,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "slowPeriod",
          "label": "Slow period",
          "type": "integer",
          "defaultValue": 10,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_EMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "Chaikin",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "fastPeriod": 3,
        "slowPeriod": 10,
        "maMethod": "MODE_EMA",
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ichaikin",
      "descriptionTh": "ติดตามโมเมนตัมเส้น Accumulation/Distribution",
      "exportSupported": true
    },
    {
      "id": "dema",
      "mql5Function": "iDEMA",
      "name": "Double Exponential Moving Average",
      "shortName": "DEMA",
      "description": "A lower-lag moving average based on double EMA smoothing.",
      "category": "trend",
      "keywords": [
        "dema",
        "double exponential",
        "moving average",
        "low lag"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "DEMA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "shift": 0,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/idema",
      "descriptionTh": "ค่าเฉลี่ยจาก EMA สองชั้นเพื่อลดความล่าช้า",
      "exportSupported": true
    },
    {
      "id": "demarker",
      "mql5Function": "iDeMarker",
      "name": "DeMarker",
      "shortName": "DeMarker",
      "description": "Compares recent highs and lows to estimate buying and selling pressure.",
      "category": "momentum",
      "keywords": [
        "demarker",
        "dem",
        "overbought",
        "oversold"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "DeMarker",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/idemarker",
      "descriptionTh": "เปรียบเทียบจุดสูงต่ำเพื่อประเมินแรงซื้อขาย",
      "exportSupported": true
    },
    {
      "id": "envelopes",
      "mql5Function": "iEnvelopes",
      "name": "Envelopes",
      "shortName": "Envelopes",
      "description": "Places percentage bands above and below a moving average.",
      "category": "volatility",
      "keywords": [
        "envelopes",
        "bands",
        "channel",
        "moving average"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_SMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        },
        {
          "key": "deviation",
          "label": "Deviation",
          "type": "number",
          "defaultValue": 0.1,
          "min": 0.01,
          "max": 50,
          "step": 0.01,
          "unit": "percent"
        }
      ],
      "outputs": [
        {
          "key": "upper",
          "label": "Upper",
          "bufferIndex": 0
        },
        {
          "key": "lower",
          "label": "Lower",
          "bufferIndex": 1
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "shift": 0,
        "maMethod": "MODE_SMA",
        "appliedPrice": "PRICE_CLOSE",
        "deviation": 0.1
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ienvelopes",
      "descriptionTh": "กรอบเปอร์เซ็นต์เหนือและใต้ค่าเฉลี่ยเคลื่อนที่",
      "exportSupported": true
    },
    {
      "id": "force-index",
      "mql5Function": "iForce",
      "name": "Force Index",
      "shortName": "Force",
      "description": "Combines price movement and volume to estimate market force.",
      "category": "volume",
      "keywords": [
        "force index",
        "volume",
        "elder",
        "momentum"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 13,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_EMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "Force Index",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 13,
        "maMethod": "MODE_EMA",
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iforce",
      "descriptionTh": "รวมการเปลี่ยนราคากับปริมาณเพื่อวัดแรงเคลื่อนที่",
      "exportSupported": true
    },
    {
      "id": "fractals",
      "mql5Function": "iFractals",
      "name": "Fractals",
      "shortName": "Fractals",
      "description": "Marks local swing highs and lows using five-bar patterns.",
      "category": "bill-williams",
      "keywords": [
        "fractals",
        "swing high",
        "swing low",
        "bill williams"
      ],
      "parameters": [],
      "outputs": [
        {
          "key": "upper",
          "label": "Upper fractal",
          "bufferIndex": 0
        },
        {
          "key": "lower",
          "label": "Lower fractal",
          "bufferIndex": 1
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {},
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ifractals",
      "descriptionTh": "จุดสูงต่ำเฉพาะที่จากรูปแบบห้าแท่ง ต้องรอการยืนยัน",
      "exportSupported": true
    },
    {
      "id": "frama",
      "mql5Function": "iFrAMA",
      "name": "Fractal Adaptive Moving Average",
      "shortName": "FrAMA",
      "description": "Adjusts smoothing using the market's fractal dimension.",
      "category": "trend",
      "keywords": [
        "frama",
        "fractal adaptive",
        "moving average",
        "adaptive"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "FrAMA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "shift": 0,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iframa",
      "descriptionTh": "ปรับความเรียบโดยใช้มิติ fractal ของตลาด",
      "exportSupported": true
    },
    {
      "id": "gator",
      "mql5Function": "iGator",
      "name": "Gator Oscillator",
      "shortName": "Gator",
      "description": "Shows convergence and divergence between Alligator lines.",
      "category": "bill-williams",
      "keywords": [
        "gator",
        "alligator",
        "bill williams",
        "trend phase"
      ],
      "parameters": [
        {
          "key": "jawPeriod",
          "label": "Jaw period",
          "type": "integer",
          "defaultValue": 13,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "jawShift",
          "label": "Jaw shift",
          "type": "integer",
          "defaultValue": 8,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "teethPeriod",
          "label": "Teeth period",
          "type": "integer",
          "defaultValue": 8,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "teethShift",
          "label": "Teeth shift",
          "type": "integer",
          "defaultValue": 5,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "lipsPeriod",
          "label": "Lips period",
          "type": "integer",
          "defaultValue": 5,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "lipsShift",
          "label": "Lips shift",
          "type": "integer",
          "defaultValue": 3,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_SMMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_MEDIAN",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "upper",
          "label": "Upper histogram",
          "bufferIndex": 0
        },
        {
          "key": "lower",
          "label": "Lower histogram",
          "bufferIndex": 2
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "jawPeriod": 13,
        "jawShift": 8,
        "teethPeriod": 8,
        "teethShift": 5,
        "lipsPeriod": 5,
        "lipsShift": 3,
        "maMethod": "MODE_SMMA",
        "appliedPrice": "PRICE_MEDIAN"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/igator",
      "descriptionTh": "แสดงการลู่เข้าและแยกออกของเส้น Alligator",
      "exportSupported": true
    },
    {
      "id": "ichimoku",
      "mql5Function": "iIchimoku",
      "name": "Ichimoku Kinko Hyo",
      "shortName": "Ichimoku",
      "description": "A multi-line trend, momentum, and support/resistance system.",
      "category": "trend",
      "keywords": [
        "ichimoku",
        "kumo",
        "cloud",
        "tenkan",
        "kijun"
      ],
      "parameters": [
        {
          "key": "tenkanPeriod",
          "label": "Tenkan-sen period",
          "type": "integer",
          "defaultValue": 9,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "kijunPeriod",
          "label": "Kijun-sen period",
          "type": "integer",
          "defaultValue": 26,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "senkouSpanBPeriod",
          "label": "Senkou Span B period",
          "type": "integer",
          "defaultValue": 52,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "tenkan",
          "label": "Tenkan-sen",
          "bufferIndex": 0
        },
        {
          "key": "kijun",
          "label": "Kijun-sen",
          "bufferIndex": 1
        },
        {
          "key": "senkouA",
          "label": "Senkou Span A",
          "bufferIndex": 2
        },
        {
          "key": "senkouB",
          "label": "Senkou Span B",
          "bufferIndex": 3
        },
        {
          "key": "chikou",
          "label": "Chikou Span",
          "bufferIndex": 4
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "tenkanPeriod": 9,
        "kijunPeriod": 26,
        "senkouSpanBPeriod": 52
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iichimoku",
      "descriptionTh": "หลายเส้นสำหรับพิจารณาแนวโน้ม โมเมนตัม และแนวรับต้าน ต้องตรวจ output และการเลื่อนเส้น",
      "exportSupported": true
    },
    {
      "id": "bw-mfi",
      "mql5Function": "iBWMFI",
      "name": "Market Facilitation Index",
      "shortName": "BW MFI",
      "description": "Compares price range with volume to classify market participation.",
      "category": "bill-williams",
      "keywords": [
        "market facilitation",
        "bill williams",
        "volume",
        "bw mfi"
      ],
      "parameters": [
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "BW MFI",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ibwmfi",
      "descriptionTh": "เทียบช่วงราคากับปริมาณเพื่อพิจารณาการมีส่วนร่วม ไม่ใช่ Money Flow Index",
      "exportSupported": true
    },
    {
      "id": "momentum",
      "mql5Function": "iMomentum",
      "name": "Momentum",
      "shortName": "Momentum",
      "description": "Compares the current price with price a selected number of bars ago.",
      "category": "momentum",
      "keywords": [
        "momentum",
        "rate",
        "speed",
        "roc"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "Momentum",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/imomentum",
      "descriptionTh": "เทียบราคากับราคาย้อนหลังตามจำนวนแท่ง",
      "exportSupported": true
    },
    {
      "id": "mfi",
      "mql5Function": "iMFI",
      "name": "Money Flow Index",
      "shortName": "MFI",
      "description": "A volume-weighted momentum oscillator for buying and selling pressure.",
      "category": "volume",
      "keywords": [
        "money flow",
        "mfi",
        "volume",
        "overbought",
        "oversold"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "MFI",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/imfi",
      "descriptionTh": "โมเมนตัมถ่วงด้วยปริมาณสำหรับพิจารณาแรงซื้อขาย",
      "exportSupported": true
    },
    {
      "id": "moving-average",
      "mql5Function": "iMA",
      "name": "Moving Average",
      "shortName": "MA",
      "description": "Smooths price using simple, exponential, smoothed, or weighted methods.",
      "category": "trend",
      "keywords": [
        "moving average",
        "ma",
        "sma",
        "ema",
        "smma",
        "lwma"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_SMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "MA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "shift": 0,
        "maMethod": "MODE_SMA",
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ima",
      "descriptionTh": "ทำราคาให้เรียบด้วย Simple, Exponential, Smoothed หรือ Linear weighted",
      "exportSupported": true
    },
    {
      "id": "osma",
      "mql5Function": "iOsMA",
      "name": "Moving Average of Oscillator",
      "shortName": "OsMA",
      "description": "Shows the difference between the MACD main and signal lines.",
      "category": "momentum",
      "keywords": [
        "osma",
        "macd histogram",
        "moving average",
        "oscillator"
      ],
      "parameters": [
        {
          "key": "fastPeriod",
          "label": "Fast EMA period",
          "type": "integer",
          "defaultValue": 12,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "slowPeriod",
          "label": "Slow EMA period",
          "type": "integer",
          "defaultValue": 26,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "signalPeriod",
          "label": "Signal period",
          "type": "integer",
          "defaultValue": 9,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "OsMA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "fastPeriod": 12,
        "slowPeriod": 26,
        "signalPeriod": 9,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iosma",
      "descriptionTh": "ส่วนต่างระหว่างเส้นหลักและ signal ของ MACD",
      "exportSupported": true
    },
    {
      "id": "macd",
      "mql5Function": "iMACD",
      "name": "Moving Average Convergence/Divergence",
      "shortName": "MACD",
      "description": "Tracks the relationship between fast and slow exponential averages.",
      "category": "momentum",
      "keywords": [
        "macd",
        "convergence",
        "divergence",
        "signal line",
        "histogram"
      ],
      "parameters": [
        {
          "key": "fastPeriod",
          "label": "Fast EMA period",
          "type": "integer",
          "defaultValue": 12,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "slowPeriod",
          "label": "Slow EMA period",
          "type": "integer",
          "defaultValue": 26,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "signalPeriod",
          "label": "Signal period",
          "type": "integer",
          "defaultValue": 9,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "main",
          "label": "MACD",
          "bufferIndex": 0
        },
        {
          "key": "signal",
          "label": "Signal",
          "bufferIndex": 1
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "fastPeriod": 12,
        "slowPeriod": 26,
        "signalPeriod": 9,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/imacd",
      "descriptionTh": "ความสัมพันธ์ระหว่าง EMA เร็วและช้า มี main กับ signal ให้เลือก",
      "exportSupported": true
    },
    {
      "id": "obv",
      "mql5Function": "iOBV",
      "name": "On Balance Volume",
      "shortName": "OBV",
      "description": "Adds or subtracts volume according to price direction.",
      "category": "volume",
      "keywords": [
        "obv",
        "on balance volume",
        "volume",
        "flow"
      ],
      "parameters": [
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "OBV",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iobv",
      "descriptionTh": "บวกหรือลบปริมาณตามทิศทางราคา",
      "exportSupported": true
    },
    {
      "id": "parabolic-sar",
      "mql5Function": "iSAR",
      "name": "Parabolic Stop and Reverse",
      "shortName": "Parabolic SAR",
      "description": "Plots a trailing trend point that can mark potential reversals.",
      "category": "trend",
      "keywords": [
        "parabolic",
        "sar",
        "stop and reverse",
        "trailing stop"
      ],
      "parameters": [
        {
          "key": "step",
          "label": "Step",
          "type": "number",
          "defaultValue": 0.02,
          "min": 0.001,
          "max": 1,
          "step": 0.001
        },
        {
          "key": "maximum",
          "label": "Maximum",
          "type": "number",
          "defaultValue": 0.2,
          "min": 0.01,
          "max": 1,
          "step": 0.01
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "SAR",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "step": 0.02,
        "maximum": 0.2
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/isar",
      "descriptionTh": "จุดตามแนวโน้มที่อาจช่วยพิจารณาการกลับทิศ",
      "exportSupported": true
    },
    {
      "id": "rsi",
      "mql5Function": "iRSI",
      "name": "Relative Strength Index",
      "shortName": "RSI",
      "description": "Measures the speed and magnitude of recent price changes.",
      "category": "momentum",
      "keywords": [
        "rsi",
        "relative strength",
        "overbought",
        "oversold"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "RSI",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/irsi",
      "descriptionTh": "วัดความเร็วและขนาดการเปลี่ยนราคา",
      "exportSupported": true
    },
    {
      "id": "rvi",
      "mql5Function": "iRVI",
      "name": "Relative Vigor Index",
      "shortName": "RVI",
      "description": "Compares close-open movement with the trading range.",
      "category": "momentum",
      "keywords": [
        "rvi",
        "relative vigor",
        "momentum",
        "signal"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 10,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "main",
          "label": "RVI",
          "bufferIndex": 0
        },
        {
          "key": "signal",
          "label": "Signal",
          "bufferIndex": 1
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 10
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/irvi",
      "descriptionTh": "เปรียบเทียบการเปลี่ยนจาก open ถึง close กับช่วงราคา",
      "exportSupported": true
    },
    {
      "id": "standard-deviation",
      "mql5Function": "iStdDev",
      "name": "Standard Deviation",
      "shortName": "StdDev",
      "description": "Measures dispersion of price around a moving average.",
      "category": "volatility",
      "keywords": [
        "standard deviation",
        "stddev",
        "dispersion",
        "volatility"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_SMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "StdDev",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 20,
        "shift": 0,
        "maMethod": "MODE_SMA",
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/istddev",
      "descriptionTh": "การกระจายราคาจากค่าเฉลี่ย",
      "exportSupported": true
    },
    {
      "id": "stochastic",
      "mql5Function": "iStochastic",
      "name": "Stochastic Oscillator",
      "shortName": "Stochastic",
      "description": "Compares closing price with the recent high-low range.",
      "category": "momentum",
      "keywords": [
        "stochastic",
        "%k",
        "%d",
        "overbought",
        "oversold"
      ],
      "parameters": [
        {
          "key": "kPeriod",
          "label": "%K period",
          "type": "integer",
          "defaultValue": 5,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "dPeriod",
          "label": "%D period",
          "type": "integer",
          "defaultValue": 3,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "slowing",
          "label": "Slowing",
          "type": "integer",
          "defaultValue": 3,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "maMethod",
          "label": "MA method",
          "type": "select",
          "defaultValue": "MODE_SMA",
          "options": [
            {
              "label": "Simple",
              "value": "MODE_SMA"
            },
            {
              "label": "Exponential",
              "value": "MODE_EMA"
            },
            {
              "label": "Smoothed",
              "value": "MODE_SMMA"
            },
            {
              "label": "Linear weighted",
              "value": "MODE_LWMA"
            }
          ]
        },
        {
          "key": "priceField",
          "label": "Price field",
          "type": "select",
          "defaultValue": "STO_LOWHIGH",
          "options": [
            {
              "label": "Low / High",
              "value": "STO_LOWHIGH"
            },
            {
              "label": "Close / Close",
              "value": "STO_CLOSECLOSE"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "main",
          "label": "%K",
          "bufferIndex": 0
        },
        {
          "key": "signal",
          "label": "%D",
          "bufferIndex": 1
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "kPeriod": 5,
        "dPeriod": 3,
        "slowing": 3,
        "maMethod": "MODE_SMA",
        "priceField": "STO_LOWHIGH"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/istochastic",
      "descriptionTh": "เทียบราคาปิดกับช่วงสูงต่ำล่าสุด",
      "exportSupported": true
    },
    {
      "id": "tema",
      "mql5Function": "iTEMA",
      "name": "Triple Exponential Moving Average",
      "shortName": "TEMA",
      "description": "A triple-smoothed average designed to reduce lag.",
      "category": "trend",
      "keywords": [
        "tema",
        "triple exponential",
        "moving average",
        "low lag"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "TEMA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "shift": 0,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/itema",
      "descriptionTh": "ค่าเฉลี่ยจากการทำให้เรียบสามชั้นเพื่อลดความล่าช้า",
      "exportSupported": true
    },
    {
      "id": "trix",
      "mql5Function": "iTriX",
      "name": "Triple Exponential Average Oscillator",
      "shortName": "TRIX",
      "description": "Shows the rate of change of a triple-smoothed moving average.",
      "category": "momentum",
      "keywords": [
        "trix",
        "triple exponential",
        "rate of change",
        "oscillator"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "TRIX",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/itrix",
      "descriptionTh": "อัตราเปลี่ยนแปลงของค่าเฉลี่ยที่ทำให้เรียบสามชั้น",
      "exportSupported": true
    },
    {
      "id": "williams-percent-range",
      "mql5Function": "iWPR",
      "name": "Williams' Percent Range",
      "shortName": "%R",
      "description": "Shows where the close sits inside the recent high-low range.",
      "category": "momentum",
      "keywords": [
        "williams",
        "percent range",
        "%r",
        "overbought",
        "oversold"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 14,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "%R",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "period": 14
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/iwpr",
      "descriptionTh": "ตำแหน่งราคาปิดภายในช่วงสูงต่ำ",
      "exportSupported": true
    },
    {
      "id": "vidya",
      "mql5Function": "iVIDyA",
      "name": "Variable Index Dynamic Average",
      "shortName": "VIDyA",
      "description": "Adjusts EMA smoothing using Chande Momentum Oscillator volatility.",
      "category": "trend",
      "keywords": [
        "vidya",
        "variable index",
        "dynamic average",
        "adaptive"
      ],
      "parameters": [
        {
          "key": "cmoPeriod",
          "label": "CMO period",
          "type": "integer",
          "defaultValue": 9,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "emaPeriod",
          "label": "EMA period",
          "type": "integer",
          "defaultValue": 12,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "shift",
          "label": "Shift",
          "type": "integer",
          "defaultValue": 0,
          "min": 0,
          "max": 500,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "VIDyA",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "cmoPeriod": 9,
        "emaPeriod": 12,
        "shift": 0,
        "appliedPrice": "PRICE_CLOSE"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ividya",
      "descriptionTh": "ปรับการทำให้เรียบของ EMA ด้วย Chande Momentum Oscillator",
      "exportSupported": true
    },
    {
      "id": "volumes",
      "mql5Function": "iVolumes",
      "name": "Volumes",
      "shortName": "Volumes",
      "description": "Returns tick or real volume for each bar.",
      "category": "volume",
      "keywords": [
        "volume",
        "tick volume",
        "real volume",
        "activity"
      ],
      "parameters": [
        {
          "key": "volumeType",
          "label": "Volume",
          "type": "select",
          "defaultValue": "VOLUME_TICK",
          "options": [
            {
              "label": "Tick volume",
              "value": "VOLUME_TICK"
            },
            {
              "label": "Real volume",
              "value": "VOLUME_REAL"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "Volume",
          "bufferIndex": 0
        }
      ],
      "pack": "mt5-standard",
      "implementationStatus": "mt5-native",
      "defaultParameters": {
        "volumeType": "VOLUME_TICK"
      },
      "docsUrl": "https://www.mql5.com/en/docs/indicators/ivolumes",
      "descriptionTh": "ปริมาณ tick หรือปริมาณจริงของแต่ละแท่ง ขึ้นกับข้อมูลโบรกเกอร์",
      "exportSupported": true
    },
    {
      "id": "vwap",
      "name": "Volume Weighted Average Price",
      "shortName": "VWAP",
      "description": "Prototype: session or rolling price weighted by volume.",
      "category": "volume",
      "keywords": [
        "vwap",
        "volume weighted",
        "fair value",
        "session"
      ],
      "parameters": [
        {
          "key": "anchor",
          "label": "Anchor",
          "type": "select",
          "defaultValue": "session",
          "options": [
            {
              "label": "Session",
              "value": "session"
            },
            {
              "label": "Week",
              "value": "week"
            },
            {
              "label": "Month",
              "value": "month"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "VWAP",
          "bufferIndex": 0
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "anchor": "session"
      },
      "descriptionTh": "ต้นแบบราคาเฉลี่ยถ่วงปริมาณแบบ session หรือ rolling — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "supertrend",
      "name": "Supertrend",
      "shortName": "Supertrend",
      "description": "Prototype: ATR-based directional trend band.",
      "category": "trend",
      "keywords": [
        "supertrend",
        "atr",
        "trend",
        "trailing"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 10,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "multiplier",
          "label": "ATR multiplier",
          "type": "number",
          "defaultValue": 3,
          "min": 0.1,
          "max": 20,
          "step": 0.1
        }
      ],
      "outputs": [
        {
          "key": "line",
          "label": "Supertrend",
          "bufferIndex": 0
        },
        {
          "key": "direction",
          "label": "Direction",
          "bufferIndex": 1
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "period": 10,
        "multiplier": 3
      },
      "descriptionTh": "ต้นแบบเส้นแนวโน้มจาก ATR — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "donchian-channel",
      "name": "Donchian Channel",
      "shortName": "Donchian",
      "description": "Prototype: highest-high and lowest-low breakout channel.",
      "category": "levels",
      "keywords": [
        "donchian",
        "channel",
        "breakout",
        "turtle"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        }
      ],
      "outputs": [
        {
          "key": "upper",
          "label": "Upper",
          "bufferIndex": 0
        },
        {
          "key": "middle",
          "label": "Middle",
          "bufferIndex": 1
        },
        {
          "key": "lower",
          "label": "Lower",
          "bufferIndex": 2
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "period": 20
      },
      "descriptionTh": "ต้นแบบกรอบราคาสูงสุดและต่ำสุดสำหรับ breakout — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "keltner-channel",
      "name": "Keltner Channel",
      "shortName": "Keltner",
      "description": "Prototype: EMA channel expanded by Average True Range.",
      "category": "volatility",
      "keywords": [
        "keltner",
        "channel",
        "ema",
        "atr",
        "volatility"
      ],
      "parameters": [
        {
          "key": "emaPeriod",
          "label": "EMA period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "atrPeriod",
          "label": "ATR period",
          "type": "integer",
          "defaultValue": 10,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "multiplier",
          "label": "ATR multiplier",
          "type": "number",
          "defaultValue": 2,
          "min": 0.1,
          "max": 20,
          "step": 0.1
        }
      ],
      "outputs": [
        {
          "key": "middle",
          "label": "Middle",
          "bufferIndex": 0
        },
        {
          "key": "upper",
          "label": "Upper",
          "bufferIndex": 1
        },
        {
          "key": "lower",
          "label": "Lower",
          "bufferIndex": 2
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "emaPeriod": 20,
        "atrPeriod": 10,
        "multiplier": 2
      },
      "descriptionTh": "ต้นแบบกรอบ EMA ขยายด้วย ATR — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "hull-moving-average",
      "name": "Hull Moving Average",
      "shortName": "HMA",
      "description": "Prototype: weighted moving average designed for low lag and smoothness.",
      "category": "trend",
      "keywords": [
        "hull",
        "hma",
        "moving average",
        "low lag"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "HMA",
          "bufferIndex": 0
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "period": 20,
        "appliedPrice": "PRICE_CLOSE"
      },
      "descriptionTh": "ต้นแบบค่าเฉลี่ยถ่วงน้ำหนักเน้นความเรียบและลดความล่าช้า — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "zero-lag-ema",
      "name": "Zero Lag Exponential Moving Average",
      "shortName": "ZLEMA",
      "description": "Prototype: EMA variant that compensates for input lag.",
      "category": "trend",
      "keywords": [
        "zero lag",
        "zlema",
        "ema",
        "moving average"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "appliedPrice",
          "label": "Applied price",
          "type": "select",
          "defaultValue": "PRICE_CLOSE",
          "options": [
            {
              "label": "Close",
              "value": "PRICE_CLOSE"
            },
            {
              "label": "Open",
              "value": "PRICE_OPEN"
            },
            {
              "label": "High",
              "value": "PRICE_HIGH"
            },
            {
              "label": "Low",
              "value": "PRICE_LOW"
            },
            {
              "label": "Median (HL/2)",
              "value": "PRICE_MEDIAN"
            },
            {
              "label": "Typical (HLC/3)",
              "value": "PRICE_TYPICAL"
            },
            {
              "label": "Weighted (HLCC/4)",
              "value": "PRICE_WEIGHTED"
            }
          ]
        }
      ],
      "outputs": [
        {
          "key": "value",
          "label": "ZLEMA",
          "bufferIndex": 0
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "period": 20,
        "appliedPrice": "PRICE_CLOSE"
      },
      "descriptionTh": "ต้นแบบ EMA ชดเชยความล่าช้าของข้อมูล — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "chandelier-exit",
      "name": "Chandelier Exit",
      "shortName": "Chandelier",
      "description": "Prototype: ATR-based trailing exit from recent extremes.",
      "category": "levels",
      "keywords": [
        "chandelier",
        "exit",
        "atr",
        "trailing stop"
      ],
      "parameters": [
        {
          "key": "period",
          "label": "Period",
          "type": "integer",
          "defaultValue": 22,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "atrPeriod",
          "label": "ATR period",
          "type": "integer",
          "defaultValue": 22,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "multiplier",
          "label": "ATR multiplier",
          "type": "number",
          "defaultValue": 3,
          "min": 0.1,
          "max": 20,
          "step": 0.1
        }
      ],
      "outputs": [
        {
          "key": "long",
          "label": "Long exit",
          "bufferIndex": 0
        },
        {
          "key": "short",
          "label": "Short exit",
          "bufferIndex": 1
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "period": 22,
        "atrPeriod": 22,
        "multiplier": 3
      },
      "descriptionTh": "ต้นแบบจุดออกตาม ATR จากจุดสูงต่ำล่าสุด — ยังส่งออกไม่ได้",
      "exportSupported": false
    },
    {
      "id": "squeeze-momentum",
      "name": "Squeeze Momentum",
      "shortName": "Squeeze",
      "description": "Prototype: volatility compression and momentum expansion signal.",
      "category": "volatility",
      "keywords": [
        "squeeze",
        "momentum",
        "bollinger",
        "keltner",
        "compression"
      ],
      "parameters": [
        {
          "key": "bbPeriod",
          "label": "Bands period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "bbMultiplier",
          "label": "Bands multiplier",
          "type": "number",
          "defaultValue": 2,
          "min": 0.1,
          "max": 10,
          "step": 0.1
        },
        {
          "key": "kcPeriod",
          "label": "Keltner period",
          "type": "integer",
          "defaultValue": 20,
          "min": 1,
          "max": 1000,
          "step": 1,
          "unit": "bars"
        },
        {
          "key": "kcMultiplier",
          "label": "Keltner multiplier",
          "type": "number",
          "defaultValue": 1.5,
          "min": 0.1,
          "max": 10,
          "step": 0.1
        }
      ],
      "outputs": [
        {
          "key": "momentum",
          "label": "Momentum",
          "bufferIndex": 0
        },
        {
          "key": "squeeze",
          "label": "Squeeze state",
          "bufferIndex": 1
        }
      ],
      "mql5Function": "iCustom",
      "pack": "extended-prototype",
      "implementationStatus": "prototype-only",
      "defaultParameters": {
        "bbPeriod": 20,
        "bbMultiplier": 2,
        "kcPeriod": 20,
        "kcMultiplier": 1.5
      },
      "descriptionTh": "ต้นแบบติดตามการบีบตัวความผันผวนและการขยายโมเมนตัม — ยังส่งออกไม่ได้",
      "exportSupported": false
    }
  ],
  "nativeOutputReadPolicies": [
    {
      "id": "ac",
      "mql5Function": "iAC",
      "parameterKeys": [],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "ad",
      "mql5Function": "iAD",
      "parameterKeys": [
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "adx",
      "mql5Function": "iADX",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "main",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "plusDi",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "minusDi",
          "bufferIndex": 2,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "adx-wilder",
      "mql5Function": "iADXWilder",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "main",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "plusDi",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "minusDi",
          "bufferIndex": 2,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "alligator",
      "mql5Function": "iAlligator",
      "parameterKeys": [
        "jawPeriod",
        "jawShift",
        "teethPeriod",
        "teethShift",
        "lipsPeriod",
        "lipsShift",
        "maMethod",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "jaw",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "jawShift"
            }
          }
        },
        {
          "key": "teeth",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "teethShift"
            }
          }
        },
        {
          "key": "lips",
          "bufferIndex": 2,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "lipsShift"
            }
          }
        }
      ]
    },
    {
      "id": "ama",
      "mql5Function": "iAMA",
      "parameterKeys": [
        "period",
        "fastPeriod",
        "slowPeriod",
        "shift",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "ao",
      "mql5Function": "iAO",
      "parameterKeys": [],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "atr",
      "mql5Function": "iATR",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "bears-power",
      "mql5Function": "iBearsPower",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "bollinger-bands",
      "mql5Function": "iBands",
      "parameterKeys": [
        "period",
        "shift",
        "deviation",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "middle",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        },
        {
          "key": "upper",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        },
        {
          "key": "lower",
          "bufferIndex": 2,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "bulls-power",
      "mql5Function": "iBullsPower",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "cci",
      "mql5Function": "iCCI",
      "parameterKeys": [
        "period",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "chaikin",
      "mql5Function": "iChaikin",
      "parameterKeys": [
        "fastPeriod",
        "slowPeriod",
        "maMethod",
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "dema",
      "mql5Function": "iDEMA",
      "parameterKeys": [
        "period",
        "shift",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "demarker",
      "mql5Function": "iDeMarker",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "envelopes",
      "mql5Function": "iEnvelopes",
      "parameterKeys": [
        "period",
        "shift",
        "maMethod",
        "appliedPrice",
        "deviation"
      ],
      "outputs": [
        {
          "key": "upper",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        },
        {
          "key": "lower",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "force-index",
      "mql5Function": "iForce",
      "parameterKeys": [
        "period",
        "maMethod",
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "fractals",
      "mql5Function": "iFractals",
      "parameterKeys": [],
      "outputs": [
        {
          "key": "upper",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 3,
            "availability": "sparse",
            "emptyValue": "reject",
            "confirmationBarsAfterCandidate": 2
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "lower",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 3,
            "availability": "sparse",
            "emptyValue": "reject",
            "confirmationBarsAfterCandidate": 2
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "frama",
      "mql5Function": "iFrAMA",
      "parameterKeys": [
        "period",
        "shift",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "gator",
      "mql5Function": "iGator",
      "parameterKeys": [
        "jawPeriod",
        "jawShift",
        "teethPeriod",
        "teethShift",
        "lipsPeriod",
        "lipsShift",
        "maMethod",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "upper",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "minimum",
              "parameterKeys": [
                "jawShift",
                "teethShift"
              ]
            }
          }
        },
        {
          "key": "lower",
          "bufferIndex": 2,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "minimum",
              "parameterKeys": [
                "jawShift",
                "teethShift"
              ]
            }
          }
        }
      ]
    },
    {
      "id": "ichimoku",
      "mql5Function": "iIchimoku",
      "parameterKeys": [
        "tenkanPeriod",
        "kijunPeriod",
        "senkouSpanBPeriod"
      ],
      "outputs": [
        {
          "key": "tenkan",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "kijun",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "senkouA",
          "bufferIndex": 2,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "kijunPeriod"
            }
          }
        },
        {
          "key": "senkouB",
          "bufferIndex": 3,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "kijunPeriod"
            }
          }
        },
        {
          "key": "chikou",
          "bufferIndex": 4,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "backward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "kijunPeriod"
            },
            "liveChartAlignment": "future-value-unavailable"
          }
        }
      ]
    },
    {
      "id": "bw-mfi",
      "mql5Function": "iBWMFI",
      "parameterKeys": [
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "momentum",
      "mql5Function": "iMomentum",
      "parameterKeys": [
        "period",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "mfi",
      "mql5Function": "iMFI",
      "parameterKeys": [
        "period",
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "moving-average",
      "mql5Function": "iMA",
      "parameterKeys": [
        "period",
        "shift",
        "maMethod",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "osma",
      "mql5Function": "iOsMA",
      "parameterKeys": [
        "fastPeriod",
        "slowPeriod",
        "signalPeriod",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "macd",
      "mql5Function": "iMACD",
      "parameterKeys": [
        "fastPeriod",
        "slowPeriod",
        "signalPeriod",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "main",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "signal",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "obv",
      "mql5Function": "iOBV",
      "parameterKeys": [
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "parabolic-sar",
      "mql5Function": "iSAR",
      "parameterKeys": [
        "step",
        "maximum"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "rsi",
      "mql5Function": "iRSI",
      "parameterKeys": [
        "period",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "rvi",
      "mql5Function": "iRVI",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "main",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "signal",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "standard-deviation",
      "mql5Function": "iStdDev",
      "parameterKeys": [
        "period",
        "shift",
        "maMethod",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "stochastic",
      "mql5Function": "iStochastic",
      "parameterKeys": [
        "kPeriod",
        "dPeriod",
        "slowing",
        "maMethod",
        "priceField"
      ],
      "outputs": [
        {
          "key": "main",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        },
        {
          "key": "signal",
          "bufferIndex": 1,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "tema",
      "mql5Function": "iTEMA",
      "parameterKeys": [
        "period",
        "shift",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "trix",
      "mql5Function": "iTriX",
      "parameterKeys": [
        "period",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "williams-percent-range",
      "mql5Function": "iWPR",
      "parameterKeys": [
        "period"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    },
    {
      "id": "vidya",
      "mql5Function": "iVIDyA",
      "parameterKeys": [
        "cmoPeriod",
        "emaPeriod",
        "shift",
        "appliedPrice"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "forward-plot",
            "shift": {
              "kind": "parameter",
              "parameterKey": "shift"
            }
          }
        }
      ]
    },
    {
      "id": "volumes",
      "mql5Function": "iVolumes",
      "parameterKeys": [
        "volumeType"
      ],
      "outputs": [
        {
          "key": "value",
          "bufferIndex": 0,
          "readPolicy": {
            "evaluation": "closed-bar",
            "minimumShift": 1,
            "availability": "continuous",
            "emptyValue": "reject"
          },
          "alignment": {
            "kind": "calculation-bar"
          }
        }
      ]
    }
  ],
  "exportConstraints": [
    "Native support is conditional on parameters, output and valid graph semantics.",
    "Set nonzero plot shift parameters to zero before export; do not claim visual shift alignment.",
    "Ichimoku senkouA, senkouB and chikou outputs are blocked pending alignment support.",
    "Fractals require confirmed shift >= 3; last_non_empty reads require maxLookbackBars 1..500.",
    "No compiler or tester runs occur on the website."
  ]
}
