PlotLine * SINWAV::calculateCustom (QString &, Q3PtrList<PlotLine> &) { Q3PtrList<PlotLine> pll; pll.setAutoDelete(FALSE); getSINWAV(pll); pll.remove(1); return pll.at(0); }
int main(int /*argc*/, char ** /*argv*/) { Q3PtrList<Node> list; list.setAutoDelete(true); Q3AsciiDict<Node> dict; KOffice::PriorityQueue<Node> queue; srand(time(0)); for (int i = 0; i < 12; ++i) { Node *n = new Node(rand() % 20); list.append(n); queue.insert(n); // Check whether the AsciiDict CTOR is okay Node *n2 = new Node(*n); dict.insert(keys[ i ], n2); } kDebug() << "##### Queue 1:"; queue.dump(); kDebug() << "##### Queue 2:"; KOffice::PriorityQueue<Node> queue2(dict); queue2.dump(); Node *n = list.at(6); kDebug() << "##### Decreasing node:" << n->key() << " at" << n->index(); n->setKey(2); queue.keyDecreased(n); queue.dump(); n = list.at(2); kDebug() << "##### Decreasing node:" << n->key() << " at" << n->index(); n->setKey(0); queue.keyDecreased(n); queue.dump(); n = queue.extractMinimum(); while (n) { queue.dump(); n = queue.extractMinimum(); } return 0; }
void tst_Q3PtrList::replace() { Q3PtrList<int> list; int foo = 4; list.setAutoDelete( TRUE ); QCOMPARE( list.insert(0, new int(1)), (bool)TRUE ); QCOMPARE( list.insert(1, new int(2)), (bool)TRUE ); QCOMPARE( list.insert(2, new int(4)), (bool)TRUE ); QCOMPARE( *(list.at(2)), 4 ); QCOMPARE( list.replace(2, new int(3)), (bool)TRUE ); QCOMPARE( *(list.at(2)), 3 ); uint count = list.count(); QCOMPARE( list.replace(3, &foo), (bool)FALSE ); QCOMPARE( list.count(), count ); int *p = new int(7); QCOMPARE( list.insert(2, p), (bool)TRUE ); QCOMPARE( list.replace(2, p), (bool)TRUE ); }
Indicator * SINWAV::calculate () { Indicator *output = new Indicator; output->setDateFlag(dateFlag); output->setLogScale(logScale); Q3PtrList<PlotLine> pll; pll.setAutoDelete(FALSE); getSINWAV(pll); int loop; for (loop = 0; loop < (int) pll.count(); loop++) output->addLine(pll.at(loop)); return output; }
void TesterReport::createSummary (Q3PtrList<TradeItem> &trades, double account) { int shortTrades = 0; int longTrades = 0; int winLongTrades = 0; int loseLongTrades = 0; int winShortTrades = 0; int loseShortTrades = 0; double totalWinLongTrades = 0; double totalLoseLongTrades = 0; double totalWinShortTrades = 0; double totalLoseShortTrades = 0; double largestWin = 0; double largestLose = 0; double accountDrawdown = account; double commission = 0; double balance = account; int loop; for (loop = 0; loop < (int) trades.count(); loop++) { TradeItem *trade = trades.at(loop); // get long/short trades if (trade->getTradePosition() == TradeItem::Long) { longTrades++; if (trade->getProfit() < 0) { loseLongTrades++; totalLoseLongTrades = totalLoseLongTrades + trade->getProfit(); if (trade->getProfit() < largestLose) largestLose = trade->getProfit(); } else { winLongTrades++; totalWinLongTrades = totalWinLongTrades + trade->getProfit(); if (trade->getProfit() > largestWin) largestWin = trade->getProfit(); } } else { shortTrades++; if (trade->getProfit() < 0) { loseShortTrades++; totalLoseShortTrades = totalLoseShortTrades + trade->getProfit(); if (trade->getProfit() < largestLose) largestLose = trade->getProfit(); } else { winShortTrades++; totalWinShortTrades = totalWinShortTrades + trade->getProfit(); if (trade->getProfit() > largestWin) largestWin = trade->getProfit(); } } commission = commission + trade->getEntryCom() + trade->getExitCom(); balance = trade->getBalance(); if (trade->getBalance() < accountDrawdown) accountDrawdown = trade->getBalance(); tradeTable->setNumRows(tradeTable->numRows() + 1); QString ts; trade->getTradePositionString(ts); tradeTable->setText(tradeTable->numRows() - 1, 0, ts); trade->getEnterDateString(ts); tradeTable->setText(tradeTable->numRows() - 1, 1, ts); tradeTable->setText(tradeTable->numRows() - 1, 2, QString::number(trade->getEnterPrice(), 'f', 2)); trade->getExitDateString(ts); tradeTable->setText(tradeTable->numRows() - 1, 3, ts); tradeTable->setText(tradeTable->numRows() - 1, 4, QString::number(trade->getExitPrice(), 'f', 2)); trade->getExitSignalString(ts); tradeTable->setText(tradeTable->numRows() - 1, 5, ts); tradeTable->setText(tradeTable->numRows() - 1, 6, QString::number(trade->getProfit(), 'f', 2)); tradeTable->setText(tradeTable->numRows() - 1, 7, QString::number(trade->getBalance(), 'f', 2)); tradeTable->setText(tradeTable->numRows() - 1, 8, QString::number(trade->getVolume())); } // test summary summaryBalance->setNum(balance); summaryNetProfit->setNum(balance - account); summaryNetPercentage->setNum(((balance - account) / account) * 100); summaryInvestment->setNum(account); summaryCommission->setNum(commission); summaryDrawdown->setNum(accountDrawdown - account); summaryTrades->setNum(longTrades + shortTrades); summaryLongTrades->setNum(longTrades); summaryShortTrades->setNum(shortTrades); // win summary summaryWinTrades->setNum(winLongTrades + winShortTrades); summaryTotalWinTrades->setNum(totalWinLongTrades + totalWinShortTrades); summaryAverageWin->setNum((totalWinLongTrades + totalWinShortTrades) / (winLongTrades + winShortTrades)); summaryLargestWin->setNum(largestWin); summaryWinLongTrades->setNum(winLongTrades); summaryWinShortTrades->setNum(winShortTrades); // lose summary summaryLoseTrades->setNum(loseLongTrades + loseShortTrades); summaryTotalLoseTrades->setNum(totalLoseLongTrades + totalLoseShortTrades); summaryAverageLose->setNum((totalLoseLongTrades + totalLoseShortTrades) / (loseLongTrades + loseShortTrades)); summaryLargestLose->setNum(largestLose); summaryLoseLongTrades->setNum(loseLongTrades); summaryLoseShortTrades->setNum(loseShortTrades); }