Форум устарел! Поддержка тут: https://t.me/osengine_official_support

Актуальные гайды здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php

Помогите, пожалуйста, составить оператор

Помогите, пожалуйста, составить оператор

Статус темы:
Закрыта.
  1. Holdboy

    Регистрация:
    15.08.18
    Сообщения:
    13
    Был на сайте:
    02.02.24

    Доброго)) Для закрытия позиций использую стандартные приемы - лимитным ордером и стоп-ордером (_tab.CloseAtLimit и _tab.CloseAtStop). Но в блоке успешного закрытия позиции (void _tab_PositionClosingSuccesEvent(Position position)) понадобилось создать условный переход, в зависимости от типа приказа, которым закрывалась позиция. Типа if( позиция закрыта = ордером AtStop ) { действие при закрытии позиции AtStop}. Помогите, пожалуйста, состряпать)) оператор в круглых скобках if. 

    Holdboy
    26.11.2019 12:58
    #1
  2. Lexuz77

    Регистрация:
    10.12.16
    Сообщения:
    113
    Был на сайте:
    10.02.24

    На сколько я понял, если поза закрывается по лимиту - то закрывается в плюс, если по стопу то в минус?  

    Lexuz77
    26.11.2019 19:20
    #2
  3. Holdboy

    Регистрация:
    15.08.18
    Сообщения:
    13
    Был на сайте:
    02.02.24
    Цитата: Lexuz77

    На сколько я понял, если поза закрывается по лимиту - то закрывается в плюс, если по стопу то в минус?  

    Да по всякому может быть. Не в этом дело. Была позиция. Она закрылась. Соответственно обрабатывается событие void _tab_PositionClosingSuccesEvent(Position position). И в этом событии (ну может это и можно как-нить по-другому делать - я начинающий, я пока только так смог захотеть и попытаться реализовать) нужно попытаться вытянуть из системы тип ордера, которым закрывалась позиция - лимитным или СТОПом. И в зависимости от этого задать дальнейшие действия.

    Holdboy
    27.11.2019 23:12
    #3
  4. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24
    Цитата: Holdboy
    Цитата: Lexuz77

    На сколько я понял, если поза закрывается по лимиту - то закрывается в плюс, если по стопу то в минус?  

    Да по всякому может быть. Не в этом дело. Была позиция. Она закрылась. Соответственно обрабатывается событие void _tab_PositionClosingSuccesEvent(Position position). И в этом событии (ну может это и можно как-нить по-другому делать - я начинающий, я пока только так смог захотеть и попытаться реализовать) нужно попытаться вытянуть из системы тип ордера, которым закрывалась позиция - лимитным или СТОПом. И в зависимости от этого задать дальнейшие действия.

    берём позицию которая закрылась и пришла по событию. Запрашиваем у неё последний ордер на закрытие(массив CloseOrders). У этого ордера запрашиваем флаг IsStopOrProfit. И если он активен - поза закрылась по стопу или профиту.

    if(position.CloseOrders[position.CloseOrders.Count - 1].IsStopOrProfit == true)

    {

    // позиция закрыта по стопу или профиту

    }

    else

    {

    // позиция закрыта как-то иначе.

    }

    Алексей Ван
    28.11.2019 10:22
    #4
  5. Holdboy

    Регистрация:
    15.08.18
    Сообщения:
    13
    Был на сайте:
    02.02.24

    Огромная благодарность, Алексей))

    Holdboy
    28.11.2019 18:07
    #5
Статус темы:
Закрыта..