什么是智能合约?
智能合约是对协议的翻译,包括将条款和条件转换成计算机代码。区块链开发者用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;
}