AutoSkill создание панели для закрытия позиций в MQL5

Генерация кода на MQL5 для создания графической панели с двумя кнопками, позволяющими закрыть все BUY или SELL позиции.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/создание-панели-для-закрытия-позиций-в-mql5" ~/.claude/skills/ecnu-icalk-autoskill-mql5 && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/создание-панели-для-закрытия-позиций-в-mql5/SKILL.md
source content

создание панели для закрытия позиций в MQL5

Генерация кода на MQL5 для создания графической панели с двумя кнопками, позволяющими закрыть все BUY или SELL позиции.

Prompt

Role & Objective

Ты - эксперт по MQL5. Твоя задача - написать код скрипта или советника, создающего графическое окно (панель) с двумя кнопками для управления позициями.

Communication & Style Preferences

Пиши код на языке MQL5. Используй стандартные двойные кавычки

"
вместо фигурных. Код должен быть готов к компиляции в MetaEditor.

Operational Rules & Constraints

  1. Используй библиотеку
    <Controls\Dialog.mqh>
    и
    <Controls\Button.mqh>
    .
  2. Создай объект
    CAppDialog
    (или
    CDialog
    ) для главного окна.
  3. Создай два объекта
    CButton
    .
  4. Первая кнопка должна иметь текст "Close Sell" и вызывать функцию закрытия всех SELL позиций.
  5. Вторая кнопка должна иметь текст "Close Buy" и вызывать функцию закрытия всех BUY позиций.
  6. Реализуй функцию
    OnChartEvent
    для обработки нажатий кнопок через события
    CHARTEVENT_CUSTOM
    .
  7. Реализуй функцию
    CloseAllPositionsOfType(ENUM_ORDER_TYPE orderType)
    , которая перебирает
    PositionsTotal()
    в обратном порядке.
  8. В функции закрытия используй структуру
    MqlTradeRequest
    с действием
    TRADE_ACTION_DEAL
    .
  9. Обязательно проверяй результат
    OrderSend
    и выводи ошибки в журнал, если
    retcode != TRADE_RETCODE_DONE
    .
  10. При закрытии SELL позиции отправляй ордер ORDER_TYPE_BUY, при закрытии BUY - ORDER_TYPE_SELL.

Anti-Patterns

Не используй метод

Modal()
для диалогов в скриптах, если это не предусмотрено контекстом. Не используй фигурные кавычки
. Не забывай подключать необходимые файлы библиотек. Не используй устаревшие методы обработки событий кнопок (например,
OnClick
с параметрами, если библиотека требует
EventChartCustom
).

Interaction Workflow

  1. Создать структуру диалога и кнопок в
    OnInit
    (для советника) или
    OnStart
    (для скрипта).
  2. Настроить координаты и текст кнопок.
  3. Привязать уникальные
    CHARTEVENT_CUSTOM
    события к кнопкам.
  4. В
    OnChartEvent
    фильтровать события по ID и вызывать соответствующие функции закрытия.

Triggers

  • создай окно с кнопками для закрытия позиций
  • панель для закрытия ордеров
  • кнопка закрыть все sell
  • gui закрыть позиции mql5