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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? world.java

?? 人工股市(Artificial Stock Market
?? 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 *///該類負責對世界的狀態(tài)進行紀錄并編碼public class World {  public double intrate; /*利率" interest rate"*/  public double dividendscale; /*股息的基本值" The baseline dividend that is set by initWithBaseline: "*/  public int pupdown[];	       /*一個數(shù)組記錄價格的升降情況" array, dimension UPDOWNLOOKBACK "*/  public int dupdown[];	       /*一個數(shù)組記錄股息的升降情況" array, dimension UPDOWNLOOKBACK "*/  public int history_top;      /*價格、股息數(shù)組的歷史紀錄指標" index value of current input into history arrays "*/  public int updown_top;     /*pupdown和dupdown兩個數(shù)組的指標"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[]; /*真實世界的編碼,每個索引對應(yīng)的值為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; /*是否用指數(shù)加權(quán)的方法計算移動平均數(shù)值"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[];       /*股息歷史數(shù)組" dividend history array, goes back MAXHISTORY points"*/ double pricehistory[];     /*價格歷史數(shù)組" 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;  //定義世界編碼對應(yīng)位的名稱  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};//比例數(shù)值數(shù)組public World() {  //構(gòu)建函數(shù),初始化各個變量  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.  "*/{  //根據(jù)位的名稱獲得位的值  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;  //各個移動平均數(shù)組的記錄長度  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;    }  //初始化各種移動平均數(shù)組  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();}/*設(shè)置價格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.");  //設(shè)置股息,并計算風(fēng)險中性價格  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. "*///對世界當前的狀況進行編碼,每個運行周期內(nèi),先進行該動作然后才讓每個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;  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日韩成人| 丰满亚洲少妇av| 国产一区欧美日韩| 色综合网站在线| 亚洲精品在线三区| 亚洲国产精品自拍| 99re66热这里只有精品3直播| 制服丝袜亚洲网站| 中文字幕一区三区| 国产精品1区二区.| 欧美久久婷婷综合色| 亚洲桃色在线一区| 国产麻豆精品theporn| 欧美日本乱大交xxxxx| 亚洲精品中文在线影院| 国产一区二区成人久久免费影院| 欧美日韩精品免费| 亚洲图片欧美激情| www.欧美.com| 中文字幕在线一区免费| 九九精品视频在线看| 欧美美女喷水视频| 亚洲大片一区二区三区| 色哟哟一区二区在线观看 | 久久国产精品第一页| 色综合视频一区二区三区高清| 久久久亚洲午夜电影| 精品一区二区三区日韩| 日韩一区二区三| 免费国产亚洲视频| 日韩欧美一区二区三区在线| 奇米四色…亚洲| 日韩三级免费观看| 国产一区视频在线看| 久久久精品蜜桃| 国产精品一区二区三区乱码| 久久女同互慰一区二区三区| 狠狠色丁香婷婷综合久久片| 欧美电影免费观看高清完整版在线| 日韩—二三区免费观看av| 91 com成人网| 美女视频黄频大全不卡视频在线播放| 日韩一级免费观看| 国产一区二区三区在线观看免费视频 | 一本一道波多野结衣一区二区| 亚洲人成网站影音先锋播放| 91久久线看在观草草青青| 亚洲精品精品亚洲| 7777精品伊人久久久大香线蕉超级流畅| 亚洲第一狼人社区| 日韩免费在线观看| 成人午夜又粗又硬又大| 亚洲黄一区二区三区| 在线电影欧美成精品| 狠狠色丁香婷综合久久| 中文字幕一区在线观看| 欧美三级中文字幕在线观看| 美女视频黄频大全不卡视频在线播放| 久久久久免费观看| 在线一区二区观看| 久久国内精品自在自线400部| 欧美国产丝袜视频| 欧美无人高清视频在线观看| 奇米精品一区二区三区四区| 国产色综合一区| 色婷婷久久久综合中文字幕| 蜜臀精品久久久久久蜜臀| 中文幕一区二区三区久久蜜桃| 91久久精品网| 激情综合色丁香一区二区| 专区另类欧美日韩| 日韩视频在线观看一区二区| av亚洲精华国产精华| 日韩av电影一区| 国产精品卡一卡二| 日韩午夜电影av| 一本色道综合亚洲| 国产激情91久久精品导航| 亚洲福利电影网| 欧美国产欧美亚州国产日韩mv天天看完整| 色婷婷综合久久久久中文| 国产九色精品成人porny| 亚洲主播在线播放| 中文字幕一区在线观看| 精品免费一区二区三区| 欧美又粗又大又爽| av激情综合网| 国内精品写真在线观看| 亚洲va天堂va国产va久| 亚洲四区在线观看| 国产欧美日韩另类视频免费观看| 制服.丝袜.亚洲.中文.综合| 99久久久国产精品免费蜜臀| 国内久久婷婷综合| 另类的小说在线视频另类成人小视频在线| 国产精品九色蝌蚪自拍| 国产肉丝袜一区二区| 日韩精品中文字幕一区 | 欧美精品色一区二区三区| 成人网在线播放| 激情综合一区二区三区| 青青国产91久久久久久 | 亚洲丝袜美腿综合| 国产免费成人在线视频| 久久久久久日产精品| 日韩欧美一二三四区| 91精品国产综合久久久久久久久久 | 欧美sm极限捆绑bd| 7777精品伊人久久久大香线蕉完整版 | 国产精品资源在线| 老司机精品视频在线| 天天操天天干天天综合网| 亚洲一区在线播放| 依依成人精品视频| 亚洲免费观看视频| 亚洲一区中文日韩| 亚洲va欧美va天堂v国产综合| 亚洲综合图片区| 夜夜嗨av一区二区三区中文字幕| 亚洲婷婷综合久久一本伊一区| 亚洲欧洲精品成人久久奇米网 | 欧美一卡2卡3卡4卡| 欧美人与禽zozo性伦| 欧美一区二区三区人| 欧美成人伊人久久综合网| 日韩一级片网站| 国产亚洲精品资源在线26u| 国产日韩欧美a| 国产精品天美传媒沈樵| 中文字幕一区二区三区在线观看| 亚洲色图欧洲色图| 亚洲精品久久久蜜桃| 天堂一区二区在线| 黄色日韩三级电影| 成人av资源下载| 在线观看日韩电影| 欧美电影免费观看完整版| 国产亲近乱来精品视频| 亚洲精品高清在线| 轻轻草成人在线| 国产不卡一区视频| 欧美亚日韩国产aⅴ精品中极品| 91精品国产综合久久久蜜臀图片| 欧美精品一区二区三区视频| 国产精品天天摸av网| 亚洲午夜久久久久久久久电影网| 日韩在线a电影| 国产美女在线观看一区| 97精品国产97久久久久久久久久久久| 在线欧美日韩国产| 精品sm捆绑视频| 伊人色综合久久天天人手人婷| 免费看日韩a级影片| 99热精品国产| 欧美一区二区三区喷汁尤物| 中文字幕制服丝袜成人av| 日韩精品成人一区二区在线| 成人高清视频在线| 欧美丰满嫩嫩电影| 国产精品久久久久久久久久久免费看 | 国产资源精品在线观看| 欧美视频一区在线| 久久精品在这里| 日韩中文字幕1| 91亚洲精华国产精华精华液| 91精品国产综合久久久久久| 中文字幕在线免费不卡| 久久精品国产网站| 欧美日韩免费一区二区三区| 国产片一区二区三区| 蜜桃视频一区二区三区在线观看| 99国产精品视频免费观看| www激情久久| 一区二区三区四区高清精品免费观看| 国产一区二区三区不卡在线观看| 欧美日韩另类一区| 亚洲精品国久久99热| 成人短视频下载| 久久久久九九视频| 裸体一区二区三区| 欧美日韩国产一级片| 亚洲老司机在线| 成人免费毛片片v| 欧美sm极限捆绑bd| 秋霞午夜av一区二区三区 | 国产宾馆实践打屁股91| 欧美一卡二卡在线| 日韩国产成人精品| 69堂成人精品免费视频| 亚洲成人激情综合网| 91欧美激情一区二区三区成人| 国产精品天天看| 成人高清伦理免费影院在线观看| 久久综合久久99| 国产酒店精品激情| 国产亚洲一区二区在线观看| 精品一区二区三区欧美| 日韩欧美色综合| 韩国av一区二区三区| 久久综合久久综合亚洲|