亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? world.java

?? java人工股市源碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package asm;import java.util.Vector;/** * Title:        Artificial Stock Market * Description:  人工模擬股市(來源:SFI的Swarm版本)的Java版本 * Copyright:    Copyright (c) 2003 * Company:      http://agents.yeah.net * @author jake * @version 1.0 *///該類負責對世界的狀態進行紀錄并編碼public class World {  public double intrate; /*利率" interest rate"*/  public double dividendscale; /*股息的基本值" The baseline dividend that is set by initWithBaseline: "*/  public int pupdown[];	       /*一個數組記錄價格的升降情況" array, dimension UPDOWNLOOKBACK "*/  public int dupdown[];	       /*一個數組記錄股息的升降情況" array, dimension UPDOWNLOOKBACK "*/  public int history_top;      /*價格、股息數組的歷史紀錄指標" index value of current input into history arrays "*/  public int updown_top;     /*pupdown和dupdown兩個數組的指標"number of time steps to look back to form pupdown and dupdown bits"*/  public double price;     /*股票的市場價格"market clearning price"*/  public double oldprice;  /*上一期的市場價格" previous price "*/  public double dividend;   /*當前的股息" dividend "*/  public double olddividend; /*上一期的股息"previous dividend"*/  public double saveddividend; /* copy of olddividend, used for some                           double-checking on object integrity"*/  public double savedprice; /* copy of oldprice, used for some                        double-checking on object integrity"*/  public double riskNeutral;   /*"dividend/intrate"*/;  public double profitperunit; /*沒支股票的靜收益=price - oldprice + dividend"*/  public double returnratio;   /*回報率=profitperunit/oldprice"*/  public int malength[];     /*" For each MA, we must specify the length over which the average is calculated. This array has one integer for each of the moving averages we plan to keep, and it is used to set the widths covered by the moving averages."*/  public int nworldbits; /*世界信息編碼的長度"The number of aspects of the world that are recorded as bits"*/  public int realworld[]; /*真實世界的編碼,每個索引對應的值為0~2"An array (dynamically allocated, sorry) of ints, one for each bit being monitored. This is kept up-to-date. There's a lot of pointer math going on with this and I don't feel so glad about it (PJ: 2001-11-01)"*/  public boolean exponentialMAs; /*是否用指數加權的方法計算移動平均數值"Indicator variable, YES if the World is supposed to report back exponentially weighted moving averages"*/  public MovingAverage priceMA[];  /*價格的移動平均" MovingAverage objects which hold price information. There are NMAS of these, and have various widths for the moving averages "*/  public MovingAverage divMA[];   /*股息的移動平均"  MovingAverage objects which hold dividend moving averages. "*/  public MovingAverage oldpriceMA[]; /*上期價格的移動平均" MovingAverage objects which hold lagged price moving averages "*/  public MovingAverage olddivMA[];/*上期股息的移動平均" MovingAverage objects which hold lagged dividend moving averages "*/  public Vector Histories;   //記錄世界的歷史信息 double divhistory[];       /*股息歷史數組" dividend history array, goes back MAXHISTORY points"*/ double pricehistory[];     /*價格歷史數組" price history array "*/  static int NULLBIT=-1;  static int PUPDOWNBITNUM=42;  static int NWORLDBITS=61;  static int NRATIOS=10;  static int EQ=0;  static int UPDOWNLOOKBACK=5;  static int NMAS=4;  static int MAXHISTORY=500;  //定義世界編碼對應位的名稱  String bitnamelist[][]={{"on", "dummy bit -- always on"},			// 0{"off", "dummy bit -- always off"},{"random", "random on or off"},{"dup", "dividend went up this period"},		// 3{"dup1", "dividend went up one period ago"},{"dup2", "dividend went up two periods ago"},{"dup3", "dividend went up three periods ago"},{"dup4", "dividend went up four periods ago"},{"d5up", "5-period MA of dividend went up"},		// 8{"d20up", "20-period MA of dividend went up"},{"d100up", "100-period MA of dividend went up"},{"d500up", "500-period MA of dividend went up"},{"d>d5",   "dividend > 5-period MA"},			// 12{"d>d20",  "dividend > 20-period MA"},{"d>d100", "dividend > 100-period MA"},{"d>d500", "dividend > 500-period MA"},{"d5>d20", "dividend: 5-period MA > 20-period MA"},	// 16{"d5>d100", "dividend: 5-period MA > 100-period MA"},{"d5>d500", "dividend: 5-period MA > 500-period MA"},{"d20>d100", "dividend: 20-period MA > 100-period MA"},{"d20>d500", "dividend: 20-period MA > 500-period MA"},{"d100>d500", "dividend: 100-period MA > 500-period MA"},{"d/md>1/4", "dividend/mean dividend > 1/4"},		// 22{"d/md>1/2", "dividend/mean dividend > 1/2"},{"d/md>3/4", "dividend/mean dividend > 3/4"},{"d/md>7/8", "dividend/mean dividend > 7/8"},{"d/md>1",   "dividend/mean dividend > 1  "},{"d/md>9/8", "dividend/mean dividend > 9/8"},{"d/md>5/4", "dividend/mean dividend > 5/4"},{"d/md>3/2", "dividend/mean dividend > 3/2"},{"d/md>2", "dividend/mean dividend > 2"},{"d/md>4", "dividend/mean dividend > 4"},{"pr/d>1/4", "price*interest/dividend > 1/4"},		// 32{"pr/d>1/2", "price*interest/dividend > 1/2"},{"pr/d>3/4", "price*interest/dividend > 3/4"},{"pr/d>7/8", "price*interest/dividend > 7/8"},{"pr/d>1",   "price*interest/dividend > 1"},{"pr/d>9/8", "price*interest/dividend > 9/8"},{"pr/d>5/4", "price*interest/dividend > 5/4"},{"pr/d>3/2", "price*interest/dividend > 3/2"},{"pr/d>2",   "price*interest/dividend > 2"},{"pr/d>4",   "price*interest/dividend > 4"},{"pup", "price went up this period"},			// 42{"pup1", "price went up one period ago"},{"pup2", "price went up two periods ago"},{"pup3", "price went up three periods ago"},{"pup4", "price went up four periods ago"},{"p5up", "5-period MA of price went up"},		// 47{"p20up", "20-period MA of price went up"},{"p100up", "100-period MA of price went up"},{"p500up", "500-period MA of price went up"},{"p>p5", "price > 5-period MA"},			// 51{"p>p20", "price > 20-period MA"},{"p>p100", "price > 100-period MA"},{"p>p500", "price > 500-period MA"},{"p5>p20", "price: 5-period MA > 20-period MA"},	// 55{"p5>p100", "price: 5-period MA > 100-period MA"},{"p5>p500", "price: 5-period MA > 500-period MA"},{"p20>p100", "price: 20-period MA > 100-period MA"},{"p20>p500", "price: 20-period MA > 500-period MA"},{"p100>p500", "price: 100-period MA > 500-period MA"}};double ratios[] ={0.25, 0.5, 0.75, 0.875, 1.0, 1.125, 1.25, 1.5, 2.0, 4.0};//比例數值數組public World() {  //構建函數,初始化各個變量  pupdown=new int[UPDOWNLOOKBACK];	       /*" array, dimension UPDOWNLOOKBACK "*/  dupdown=new int[UPDOWNLOOKBACK];  malength=new int[NMAS];  priceMA=new MovingAverage[NMAS];  /*" MovingAverage objects which hold price information. There are NMAS of these, and have various widths for the moving averages "*/  divMA=new MovingAverage[NMAS];   /*"  MovingAverage objects which hold dividend moving averages. "*/  oldpriceMA=new MovingAverage[NMAS]; /*" MovingAverage objects which hold lagged price moving averages "*/  olddivMA=new MovingAverage[NMAS];  Histories=new Vector();}String descriptionOfBit(int n){  //獲得指定位的描述  if (n == NULLBIT)    return "(Unused bit for spacing)";  else if (n < 0 || n >= NWORLDBITS)    return "(Invalid world bit)";  return bitnamelist[n][1];}String nameOfBit(int n){  //獲得指定位的名稱  if (n == NULLBIT)    return "null";  else if (n < 0 || n >= NWORLDBITS)    return "";  return bitnamelist[n][0];}int bitNumberOf(String name)/*" Converts a bit name to a bit number. Supplies the number of a bit * given its name.  Unknown names return NULLBIT.  Relatively slow * (linear search). Could be made faster with a hash table etc, but * that's not worth it for the intended usage.  "*/{  //根據位的名稱獲得位的值  int n;  for (n = 0; n < NWORLDBITS; n++)    if (bitnamelist[n][0].equals(name))      break;  if (n >= NWORLDBITS) n = NULLBIT;  return n;}void setintrate(double rate)  /*" Interest rate set in ASMModelSwarm."*/{  intrate = rate;}void setExponentialMAs(boolean aBool)  /*" Turns on the use of exponential MAs in calculations.  Can be    turned on in GUI or ASMModelSwarm.m. If not, simple averages of    the last N periods."*/{  exponentialMAs = aBool;}int getNumWorldBits()  /*" Returns numworldbits; used by the BFagent."*/{  return nworldbits;}void initWithBaseline(double baseline)/*"Initializes moving averages, using initial values based ona price scale of "baseline" for the dividend.  The baseline isset in ASMModelSwarm. " */{  int i;  double initprice, initdividend;// Check pup index  //if (!nameOfBit(PUPDOWNBITNUM).equals("pup"))    //system.out("PUPDOWNBITNUM is incorrect");// Set price and dividend etc from baseline  dividendscale = baseline;  initprice = baseline/intrate;//初始化價格  initdividend = baseline;//初始化股息  saveddividend = dividend = initdividend;  setDividend(initdividend);  savedprice = price = initprice;  setPrice(initprice);// Initialize profit measures  returnratio = intrate;//初始化回報率  profitperunit = 0.0;// Initialize miscellaneous variables  nworldbits = NWORLDBITS;  //各個移動平均數組的記錄長度  malength[0] = 5;  malength[1] = 20;  malength[2] = 100;  malength[3] = MAXHISTORY;  history_top = 0;  updown_top = 0;  divhistory=new double[MAXHISTORY];       /*" dividend history array, goes back MAXHISTORY points"*/  pricehistory=new double[MAXHISTORY];  realworld = new int[NWORLDBITS];  // Initialize arrays  for (i = 0; i < UPDOWNLOOKBACK; i++)    {    pupdown[i] = 0;    dupdown[i] = 0;    }  for (i = 0; i < MAXHISTORY; i++)    {    pricehistory[i] = initprice;    divhistory[i] = initdividend;    }  //初始化各種移動平均數組  for (i = 0; i < NMAS; i++)    {      priceMA[i] = new MovingAverage();      priceMA[i].initWidth(malength[i],initprice);      divMA[i] =new MovingAverage();      divMA[i].initWidth(malength[i],initdividend);      oldpriceMA[i] = new MovingAverage();      oldpriceMA[i].initWidth(malength[i],initprice);      olddivMA[i] =new MovingAverage();      olddivMA[i].initWidth(malength[i],initdividend);    }// Initialize bits//初始化世界的信息編碼  makebitvector();}/*設置價格p,并計算回報率" Sets the market price to "p".  All price changes (besides trialprices) should use this method.  Also computes profitperunit andreturnratio.  Checks internally for illegal changes of "price", giving us theeffective benefit of encapsulation with the simplicity of use ofa global variable. "*/void setPrice(double p){  //if (price != savedprice)    //system.Out("Price was changed illegally");  oldprice = price;  price = p;  //計算每股的收益  profitperunit = price - oldprice + dividend;  //計算回報率  if (oldprice <= 0.0)    returnratio = profitperunit*1000.0;	/* Arbitrarily large */  else    returnratio = profitperunit/oldprice;  savedprice = price;}/*"Returns the price, used by many classes."*/double getPrice(){  return price;}/*"Returns profitperunit, used by Specialist."*/double getProfitPerUnit(){  return profitperunit;}/*"Sets the global value of "dividend".  All dividend changes should	use this method.  It checks for illegal changes, as does	-setPrice:."*/void setDividend(double d){  //if (dividend != saveddividend)    //system.Out("Dividend was changed illegally.");  //設置股息,并計算風險中性價格  olddividend = dividend;  dividend = d;  saveddividend = dividend;  riskNeutral = dividend/intrate;}/*"Returns the most recent dividend, used by many."*/double getDividend(){  return dividend;}/*"Returns the risk neutral price.  It is just dividend/intrate."*/double getRiskNeutral(){  return riskNeutral;}/*" Updates the history records, moving averages, and world bits to * reflect the current price and dividend.  Note that this is called * in each period after a new dividend has been declared but before * the bidding and price adjustment.  The bits seen by the agents thus * do NOT reflect the trial price.  The "price" here becomes the * "oldprice" by the end of the period. It is called once per period. * (This could be done automatically as part of -setDividend:). * * The dividend used here is at present the latest value, though it * could be argued that it should be the one before, to match price. * For the p*r/d bits we do use the old one. "*///對世界當前的狀況進行編碼,每個運行周期內,先進行該動作然后才讓每個agent進行報價、交易void updateWorld(){  int i;/* Update the binary up/down indicators for price and dividend *///紀錄當前的價格和股息是升還是降  updown_top = (updown_top + 1) % UPDOWNLOOKBACK;  if(price>oldprice){    pupdown[updown_top] = 1;  }else{    pupdown[updown_top] = 0;  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线免费视频| 中文在线免费一区三区高中清不卡| 亚洲女子a中天字幕| 9色porny自拍视频一区二区| 中文字幕精品三区| 91在线码无精品| 日本高清不卡一区| 欧美日韩国产大片| 亚洲欧美偷拍卡通变态| 激情欧美一区二区| 51精品久久久久久久蜜臀| 欧美国产综合色视频| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩在线电影| 亚洲美女偷拍久久| 不卡的av在线| 国产精品污网站| 国产乱码一区二区三区| 精品乱人伦小说| 美国毛片一区二区| 日韩网站在线看片你懂的| 婷婷中文字幕综合| 欧美日免费三级在线| 亚洲欧美一区二区在线观看| 成人18精品视频| 国产精品久久久久永久免费观看| 国产二区国产一区在线观看| 精品日韩欧美在线| 国产精品一区二区你懂的| 精品日韩成人av| 国产成人精品午夜视频免费| 国产欧美精品国产国产专区 | 国产三级精品三级在线专区| 蜜桃av噜噜一区| 精品99999| 国产不卡视频在线播放| 国产精品日产欧美久久久久| 国产suv一区二区三区88区| 国产欧美精品日韩区二区麻豆天美| 国产98色在线|日韩| 日本一二三不卡| 一本色道久久综合亚洲精品按摩| 一二三四社区欧美黄| 欧美三区在线观看| 美女视频黄久久| 久久久不卡网国产精品二区| eeuss鲁片一区二区三区在线看| 国产精品区一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 亚洲视频一区二区在线| 欧美日韩视频专区在线播放| 日本强好片久久久久久aaa| 亚洲精品在线免费播放| thepron国产精品| 亚洲大片一区二区三区| 欧美一级电影网站| 成人理论电影网| 午夜精品视频一区| 国产午夜精品一区二区| 91麻豆国产福利精品| 青青草国产成人99久久| 久久久国产一区二区三区四区小说| av电影天堂一区二区在线观看| 亚洲五码中文字幕| 久久精品一区四区| 欧洲一区二区av| 精品亚洲免费视频| 亚洲激情中文1区| 日韩免费视频一区二区| 9人人澡人人爽人人精品| 免费成人美女在线观看| 亚洲欧洲av另类| 欧美精品第一页| 97精品久久久午夜一区二区三区| 日韩精品亚洲专区| 亚洲女爱视频在线| 久久婷婷色综合| 欧美日韩国产高清一区| 一本色道久久加勒比精品| 另类中文字幕网| 亚洲第一主播视频| 国产精品久久久久久久久免费桃花 | 国产精品三级av| 欧美一级国产精品| 91精品福利视频| 波多野结衣91| 国产剧情在线观看一区二区| 亚洲成av人片| 亚洲免费伊人电影| 韩国av一区二区| 午夜天堂影视香蕉久久| 亚洲美女免费视频| 国产精品美女一区二区| 精品对白一区国产伦| 欧美乱妇15p| 欧洲中文字幕精品| 91丝袜高跟美女视频| 国产毛片精品视频| 免费人成在线不卡| 午夜欧美在线一二页| 亚洲国产视频a| 亚洲一区二区三区四区在线免费观看| 国产精品情趣视频| 国产精品理论在线观看| 久久久久久免费毛片精品| 精品日韩在线观看| 久久亚洲精精品中文字幕早川悠里| 欧美精品久久天天躁| 欧美男男青年gay1069videost| 色综合欧美在线视频区| 91麻豆成人久久精品二区三区| 99在线热播精品免费| 99精品视频在线播放观看| 成人午夜碰碰视频| 99久久精品国产麻豆演员表| www.性欧美| 91同城在线观看| 91国偷自产一区二区开放时间| 色哟哟一区二区在线观看| 91在线精品一区二区三区| 91啪亚洲精品| 在线观看精品一区| 欧美日本一区二区| 日韩欧美电影一二三| 欧美精品一区二区三区久久久| 久久精品一区四区| 亚洲女同一区二区| 日本网站在线观看一区二区三区| 奇米一区二区三区av| 国产精品一区二区三区四区| caoporn国产精品| 91黄色免费版| 欧美一卡二卡三卡四卡| 久久久久久久久蜜桃| 最新日韩在线视频| 视频一区视频二区在线观看| 美女高潮久久久| 岛国精品在线播放| 在线观看不卡一区| 2020国产精品久久精品美国| 国产欧美视频一区二区| 亚洲免费av高清| 久久成人麻豆午夜电影| 99久久99久久精品国产片果冻| 欧美日韩一区中文字幕| 久久精品视频在线免费观看| 亚洲色图视频免费播放| 蜜桃av一区二区在线观看| gogogo免费视频观看亚洲一| 91精品国产福利| 国产欧美综合在线| 午夜激情久久久| 岛国精品在线播放| 欧美成人性战久久| 亚洲精品国产一区二区三区四区在线| 日本视频免费一区| 91色乱码一区二区三区| 久久久综合视频| 丝袜国产日韩另类美女| 成人综合激情网| 日韩美女在线视频| 亚洲国产精品影院| zzijzzij亚洲日本少妇熟睡| 69堂精品视频| 亚洲伊人伊色伊影伊综合网| 秋霞电影网一区二区| 久久精品久久综合| 欧美系列一区二区| 国产精品第13页| 国产精品自在在线| 欧美一二三四在线| 亚洲一区二区黄色| 99精品偷自拍| 国产精品第一页第二页第三页| 久久电影国产免费久久电影| 欧美日韩国产a| 夜夜揉揉日日人人青青一国产精品| 国产成人免费在线观看| 日韩三级精品电影久久久 | 99免费精品在线观看| 亚洲精品一区二区三区精华液 | 日本强好片久久久久久aaa| eeuss鲁一区二区三区| 久久久久久99久久久精品网站| 日本不卡高清视频| 欧美精品久久久久久久多人混战| 一区二区视频在线看| 99国产精品99久久久久久| 国产人伦精品一区二区| 国产精品一二三四五| 久久久久久久久97黄色工厂| 激情伊人五月天久久综合| 欧美一区二区三区四区高清| 奇米四色…亚洲| 欧美成人三级在线| 国产制服丝袜一区| 久久精品亚洲乱码伦伦中文| 国产一区二区不卡| 久久久久久9999| 国产精品一区久久久久|