欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商教学与活动专区期货人生 → [原创]更新

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2364人关注过本帖树形打印复制链接

主题:[原创]更新

帅哥哟,离线,有人找我吗?
z7c9
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
[原创]更新  发帖心情 Post By:2014/1/13 21:24:06 [只看该作者]

    //更新未成交单
    void updatePendingOrders(const Margin* margin);
    void updatePendingOrders(const Commission* commission);
    //更新成交
    void updateTrades(const Commission* commission);
    //更新持仓
    void updatePositions(const Quote* quote);
    void updatePositions(const Trade* trade);
    void updatePositions(const Margin* margin);
    //更新账户
    void updateAccounts(const Quote* quote);
    void updateAccounts(const Order* order);
    void updateAccounts(const Trade* trade);
    void updateAccounts(const Margin* margin);
    void updateAccounts(const Commission* commission);
[此贴子已经被作者于2014/1/13 21:24:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
  发帖心情 Post By:2014/1/13 21:25:31 [只看该作者]

void Strategy::updatePositions(const Quote *quote) {
    //同步持仓:持仓盈亏
    Instrument *instrument = getInstrument(quote->instrumentId);

    Position *longPosition = getPosition(quote->instrumentId,PositionSide::longSide);
    if(longPosition)
        longPosition->positionProfit = (quote->lastPrice - longPosition->positionCost) * instrument->volumeMultiple * longPosition->totalPosition;

    Position *shortPosition = getPosition(quote->instrumentId,PositionSide::shortSide);
    if(shortPosition)
        shortPosition->positionProfit = (shortPosition->positionCost - quote->lastPrice) * instrument->volumeMultiple * shortPosition->totalPosition;
}

void Strategy::updatePositions(const Trade *trade) {
    //同步持仓:合约、买卖、总仓、今仓、可平量、持仓均价、持仓盈亏、占用保证金
}

void Strategy::updateAccounts(const Quote *quote) {
    //同步账户:持仓盈亏、动态权益、可用资金
    account.positionProfit = 0;

for(Position *position : positions) {
        account.positionProfit = account.positionProfit + position->positionProfit;
    }

    account.equity = account.preEquity + account.closeProfit + account.positionProfit - account.commission;
    account.available = account.equity - account.currMargin - account.frozenMargin - account.frozenCommission + account.credit;
}

void Strategy::updateAccounts(const Order *order) {
    //同步账户:冻结保证金、冻结手续费
    account.frozenMargin = 0;
    account.frozenCommission = 0;

for(Order *order : getPendingOrders()) {
        account.frozenMargin = account.frozenMargin + order->frozenMargin;
        account.frozenCommission = account.frozenCommission + order->frozenCommission;
    }
}

void Strategy::updateAccounts(const Trade *trade) {
    //同步账户:平仓盈亏、持仓盈亏、手续费、动态权益、占用保证金、可用资金
}


 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
  发帖心情 Post By:2014/2/17 21:29:44 [只看该作者]

//更新持仓和账户
void updatePositionAndAccount();
//更新报单
void updateOrder(const Margin* margin);
void updateOrder(const Commission * commission);
//更新持仓
void updatePosition(const Quote * quote);
void updatePosition(const Trade * trade);
void updatePosition(const Margin* margin);
void updatePosition(const Commission * commission);
//更新账户
void updateAccount(const Quote * quote);
void updateAccount(const Order * order);
void updateAccount(const Trade * trade);
void updateAccount(const Margin* margin);
void updateAccount(const Commission * commission);

 回到顶部
帅哥哟,离线,有人找我吗?
z7c9
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
  发帖心情 Post By:2014/4/27 20:17:26 [只看该作者]

Median Price(MP):=(high+low)/2
Typical Price(TP):=(high+low+close)/3
Weighted Close(WC):=(high+low+close*2)/4

 回到顶部