現(xiàn)貨量化合約跟單系統(tǒng)開(kāi)發(fā)(對(duì)接API火幣/幣安/OK)/成熟技術(shù)/源碼功能/方案策略
量化交易就是以數(shù)學(xué)公式和統(tǒng)計(jì)數(shù)據(jù)等為基礎(chǔ)來(lái)建立數(shù)學(xué)模型,通過(guò)數(shù)學(xué)模型來(lái)進(jìn)行交易。
量化交易依托的是現(xiàn)在高度發(fā)達(dá)的計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)。
量化交易通過(guò)數(shù)學(xué)模型來(lái)代替人工交易,It can effectively avoid the subjective judgment of investors,which is the impact of investor sentiment fluctuations.Avoid making irrational decisions in extreme fanaticism or pessimism.
量化交易需要以大量的數(shù)據(jù)作為基礎(chǔ),通過(guò)對(duì)大量數(shù)據(jù)的分析,來(lái)做出理性的判斷,預(yù)測(cè)未來(lái)價(jià)格的走勢(shì)。
int PFLD::Impl::ExtractKeypoints(const cv::Mat&img_face,std::vector<cv::Point2f>*keypoints){
std::cout<<"start extract keypoints."<<std::endl;
keypoints->clear();
if(!initialized_){
std::cout<<"model uninitialed."<<std::endl;
return 10000;
}
if(img_face.empty()){
std::cout<<"input empty."<<std::endl;
return 10001;
}
//image prepocess
cv::Mat face_cpy=img_face.clone();
int width=face_cpy.cols;
int height=face_cpy.rows;
float scale_x=static_cast<float>(width)/inputSize_;
float scale_y=static_cast<float>(height)/inputSize_;
cv::Mat face_resized;
cv::resize(face_cpy,face_resized,cv::Size(inputSize_,inputSize_));
face_resized.convertTo(face_resized,CV_32FC3);
face_resized=(face_resized-123.0f)/58.0f;
auto tensor_data=input_tensor_->host<float>();
auto tensor_size=input_tensor_->size();
::memcpy(tensor_data,face_resized.data,tensor_size);
auto input_tensor=landmarker_->getSessionInput(session_,nullptr);
input_tensor->copyFromHostTensor(input_tensor_);
landmarker_->runSession(session_);
//get output
std::string output_tensor_name0="conv5_fwd";
MNN::Tensor*tensor_landmarks=landmarker_->getSessionOutput(session_,output_tensor_name0.c_str());
MNN::Tensor tensor_landmarks_host(tensor_landmarks,tensor_landmarks->getDimensionType());
tensor_landmarks->copyToHostTensor(&tensor_landmarks_host);
std::cout<<"batch:"<<tensor_landmarks->batch()<<std::endl
<<"channels:"<<tensor_landmarks->channel()<<std::endl
<<"height:"<<tensor_landmarks->height()<<std::endl
<<"width:"<<tensor_landmarks->width()<<std::endl
<<"type:"<<tensor_landmarks->getDimensionType()<<std::endl;
auto landmarks_dataPtr=tensor_landmarks_host.host<float>();
int num_of_points=98;
for(int i=0;i<num_of_points;++i){
cv::Point2f curr_pt(landmarks_dataPtr[2*i+0]*scale_x,
landmarks_dataPtr[2*i+1]*scale_y);
keypoints->push_back(curr_pt);
}
std::cout<<"end extract keypoints."<<std::endl;
return 0;
}