模拟交易
模拟交易
最新推荐文章于 2021-02-12 11:53:02 发布

loganyang123 于 2014-02-25 11:20:15 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
假如你正在为一投资公司咨询。他们正在做模拟,对一给定的股票连续观察n天,记为i=1,2,…,n;对每天i,该股票每股的价格p(i)。假设在这个时间区间内,在某一天他们想买1000(第i天)股而在另一天(第j天)卖出所有这些股。为得到最多收益,他们应什么时候买什么时候卖?N=8(days) 对应的为P(i) ={5, 15, 25, 16,7, 17, 23, 49} ($)。请设计算法找到正确的i与j.
二、对于海量数据,怎样存储,怎样排序,怎样搜索。
一代码:
import java.util.ArrayList;
import java.util.List;
public class MyTest {
/**
* @param args
*/
public static void main(String[] args) {
int[] prices = {5, 15, 25, 16,7, 17, 23, 49 };
List<Deal> dls = chooseDealTime(prices);
for (Deal dl : dls) {
System.out.println("buys at " + dl.getI() + ",sells at " + dl.getJ());
}
}
private static List<Deal> chooseDealTime(int[] prices) {
// int[] prices = {5, 15, 25, 16,7, 17, 23, 49};
int num = prices.length - 1;
int by = 0, sl = 0;
List<Deal> deals = new ArrayList<Deal>();
Deal deal = null;
for (int i = 0; i < num; i++) {
if (by == 0 && prices[i] < prices[i + 1]) {
by = i + 1;
continue;
}
if (by > 0) {
if (prices[i] > prices[i + 1]) {
sl = i + 1;
}
else if (i == num - 1) {
sl = i + 2;
}else{
continue;
}
deal = new Deal();
deal.setI(by);
deal.setJ(sl);
deals.add(deal);
by = 0;
sl = 0;
deal = null;
}
}
return deals;
}
}
class Deal {
int i, j;
int getI() {
return i;
}
void setI(int i) {
this.i = i;
}
int getJ() {
return j;
}
void setJ(int j) {
this.j = j;
}
}
相关知识
模拟生态圈
2016中国花卉苗木交易会在金华举行
插花模拟APP下载安装
交易结果=市场理解×(交易策略+自我认识)
《模拟人生4》园艺技能教程 模拟人生4植物说明
模拟人生4
【模拟人生4】临时雇佣工挑战
模拟人生4哪个职业上班少
城市热岛效应的实时监测和模拟分析
财务部门如何进行财务预测和模拟分析?
原文链接: 模拟交易 https://m.huajiangbk.com/newsview424020.html
| 上一篇: 班长=? | 下一篇: 揽巡报价=配置=价格=团购能优惠... |



