ФОРТС Как узнать первоначальную цену покупки фьючерса - страница 4 12345 Новый комментарий Vasiliy Sokolov 2014.03.20 10:43 #31 Serj_Che: Он говорит, что после клиринга меняются ордера участвующие в совокупной позиции.Не сами ордера, а их цены + он сказал что не все трейды, относящиеся к исполненному ордеру видны в истории. Sergey Chalyshev 2014.03.20 11:19 #32 C-4: Не сами ордера, а их цены + он сказал что не все трейды, относящиеся к исполненному ордеру видны в истории.Mikalas 2014.02.06 19:16 RUPositionGetDouble( POSITION_PRICE_OPEN ); Возвращает цену с учётом клирингов Тут повсеместно идет путаница между позициями ордерами и сделками.С какого перепуга позиция должна знать какой в вашей стратегии первый ордер а какой последний. Mikhail Filimonov 2014.03.20 14:39 #33 Serj_Che!Никакой путаницы нет!Пример:Вы купили(продали) 3 единицы(акции, фьючерса или вал. пару не важно), но не единовременно, апо 1 единице. После первой покупки (вхождение) у Вас образовалась позиция объёмом 1, затем 2 и, наконец, 3.Сформировалась ЦЕНА позиции, но эта цена изменяется при клирингах(она не равна (цена покупки 1 ед.+ цена покупки 2 ед. + цена покупки 3 ед. )/3 ) Прошла неделя, Вы хотите выйти из всей позиции. Как узнать Вы в минусе или в плюсе?Ведь профит = Общая(конечная цена) - Общая (начальная цена). Для этого и нужно знать чистую (суммарную ) начальную стоимось позиции.Любая сделка КЛИЕНТА совершается на основе ордера. Значит можно посчитатьначальную (суммарную) стоимость открытой позиции на основе данных истории об ЭТОЙ позиции(при открытии позиции,ей присваивается уникальный ID), что и делает моя функция GetHistoryPrice Она позволяет не "ворошить" историю за выбранный период(как предлагаете Вы), а только берёт историю по этой позиции. Но если в истории нет каких-то данных, то перебирай ВСЮ историю(1970 года), всё-равно не найдёте потерянные данные!А то что у Вас нет проблем, то это совсем не значит, что и у Вас не теряются данные. P/S Все функции, которые предоставляет разработчик, ДОЛЖНЫ работать(иначе зачем же их предоставлять нам)! Зачем ехать в Питер из Москвы через Магадан, когда есть прямая дорога? Если пробуешь шортить Закрытие половинных участков. Верно ли утверждение что Vasiliy Sokolov 2014.03.20 15:39 #34 Вы уточните, что пропадает из истории? Трейды? Ордера? Ссылки на ордера или сделки? Что именно исчезает. Mikhail Filimonov 2014.03.20 15:50 #35 C-4: Вы уточните, что пропадает из истории? Трейды? Ордера? Ссылки на ордера или сделки? Что именно исчезает.К сожалению, позиция вчера закрылась полностью и я не могу точно ответить, но изфункции видно, что нет или order_ticket или deal_ticket или deal_entry. Vasiliy Sokolov 2014.03.20 15:57 #36 Запустите этот код отдельно и проверьте еще раз:int deals = HistoryDealsTotal(); for( int i = 0; i < deals; i++ ) { ulong deal_ticket = HistoryDealGetTicket( i ); ulong order_ticket = HistoryDealGetInteger( deal_ticket, DEAL_ORDER ); if ( order_ticket > 0 ) { long deal_entry = HistoryDealGetInteger( deal_ticket, DEAL_ENTRY ); if ( deal_entry == DEAL_ENTRY_IN ) { double price = HistoryDealGetDouble( deal_ticket, DEAL_PRICE ); double volume = HistoryDealGetDouble( deal_ticket, DEAL_VOLUME ); price_in = price_in + price * volume; volume_in = volume_in + volume; } } //Особенно здесь: else { printf(order_ticket); } }Что за трейды попадают в else. Все ли они имеют статус брокеража (!DEAL_TYPE_BUY && !DEAL_TYPE_SELL)? Mikhail Filimonov 2014.03.20 16:42 #37 Моя ошибка!Была открыта позиция объёмом 1 и тут же закрылась, апотом открылась объёмом 2, а я "прошляпил", чтопозиция закрывалась. Сорри. Aleksey 2014.03.20 17:08 #38 Главное что всё работает. Это радует. Sergey Chalyshev 2014.03.20 17:36 #39 Mikalas: Serj_Che!Никакой путаницы нет!Пример:Вы купили(продали) 3 единицы(акции, фьючерса или вал. пару не важно), но не единовременно, апо 1 единице. После первой покупки (вхождение) у Вас образовалась позиция объёмом 1, затем 2 и, наконец, 3.Сформировалась ЦЕНА позиции, но эта цена изменяется при клирингах(она не равна (цена покупки 1 ед.+ цена покупки 2 ед. + цена покупки 3 ед. )/3 ) Прошла неделя, Вы хотите выйти из всей позиции. Как узнать Вы в минусе или в плюсе?Ведь профит = Общая(конечная цена) - Общая (начальная цена). Для этого и нужно знать чистую (суммарную ) начальную стоимось позиции.Любая сделка КЛИЕНТА совершается на основе ордера. Значит можно посчитатьначальную (суммарную) стоимость открытой позиции на основе данных истории об ЭТОЙ позиции(при открытии позиции,ей присваивается уникальный ID), что и делает моя функция GetHistoryPrice Она позволяет не "ворошить" историю за выбранный период(как предлагаете Вы), а только берёт историю по этой позиции. Но если в истории нет каких-то данных, то перебирай ВСЮ историю(1970 года), всё-равно не найдёте потерянные данные!А то что у Вас нет проблем, то это совсем не значит, что и у Вас не теряются данные. P/S Все функции, которые предоставляет разработчик, ДОЛЖНЫ работать(иначе зачем же их предоставлять нам)! Зачем ехать в Питер из Москвы через Магадан, когда есть прямая дорога?Когда начинаешь объяснять другим, сам начинаешь понимать что объясняешь.Главное что у вас все сошлось (нашлось). Vasiliy Sokolov 2014.03.21 11:36 #40 Serj_Che: Когда начинаешь объяснять другим, сам начинаешь понимать что объясняешь.Главное что у вас все сошлось (нашлось). Даже я напрягся. Если бы трейды пропадали был бы полный ахтунг. 12345 Новый комментарий
Он говорит, что после клиринга меняются ордера участвующие в совокупной позиции.
Не сами ордера, а их цены + он сказал что не все трейды, относящиеся к исполненному ордеру видны в истории.
Возвращает цену с учётом клирингов
Тут повсеместно идет путаница между позициями ордерами и сделками.
С какого перепуга позиция должна знать какой в вашей стратегии первый ордер а какой последний.
Serj_Che!
Никакой путаницы нет!
Пример:
Вы купили(продали) 3 единицы(акции, фьючерса или вал. пару не важно), но не единовременно, а
по 1 единице. После первой покупки (вхождение) у Вас образовалась позиция объёмом 1, затем 2 и, наконец, 3.
Сформировалась ЦЕНА позиции, но эта цена изменяется при клирингах(она не равна (цена покупки 1 ед.+ цена покупки 2 ед. + цена покупки 3 ед. )/3 )
Прошла неделя, Вы хотите выйти из всей позиции. Как узнать Вы в минусе или в плюсе?
Ведь профит = Общая(конечная цена) - Общая (начальная цена).
Для этого и нужно знать чистую (суммарную ) начальную стоимось позиции.
Любая сделка КЛИЕНТА совершается на основе ордера. Значит можно посчитать
начальную (суммарную) стоимость открытой позиции на основе данных истории об ЭТОЙ позиции(при открытии позиции,
ей присваивается уникальный ID), что и делает моя функция GetHistoryPrice
Она позволяет не "ворошить" историю за выбранный период(как предлагаете Вы), а только берёт историю по этой позиции.
Но если в истории нет каких-то данных, то перебирай ВСЮ историю(1970 года), всё-равно не найдёте потерянные данные!
А то что у Вас нет проблем, то это совсем не значит, что и у Вас не теряются данные.
P/S Все функции, которые предоставляет разработчик, ДОЛЖНЫ работать(иначе зачем же их предоставлять нам)!
Зачем ехать в Питер из Москвы через Магадан, когда есть прямая дорога?
Вы уточните, что пропадает из истории? Трейды? Ордера? Ссылки на ордера или сделки? Что именно исчезает.
К сожалению, позиция вчера закрылась полностью и я не могу точно ответить, но из
функции видно, что нет или order_ticket или deal_ticket или deal_entry.
Запустите этот код отдельно и проверьте еще раз:
Что за трейды попадают в else. Все ли они имеют статус брокеража (!DEAL_TYPE_BUY && !DEAL_TYPE_SELL)?Моя ошибка!
Была открыта позиция объёмом 1 и тут же закрылась, а
потом открылась объёмом 2, а я "прошляпил", что
позиция закрывалась. Сорри.
Serj_Che!
Никакой путаницы нет!
Пример:
Вы купили(продали) 3 единицы(акции, фьючерса или вал. пару не важно), но не единовременно, а
по 1 единице. После первой покупки (вхождение) у Вас образовалась позиция объёмом 1, затем 2 и, наконец, 3.
Сформировалась ЦЕНА позиции, но эта цена изменяется при клирингах(она не равна (цена покупки 1 ед.+ цена покупки 2 ед. + цена покупки 3 ед. )/3 )
Прошла неделя, Вы хотите выйти из всей позиции. Как узнать Вы в минусе или в плюсе?
Ведь профит = Общая(конечная цена) - Общая (начальная цена).
Для этого и нужно знать чистую (суммарную ) начальную стоимось позиции.
Любая сделка КЛИЕНТА совершается на основе ордера. Значит можно посчитать
начальную (суммарную) стоимость открытой позиции на основе данных истории об ЭТОЙ позиции(при открытии позиции,
ей присваивается уникальный ID), что и делает моя функция GetHistoryPrice
Она позволяет не "ворошить" историю за выбранный период(как предлагаете Вы), а только берёт историю по этой позиции.
Но если в истории нет каких-то данных, то перебирай ВСЮ историю(1970 года), всё-равно не найдёте потерянные данные!
А то что у Вас нет проблем, то это совсем не значит, что и у Вас не теряются данные.
P/S Все функции, которые предоставляет разработчик, ДОЛЖНЫ работать(иначе зачем же их предоставлять нам)!
Зачем ехать в Питер из Москвы через Магадан, когда есть прямая дорога?
Когда начинаешь объяснять другим, сам начинаешь понимать что объясняешь.
Главное что у вас все сошлось (нашлось).
Когда начинаешь объяснять другим, сам начинаешь понимать что объясняешь.
Главное что у вас все сошлось (нашлось).