本文整理汇总了C++中Asset::getOpen方法的典型用法代码示例。如果您正苦于以下问题:C++ Asset::getOpen方法的具体用法?C++ Asset::getOpen怎么用?C++ Asset::getOpen使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Asset
的用法示例。
在下文中一共展示了Asset::getOpen方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: outOfMoneyOption
//.........这里部分代码省略.........
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//////////////////// find option closest to outOfMoneyRatio ////////////////////////
while (calls->getDate(callsPos) == currDate){
callsDailyVol += calls->getVolume(callsPos);
callsDailyOoi += calls->getOoi(callsPos);
++callsPos;
if(callsPos == calls->getNbrRows()) break;
}
//get puts daily volume and open interest for all options on given day.
while (puts->getDate(putsPos) == currDate){ //while I am on one date
putsDailyVol += puts->getVolume(putsPos);
putsDailyOoi += puts->getOoi(putsPos);
++putsPos;
if(putsPos == puts->getNbrRows()) break;
}
prevPcVolRatio = putsDailyVol/(callsDailyVol + putsDailyVol);
prevPcOoiRatio = putsDailyOoi/(callsDailyOoi + putsDailyOoi);
//////////////////////// get first day data on volumes /////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
while(++equityIndex < underlyer->getNbrRows()){ //increment before comparing, to start comparing from row 1.
currDate = underlyer->getDate(equityIndex);
if (nbrToLong - currLongPos > 0){ //I have to buy some stock
if(currCash - (1+tCRatio)*(nbrToLong-currLongPos)*underlyer->getOpen(equityIndex) >= 0){ // I've go enough cash to commit
currCash -= (1+tCRatio)*(nbrToLong-currLongPos)*underlyer->getOpen(equityIndex);
currLongPos = nbrToLong;
}
else{
nbrToLong = currLongPos + floor(currCash/((1+tCRatio)*underlyer->getOpen(equityIndex))); //buy as much as I can
currCash -= (1+tCRatio)*(nbrToLong-currLongPos)*underlyer->getOpen(equityIndex);
currLongPos = nbrToLong;
}
}
else if (nbrToLong - currLongPos < 0){ // I have to sell some stock, currently only doing long only.
currCash += (1-tCRatio)*(currLongPos - nbrToLong)*underlyer->getOpen(equityIndex);
currLongPos = nbrToLong;
}
else{} // do nothing.
//re-initialize values on new date
callsDailyVol = 0;
callsDailyOoi = 0;
putsDailyVol = 0;
putsDailyOoi = 0;
//get calls daily volume and open interest for all options on given day.
while (calls->getDate(callsPos) == currDate){ //while I am on one date
callsDailyVol += calls->getVolume(callsPos);
callsDailyOoi += calls->getOoi(callsPos);
++callsPos;
if(callsPos == calls->getNbrRows()) break;
}
//get puts daily volume and open interest for all options on given day.
while (puts->getDate(putsPos) == currDate){ //while I am on one date
putsDailyVol += puts->getVolume(putsPos);
示例2: optionsVolumeComp1
//.........这里部分代码省略.........
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//////////////////////// get first day data on volumes /////////////////////////////
while (calls->getDate(callsPos) == currDate){
callsDailyVol += calls->getVolume(callsPos);
callsDailyOoi += calls->getOoi(callsPos);
++callsPos;
if(callsPos == calls->getNbrRows()) break;
}
//get puts daily volume and open interest for all options on given day.
while (puts->getDate(putsPos) == currDate){ //while I am on one date
putsDailyVol += puts->getVolume(putsPos);
putsDailyOoi += puts->getOoi(putsPos);
++putsPos;
if(putsPos == puts->getNbrRows()) break;
}
prevPcVolRatio = putsDailyVol/(callsDailyVol + putsDailyVol);
prevPcOoiRatio = putsDailyOoi/(callsDailyOoi + putsDailyOoi);
//////////////////////// get first day data on volumes /////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
while(++equityIndex < underlyer->getNbrRows()){ //increment before comparing, to start comparing from row 1.
currDate = underlyer->getDate(equityIndex);
if (nbrToLong - currLongPos > 0){ //I have to buy some stock
if(currCash - (1+tCRatio)*(nbrToLong-currLongPos)*underlyer->getOpen(equityIndex) >= 0){ // I've go enough cash to commit
currCash -= (1+tCRatio)*(nbrToLong-currLongPos)*underlyer->getOpen(equityIndex);
currLongPos = nbrToLong;
}
else{
nbrToLong = currLongPos + floor(currCash/((1+tCRatio)*underlyer->getOpen(equityIndex))); //buy as much as I can
currCash -= (1+tCRatio)*(nbrToLong-currLongPos)*underlyer->getOpen(equityIndex);
currLongPos = nbrToLong;
}
}
else if (nbrToLong - currLongPos < 0){ // I have to sell some stock, currently only doing long only.
currCash += (1-tCRatio)*(currLongPos - nbrToLong)*underlyer->getOpen(equityIndex);
currLongPos = nbrToLong;
}
else{} // do nothing.
//re-initialize values on new date
callsDailyVol = 0;
callsDailyOoi = 0;
putsDailyVol = 0;
putsDailyOoi = 0;
//get calls daily volume and open interest for all options on given day.
while (calls->getDate(callsPos) == currDate){ //while I am on one date
callsDailyVol += calls->getVolume(callsPos);
callsDailyOoi += calls->getOoi(callsPos);
++callsPos;
if(callsPos == calls->getNbrRows()) break;
}
//get puts daily volume and open interest for all options on given day.
while (puts->getDate(putsPos) == currDate){ //while I am on one date
putsDailyVol += puts->getVolume(putsPos);