马蹄链开发功能丨DAPP马蹄链系统开发(开发逻辑及源码)

125 阅读2分钟

  什么是智能合约?

  智能合约是对协议的翻译,包括将条款和条件转换成计算机代码。区块链开发者用JAVA、C++和其他编程语言编写脚本,不会引起歧义或误解。这段代码翻译了一组自动执行和验证的规则。

  双方的合同代码被上传到区块链,以检查合同的有效性并启用所需的步骤。从初始化开始,智能合约将自动执行。

  区块链是一个链接数据的结构,它包含数据和指向以前数据的散列指针。通常,事物是相互关联的。每一笔交易都在区块链记录并公布。我们之前看到的属性确保了区块链内交易的安全性。

  int32_t WtHftStraDemo::totalAlphasValue(TicksUPtr&ticksUPtr){

  int32_t maAlphaValue=MaAlpha::alphaValue(ticksUPtr,20);

  /*int32_t macdAlphaValue=MacdAlpha::alphaValue(ticksUPtr,9,12,26);

  int32_t diffAlphaValue=DiffAlpha::alphaValue(ticksUPtr,20);

  int32_t lastTradedQuantityAlphaValue=LastTradedQuantityAlpha::alphaValue(ticksUPtr,20);

  int32_t bookAlphaValue=BookAlpha::alphaValue(ticksUPtr,20);*/

  /*关于区块链项目技术开发唯:MrsFu123,代币发行、dapp智能合约开发、链游开发、多链钱包开发

  交易所开发、量化合约开发、互助游戏开发、Nft数字藏品开发、众筹互助开发、元宇宙开发、swap开发、

  链上合约开发、ido开发、商城开发等,开发过各种各样的系统模式,更有多种模式、制度、案例、后台等,成熟技术团队,欢迎实体参考。

  ///output all values to terminal for test...

  //std::cout<<"maAlphaValue:"<<maAlphaValue<<std::endl;

  std::cout<<"macdAlphaValue:"<<macdAlphaValue<<std::endl;

  //std::cout<<"diffAlphaValue:"<<diffAlphaValue<<std::endl;

  std::cout<<"lastTradedQuantityAlphaValue:"<<lastTradedQuantityAlphaValue<<std::endl;

  //std::cout<<"bookAlphaValue:"<<bookAlphaValue<<std::endl;

  */开发流程I35需求7O98开发O7I8

  //return(maAlphaValue+macdAlphaValue+diffAlphaValue+lastTradedQuantityAlphaValue+bookAlphaValue);

  return maAlphaValue;

  }

  uint32_t WtHftStraDemo::getLongOffsetValue(){

  int32_t totalAlphasValue=this->totalAlphasValue(this->_ticks_uptr);

  return(totalAlphasValue<0)?this->_long_order_offset:(this->_long_order_offset+totalAlphasValue);

  }

  uint32_t WtHftStraDemo::getShortOffsetValue(){

  int32_t totalAlphasValue=this->totalAlphasValue(this->_ticks_uptr);

  return(totalAlphasValue<0)?this->_short_order_offset:(this->_short_order_offset+totalAlphasValue);

  }

  bool WtHftStraDemo::updateTicks(WTSTickData tickData){

  if(this->_ticks_uptr->size()==ALPHA_TICK_COUNTS)

  this->_ticks_uptr->erase(this->_ticks_uptr->begin());

  this->_ticks_uptr->push_back(tickData);

  return(this->_ticks_uptr->size()==ALPHA_TICK_COUNTS);

  }

  void WtHftStraDemo::on_trade(HftStraBaseCtxctx,uint32_t localid,const charstdCode,bool isBuy,double qty,double price,const char*userTag){

  if(this->__isBelongToHft(localid)){//localid is code

  this->__tqz_receiveCodeOnlyCloseCode(localid,this->_code,qty);

  }else{

  ///this->_ctx->stra_log_text("[WtHftStraDemo::on_trade],localid(%d)is not belong to hft strategy(%s)",localid,stdCode);

  }

  this->__tqz_writeStrategyTradeLog(localid,price,qty);

  }

  void WtHftStraDemo::on_order(HftStraBaseCtxctx,uint32_t localid,const charstdCode,bool isBuy,double totalQty,double leftQty,double price,bool isCanceled,const char*userTag){//下单成功后调用

  if(0!=this->_code.compare(stdCode))

  return;

  if(!isCanceled)//order is not cancel.

  return;

  TQZOrderType orderType=this->__tqz_getOrderType(localid);//get order type first.

  if(this->__isBelongToHft(localid)){//localid is inside.

  switch(orderType){

  case BUY_TYPE:{

  this->__unlockBuy();

  this->tqz_marketMaking(this->getLongOffsetValue(),this->getShortOffsetValue());

  break;

  }

  case SELL_TYPE:{

  std::string orderComment(this->_re_connect_ready?"code_sellOrder_reSend":"code_sellOrder_reConnect_reSend");

  if(this->_code_sell_lock)//re send code sell order.

  this->tqz_sell(this->_code,UNIT,OPEN_CLOSE_POSITION_OFFSET_TICKS,orderComment.c_str());

  break;

  }