diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b75303 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..6866100 --- /dev/null +++ b/build.gradle @@ -0,0 +1,36 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext.kotlin_version = '1.3.50' + ext.anko_version = '0.10.8' + ext.version = '0.10' + ext.PUBLISH_GROUP_ID = 'com.github.cat-x' + ext.PUBLISH_ARTIFACT_ID = 'kchart' + repositories { + google() + jcenter() + + } + dependencies { + classpath 'com.android.tools.build:gradle:3.5.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' + classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.17' + } +} + +allprojects { + repositories { +// maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } + google() + jcenter() + maven { url "https://jitpack.io" } + + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..8ef922b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,19 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +android.enableR8=true +android.useAndroidX=true +android.enableJetifier=true +kapt.incremental.apt=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..f6b961f Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..1c508de --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +#Wed Nov 21 15:52:05 CST 2018 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +#distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip \ No newline at end of file diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..cccdd3d --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/kchart/.gitignore b/kchart/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/kchart/.gitignore @@ -0,0 +1 @@ +/build diff --git a/kchart/build.gradle b/kchart/build.gradle new file mode 100644 index 0000000..a1d266e --- /dev/null +++ b/kchart/build.gradle @@ -0,0 +1,83 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'org.jetbrains.dokka-android' +apply plugin: 'com.github.dcendents.android-maven' +group='com.github.cat-x' +version = "$version" + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.2" + + compileOptions { + kotlinOptions.freeCompilerArgs += ['-module-name', "$PUBLISH_GROUP_ID.$PUBLISH_ARTIFACT_ID"] + } + defaultConfig { + minSdkVersion 16 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles 'consumer-rules.pro' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + compileOnly 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2' + compileOnly 'androidx.appcompat:appcompat:1.1.0' + compileOnly 'com.github.cat-x:LStorage:0.20' + compileOnly 'com.google.android.material:material:1.0.0' +// implementation 'androidx.core:core-ktx:1.1.0' +// implementation 'androidx.core:core-ktx:1.2.0-beta01' +} + +//-------------------------------------------------------------------- +task generateSourcesJar(type: Jar) { + group = 'jar' + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) +} + +task dokkaJavadoc(type: org.jetbrains.dokka.gradle.DokkaTask) { + outputFormat = "javadoc" + outputDirectory = javadoc.destinationDir +} + +task generateJavadoc(type: Jar, dependsOn: dokkaJavadoc) { + group = 'jar' + classifier = 'javadoc' + from javadoc.destinationDir +} + +artifacts { + archives generateJavadoc + archives generateSourcesJar +} +repositories { + mavenCentral() +} +/* +androidExtensions{ + experimental = true +}*/ + diff --git a/kchart/consumer-rules.pro b/kchart/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/kchart/proguard-rules.pro b/kchart/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/kchart/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/kchart/src/androidTest/java/xyz/a1api/kchart/ExampleInstrumentedTest.kt b/kchart/src/androidTest/java/xyz/a1api/kchart/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..973fc6f --- /dev/null +++ b/kchart/src/androidTest/java/xyz/a1api/kchart/ExampleInstrumentedTest.kt @@ -0,0 +1,22 @@ +package xyz.a1api.kchart + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("xyz.a1api.kchart.test", appContext.packageName) + } +} diff --git a/kchart/src/main/AndroidManifest.xml b/kchart/src/main/AndroidManifest.xml new file mode 100644 index 0000000..3a318aa --- /dev/null +++ b/kchart/src/main/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/base/IAdapter.kt b/kchart/src/main/java/xyz/a1api/kchart/base/IAdapter.kt new file mode 100644 index 0000000..8387dbb --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/base/IAdapter.kt @@ -0,0 +1,95 @@ +package xyz.a1api.kchart.base + +import android.database.DataSetObserver + + +/** + * 数据适配器 + * @param 实体类泛型 + * Created by tifezh on 2016/6/14. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IAdapter { + + /** + * 获取点的数目 + */ + fun getCount(): Int + + /** + * 通过序号获取item + * + * @param position 对应的序号 + * @return 数据实体 + */ + fun getItem(position: Int): T + + /** + * 通过序号获取时间 + * + * @param position 索引 + */ + fun getDate(position: Int): String + + /** + * 注册一个数据观察者 + * + * @param observer 数据观察者 + */ + fun registerDataSetObserver(observer: DataSetObserver) + + /** + * 移除一个数据观察者 + * + * @param observer 数据观察者 + */ + fun unregisterDataSetObserver(observer: DataSetObserver) + + /** + * 当数据发生变化时调用 + */ + fun notifyDataSetChanged() + + /** + * 获取数据集合的实体 + */ + fun getData(): List + + /** + * 清空历史数据并添加新的数据集合 + * @param newData 新数据集合 + */ + fun setNewData(newData: Collection?) + + /** + * 在尾部追加数据 + * @param item 实体类 + */ + fun addPrevData(item: T) + + /** + * 在尾部追加数据 + */ + fun addPrevData(newData: Collection) + + /** + * 在头部追加数据 + * @param item 实体类 + */ + fun addData(item: T) + + /** + * 在头部追加数据 + */ + fun addData(newData: Collection) + + /** + * 根据索引改变实体值 + * @param index 索引 + * @param item 实体 + */ + fun changeItem(index: Int, item: T) + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/base/IChartDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/base/IChartDraw.kt new file mode 100644 index 0000000..33e9a10 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/base/IChartDraw.kt @@ -0,0 +1,89 @@ +package xyz.a1api.kchart.base + +import android.graphics.Canvas + +/** + * 画图的基类 根据实体来画图形 + * @param 实体类泛型 + * Created by tifezh on 2018/3/29. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IChartDraw : IDraw { + + /** + * 获取绘制区域的顶部 + */ + fun getTop(): Int; + + /** + * 获取绘制区域的左部 + */ + fun getLeft(): Int + + /** + * 获取绘制区域的右部 + */ + fun getRight(): Int + + /** + * 获取绘制区域的底部 + */ + fun getBottom(): Int + + /** + * 获取绘制高度 + */ + fun getHeight(): Int + + /** + * 获取绘制宽度 + */ + fun getWidth(): Int + + /** + * 在绘制之前计算 + * @param start 显示区域实体索引的开始 + * @param stop 显示区域实体索引的结束 + */ + fun calculate(start: Int, stop: Int) + + /** + * 画图表 + * 注意:在此方法画出来的图表会缩放和平移 + * @param canvas [Canvas] + * @param start 显示区域实体索引的开始 + * @param stop 显示区域实体索引的结束 + */ + fun drawCharts(canvas: Canvas, start: Int, stop: Int) + + /** + * 画数值 + * 注意:在此方法画出来的图表不会缩放和平移 + * @param canvas [Canvas] + * @param start 显示区域实体索引的开始 + * @param stop 显示区域实体索引的结束 + */ + fun drawValues(canvas: Canvas, start: Int, stop: Int) + + /** + * 获取当前显示区域实体中最大的值 + */ + fun getMaxValue(): Float + + /** + * 获取当前显示区域实体中最小的值 + */ + fun getMinValue(): Float + + /** + * 将数值转换为坐标值 + */ + fun getY(value: Float): Float + + /** + * 获取格式化器 + */ + fun getValueFormatter(): IValueFormatter +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/base/IDateTimeFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/base/IDateTimeFormatter.kt new file mode 100644 index 0000000..880ba8f --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/base/IDateTimeFormatter.kt @@ -0,0 +1,12 @@ +package xyz.a1api.kchart.base + +/** + * 时间格式化接口 + * Created by tifezh on 2016/6/21. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IDateTimeFormatter { + fun format(date: String?): String +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/base/IDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/base/IDraw.kt new file mode 100644 index 0000000..b158ccc --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/base/IDraw.kt @@ -0,0 +1,19 @@ +package xyz.a1api.kchart.base + +import android.graphics.Canvas + +/** + * 可绘制基类 + * Created by tifezh on 2018/4/3. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IDraw { + + /** + * 开始绘制 + */ + fun draw(canvas: Canvas) + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/base/IValueFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/base/IValueFormatter.kt new file mode 100644 index 0000000..e3e5d4d --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/base/IValueFormatter.kt @@ -0,0 +1,18 @@ +package xyz.a1api.kchart.base + +/** + * Value格式化接口 + * Created by tifezh on 2016/6/21. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IValueFormatter { + /** + * 格式化value + * + * @param value 传入的value值 + * @return 返回字符串 + */ + fun format(value: Float): String +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/customize/BaseKChartAdapter.kt b/kchart/src/main/java/xyz/a1api/kchart/customize/BaseKChartAdapter.kt new file mode 100644 index 0000000..ecaa13d --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/customize/BaseKChartAdapter.kt @@ -0,0 +1,131 @@ +package xyz.a1api.kchart.customize + +import android.database.DataSetObservable +import android.database.DataSetObserver +import xyz.a1api.kchart.base.IAdapter +import java.util.* +import kotlin.properties.Delegates + +/** + * k线图的数据适配器 + */ +abstract class BaseKChartAdapter : IAdapter { + + protected val mData = ArrayList() + + private val mDataSetObservable = DataSetObservable() + + /** + * 是否支持实时数据刷新(默认支持) + */ + open var isSupportRealTime = true + + /** + * 实时数据,自动监听数据变化,通知数据刷新 + */ + open var realTimeData: T? by Delegates.observable((null as T?)) { _, oldValue, newValue -> + if (!isSameData(oldValue, newValue)) { + notifyDataSetChanged() + } + } + + /** + * 获取点的数目 (存在实时数据时,数目会增加1) + */ + override fun getCount(): Int { + return if (isSupportRealTime && realTimeData != null) { + mData.size + 1 + } else { + mData.size + } + } + + /** + * 获取数据集合的实体 (存在实时数据时,会包含实时数据) + */ + @Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS", "UNCHECKED_CAST") + override fun getData(): List { + return if (isSupportRealTime && realTimeData != null) { + listOf(*(mData.toArray()), realTimeData) as List + } else { + mData + } + } + + /** + * 获取原始的数据集合的实体 (不会包含实时数据) + * @return ArrayList + */ + open fun getOriginalData(): ArrayList { + return mData + } + + override fun getItem(position: Int): T { + if (isSupportRealTime && position == mData.size) { + return realTimeData ?: mData.last() + } + return mData[position] + } + + override fun changeItem(index: Int, item: T) { + mData[index] = item + notifyDataSetChanged() + } + + override fun setNewData(newData: Collection?) { + mData.clear() + if (newData != null) { + mData.addAll(newData) + } + notifyDataSetChanged() + } + + override fun addPrevData(item: T) { + mData.add(0, item) + notifyDataSetChanged() + } + + override fun addPrevData(newData: Collection) { + mData.addAll(0, newData) + notifyDataSetChanged() + } + + /** + * 刷新指标数据 + * @param isBackground 是否在UI不可见的地方操作 + */ + open fun refreshData(isBackground: Boolean = true) { + notifyDataSetChanged() + } + + override fun addData(item: T) { + mData.add(item) + notifyDataSetChanged() + } + + override fun addData(newData: Collection) { + mData.addAll(newData) + notifyDataSetChanged() + } + + override fun registerDataSetObserver(observer: DataSetObserver) { + mDataSetObservable.registerObserver(observer) + } + + override fun unregisterDataSetObserver(observer: DataSetObserver) { + mDataSetObservable.unregisterObserver(observer) + } + + override fun notifyDataSetChanged() { + if (getCount() > 0) { + mDataSetObservable.notifyChanged() + } else { + mDataSetObservable.notifyInvalidated() + } + } + + /** + * 是否是相同的数据 + */ + abstract fun isSameData(oldData: T?, newData: T?): Boolean +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/customize/BaseKLineEntity.kt b/kchart/src/main/java/xyz/a1api/kchart/customize/BaseKLineEntity.kt new file mode 100644 index 0000000..edca682 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/customize/BaseKLineEntity.kt @@ -0,0 +1,85 @@ +package xyz.a1api.kchart.customize + +import xyz.a1api.kchart.entity.* + +/** + * Created by Cat-x on 2018/11/30. + * For KChart + * Cat-x All Rights Reserved + */ +abstract class BaseKLineEntity : IKMLine { + open var macd: IMACD.MACD = IMACD.MACD() + open var kdj: IKDJ.KDJ = IKDJ.KDJ() + open var boll: IBOLL.BOLL = IBOLL.BOLL() + + open var dataRSIMaps = hashMapOf() + open var dataWRMaps = hashMapOf() + open var dataVolumeMAMaps = hashMapOf() + open var dataMAMaps = hashMapOf() + + override fun getUp() = boll.up + + override fun getMb() = boll.mb + + override fun getDn() = boll.dn + + + override fun getDea() = macd.dea + + override fun getDif() = macd.dif + + override fun getMacd() = macd.macd + + + override fun getK() = kdj.k + + override fun getD() = kdj.d + + override fun getJ() = kdj.j + + + override fun getRsiByNum(num: Int): Float { + val data = dataRSIMaps[num] + require(data != null) { "${this} for Rsi $num is null" } + return data + } + + override fun getRByNum(num: Int): Float { + val data = dataWRMaps[num] + require(data != null) { "${this} for WR $num is null" } + return data + } + + override fun getMAVolumeByNum(num: Int): Float { + val data = dataVolumeMAMaps[num] + require(data != null) { "${this} for MAVolume $num is null" } + return data + } + + override fun getMAbyNum(num: Int): Float { + val data = dataMAMaps[num] + require(data != null) { "${this} for MA $num is null" } + return data + } + + override fun getMAbyMaxNum(): Float { + val max = ICandle.ICandleConfig.getCalculateMAConfig().maxBy { getMAbyNum(it) } + return if (max == null) 0f else getMAbyNum(max) + } + + override fun getMAbyMinNum(): Float { + val min = ICandle.ICandleConfig.getCalculateMAConfig().minBy { getMAbyNum(it) } + return if (min == null) 0f else getMAbyNum(min) + } + + /** + * 用于展示的时间 + */ + abstract fun getShowDateTime(): String + + /** + * 用于计算的时间 + */ + abstract fun getDateTime(): T + +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/customize/KChartAdapter.kt b/kchart/src/main/java/xyz/a1api/kchart/customize/KChartAdapter.kt new file mode 100644 index 0000000..281d3a3 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/customize/KChartAdapter.kt @@ -0,0 +1,167 @@ +package xyz.a1api.kchart.customize + +import xyz.a1api.kchart.view.KChartView + + +/** + * KLineEntity数据适配器 + */ +open class KChartAdapter(open var mKChartView: KChartView? = null) : + BaseKChartAdapter() { + + /** + * 添加实时数据,用于最后一列数据跳动变化显示 + * @param data 数据 + * @param isNeedAddToData 是否永久添加到数据集合列表 + */ + @Suppress("unused") + open fun addRealTimeData(data: T, isNeedAddToData: Boolean = false) { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + if (isNeedAddToData) { + mKChartView?.showLoading() + } + val list = arrayListOf() + val originalData = getOriginalData() + if (originalData.isNotEmpty()) { + list.addAll(originalData) + list.add(data) + //重新计算指标 + KChartDataHelper.calculate(list) + //设置原有数据(指标数据会刷新) + mData.clear() + if (isNeedAddToData) {//如果加入集合,则不用修改list + mData.addAll(list) + } else { + mData.addAll(list.dropLast(1)) + } + //设置实时数据 + realTimeData = list.last() + } else { + KChartDataHelper.calculate(listOf(data)) + realTimeData = data; + } + + if (isNeedAddToData) { +// notifyDataSetChanged() + mKChartView?.refreshComplete() + } + } + + /** + * 刷新指标数据 + * @param isBackground 是否在UI不可见的地方操作 + */ + override fun refreshData(isBackground: Boolean) { + if (isBackground) { + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + } else { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + mKChartView?.showLoading() + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + mKChartView?.refreshComplete() + } + + } + + /** + * 向数据集合添加一个数据 + */ + override fun addData(item: T) { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + mKChartView?.showLoading() + mData.add(item) + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + mKChartView?.refreshComplete() + } + + /** + * 向数据集合添加一个集合数据 + */ + override fun addData(newData: Collection) { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + if (newData.isNotEmpty()) { + mKChartView?.showLoading() + mData.addAll(newData) + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + mKChartView?.refreshComplete() + } + } + + + /** + * 替换指定的数据 + */ + override fun changeItem(index: Int, item: T) { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + mKChartView?.showLoading() + mData[index] = item + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + mKChartView?.refreshComplete() + } + + + /** + * 向数据集合头部添加数据 + */ + override fun addPrevData(item: T) { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + mKChartView?.showLoading() + mData.add(0, item) + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + mKChartView?.refreshComplete() + } + + /** + * 向数据集合头部添加集合数据 + */ + override fun addPrevData(newData: Collection) { + requireNotNull(mKChartView) { "mKChartView is null,mKChartView must be set" } + if (newData.isNotEmpty()) { + mKChartView?.showLoading() + mData.addAll(0, newData) + KChartDataHelper.calculate(mData) //重新计算指标 + notifyDataSetChanged() + mKChartView?.refreshComplete() + } + } + + /** + * 获取显示时间 + */ + @Suppress("DEPRECATION") + override fun getDate(position: Int): String { + return getItem(position).getShowDateTime() +// try { +// val s = getItem(position).getShowDateTime() +// val split = s.split("/".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() +// val date = Date() +// date.year = Integer.parseInt(split[0]) - 1900 +// date.month = Integer.parseInt(split[1]) - 1 +// date.date = Integer.parseInt(split[2]) +// return date +// } catch (e: Exception) { +// e.printStackTrace() +// } +// error("getDate null") + } + + /** + * 是否是相同的数据 + */ + override fun isSameData(oldData: T?, newData: T?): Boolean { + return (oldData?.getClosePrice() != newData?.getClosePrice() || + oldData?.getOpenPrice() != newData?.getOpenPrice() || + oldData?.getLowPrice() != newData?.getLowPrice() || + oldData?.getHighPrice() != newData?.getHighPrice() || + oldData?.getVolume() != newData?.getVolume() || + oldData?.getAvgPrice() != newData?.getAvgPrice() || + oldData?.getPrice() != newData?.getPrice()) + } + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/customize/KChartDataHelper.kt b/kchart/src/main/java/xyz/a1api/kchart/customize/KChartDataHelper.kt new file mode 100644 index 0000000..f36ba93 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/customize/KChartDataHelper.kt @@ -0,0 +1,279 @@ +package xyz.a1api.kchart.customize + + +import xyz.a1api.kchart.entity.* +import java.math.RoundingMode + +/** + * 数据辅助类 计算macd rsi等 + */ +@Suppress("MemberVisibilityCanBePrivate") +object KChartDataHelper { + + /** + * 计算MA BOLL RSI KDJ MACD + * + * @param datas + */ + fun calculate(datas: List) { + calculateMA(datas, *ICandle.ICandleConfig.getCalculateMAConfig()) + calculateMACD(datas, IMACD.IMACDConfig.useMACDConfig) + calculateBOLL(datas, IBOLL.IBOLLConfig.useBOLLConfig) + calculateRSI(datas, *IRSI.IRSIConfig.getCalculateRSIConfig()) + calculateWR(datas, *IWR.IWRConfig.getCalculateWRConfig()) + calculateKDJ(datas, IKDJ.IKDJConfig.useKDJConfig) + calculateVolumeMA(datas, *IVolume.IVolumeMAConfig.getVolumeMAConfig()) + } + + /** + * 移动平均线(Moving Average,简称MA),它是将某一段时间的收盘价之和除以该周期。 比如日线MA5指5天内的收盘价除以5 。 + */ + fun calculateMA(datas: List, vararg numbers: Int) { + val ma = hashMapOf() + for (num in numbers) { + ma[num] = 0f + } + for (i in datas.indices) { + val point = datas[i] + val closePrice = point.getClosePrice() + for (num in numbers) { + ma[num] = ma[num]!! + closePrice + if (i >= num) { + ma[num] = ma[num]!! - datas[i - num].getClosePrice() + point.dataMAMaps[num] = ma[num]!! / num.toFloat() + } else { + point.dataMAMaps[num] = ma[num]!! / (i + 1f) + } + } + } + } + + /** + * MACD在应用上应先行计算出快速(一般选12日)移动平均值与慢速(一般选26日)移动平均值。以这两个数值作为测量两者(快速与慢速线)间的“差离值”依据。所谓“差离值”(DIF),即12日EMA数值减去26日EMA数值。 + * 计算macd + * + * @param datas + */ + @Suppress("VARIABLE_WITH_REDUNDANT_INITIALIZER") + fun calculateMACD(datas: List, config: IMACD.IMACDConfig.MACD) { + val shortDay = config.S + val longDay = config.L + val diffDay = config.M + var emaFast = 0f + var emaSlow = 0f + var dif = 0f + var dea = 0f + var macd = 0f + + for (i in datas.indices) { + val point = datas[i] + val closePrice = point.getClosePrice() + if (i == 0) { + emaFast = closePrice + emaSlow = closePrice + } else { + // EMA(12) = 前一日EMA(12) X 11/13 + 今日收盘价 X 2/13 + // EMA(26) = 前一日EMA(26) X 25/27 + 今日收盘价 X 2/27 + emaFast = + emaFast * (shortDay - 1) / (shortDay + 1) + closePrice * 2f / (shortDay + 1) + emaSlow = emaSlow * (longDay - 1) / (longDay + 1) + closePrice * 2f / (longDay + 1) + } + // DIF = EMA(12) - EMA(26) 。 + // 今日DEA = (前一日DEA X 8/10 + 今日DIF X 2/10) + // 用(DIF-DEA)*2即为MACD柱状图。 + dif = emaFast - emaSlow + dea = dea * (diffDay - 1) / (diffDay + 1) + dif * 2f / (diffDay + 1) + macd = (dif - dea) * 2f + point.macd.dif = dif + point.macd.dea = dea + point.macd.macd = macd + } + } + + /** + * 计算 BOLL 需要在计算ma之后进行 + * + * @param datas + */ + fun calculateBOLL(datas: List, bollConfig: Pair) { + val nValue = bollConfig.first + val pValue = bollConfig.second.toFloat() + //如果MA中没有指定的n值,则计算 + if (!ICandle.ICandleConfig.getCalculateMAConfig().contains(nValue)) { + calculateMA(datas, nValue) + } + for (i in datas.indices) { + val point = datas[i] + val closePrice = point.getClosePrice() + if (i == 0) { + point.boll.mb = closePrice + point.boll.up = java.lang.Float.NaN + point.boll.dn = java.lang.Float.NaN + } else { + var n = nValue + if (i < nValue) { + n = i + 1 + } + var md = 0f + for (j in i - n + 1..i) { + val c = datas[j].getClosePrice() + val m = point.getMAbyNum(nValue) + val value = c - m + md += value * value + } + md = md / (n - 1) + md = Math.sqrt(md.toDouble()).toFloat() + point.boll.mb = point.getMAbyNum(nValue) + point.boll.up = point.boll.mb + pValue * md + point.boll.dn = point.boll.mb - pValue * md + } + } + } + + + /** + * RSI:= SMA(MAX(Close-LastClose,0),N,1)/SMA(ABS(Close-LastClose),N,1)*100 + * 计算RSI + * + * @param datas + */ + fun calculateRSI(datas: List, vararg numbers: Int) { + val rsi = hashMapOf() + val rsiABSEma = hashMapOf() + val rsiMaxEma = hashMapOf() + for (num in numbers) { + rsi[num] = 0f + rsiABSEma[num] = 0f + rsiMaxEma[num] = 0f + } + for (i in datas.indices) { + val point = datas[i] + val closePrice = point.getClosePrice() + for (num in numbers) { + if (i == 0) { + rsi[num] = 0f + rsiABSEma[num] = 0f + rsiMaxEma[num] = 0f + } else { + val rMax = Math.max(0f, closePrice - datas[i - 1].getClosePrice()) + val rAbs = Math.abs(closePrice - datas[i - 1].getClosePrice()) + rsiMaxEma[num] = (rMax + (num - 1f) * rsiMaxEma[num]!!) / num + rsiABSEma[num] = (rAbs + (num - 1f) * rsiABSEma[num]!!) / num + rsi[num] = rsiMaxEma[num]!! / rsiABSEma[num]!! * 100f + } + point.dataRSIMaps[num] = rsi[num]!! + } + } + } + + /** + * 计算kdj + * RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; + * K:SMA(RSV,M1,1); + * D:SMA(K,M2,1); + * J:3*K-2*D; + * + * SMA(X,N,M),求X的N日移动平均,M为权重。算法:若Y=SMA(X,N,M) 则 Y=(M*X+(N-M)*Y')/N,其中Y'表示上一周期Y值,N必须大于M。 + * + * @param datas + */ + fun calculateKDJ(datas: List, config: Triple) { + val nValue = config.first + val m1Value = config.second.toFloat() + val m2Value = config.third.toFloat() + var k = 0f + var d = 0f + + for (i in datas.indices) { + val point = datas[i] + val closePrice = point.getClosePrice() + var startIndex = i - (nValue - 1) + if (startIndex < 0) { + startIndex = 0 + } + var max9 = java.lang.Float.MIN_VALUE + var min9 = java.lang.Float.MAX_VALUE + for (index in startIndex..i) { + max9 = Math.max(max9, datas[index].getHighPrice()) + min9 = Math.min(min9, datas[index].getLowPrice()) + } + val rsv = 100f * (closePrice - min9) / (max9 - min9) + if (i == 0) { + k = rsv + d = rsv + } else { + k = (rsv + (m1Value - 1) * k) / m1Value + d = (k + (m2Value - 1) * d) / m2Value + } + point.kdj.k = k + point.kdj.d = d + point.kdj.j = 3f * k - 2 * d + } + } + + private fun calculateVolumeMA(entries: List, vararg numbers: Int) { + val volumeMa = hashMapOf() + for (num in numbers) { + volumeMa[num] = 0f + } + + for (i in entries.indices) { + val entry = entries[i] + for (num in numbers) { + volumeMa[num] = volumeMa[num]!! + entry.getVolume() + if (i >= num) { + volumeMa[num] = volumeMa[num]!! - entries[i - num].getVolume() + entry.dataVolumeMAMaps[num] = volumeMa[num]!! / num + } else { + entry.dataVolumeMAMaps[num] = volumeMa[num]!! / (i + 1f) + } + } + } + } + + /** + * 计算wr + * + * WR=(Hn—C)÷(Hn—Ln)×100 + * 其中:C为计算日的收盘价,Ln为N周期内的最低价,Hn为N周期(包括当日)内的最高价,公式中的N为选定的计算时间参数,一般为4或14。 + * 以计算周期为14日为例,其计算过程如下: + * WR(14日)=(H14—C)÷(H14—L14)×100 + * + * @param dataList + */ + fun calculateWR(dataList: List, vararg numbers: Int) { + var r: Float? + for (i in dataList.indices) { + val point = dataList[i] + + val maxDayNum = numbers.associate { it to java.lang.Float.MIN_VALUE }.toMutableMap() + val minDayNum = numbers.associate { it to java.lang.Float.MAX_VALUE }.toMutableMap() + for (number in numbers) { + val startIndex = (i - (number - 1)).let { if (it < 0) 0 else it } + for (index in startIndex..i) { + maxDayNum[number] = + Math.max(maxDayNum[number]!!, dataList[index].getHighPrice()) + minDayNum[number] = Math.min(minDayNum[number]!!, dataList[index].getLowPrice()) + } + + if (i < number - 1) { + point.dataWRMaps[number] = -10f + } else { + r = + ((maxDayNum[number]!!.toBigDecimal() - dataList[i].getClosePrice().toBigDecimal()).divide( + maxDayNum[number]!!.toBigDecimal() - minDayNum[number]!!.toBigDecimal(), + 6, + RoundingMode.HALF_UP + ) * 100.000000f.toBigDecimal()).toFloat() + if (r.isNaN()) { + point.dataWRMaps[number] = 0f + } else { + point.dataWRMaps[number] = r + } + } + } + + } + + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/customize/KChartIndicatorConfigActivity.kt b/kchart/src/main/java/xyz/a1api/kchart/customize/KChartIndicatorConfigActivity.kt new file mode 100644 index 0000000..c27b2aa --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/customize/KChartIndicatorConfigActivity.kt @@ -0,0 +1,483 @@ +package xyz.a1api.kchart.customize + + +import android.annotation.SuppressLint +import android.os.Bundle +import android.util.TypedValue +import android.widget.LinearLayout +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.AppCompatEditText +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import kotlinx.android.synthetic.main.kchart_activity_indicator_config.* +import xyz.a1api.kchart.R +import xyz.a1api.kchart.entity.* +import xyz.a1api.kchart.utils.* +import xyz.a1api.kchart.widget.ConfigKChartView +import java.lang.ref.SoftReference + + +/** + * Created by Cat-x on 2018/12/13. + * For KChart + * Cat-x All Rights Reserved + */ +open class KChartIndicatorConfigActivity : AppCompatActivity() { + var refreshCount: Int = 0 + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.kchart_activity_indicator_config) + initView() + } + + + open fun initView() { + kChartBackButton.setOnClickListener { onBackPressed() } + layoutMAView.setOnClickListener { infoMARelativeLayout.setNegateVisibility(/*{ it.startAnimation(mShowAction) }, { it.startAnimation(mHiddenAction) }*/) } + layoutBOLLView.setOnClickListener { infoBOLLRelativeLayout.setNegateVisibility() } + layoutMACDView.setOnClickListener { infoMACDRelativeLayout.setNegateVisibility() } + layoutKDJView.setOnClickListener { infoKDJRelativeLayout.setNegateVisibility() } + layoutRSIView.setOnClickListener { + infoRSIRelativeLayout.setNegateVisibility() + if (infoRSIRelativeLayout.isVisible) { + contentScrollView.postDelayed({ + contentScrollView.smoothScrollBy(0, infoRSIRelativeLayout.height) + }, 150) + } + + } + layoutWRView.setOnClickListener { + infoWRRelativeLayout.setNegateVisibility() + if (infoWRRelativeLayout.isVisible) { + contentScrollView.postDelayed({ + contentScrollView.smoothScrollBy(0, infoWRRelativeLayout.height) + }, 150) + } + + } + + + initMA() + initBOLL() + initMACD() + initKDJ() + initRSI() + initWR() + + refreshMA() + refreshBOLL() + refreshMACD() + refreshKDJ() + refreshRSI() + refreshWR() + + initCheckMA() + initCheckRSI() + initCheckWR() + + + + ICandle.ICandleConfig.customizeMALists + } + + private fun initCheckMA() { + val checkList = + listOf(ma1Check, ma2Check, ma3Check, ma4Check, ma5Check, ma6Check) + checkList.forEachIndexed { index, appCompatImageView -> + appCompatImageView.isSelected = + ICandle.ICandleConfig.customizeMALists.get(index)?.enable ?: false + + appCompatImageView.setOnClickListener { + appCompatImageView.isSelected = !appCompatImageView.isSelected + val temp = ICandle.ICandleConfig.customizeMALists + temp.get(index)?.enable = appCompatImageView.isSelected + ICandle.ICandleConfig.customizeMALists = temp + refreshMA() + } + + } + } + + private fun initCheckRSI() { + val checkList = + listOf(rsi1Check, rsi2Check, rsi3Check) + checkList.forEachIndexed { index, appCompatImageView -> + appCompatImageView.isSelected = + IRSI.IRSIConfig.customizRSILists.get(index)?.enable ?: false + + appCompatImageView.setOnClickListener { + appCompatImageView.isSelected = !appCompatImageView.isSelected + val temp = IRSI.IRSIConfig.customizRSILists + temp.get(index)?.enable = appCompatImageView.isSelected + IRSI.IRSIConfig.customizRSILists = temp + refreshRSI() + } + } + } + + private fun initCheckWR() { + val checkList = + listOf(wr1Check, wr2Check, wr3Check) + checkList.forEachIndexed { index, appCompatImageView -> + appCompatImageView.isSelected = + IWR.IWRConfig.customizWRLists.get(index)?.enable ?: false + + appCompatImageView.setOnClickListener { + appCompatImageView.isSelected = !appCompatImageView.isSelected + val temp = IWR.IWRConfig.customizWRLists + temp.get(index)?.enable = appCompatImageView.isSelected + IWR.IWRConfig.customizWRLists = temp + refreshWR() + } + } + } + + private fun refreshBOLL() { + refreshCount++ + bollTagLinearLayout.removeAllViews() + bollTagLinearLayout.addView( + getTagTextView().apply { + text = "N" + IBOLL.IBOLLConfig.useBOLLConfig.first.toString() + }, getTagTextViewLayoutParams() + ) + + bollTagLinearLayout.addView( + getTagTextView().apply { + text = "P" + IBOLL.IBOLLConfig.useBOLLConfig.second.toString() + }, getTagTextViewLayoutParams() + ) + } + + private fun initBOLL() { + bollNTextView.setText(IBOLL.IBOLLConfig.useBOLLConfig.first.toString()) + bollPTextView.setText(IBOLL.IBOLLConfig.useBOLLConfig.second.toString()) + + bollNTextView.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IBOLL.IBOLLConfig.useBOLLConfig = + IBOLL.IBOLLConfig.useBOLLConfig.copy(first = text.toString().toInt()) + refreshBOLL() + } + } + bollPTextView.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IBOLL.IBOLLConfig.useBOLLConfig = + IBOLL.IBOLLConfig.useBOLLConfig.copy(second = text.toString().toInt()) + refreshBOLL() + } + } + + } + + open fun getTagTextView(): AppCompatTextView { + return AppCompatTextView(this).apply { + setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f) + setTextColor(getResColor(R.color.kchart_config_indicator_tag_text)) + } + } + + open fun getTagTextViewLayoutParams(): LinearLayout.LayoutParams { + return LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ) + .apply { setMargins(0, 0, dip(4), 0) } + } + + private fun refreshMA() { + refreshCount++ + maTagLinearLayout.removeAllViews() + val valueArray = ICandle.ICandleConfig.customizeMALists + for (index in 0 until 6) { + val enableItem = valueArray.get(index) + if (enableItem?.enable == true) { + maTagLinearLayout.addView( + getTagTextView().apply { + text = "MA" + enableItem.name.toString() + }, getTagTextViewLayoutParams() + ) + } + } + } + + @SuppressLint("ResourceType") + private fun initMA() { + val listMaView = listOf( + ma1TextView, + ma2TextView, + ma3TextView, + ma4TextView, + ma5TextView, + ma6TextView + ) + + val valueArray = ICandle.ICandleConfig.customizeMALists + + listMaView.forEachIndexed { index, appCompatEditText -> + val value = valueArray.get(index) + if (value != null) { + appCompatEditText.setText(value.name.toString()) + } else { + appCompatEditText.setText("") + } + + appCompatEditText.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + ICandle.ICandleConfig.customizeMALists = + ICandle.ICandleConfig.customizeMALists.apply { + val item = ICandle.ICandleConfig.customizeMALists.get(index) + val isOldEnable = item?.enable ?: true + if (item != null) { + try { + remove(index) + } catch (e: Exception) { + e.printStackTrace() + } + } + put(index, EnableItem(text.toString().toInt(), isOldEnable)) + } + } else { + ICandle.ICandleConfig.customizeMALists = + ICandle.ICandleConfig.customizeMALists.apply { + remove(index) + } + } + refreshMA() + } + } + } + + private fun refreshMACD() { + refreshCount++ + macdTagLinearLayout.removeAllViews() + macdTagLinearLayout.addView( + getTagTextView().apply { + text = "S" + IMACD.IMACDConfig.useMACDConfig.S.toString() + }, getTagTextViewLayoutParams() + ) + + macdTagLinearLayout.addView( + getTagTextView().apply { + text = "L" + IMACD.IMACDConfig.useMACDConfig.L.toString() + }, getTagTextViewLayoutParams() + ) + + macdTagLinearLayout.addView( + getTagTextView().apply { + text = "M" + IMACD.IMACDConfig.useMACDConfig.M.toString() + }, getTagTextViewLayoutParams() + ) + } + + private fun initMACD() { + macdSText.setText(IMACD.IMACDConfig.useMACDConfig.S.toString()) + macdLText.setText(IMACD.IMACDConfig.useMACDConfig.L.toString()) + macdMText.setText(IMACD.IMACDConfig.useMACDConfig.M.toString()) + + macdSText.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IMACD.IMACDConfig.useMACDConfig = + IMACD.IMACDConfig.useMACDConfig.copy(S = text.toString().toInt()) + refreshMACD() + } + } + + macdLText.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IMACD.IMACDConfig.useMACDConfig = + IMACD.IMACDConfig.useMACDConfig.copy(L = text.toString().toInt()) + refreshMACD() + } + } + + + macdMText.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IMACD.IMACDConfig.useMACDConfig = + IMACD.IMACDConfig.useMACDConfig.copy(M = text.toString().toInt()) + refreshMACD() + } + } + } + + private fun refreshKDJ() { + refreshCount++ + kdjTagLinearLayout.removeAllViews() + kdjTagLinearLayout.addView( + getTagTextView().apply { + text = "N" + IKDJ.IKDJConfig.useKDJConfig.first.toString() + }, getTagTextViewLayoutParams() + ) + + kdjTagLinearLayout.addView( + getTagTextView().apply { + text = "M1-" + IKDJ.IKDJConfig.useKDJConfig.second.toString() + }, getTagTextViewLayoutParams() + ) + + kdjTagLinearLayout.addView( + getTagTextView().apply { + text = "M2-" + IKDJ.IKDJConfig.useKDJConfig.third.toString() + }, getTagTextViewLayoutParams() + ) + } + + private fun initKDJ() { + kdjNTextView.setText(IKDJ.IKDJConfig.useKDJConfig.first.toString()) + kdjM1TextView.setText(IKDJ.IKDJConfig.useKDJConfig.second.toString()) + kdjM2TextView.setText(IKDJ.IKDJConfig.useKDJConfig.third.toString()) + + kdjNTextView.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IKDJ.IKDJConfig.useKDJConfig = + IKDJ.IKDJConfig.useKDJConfig.copy(first = text.toString().toInt()) + refreshKDJ() + } + } + + kdjM1TextView.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IKDJ.IKDJConfig.useKDJConfig = + IKDJ.IKDJConfig.useKDJConfig.copy(second = text.toString().toInt()) + refreshKDJ() + } + } + + + kdjM2TextView.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IKDJ.IKDJConfig.useKDJConfig = + IKDJ.IKDJConfig.useKDJConfig.copy(third = text.toString().toInt()) + refreshKDJ() + } + } + } + + private fun refreshRSI() { + refreshCount++ + rsiTagLinearLayout.removeAllViews() + val valueArray = IRSI.IRSIConfig.customizRSILists + for (index in 0 until 3) { + val enableItem = valueArray.get(index) + if (enableItem?.enable == true) { + rsiTagLinearLayout.addView( + getTagTextView().apply { + text = "RSI${index + 1}-" + enableItem.name.toString() + }, getTagTextViewLayoutParams() + ) + } + } + } + + private fun initRSI() { + val listMaView = listOf( + rsi1TextView, + rsi2TextView, + rsi3TextView + ) + + val valueArray = IRSI.IRSIConfig.customizRSILists + listMaView.forEachIndexed { index, appCompatEditText -> + val value = valueArray.get(index) + if (value != null) { + appCompatEditText.setText(value.name.toString()) + } else { + appCompatEditText.setText("") + } + appCompatEditText.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IRSI.IRSIConfig.customizRSILists = + IRSI.IRSIConfig.customizRSILists.apply { + val item = IRSI.IRSIConfig.customizRSILists.get(index) + val isOldEnable = item?.enable ?: true + if (item != null) { + try { + remove(index) + } catch (e: Exception) { + e.printStackTrace() + } + } + put(index, EnableItem(text.toString().toInt(), isOldEnable)) + } + } else { + IRSI.IRSIConfig.customizRSILists = + IRSI.IRSIConfig.customizRSILists.apply { + remove(index) + } + } + refreshRSI() + } + } + } + + private fun refreshWR() { + refreshCount++ + wrTagLinearLayout.removeAllViews() + val valueArray = IWR.IWRConfig.customizWRLists + for (index in 0 until 3) { + val enableItem = valueArray.get(index) + if (enableItem?.enable == true) { + wrTagLinearLayout.addView( + getTagTextView().apply { + text = "WR${index + 1}-" + enableItem.name.toString() + }, getTagTextViewLayoutParams() + ) + } + } + } + + private fun initWR() { + val listMaView = listOf( + wr1TextView, + wr2TextView, + wr3TextView + ) + + val valueArray = IWR.IWRConfig.customizWRLists + listMaView.forEachIndexed { index, appCompatEditText -> + val value = valueArray.get(index) + if (value != null) { + appCompatEditText.setText(value.name.toString()) + } else { + appCompatEditText.setText("") + } + appCompatEditText.doAfterTextChanged { text -> + if (!text.isNullOrBlank()) { + IWR.IWRConfig.customizWRLists = + IWR.IWRConfig.customizWRLists.apply { + val item = IWR.IWRConfig.customizWRLists.get(index) + val isOldEnable = item?.enable ?: true + if (item != null) { + try { + remove(index) + } catch (e: Exception) { + e.printStackTrace() + } + } + put(index, EnableItem(text.toString().toInt(), isOldEnable)) + } + } else { + IWR.IWRConfig.customizWRLists = + IWR.IWRConfig.customizWRLists.apply { + remove(index) + } + } + refreshWR() + } + } + } + + override fun onBackPressed() { + if (refreshCount > 6) { + mConfigKChartView?.get()?.mAdapter?.refreshData(true) + } + super.onBackPressed() + } + + companion object { + var mConfigKChartView: SoftReference? = null + } +} + + diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/BOLLDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/BOLLDraw.kt new file mode 100644 index 0000000..cb17399 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/BOLLDraw.kt @@ -0,0 +1,110 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import xyz.a1api.kchart.entity.IBOLL +import xyz.a1api.kchart.utils.CanvasUtils +import xyz.a1api.kchart.utils.XAlign +import xyz.a1api.kchart.utils.YAlign +import xyz.a1api.kchart.view.BaseKChartView + +/** + * BOLL实现类 + * Created by tifezh on 2016/6/19. + * For KChart + * Cat-x All Rights Reserved + */ + +class BOLLDraw +/** + * 构造方法 + * + * @param rect 显示区域 + * @param KChartView [BaseKChartView] + */ + (rect: Rect, KChartView: BaseKChartView) : BaseChartDraw(rect, KChartView) { + + private val mUpPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mMbPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mDnPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() + val x = + mKChartView.getTextPaint().measureText(getValueFormatter().format(getMaxValue()) + " ") + CanvasUtils.drawTexts( + canvas, x, 0f, XAlign.LEFT, YAlign.TOP, + Pair(mUpPaint, "UP:" + mKChartView.formatValue(point.getUp()) + " "), + Pair(mMbPaint, "MB:" + mKChartView.formatValue(point.getMb()) + " "), + Pair(mDnPaint, "DN:" + mKChartView.formatValue(point.getDn()) + " ") + ) + } + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IBOLL, + lastPoint: IBOLL, + startX: Float, + stopX: Float + ) { + drawLine(canvas, mUpPaint, curIndex, curPoint.getUp(), lastPoint.getUp(), startX, stopX) + drawLine(canvas, mMbPaint, curIndex, curPoint.getMb(), lastPoint.getMb(), startX, stopX) + drawLine(canvas, mDnPaint, curIndex, curPoint.getDn(), lastPoint.getDn(), startX, stopX) + } + + public override fun getMaxValue(point: IBOLL): Float { + return if (java.lang.Float.isNaN(point.getUp())) { + point.getMb() + } else point.getUp() + } + + public override fun getMinValue(point: IBOLL): Float { + return if (java.lang.Float.isNaN(point.getDn())) { + point.getMb() + } else point.getDn() + } + + /** + * 设置up颜色 + */ + fun setUpColor(color: Int) { + mUpPaint.color = color + } + + /** + * 设置mb颜色 + */ + fun setMbColor(color: Int) { + mMbPaint.color = color + } + + /** + * 设置dn颜色 + */ + fun setDnColor(color: Int) { + mDnPaint.color = color + } + + /** + * 设置曲线宽度 + */ + fun setLineWidth(width: Float) { + mUpPaint.strokeWidth = width + mMbPaint.strokeWidth = width + mDnPaint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setTextSize(textSize: Float) { + mUpPaint.textSize = textSize + mMbPaint.textSize = textSize + mDnPaint.textSize = textSize + } + + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/BaseChartDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/BaseChartDraw.kt new file mode 100644 index 0000000..1a097c6 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/BaseChartDraw.kt @@ -0,0 +1,280 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Path +import android.graphics.Rect +import androidx.annotation.CallSuper +import xyz.a1api.kchart.base.IChartDraw +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.view.BaseKChartView + +/** + * 图形绘制基类 + * Created by tifezh on 2018/3/30. + * For KChart + * Cat-x All Rights Reserved + */ + + +/** + * @param mRect 显示区域 + * @param mKChartView BaseKChartView + */ +@SuppressWarnings("WeakerAccess", "unused") +abstract class BaseChartDraw constructor(var mRect: Rect, var mKChartView: BaseKChartView) : + IChartDraw { + + var titleSplitValue: Float = 30f + + /**可视区域中的最大值*/ + private var mMaxValue: Float = 0.toFloat() + + /**可视区域中的最小值*/ + private var mMinValue: Float = 0.toFloat() + + /**可视区域中的Y坐标缩放值*/ + private var mScaleY: Float = 0.toFloat() + + + override fun draw(canvas: Canvas) { + canvas.save() + canvas.translate(mKChartView.translateX(), getTop().toFloat() + titleSplitValue) + canvas.scale(mKChartView.scaleX, 1f) + drawCharts(canvas, mKChartView.getStartIndex(), mKChartView.getStopIndex()) + canvas.restore() + canvas.save() + canvas.translate(0f, getTop().toFloat()) + drawValues(canvas, mKChartView.getStartIndex(), mKChartView.getStopIndex()) + canvas.restore() + } + + @CallSuper + override fun calculate(start: Int, stop: Int) { + mMaxValue = java.lang.Float.MIN_VALUE + mMinValue = java.lang.Float.MAX_VALUE + val data = getData() + for (i in start..stop) { + val point = data[i] + foreachCalculate(i, point) + } + // if(mMaxValue!=mMinValue) { + // float padding = (mMaxValue - mMinValue) * 0.05f; + // mMaxValue += padding; + // mMinValue -= padding; + // } else { + // //当最大值和最小值都相等的时候 分别增大最大值和 减小最小值 + // mMaxValue += 1f; + // mMinValue -= 1f; + // if (mMaxValue == 0) { + // mMaxValue = 1; + // } + // } + + mScaleY = (mRect.height() - titleSplitValue) * 1f / (mMaxValue - mMinValue) + } + + @CallSuper + override fun drawCharts(canvas: Canvas, start: Int, stop: Int) { + val data = getData() + for (index in start..stop) { + val currentPoint = data[index] + val lastPoint = if (index == start) currentPoint else data[index - 1] + val lastX = getX(index - 1) + val currentX = getX(index) +// Log.i("xxx", "startX: " + lastX) +// Log.i("xxx", " stopX: " + currentX) + foreachDrawChart(canvas, index, currentPoint, lastPoint, lastX, currentX) + } + } + + /** + * 循环遍历显示区域的实体 + * 在[BaseChartDraw.calculate]} 中被循环调用 + * @param index 索引 + * @param point 数据实体 + */ + @Suppress("UNUSED_PARAMETER") + @CallSuper + protected fun foreachCalculate(index: Int, point: T) { + mMaxValue = Math.max(mMaxValue, getMaxValue(point)) + mMinValue = Math.min(mMinValue, getMinValue(point)) + } + + /** + * 循环遍历显示区域的实体 + * 在[BaseChartDraw.drawCharts] 中被调用 + * @param curIndex 当前点的索引值 + * @param curPoint 当前点实体 + * @param lastPoint 上一个点实体 + */ + protected abstract fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: T, + lastPoint: T, + startX: Float, + stopX: Float + ) + + override fun getMaxValue(): Float { + return mMaxValue + } + + override fun getMinValue(): Float { + return mMinValue + } + + /** + * 获取当前实体中最大的值 + * + * @param point 当前实体 + */ + protected abstract fun getMaxValue(point: T): Float + + /** + * 获取当前实体中最小的值 + * + * @param point 实体 + */ + protected abstract fun getMinValue(point: T): Float + + override fun getTop(): Int { + return mRect.top + } + + override fun getBottom(): Int { + return mRect.bottom + } + + override fun getLeft(): Int { + return mRect.left + } + + override fun getRight(): Int { + return mRect.right + } + + override fun getHeight(): Int { + return mRect.height() + } + + override fun getWidth(): Int { + return mRect.width() + } + + override fun getY(value: Float): Float { + return (mMaxValue - value) * mScaleY + } + + /** + * 获取全部数据集合 + */ + @Suppress("UNCHECKED_CAST") + protected fun getData(): List { + return mKChartView.getAdapter().getData() as List + } + + /** + * 获取实体个数 + */ + protected fun getDataCount(): Int { + return mKChartView.getAdapter().getCount() + } + + /** + * 根据索引索取x坐标 + * @param index 索引值 + * @see BaseKChartView.getX + */ + fun getX(index: Int): Float { + return mKChartView.getX(index) + } + + /** + * 画线 + * @param curIndex 当前点索引 + * @param curValue 当前点的值 + * @param lastValue 前一个点的值 + */ + fun drawLine( + canvas: Canvas, + paint: Paint, + curIndex: Int, + curValue: Float, + lastValue: Float, + startX: Float, + stopX: Float + ) { + //如果是第一个点就不用画线 + if (curIndex != mKChartView.getStartIndex()) { + canvas.drawLine(startX, getY(lastValue), stopX, getY(curValue), paint) + } + } + + /** + * 画矩形 + * @param curIndex 当前点的index + * @param width 矩形的宽度 + * @param topValue 上方的值 + * @param bottomValue 底部的值 + */ + fun drawRect( + canvas: Canvas, + paint: Paint, + curIndex: Int, + width: Float, + topValue: Float, + bottomValue: Float + ) { + val _topValue = getY(topValue) + val _bottomValue = getY(bottomValue) + val x = getX(curIndex) + canvas.drawRect(x - width / 2f, _topValue, x + width / 2f, _bottomValue, paint) + } + + /** + * 在主区域画分时线 + * + * @param curIndex 当前点索引 + * @param curValue 当前点的值 + * @param lastValue 前一个点的值 + */ + fun drawMainMinuteLine( + canvas: Canvas, + paint: Paint, + curIndex: Int, + curValue: Float, + lastValue: Float, + startX: Float, + stopX: Float + ) { + //如果是第一个点就不用画线 + if (curIndex != mKChartView.getStartIndex()) { + val startY = getY(lastValue) + val stopY = getY(curValue) + val path5 = Path() + path5.moveTo(startX - 0.3f, mRect.height() - titleSplitValue) + path5.lineTo(startX - 0.3f, startY) + path5.lineTo(stopX, stopY) + path5.lineTo(stopX, mRect.height() - titleSplitValue) + path5.close() + canvas.drawPath(path5, paint) + } + + } + + /** + * 获取显示的值 + * 长按状态下显示长按的值 + * 非长按状态下显示最右边的值 + */ + @Suppress("UNCHECKED_CAST") + fun getDisplayItem(): T { + return mKChartView.getItem(if (mKChartView.isHadSelect) mKChartView.getSelectedIndex() else mKChartView.getStopIndex()) as T + } + + override fun getValueFormatter(): IValueFormatter { + return mKChartView.getValueFormatter() + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/KDJDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/KDJDraw.kt new file mode 100644 index 0000000..10304ae --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/KDJDraw.kt @@ -0,0 +1,100 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import xyz.a1api.kchart.entity.IKDJ +import xyz.a1api.kchart.utils.CanvasUtils +import xyz.a1api.kchart.utils.XAlign +import xyz.a1api.kchart.utils.YAlign +import xyz.a1api.kchart.utils.dip2px +import xyz.a1api.kchart.view.BaseKChartView + +/** + * KDJ实现类 + * Created by tifezh on 2016/6/19. + * For KChart + * Cat-x All Rights Reserved + */ + +class KDJDraw(rect: Rect, KChartView: BaseKChartView) : BaseChartDraw(rect, KChartView) { + + private val mKPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mDPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mJPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IKDJ, + lastPoint: IKDJ, + startX: Float, + stopX: Float + ) { + drawLine(canvas, mKPaint, curIndex, curPoint.getK(), lastPoint.getK(), startX, stopX)//画K线 + drawLine(canvas, mDPaint, curIndex, curPoint.getD(), lastPoint.getD(), startX, stopX)//画D线 + drawLine(canvas, mJPaint, curIndex, curPoint.getJ(), lastPoint.getJ(), startX, stopX)//画J线 + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() + CanvasUtils.drawTexts( + canvas, mKChartView.context.dip2px(10f).toFloat(), 0f, XAlign.LEFT, YAlign.TOP, + Pair(mKPaint, " KDJ${IKDJ.IKDJConfig.useKDJConfig} "), + Pair(mKPaint, "K:${mKChartView.formatValue(point.getK())} "), + Pair(mDPaint, "D:${mKChartView.formatValue(point.getD())} "), + Pair(mJPaint, "J:${mKChartView.formatValue(point.getJ())} ") + ) + } + + public override fun getMaxValue(point: IKDJ): Float { + return maxOf(point.getK(), point.getD(), point.getJ()) + } + + public override fun getMinValue(point: IKDJ): Float { + return minOf(point.getK(), point.getD(), point.getJ()) + } + + /** + * 设置K颜色 + */ + fun setKColor(color: Int) { + mKPaint.color = color + } + + /** + * 设置D颜色 + */ + fun setDColor(color: Int) { + mDPaint.color = color + } + + /** + * 设置J颜色 + */ + fun setJColor(color: Int) { + mJPaint.color = color + } + + /** + * 设置曲线宽度 + */ + fun setLineWidth(width: Float) { + mKPaint.strokeWidth = width + mDPaint.strokeWidth = width + mJPaint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setTextSize(textSize: Float) { + mKPaint.textSize = textSize + mDPaint.textSize = textSize + mJPaint.textSize = textSize + } + + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/MACDDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/MACDDraw.kt new file mode 100644 index 0000000..ab0d19b --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/MACDDraw.kt @@ -0,0 +1,134 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import androidx.core.content.ContextCompat +import xyz.a1api.kchart.R +import xyz.a1api.kchart.entity.IMACD +import xyz.a1api.kchart.utils.CanvasUtils +import xyz.a1api.kchart.utils.XAlign +import xyz.a1api.kchart.utils.YAlign +import xyz.a1api.kchart.utils.dip2px +import xyz.a1api.kchart.view.BaseKChartView + +/** + * Created by tifezh on 2018/3/30. + * For KChart + * Cat-x All Rights Reserved + */ + +class MACDDraw(rect: Rect, view: BaseKChartView) : BaseChartDraw(rect, view) { + + private val mRedPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mGreenPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mDIFPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mDEAPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mMACDPaint = Paint(Paint.ANTI_ALIAS_FLAG) + /**macd 中柱子的宽度 */ + private var mMACDWidth = 10f + + init { + val context = view.context + mRedPaint.color = ContextCompat.getColor(context, R.color.chart_red) + mGreenPaint.color = ContextCompat.getColor(context, R.color.chart_green) + + setLineWidth(mKChartView.getLineWidth()) + setTextSize(mKChartView.getTextSize()) + mDEAPaint.color = ContextCompat.getColor(context, R.color.chart_ma1) + mDIFPaint.color = ContextCompat.getColor(context, R.color.chart_ma2) + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() +// val x = mKChartView.getTextPaint().measureText(getValueFormatter().format(getMaxValue()) + " ") + CanvasUtils.drawTexts( + canvas, mKChartView.context.dip2px(10f).toFloat(), 0f, XAlign.LEFT, YAlign.TOP, + Pair(mMACDPaint, " MACD${IMACD.IMACDConfig.useMACDConfig} "), + Pair(mMACDPaint, "MACD:" + mKChartView.formatValue(point.getMacd()) + " "), + Pair(mDIFPaint, "DIF:" + mKChartView.formatValue(point.getDif()) + " "), + Pair(mDEAPaint, "DEA:" + mKChartView.formatValue(point.getDea()) + " ") + + ) + } + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IMACD, + lastPoint: IMACD, + startX: Float, + stopX: Float + ) { + drawMACD(canvas, curIndex, curPoint.getMacd()) + drawLine(canvas, mDEAPaint, curIndex, curPoint.getDea(), lastPoint.getDea(), startX, stopX) + drawLine(canvas, mDIFPaint, curIndex, curPoint.getDif(), lastPoint.getDif(), startX, stopX) + } + + public override fun getMaxValue(point: IMACD): Float { + return Math.max(point.getMacd(), Math.max(point.getDea(), point.getDif())) + } + + public override fun getMinValue(point: IMACD): Float { + return Math.min(point.getMacd(), Math.min(point.getDea(), point.getDif())) + } + + /** + * 画macd + */ + private fun drawMACD(canvas: Canvas, index: Int, macd: Float) { + if (macd > 0) { + drawRect(canvas, mRedPaint, index, mMACDWidth, macd, 0f) + } else { + drawRect(canvas, mGreenPaint, index, mMACDWidth, 0f, macd) + } + } + + /** + * 设置DIF颜色 + */ + fun setDIFColor(color: Int) { + this.mDIFPaint.color = color + } + + /** + * 设置DEA颜色 + */ + fun setDEAColor(color: Int) { + this.mDEAPaint.color = color + } + + /** + * 设置MACD颜色 + */ + fun setMACDColor(color: Int) { + this.mMACDPaint.color = color + } + + /** + * 设置MACD的宽度 + * @param MACDWidth + */ + fun setMACDWidth(MACDWidth: Float) { + mMACDWidth = MACDWidth + } + + /** + * 设置曲线宽度 + */ + fun setLineWidth(width: Float) { + mDEAPaint.strokeWidth = width + mDIFPaint.strokeWidth = width + mMACDPaint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setTextSize(textSize: Float) { + mDEAPaint.textSize = textSize + mDIFPaint.textSize = textSize + mMACDPaint.textSize = textSize + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/MainDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/MainDraw.kt new file mode 100644 index 0000000..c8390fe --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/MainDraw.kt @@ -0,0 +1,627 @@ +package xyz.a1api.kchart.draw + +import android.content.Context +import android.graphics.* +import android.util.Pair +import androidx.core.content.ContextCompat +import xyz.a1api.kchart.R +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.entity.ICandle +import xyz.a1api.kchart.entity.ICandleBoll +import xyz.a1api.kchart.formatter.ValueFormatter +import xyz.a1api.kchart.utils.* +import xyz.a1api.kchart.view.BaseKChartView +import java.util.* + + +/** + * 主图的实现类 + * Created by tifezh on 2016/6/14. + * For KChart + * Cat-x All Rights Reserved + */ + +class MainDraw constructor(rect: Rect, kChartView: BaseKChartView) : + BaseChartDraw(rect, kChartView) { + + private var mCandleWidth = 0f + private var mCandleLineWidth = 0f + private val mBackgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mRedPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mGreenPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val ma1Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma2Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma3Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma4Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma5Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma6Paint = Paint(Paint.ANTI_ALIAS_FLAG) + + + private val nowPriceLinePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val nowPriceRectPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val nowPricePaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mSelectorTextPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mSelectorBackgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mUpPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mMbPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mDnPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mContext: Context + + private var mCandleSolid = true + var mainDrawIndicator: String = ICandleBoll.IMainConfig.useMainDrawIndicator + + private val context: Context by lazy { + kChartView.context + } + + init { + val context = mKChartView.context + mContext = context + mRedPaint.color = ContextCompat.getColor(context, R.color.chart_red) + mGreenPaint.color = ContextCompat.getColor(context, R.color.chart_green) + + nowPriceLinePaint.color = Color.parseColor("#4B85D6") + nowPriceLinePaint.style = Paint.Style.STROKE + nowPriceLinePaint.strokeWidth = 1f + val pathEffect = DashPathEffect(floatArrayOf(21f, 7f, 21f, 7f), 1f) + nowPriceLinePaint.pathEffect = pathEffect + + nowPriceRectPaint.color = Color.parseColor("#4B85D6") + nowPriceRectPaint.strokeWidth = 1.5f + nowPriceRectPaint.style = Paint.Style.STROKE + + nowPricePaint.color = Color.parseColor("#4B85D6") + nowPricePaint.textSize = mContext.sp(11).toFloat() + } + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: ICandleBoll, + lastPoint: ICandleBoll, + startX: Float, + stopX: Float + ) { + drawCandle( + canvas, + getX(curIndex), + curPoint.getHighPrice(), + curPoint.getLowPrice(), + curPoint.getOpenPrice(), + curPoint.getClosePrice() + ) + + when (mainDrawIndicator) { + ICandleBoll.IMainConfig.typeMA -> { + 1.toBigDecimal() + 2.toBigDecimal() + ICandle.ICandleConfig.customizeMALists.unfold { index, num, enable -> + if (enable) { + if (lastPoint.getMAbyNum(num) != 0f) { + drawLine( + canvas, + getPaint(index), + curIndex, + curPoint.getMAbyNum(num), + lastPoint.getMAbyNum(num), + startX, + stopX + ) + } + } + } + /* //画ma5 + if (lastPoint.getMAbyNum(5) != 0f) { + drawLine(canvas, ma1Paint, curIndex, curPoint.getMAbyNum(5), lastPoint.getMAbyNum(5)) + } + //画ma10 + if (lastPoint.getMAbyNum(10) != 0f) { + drawLine(canvas, ma2Paint, curIndex, curPoint.getMAbyNum(10), lastPoint.getMAbyNum(10)) + } + //画ma20 + if (lastPoint.getMAbyNum(20) != 0f) { + drawLine(canvas, ma3Paint, curIndex, curPoint.getMAbyNum(20), lastPoint.getMAbyNum(20)) + }*/ + } + ICandleBoll.IMainConfig.typeBOLL -> { + drawLine( + canvas, + mUpPaint, + curIndex, + curPoint.getUp(), + lastPoint.getUp(), + startX, + stopX + ) + drawLine( + canvas, + mMbPaint, + curIndex, + curPoint.getMb(), + lastPoint.getMb(), + startX, + stopX + ) + drawLine( + canvas, + mDnPaint, + curIndex, + curPoint.getDn(), + lastPoint.getDn(), + startX, + stopX + ) + } + } + } + + private fun getPaint(index: Int): Paint { + return when (index % 3) { + 0 -> ma1Paint + 1 -> ma2Paint + 2 -> ma3Paint + 3 -> ma4Paint + 4 -> ma5Paint + 5 -> ma6Paint + else -> ma1Paint + } + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() + + when (mainDrawIndicator) { + ICandleBoll.IMainConfig.typeMA -> { + CanvasUtils.drawTexts( + canvas, + mContext.dip2px(10f).toFloat(), + mContext.dip2px(5f).toFloat(), + XAlign.LEFT, + YAlign.BOTTOM, + *ICandle.ICandleConfig.customizeMALists.filter { it.value.enable }.map { + Pair( + getPaint(it.key), + "MA${it.value.name}:" + mKChartView.formatValue(point.getMAbyNum(it.value.name)) + " " + ) + }.toTypedArray() + /* Pair(ma1Paint, "MA5:" + mKChartView.formatValue(point.getMAbyNum(5)) + " "), + Pair(ma2Paint, "MA10:" + mKChartView.formatValue(point.getMAbyNum(10)) + " "), + Pair(ma3Paint, "MA20:" + mKChartView.formatValue(point.getMAbyNum(20)) + " ")*/ + ) + } + ICandleBoll.IMainConfig.typeBOLL -> { + CanvasUtils.drawTexts( + canvas, + mContext.dip2px(10f).toFloat(), + mContext.dip2px(5f).toFloat(), + XAlign.LEFT, + YAlign.BOTTOM, + Pair(mUpPaint, "UP:" + mKChartView.formatValue(point.getUp()) + " "), + Pair(mMbPaint, "MB:" + mKChartView.formatValue(point.getMb()) + " "), + Pair(mDnPaint, "DN:" + mKChartView.formatValue(point.getDn()) + " ") + ) + } + } + + + drawNowPrice(canvas) + + if (mKChartView.isHadSelect) { + drawSelector(mKChartView, canvas) + } + } + + private fun drawNowPrice(canvas: Canvas) { + var isInLastColumn = false + if (mKChartView.getMinScrollX() != 0) { + val textWidth = + nowPricePaint.measureText((mKChartView.getAdapter().getData().last() as ICandleBoll).getClosePrice().toString()) + isInLastColumn = mKChartView.mScrollX in mKChartView.getMinScrollX().. + (-textWidth).toInt() + } + if (!isInLastColumn) { + val lastPrice = + (mKChartView.getAdapter().getData().last() as ICandleBoll).getClosePrice() + val text = lastPrice.toString() + " ▶" + val y1 = when { + lastPrice > getMaxValue() -> getY(getMaxValue()) + lastPrice < getMinValue() -> getY(getMinValue()) + else -> getY(lastPrice) + } + + + val path = Path() + + val padding = mContext.dip2px(5).toFloat() + val width = nowPricePaint.measureText(text) + val metrics = nowPricePaint.fontMetrics + val textHeight = metrics.descent - metrics.ascent + val top = y1 - textHeight / 2 - padding / 2 + val bottom = y1 + textHeight / 2 + padding / 2 + val left = (mKChartView.mChartWidth.toFloat() - width) / 2 - padding * 4 + val r = RectF(left, top, left + width + padding * 2, bottom) + canvas.drawRoundRect(r, padding * 2, padding * 2, nowPriceRectPaint) + canvas.drawText( + text, + r.left + padding, + y1 + (metrics.descent - metrics.ascent) / 2 - metrics.descent, + nowPricePaint + ) + + path.moveTo(0f, y1) + path.lineTo(r.left, y1) + path.moveTo(r.right, y1) + path.lineTo(mKChartView.mChartWidth.toFloat(), y1) + canvas.drawPath(path, nowPriceLinePaint) + } else { + val lastPrice = + (mKChartView.getAdapter().getData().last() as ICandleBoll).getClosePrice() + val text = lastPrice.toString() + val y1 = getY(lastPrice) + val metrics = nowPricePaint.fontMetrics + val x1 = mKChartView.mChartWidth - nowPricePaint.measureText(text) + canvas.drawText( + text, + x1, + y1 + (metrics.descent - metrics.ascent) / 2 - metrics.descent, + nowPricePaint + ) + + + val path = Path() + path.moveTo( + mKChartView.translateXtoX(getX(mKChartView.getAdapter().getCount() - 1)), + y1 + ) + path.lineTo(x1, y1) + canvas.drawPath(path, nowPriceLinePaint) + } + } + + public override fun getMaxValue(point: ICandleBoll): Float { + return when (mainDrawIndicator) { + ICandleBoll.IMainConfig.typeMA -> { + Math.max(point.getHighPrice(), point.getMAbyMaxNum()) + } + ICandleBoll.IMainConfig.typeBOLL -> { + Math.max( + point.getHighPrice(), + if (java.lang.Float.isNaN(point.getUp())) point.getMb() else point.getUp() + ) + } + else -> { + point.getHighPrice() + } + } + } + + public override fun getMinValue(point: ICandleBoll): Float { + return when (mainDrawIndicator) { + ICandleBoll.IMainConfig.typeMA -> { + Math.min(point.getMAbyMinNum(), point.getLowPrice()) + } + ICandleBoll.IMainConfig.typeBOLL -> { + Math.min( + point.getHighPrice(), + if (java.lang.Float.isNaN(point.getDn())) point.getMb() else point.getDn() + ) + } + else -> { + point.getLowPrice() + } + } + } + + override fun getValueFormatter(): IValueFormatter { + return ValueFormatter() + } + + /** + * 画蜡烛(Candle)图 + * @param canvas + * @param x x轴坐标 + * @param high 最高价 + * @param low 最低价 + * @param open 开盘价 + * @param close 收盘价 + */ + private fun drawCandle( + canvas: Canvas, + x: Float, + high: Float, + low: Float, + open: Float, + close: Float + ) { + val _high = getY(high) + val _low = getY(low) + val _open = getY(open) + val _close = getY(close) + val r = mCandleWidth / 2 + val lineR = mCandleLineWidth / 2 + when { + _open > _close -> { + if (mCandleSolid) {//实心 + canvas.drawRect(x - r, _close, x + r, _open, mRedPaint) + canvas.drawRect(x - lineR, _high, x + lineR, _low, mRedPaint) + } else { + mRedPaint.strokeWidth = mCandleLineWidth + canvas.drawLine(x, _high, x, _close, mRedPaint) + canvas.drawLine(x, _open, x, _low, mRedPaint) + canvas.drawLine(x - r + lineR, _open, x - r + lineR, _close, mRedPaint) + canvas.drawLine(x + r - lineR, _open, x + r - lineR, _close, mRedPaint) + mRedPaint.strokeWidth = mCandleLineWidth * mKChartView.scaleX + canvas.drawLine(x - r, _open, x + r, _open, mRedPaint) + canvas.drawLine(x - r, _close, x + r, _close, mRedPaint) + } + } + _open < _close -> { + if (mCandleSolid) {//实心 + canvas.drawRect(x - r, _open, x + r, _close, mGreenPaint) + canvas.drawRect(x - lineR, _high, x + lineR, _low, mGreenPaint) + } else { + mGreenPaint.strokeWidth = mCandleLineWidth + canvas.drawLine(x, _high, x, _open, mGreenPaint) + canvas.drawLine(x, _close, x, _low, mGreenPaint) + canvas.drawLine(x - r + lineR, _close, x - r + lineR, _open, mGreenPaint) + canvas.drawLine(x + r - lineR, _close, x + r - lineR, _open, mGreenPaint) + mGreenPaint.strokeWidth = mCandleLineWidth * mKChartView.scaleX + canvas.drawLine(x - r, _close, x + r, _close, mGreenPaint) + canvas.drawLine(x - r, _open, x + r, _open, mGreenPaint) + } + } + else -> { + canvas.drawRect(x - r, _open, x + r, _close + 1, mRedPaint) + canvas.drawRect(x - lineR, _high, x + lineR, _low, mRedPaint) + } + } + } + + /** + * draw选择器 + * @param view + * @param canvas + */ + private fun drawSelector(view: BaseKChartView, canvas: Canvas) { + val metrics = mSelectorTextPaint.fontMetrics + val textHeight = metrics.descent - metrics.ascent + + var index = view.getSelectedIndex() + if (index < 0) { + index = 0 + } + val padding = mContext.dip2px(3f).toFloat() + val margin = mContext.dip2px(5f).toFloat() + var width = 0f + val left: Float + val top = margin + view.topPadding + val height = padding * 11 + textHeight * 8 + + val point = view.getItem(index) as ICandleBoll + val strings = ArrayList>() + strings.add( + context.getString(R.string.kchart_info_time) to view.formatDateTime( + view.getAdapter().getDate( + index + ) + ) + ) + strings.add(context.getString(R.string.kchart_info_open_price) to point.getOpenPrice()) + strings.add(context.getString(R.string.kchart_info_hign_price) to point.getHighPrice()) + strings.add(context.getString(R.string.kchart_info_low_price) to point.getLowPrice()) + strings.add(context.getString(R.string.kchart_info_close_price) to point.getClosePrice()) + strings.add( + context.getString(R.string.kchart_info_rise_fall_num) to (point.getClosePrice() - point.getOpenPrice()).toFix( + 2 + ) + ) + strings.add(context.getString(R.string.kchart_info_quote_change) to ((point.getClosePrice() - point.getOpenPrice()) / point.getOpenPrice()).toPercentage()) + strings.add(context.getString(R.string.kchart_info_volume) to point.getClosePrice()) + + for (s in strings) { + width = Math.max(width, mSelectorTextPaint.measureText(s.first + s.second + padding)) + } + width += padding * 2 + + val x = view.translateXtoX(view.getX(index)) + if (x > view.mChartWidth / 2) { + left = margin + } else { + left = view.mChartWidth.toFloat() - width - margin + } + + val r = RectF(left, top, left + width, top + height) + canvas.drawRoundRect(r, padding, padding, mSelectorBackgroundPaint) + var y = top + padding * 2 + (textHeight - metrics.bottom - metrics.top) / 2 +// val y1 = y -padding + for (s in strings) { + canvas.drawText(s.first, left + padding, y, mSelectorTextPaint) + canvas.drawText( + s.second.toString(), + mSelectorTextPaint.getXAlignRight(left + width - padding, s.second.toString()), + y, + mSelectorTextPaint + ) + y += textHeight + padding + } + +// y = mMainDraw.getY(point.getClosePrice())+ mMainRect.top +// val x1: Float +// if (x > view.getChartWidth() / 2) { +// x1 = 0f +// canvas.drawRect(x1, y1, width, y, mBackgroundPaint) +// } else { +// x1 = view.getChartWidth() - width - padding +// canvas.drawRect(x1, y1, x1 + width, y, mBackgroundPaint) +// } + + } + + /** + * 设置蜡烛宽度 + * @param candleWidth + */ + fun setCandleWidth(candleWidth: Float) { + mCandleWidth = candleWidth + } + + /** + * 设置蜡烛线宽度 + * @param candleLineWidth + */ + fun setCandleLineWidth(candleLineWidth: Float) { + mCandleLineWidth = candleLineWidth + } + + /** + * 设置背景颜色 + */ + fun setTextBackgroundColor(color: Int) { + mBackgroundPaint.color = color + } + + /** + * 设置ma1颜色 + * @param color + */ + fun setMa1Color(color: Int) { + this.ma1Paint.color = color + } + + /** + * 设置ma2颜色 + * @param color + */ + fun setMa2Color(color: Int) { + this.ma2Paint.color = color + } + + /** + * 设置ma3颜色 + * @param color + */ + fun setMa3Color(color: Int) { + this.ma3Paint.color = color + } + + /** + * 设置ma3颜色 + * @param color + */ + fun setMa4Color(color: Int) { + this.ma4Paint.color = color + } + + /** + * 设置ma3颜色 + * @param color + */ + fun setMa5Color(color: Int) { + this.ma5Paint.color = color + } + + /** + * 设置ma3颜色 + * @param color + */ + fun setMa6Color(color: Int) { + this.ma6Paint.color = color + } + + /** + * 设置选择器文字颜色 + * @param color + */ + fun setSelectorTextColor(color: Int) { + mSelectorTextPaint.color = color + } + + /** + * 设置选择器文字大小 + * @param textSize + */ + fun setSelectorTextSize(textSize: Float) { + mSelectorTextPaint.textSize = textSize + } + + /** + * 设置选择器背景 + * @param color + */ + fun setSelectorBackgroundColor(color: Int) { + mSelectorBackgroundPaint.color = color + } + + /** + * 设置曲线宽度 + */ + fun setMALineWidth(width: Float) { + ma6Paint.strokeWidth = width + ma5Paint.strokeWidth = width + ma4Paint.strokeWidth = width + ma3Paint.strokeWidth = width + ma2Paint.strokeWidth = width + ma1Paint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setMATextSize(textSize: Float) { + ma6Paint.textSize = textSize + ma5Paint.textSize = textSize + ma4Paint.textSize = textSize + ma3Paint.textSize = textSize + ma2Paint.textSize = textSize + ma1Paint.textSize = textSize + } + + /** + * 蜡烛是否实心 + */ + fun setCandleSolid(candleSolid: Boolean) { + mCandleSolid = candleSolid + } + + /** + * 设置up颜色 + */ + fun setUpColor(color: Int) { + mUpPaint.color = color + } + + /** + * 设置mb颜色 + */ + fun setMbColor(color: Int) { + mMbPaint.color = color + } + + /** + * 设置dn颜色 + */ + fun setDnColor(color: Int) { + mDnPaint.color = color + } + + /** + * 设置曲线宽度 + */ + fun setBOLLLineWidth(width: Float) { + mUpPaint.strokeWidth = width + mMbPaint.strokeWidth = width + mDnPaint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setBOLLTextSize(textSize: Float) { + mUpPaint.textSize = textSize + mMbPaint.textSize = textSize + mDnPaint.textSize = textSize + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/MinuteChartDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/MinuteChartDraw.kt new file mode 100644 index 0000000..7e17a08 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/MinuteChartDraw.kt @@ -0,0 +1,194 @@ +package xyz.a1api.kchart.draw + +import android.content.Context +import android.graphics.* +import xyz.a1api.kchart.R +import xyz.a1api.kchart.entity.ICandle +import xyz.a1api.kchart.entity.IMinuteLine +import xyz.a1api.kchart.utils.dip2px +import xyz.a1api.kchart.utils.getResColor +import xyz.a1api.kchart.utils.sp +import xyz.a1api.kchart.view.BaseKChartView +import kotlin.math.max +import kotlin.math.min + +/** + * Created by Cat-x on 2018/11/28. + * For KChart + * Cat-x All Rights Reserved + */ +class MinuteChartDraw constructor(rect: Rect, kChartView: BaseKChartView) : + BaseChartDraw(rect, kChartView) { + + private val mLinePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mEntityPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mAvgPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mTextPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mPricePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val nowPriceLinePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val nowPriceRectPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val nowPricePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private var mTextSize = 10f + private val mContext: Context + + init { + mContext = mKChartView.context + mTextSize = mContext.sp(mTextSize).toFloat() +// mVolumePaintGreen.color = ContextCompat.getColor(context, R.color.chart_green) +// mVolumePaintRed.color = ContextCompat.getColor(context, R.color.chart_red) + + mLinePaint.color = mContext.getResColor(R.color.minute_chart_line_color) + mEntityPaint.color = mContext.getResColor(R.color.minute_chart_entity_color) + + mTextPaint.color = Color.parseColor("#B1B2B6") + mTextPaint.textSize = mTextSize + mTextPaint.strokeWidth = mContext.dip2px(0.5f).toFloat() + mAvgPaint.color = Color.parseColor("#90A901") + mAvgPaint.strokeWidth = mContext.dip2px(0.5f).toFloat() + mAvgPaint.textSize = mTextSize + mPricePaint.color = Color.parseColor("#FF6600") + mPricePaint.strokeWidth = mContext.dip2px(0.5f).toFloat() + mPricePaint.textSize = mTextSize + + nowPriceLinePaint.color = Color.parseColor("#4B85D6") + nowPriceLinePaint.style = Paint.Style.STROKE + nowPriceLinePaint.strokeWidth = 1f + val pathEffect = DashPathEffect(floatArrayOf(21f, 7f, 21f, 7f), 1f) + nowPriceLinePaint.pathEffect = pathEffect + + nowPriceRectPaint.color = Color.parseColor("#4B85D6") + nowPriceRectPaint.strokeWidth = 1.5f + nowPriceRectPaint.style = Paint.Style.STROKE + + nowPricePaint.color = Color.parseColor("#4B85D6") + nowPricePaint.textSize = mContext.sp(11).toFloat() + } + + override fun getMaxValue(point: IMinuteLine): Float { + return if (point.isUseAvgPrice) { + max(point.getAvgPrice(), point.getPrice()) + } else { + point.getPrice() + } + } + + + override fun getMinValue(point: IMinuteLine): Float { + return if (point.isUseAvgPrice) { + min(point.getAvgPrice(), point.getPrice()) + } else { + point.getPrice() + } + } + + /** + * 循环遍历显示区域的实体 + * 在[BaseChartDraw.drawCharts] 中被调用 + * @param curIndex 当前点的索引值 + * @param curPoint 当前点实体 + * @param lastPoint 上一个点实体 + */ + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IMinuteLine, + lastPoint: IMinuteLine, + startX: Float, + stopX: Float + ) { +// drawLine(canvas, if (curPoint.getPrice() <= lastPoint.getPrice()) mVolumePaintGreen else mVolumePaintRed, curIndex, curPoint.getPrice(), lastPoint.getPrice(),startX,stopX)//画K线 + //画K线 + drawLine( + canvas, + mLinePaint, + curIndex, + curPoint.getPrice(), + lastPoint.getPrice(), + startX, + stopX + ) + //画实体区域 + drawMainMinuteLine( + canvas, + mEntityPaint, + curIndex, + curPoint.getPrice(), + lastPoint.getPrice(), + startX, + stopX + ) + } + + /** + * 画数值 + * 注意:在此方法画出来的图表不会缩放和平移 + * @param canvas [Canvas] + * @param start 显示区域实体索引的开始 + * @param stop 显示区域实体索引的结束 + */ + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + var isInLastColumn = false + if (mKChartView.getMinScrollX() != 0) { + val textWidth = + nowPricePaint.measureText((mKChartView.getAdapter().getData().last() as ICandle).getClosePrice().toString()) + isInLastColumn = mKChartView.mScrollX in mKChartView.getMinScrollX().. + (-textWidth).toInt() + } + if (!isInLastColumn) { + val lastPrice = (mKChartView.getAdapter().getData().last() as ICandle).getClosePrice() + val text = lastPrice.toString() + " ▶" + val y1 = when { + lastPrice > getMaxValue() -> getY(getMaxValue()) + lastPrice < getMinValue() -> getY(getMinValue()) + else -> getY(lastPrice) + } + + + val path = Path() + + val padding = mContext.dip2px(5).toFloat() + val width = nowPricePaint.measureText(text) + val metrics = nowPricePaint.fontMetrics + val textHeight = metrics.descent - metrics.ascent + val top = y1 - textHeight / 2 - padding / 2 + val bottom = y1 + textHeight / 2 + padding / 2 + val left = (mKChartView.mChartWidth.toFloat() - width) / 2 - padding * 4 + val r = RectF(left, top, left + width + padding * 2, bottom) + canvas.drawRoundRect(r, padding * 2, padding * 2, nowPriceRectPaint) + canvas.drawText( + text, + r.left + padding, + y1 + (metrics.descent - metrics.ascent) / 2 - metrics.descent, + nowPricePaint + ) + + path.moveTo(0f, y1) + path.lineTo(r.left, y1) + path.moveTo(r.right, y1) + path.lineTo(mKChartView.mChartWidth.toFloat(), y1) + canvas.drawPath(path, nowPriceLinePaint) + } else { + val lastPrice = (mKChartView.getAdapter().getData().last() as ICandle).getClosePrice() + val text = lastPrice.toString() + val y1 = getY(lastPrice) + val metrics = nowPricePaint.fontMetrics + val x1 = mKChartView.mChartWidth - nowPricePaint.measureText(text) + canvas.drawText( + text, + x1, + y1 + (metrics.descent - metrics.ascent) / 2 - metrics.descent, + nowPricePaint + ) + + + val path = Path() + path.moveTo( + mKChartView.translateXtoX(getX(mKChartView.getAdapter().getCount() - 1)), + y1 + ) + path.lineTo(x1, y1) + canvas.drawPath(path, nowPriceLinePaint) + } + } + +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/RSIDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/RSIDraw.kt new file mode 100644 index 0000000..969d917 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/RSIDraw.kt @@ -0,0 +1,114 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import xyz.a1api.kchart.entity.IRSI +import xyz.a1api.kchart.utils.* +import xyz.a1api.kchart.view.BaseKChartView + +/** + * RSI实现类 + * Created by tifezh on 2016/6/19. + * For KChart + * Cat-x All Rights Reserved + */ + +class RSIDraw +/** + * 构造方法 + * + * @param rect 显示区域 + * @param KChartView [BaseKChartView] + */ + (rect: Rect, KChartView: BaseKChartView) : BaseChartDraw(rect, KChartView) { + + private val mRSI1Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mRSI2Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mRSI3Paint = Paint(Paint.ANTI_ALIAS_FLAG) + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IRSI, + lastPoint: IRSI, + startX: Float, + stopX: Float + ) { + IRSI.IRSIConfig.customizRSILists.unfold() { index, num, enable -> + if (enable) { + drawLine( + canvas, + getPaint(index), + curIndex, + curPoint.getRsiByNum(num), + lastPoint.getRsiByNum(num), + startX, + stopX + ) + } + } + } + + private fun getPaint(index: Int): Paint { + return when (index % 3) { + 0 -> mRSI1Paint + 1 -> mRSI2Paint + 2 -> mRSI3Paint + else -> mRSI1Paint + } + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() +// val x = mKChartView.getTextPaint().measureText(getValueFormatter().format(getMaxValue()) + " ") + CanvasUtils.drawTexts( + canvas, mKChartView.context.dip2px(10f).toFloat(), 0f, XAlign.LEFT, YAlign.TOP, + *IRSI.IRSIConfig.customizRSILists.filter { it.value.enable }.map { + Pair( + getPaint(it.key), + "RSI(${it.value.name}):" + mKChartView.formatValue(point.getRsiByNum(it.value.name)) + " " + ) + }.toTypedArray() + ) + } + + public override fun getMaxValue(point: IRSI): Float { + return IRSI.IRSIConfig.getCalculateRSIConfig().map { point.getRsiByNum(it) }.max() ?: 0f + } + + public override fun getMinValue(point: IRSI): Float { + return IRSI.IRSIConfig.getCalculateRSIConfig().map { point.getRsiByNum(it) }.min() ?: 0f + } + + fun setRSI1Color(color: Int) { + mRSI1Paint.color = color + } + + fun setRSI2Color(color: Int) { + mRSI2Paint.color = color + } + + fun setRSI3Color(color: Int) { + mRSI3Paint.color = color + } + + /** + * 设置曲线宽度 + */ + fun setLineWidth(width: Float) { + mRSI1Paint.strokeWidth = width + mRSI2Paint.strokeWidth = width + mRSI3Paint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setTextSize(textSize: Float) { + mRSI2Paint.textSize = textSize + mRSI3Paint.textSize = textSize + mRSI1Paint.textSize = textSize + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/VolumeDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/VolumeDraw.kt new file mode 100644 index 0000000..aac9a2f --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/VolumeDraw.kt @@ -0,0 +1,151 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import androidx.core.content.ContextCompat +import xyz.a1api.kchart.R +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.entity.IVolume +import xyz.a1api.kchart.formatter.BigValueFormatter +import xyz.a1api.kchart.utils.CanvasUtils +import xyz.a1api.kchart.utils.XAlign +import xyz.a1api.kchart.utils.YAlign +import xyz.a1api.kchart.utils.dip2px +import xyz.a1api.kchart.view.BaseKChartView + +/** + * 成交量 + * Created by hjm on 2017/11/14 17:49. + * For KChart + * Cat-x All Rights Reserved + */ + +class VolumeDraw +/** + * 构造方法 + * + * @param rect 显示区域 + * @param KChartView [BaseKChartView] + */ + (rect: Rect, KChartView: BaseKChartView) : BaseChartDraw(rect, KChartView) { + + private val mRedPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mGreenPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma5Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma10Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private var pillarWidth = 0 + + init { + val context = mKChartView.context + mRedPaint.color = ContextCompat.getColor(context, R.color.chart_red) + mGreenPaint.color = ContextCompat.getColor(context, R.color.chart_green) + pillarWidth = context.dip2px(4f) + } + + + private fun drawHistogram( + canvas: Canvas, curPoint: IVolume, curX: Float + ) { + + val r = (pillarWidth / 2).toFloat() + val top = getY(curPoint.getVolume()) + val bottom = getY(0f) + if (curPoint.getClosePrice() >= curPoint.getOpenPrice()) {//涨 + canvas.drawRect(curX - r, top, curX + r, bottom, mRedPaint) + } else { + canvas.drawRect(curX - r, top, curX + r, bottom, mGreenPaint) + } + + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() +// val x = mKChartView.getTextPaint().measureText(getValueFormatter().format(getMaxValue()) + " ") + CanvasUtils.drawTexts( + canvas, mKChartView.context.dip2px(10f).toFloat(), 0f, XAlign.LEFT, YAlign.TOP, + Pair( + mKChartView.getTextPaint(), + "VOL:" + getValueFormatter().format(point.getVolume()) + " " + ), + Pair(ma5Paint, "MA5:" + getValueFormatter().format(point.getMAVolumeByNum(5)) + " "), + Pair(ma10Paint, "MA10:" + getValueFormatter().format(point.getMAVolumeByNum(10)) + " ") + ) + } + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IVolume, + lastPoint: IVolume, + startX: Float, + stopX: Float + ) { + drawHistogram(canvas, curPoint, getX(curIndex)) + drawLine( + canvas, + ma5Paint, + curIndex, + curPoint.getMAVolumeByNum(5), + lastPoint.getMAVolumeByNum(5), + startX, + stopX + ) + drawLine( + canvas, + ma10Paint, + curIndex, + curPoint.getMAVolumeByNum(10), + lastPoint.getMAVolumeByNum(10), + startX, + stopX + ) + } + + public override fun getMaxValue(point: IVolume): Float { + return Math.max( + point.getVolume(), + Math.max(point.getMAVolumeByNum(5), point.getMAVolumeByNum(10)) + ) + } + + public override fun getMinValue(point: IVolume): Float { + return 0f + } + + override fun getValueFormatter(): IValueFormatter { + return BigValueFormatter() + } + + /** + * 设置 MA5 线的颜色 + * + */ + fun setMa5Color(color: Int) { + this.ma5Paint.color = color + } + + /** + * 设置 MA10 线的颜色 + */ + fun setMa10Color(color: Int) { + this.ma10Paint.color = color + } + + fun setLineWidth(width: Float) { + this.ma5Paint.strokeWidth = width + this.ma10Paint.strokeWidth = width + } + + /** + * 设置文字大小 + * + */ + fun setTextSize(textSize: Float) { + this.ma5Paint.textSize = textSize + this.ma10Paint.textSize = textSize + } + + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/VolumeMinDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/VolumeMinDraw.kt new file mode 100644 index 0000000..48b88c1 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/VolumeMinDraw.kt @@ -0,0 +1,125 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import androidx.core.content.ContextCompat +import xyz.a1api.kchart.R +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.entity.IVolume +import xyz.a1api.kchart.formatter.BigValueFormatter +import xyz.a1api.kchart.utils.CanvasUtils +import xyz.a1api.kchart.utils.XAlign +import xyz.a1api.kchart.utils.YAlign +import xyz.a1api.kchart.utils.dip2px +import xyz.a1api.kchart.view.BaseKChartView + +/** + * 成交量 + * Created by hjm on 2017/11/14 17:49. + * For KChart + * Cat-x All Rights Reserved + */ + +class VolumeMinDraw +/** + * 构造方法 + * + * @param rect 显示区域 + * @param KChartView [BaseKChartView] + */ + (rect: Rect, KChartView: BaseKChartView) : BaseChartDraw(rect, KChartView) { + + private val mVolumePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma5Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val ma10Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private var pillarWidth = 0 + + init { + val context = mKChartView.context + mVolumePaint.color = ContextCompat.getColor(context, R.color.black_volume_min) + pillarWidth = context.dip2px(3f) + } + + + private fun drawHistogram( + canvas: Canvas, curPoint: IVolume, curX: Float + ) { + val r = (pillarWidth / 2).toFloat() + val top = getY(curPoint.getVolume()) + val bottom = getY(0f) + canvas.drawRect(curX - r, top, curX + r, bottom, mVolumePaint) + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() +// val x = mKChartView.getTextPaint().measureText(getValueFormatter().format(getMaxValue()) + " ") + CanvasUtils.drawTexts( + canvas, mKChartView.context.dip2px(10f).toFloat(), 0f, XAlign.LEFT, YAlign.TOP, + Pair( + mKChartView.getTextPaint(), + "VOL:" + getValueFormatter().format(point.getVolume()) + " " + )/*,*/ +// Pair(ma5Paint, "MA5:" + getValueFormatter().format(point.getMAVolumeByNum(5)) + " "), +// Pair(ma10Paint, "MA10:" + getValueFormatter().format(point.getMAVolumeByNum(10)) + " ") + ) + } + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IVolume, + lastPoint: IVolume, + startX: Float, + stopX: Float + ) { + drawHistogram(canvas, curPoint, getX(curIndex)) +// drawLine(canvas, ma5Paint, curIndex, curPoint.getMAVolumeByNum(5), lastPoint.getMAVolumeByNum(5)) +// drawLine(canvas, ma10Paint, curIndex, curPoint.getMAVolumeByNum(10), lastPoint.getMAVolumeByNum(10)) + } + + public override fun getMaxValue(point: IVolume): Float { + return point.getVolume() +// return Math.max(point.getVolume(), Math.max(point.getMAVolumeByNum(5), point.getMAVolumeByNum(10))) + } + + public override fun getMinValue(point: IVolume): Float { + return 0f + } + + override fun getValueFormatter(): IValueFormatter { + return BigValueFormatter() + } + + /** + * 设置 MA5 线的颜色 + * + */ + fun setMa5Color(color: Int) { + this.ma5Paint.color = color + } + + /** + * 设置 MA10 线的颜色 + */ + fun setMa10Color(color: Int) { + this.ma10Paint.color = color + } + + fun setLineWidth(width: Float) { + this.ma5Paint.strokeWidth = width + this.ma10Paint.strokeWidth = width + } + + /** + * 设置文字大小 + * + */ + fun setTextSize(textSize: Float) { + this.ma5Paint.textSize = textSize + this.ma10Paint.textSize = textSize + } + + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/draw/WRDraw.kt b/kchart/src/main/java/xyz/a1api/kchart/draw/WRDraw.kt new file mode 100644 index 0000000..0262733 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/draw/WRDraw.kt @@ -0,0 +1,121 @@ +package xyz.a1api.kchart.draw + +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.Pair +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.entity.IWR +import xyz.a1api.kchart.formatter.ValueFormatter +import xyz.a1api.kchart.utils.* +import xyz.a1api.kchart.view.BaseKChartView + + +/** + * KDJ实现类 + * Created by tifezh on 2016/6/19. + * For KChart + * Cat-x All Rights Reserved + */ +class WRDraw(rect: Rect, kChartView: BaseKChartView) : BaseChartDraw(rect, kChartView) { + + private val mR1Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mR2Paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mR3Paint = Paint(Paint.ANTI_ALIAS_FLAG) + + override fun foreachDrawChart( + canvas: Canvas, + curIndex: Int, + curPoint: IWR, + lastPoint: IWR, + startX: Float, + stopX: Float + ) { + + IWR.IWRConfig.customizWRLists.unfold() { index, num, enable -> + if (enable) { + if (lastPoint.getRByNum(num) != -10f) { + drawLine( + canvas, + getPaint(index), + curIndex, + curPoint.getRByNum(num), + lastPoint.getRByNum(num), + startX, + stopX + ) + } + } + } + + } + + override fun drawValues(canvas: Canvas, start: Int, stop: Int) { + val point = getDisplayItem() + CanvasUtils.drawTexts( + canvas, mKChartView.context.dip2px(10f).toFloat(), 0f, XAlign.LEFT, YAlign.TOP, + *IWR.IWRConfig.customizWRLists.filter { it.value.enable }.map { + Pair( + getPaint(it.key), + "WR(${it.value.name}):${point.getRByNum(it.value.name)} " + ) + }.toTypedArray() + ) + + } + + + override fun getMaxValue(point: IWR): Float { + return IWR.IWRConfig.getCalculateWRConfig().map { point.getRByNum(it) }.max() ?: 0f + } + + override fun getMinValue(point: IWR): Float { + return IWR.IWRConfig.getCalculateWRConfig().map { point.getRByNum(it) }.min() ?: 0f + } + + override fun getValueFormatter(): IValueFormatter { + return ValueFormatter() + } + + private fun getPaint(index: Int): Paint { + return when (index % 3) { + 0 -> mR1Paint + 1 -> mR2Paint + 2 -> mR3Paint + else -> mR1Paint + } + } + + /** + * 设置%R颜色 + */ + fun setR1Color(color: Int) { + mR1Paint.color = color + } + + fun setR2Color(color: Int) { + mR2Paint.color = color + } + + fun setR3Color(color: Int) { + mR3Paint.color = color + } + + /** + * 设置曲线宽度 + */ + fun setLineWidth(width: Float) { + mR1Paint.strokeWidth = width + mR2Paint.strokeWidth = width + mR3Paint.strokeWidth = width + } + + /** + * 设置文字大小 + */ + fun setTextSize(textSize: Float) { + mR1Paint.textSize = textSize + mR2Paint.textSize = textSize + mR3Paint.textSize = textSize + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IBOLL.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IBOLL.kt new file mode 100644 index 0000000..54994cb --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IBOLL.kt @@ -0,0 +1,63 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.CONFIG_TAG +import xyz.a1api.tools.LStorage + +/** + * 布林线指标接口 + * @see [](https://baike.baidu.com/item/%E5%B8%83%E6%9E%97%E7%BA%BF%E6%8C%87%E6%A0%87/3325894)相关说明 + * Created by tifezh on 2016/6/10. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IBOLL { + + /** + * 上轨线 + */ + fun getUp(): Float + + /** + * 中轨线 + */ + fun getMb(): Float + + /** + * 下轨线 + */ + fun getDn(): Float + + class BOLL { + var mb: Float = 0f + var up: Float = 0f + var dn: Float = 0f + } + + + object IBOLLConfig { + val defaultBOLLLists: Pair = Pair(20, 2) + var useBOLLConfig: Pair + get() { + val string = LStorage(CONFIG_TAG).getString(ICandleBoll.IMainConfig.typeBOLL) + if (string.isNotBlank()) { + try { + val list = string.split("|").map { it.toInt() } + if (list.size == 2) { + return list[0] to list[1] + } + } catch (e: Exception) { + e.printStackTrace() + } + } + return defaultBOLLLists + } + set(value) { + LStorage(CONFIG_TAG).putString( + ICandleBoll.IMainConfig.typeBOLL, + "${value.first}|${value.second}" + ) + } + + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/ICandle.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/ICandle.kt new file mode 100644 index 0000000..b713f72 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/ICandle.kt @@ -0,0 +1,76 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.* +import xyz.a1api.tools.LStorage + +/** + * 蜡烛图实体接口 + * Created by tifezh on 2016/6/9. + * For KChart + * Cat-x All Rights Reserved + */ + +interface ICandle { + + /** + * 开盘价 + */ + fun getOpenPrice(): Float + + /** + * 最高价 + */ + fun getHighPrice(): Float + + /** + * 最低价 + */ + fun getLowPrice(): Float + + /** + * 收盘价 + */ + fun getClosePrice(): Float + + /** + * 移动平均线(Moving Average,简称MA),它是将某一段时间的收盘价之和除以该周期。 比如日线MA5指5天内的收盘价除以5 。 + * num(月,日,时,分,5分等)均价 + * @param num Int + * @return Float + */ + fun getMAbyNum(num: Int): Float + + /** + * maxNum(月,日,时,分,5分等)均价 + * @param num Int + * @return Float + */ + fun getMAbyMaxNum(): Float + + /** + * maxNum(月,日,时,分,5分等)均价 + * @param num Int + * @return Float + */ + fun getMAbyMinNum(): Float + + object ICandleConfig { + val defaultMALists: HashMap = + hashMapOf(0 to EnableItem(5), 1 to EnableItem(10), 2 to EnableItem(30)) + var customizeMALists: HashMap + get() { + return LStorage(CONFIG_TAG).getString(ICandleBoll.IMainConfig.typeMA).toShowConfig() + ?: defaultMALists + } + set(value) { + LStorage(CONFIG_TAG).putString(ICandleBoll.IMainConfig.typeMA, value.toSaveString()) + } + + fun getCalculateMAConfig(): IntArray { + return customizeMALists.toCalculate() + } + + } + + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/ICandleBoll.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/ICandleBoll.kt new file mode 100644 index 0000000..62502d8 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/ICandleBoll.kt @@ -0,0 +1,34 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.CONFIG_TAG +import xyz.a1api.tools.LStorage + +/** + * Created by Cat-x on 2018/12/11. + * For KChart + * Cat-x All Rights Reserved + */ +interface ICandleBoll : ICandle, IBOLL { + + object IMainConfig { + + const val typeMA = "MA" + const val typeBOLL = "BOLL" + + var isShowMainDrawIndicator: Boolean + get() { + return LStorage(CONFIG_TAG).getBoolean("isShowMainDrawIndicator", true) + } + set(value) { + LStorage(CONFIG_TAG).putBoolean("isShowMainDrawIndicator", value) + } + + var useMainDrawIndicator: String + get() { + return LStorage(CONFIG_TAG).getString("useMainDrawIndicator", typeMA) + } + set(value) { + LStorage(CONFIG_TAG).putString("useMainDrawIndicator", value) + } + } +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IKDJ.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IKDJ.kt new file mode 100644 index 0000000..650cba5 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IKDJ.kt @@ -0,0 +1,61 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.CONFIG_TAG +import xyz.a1api.tools.LStorage + +/** + * KDJ指标(随机指标)接口 + * @see [](https://baike.baidu.com/item/KDJ%E6%8C%87%E6%A0%87/6328421?fr=aladdin&fromid=3423560&fromtitle=kdj)相关说明 + * Created by tifezh on 2016/6/10. + * For KChart + * Cat-x All Rights Reserved + */ +interface IKDJ { + + /** + * K值 + */ + fun getK(): Float + + /** + * D值 + */ + fun getD(): Float + + /** + * J值 + */ + fun getJ(): Float + + class KDJ { + var k: Float = 0f + var d: Float = 0f + var j: Float = 0f + } + + object IKDJConfig { + val defaultKDJLists: Triple = Triple(9, 3, 3) + var useKDJConfig: Triple + get() { + val string = LStorage(CONFIG_TAG).getString(IKLine.ISecondDrawConfig.typeKDJ) + if (string.isNotBlank()) { + try { + val list = string.split("|").map { it.toInt() } + if (list.size == 3) { + return Triple(list[0], list[1], list[2]) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + return defaultKDJLists + } + set(value) { + LStorage(CONFIG_TAG).putString( + IKLine.ISecondDrawConfig.typeKDJ, + "${value.first}|${value.second}|${value.third}" + ) + } + } + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IKLine.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IKLine.kt new file mode 100644 index 0000000..6fe6f7a --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IKLine.kt @@ -0,0 +1,41 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.CONFIG_TAG +import xyz.a1api.tools.LStorage + +/** + * k线实体接口 + * Created by tifezh on 2016/6/9. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IKLine : ICandleBoll, IMACD, IKDJ, IRSI, IVolume, IWR { + + object ISecondDrawConfig { + const val typeMACD = "MACD" + const val typeKDJ = "KDJ" + const val typeRSI = "RSI" + const val typeWR = "WR" + + const val typeMCV = "MCV" + + var isShowSecondDrawIndicator: Boolean + get() { + return LStorage(CONFIG_TAG).getBoolean("isShowSecondDrawIndicator", true) + } + set(value) { + LStorage(CONFIG_TAG).putBoolean("isShowSecondDrawIndicator", value) + } + + var useSecondDrawIndicator: String + get() { + return LStorage(CONFIG_TAG).getString("useSecondDrawIndicator", typeMACD) + } + set(value) { + LStorage(CONFIG_TAG).putString("useSecondDrawIndicator", value) + } + } +} + + diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IKMLine.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IKMLine.kt new file mode 100644 index 0000000..bb9f5e8 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IKMLine.kt @@ -0,0 +1,27 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.CONFIG_TAG +import xyz.a1api.tools.LStorage + + +interface IKMLine : IKLine, IMinuteLine { + + object ITimeStepConfig { + + var useMainOrMin: Boolean + get() { + return LStorage(CONFIG_TAG).getBoolean("useMainOrMin", true) + } + set(value) { + LStorage(CONFIG_TAG).putBoolean("useMainOrMin", value) + } + + var timeStep: Long + get() { + return LStorage(CONFIG_TAG).getLong("timeStep", 15) + } + set(value) { + LStorage(CONFIG_TAG).putLong("timeStep", value) + } + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IMACD.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IMACD.kt new file mode 100644 index 0000000..a59fb07 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IMACD.kt @@ -0,0 +1,81 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.CONFIG_TAG +import xyz.a1api.tools.LStorage + +/** + * MACD指标(指数平滑移动平均线)接口 + * @see [](https://baike.baidu.com/item/MACD指标)相关说明 + * Created by tifezh on 2016/6/10. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IMACD { + + + /** + * DEA值 + */ + fun getDea(): Float + + /** + * DIF值 + */ + fun getDif(): Float + + /** + * MACD值 + */ + fun getMacd(): Float + + class MACD { + /** + * DEA值 + */ + var dea: Float = 0f + + /** + * DIF值 + */ + var dif: Float = 0f + + /** + * MACD值 + */ + var macd: Float = 0f + } + + object IMACDConfig { + val defaultMACDLists: MACD = MACD(12, 26, 9) + var useMACDConfig: MACD + get() { + val string = LStorage(CONFIG_TAG).getString(IKLine.ISecondDrawConfig.typeMACD) + if (string.isNotBlank()) { + try { + val list = string.split("|").map { it.toInt() } + if (list.size == 3) { + return MACD(list[0], list[1], list[2]) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + return defaultMACDLists + } + set(value) { + LStorage(CONFIG_TAG).putString( + IKLine.ISecondDrawConfig.typeMACD, + "${value.S}|${value.L}|${value.M}" + ) + } + + data class MACD(var S: Int, var L: Int, var M: Int) { + override fun toString(): String { + return "($S, $L, $M)" + } + } + + } + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IMinuteLine.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IMinuteLine.kt new file mode 100644 index 0000000..d827c32 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IMinuteLine.kt @@ -0,0 +1,29 @@ +package xyz.a1api.kchart.entity + +/** + * 分时图实体接口 + * Created by tifezh on 2017/7/19. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IMinuteLine { + + val isUseAvgPrice: Boolean + get() = false + + /** + * 获取均价(可选) + */ + fun getAvgPrice(): Float = 0f + + /** + * 获取成交价 + */ + fun getPrice(): Float + + /** + * 成交量 + */ + fun getVolume(): Float +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IRSI.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IRSI.kt new file mode 100644 index 0000000..f11e5a8 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IRSI.kt @@ -0,0 +1,44 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.* +import xyz.a1api.tools.LStorage + +/** + * RSI指标接口 + * @see [](https://baike.baidu.com/item/RSI%E6%8C%87%E6%A0%87)相关说明 + * Created by tifezh on 2016/6/10. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IRSI { + + /** + * RSI1值 + */ + fun getRsiByNum(num: Int): Float + + + object IRSIConfig { + // val defaultRSILists:IntArray = intArrayOf(7,14) + val defaultRSILists: HashMap = + hashMapOf(0 to EnableItem(7, false), 1 to EnableItem(14), 2 to EnableItem(20, false)) + + var customizRSILists: HashMap + get() { + return LStorage(CONFIG_TAG).getString(IKLine.ISecondDrawConfig.typeRSI).toShowConfig() + ?: defaultRSILists + } + set(value) { + LStorage(CONFIG_TAG).putString( + IKLine.ISecondDrawConfig.typeRSI, + value.toSaveString() + ) + } + + fun getCalculateRSIConfig(): IntArray { + return customizRSILists.toCalculate() + } + + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IVolume.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IVolume.kt new file mode 100644 index 0000000..6ca41c8 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IVolume.kt @@ -0,0 +1,43 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.EnableItem +import xyz.a1api.kchart.utils.toCalculate + +/** + * 成交量接口 + * Created by hjm on 2017/11/14 17:46. + * For KChart + * Cat-x All Rights Reserved + */ + +interface IVolume { + + /** + * 开盘价 + */ + fun getOpenPrice(): Float + + /** + * 收盘价 + */ + fun getClosePrice(): Float + + /** + * 成交量 + */ + fun getVolume(): Float + + /** + * Num(月,日,时,分,5分等)均量 + */ + fun getMAVolumeByNum(num: Int): Float + + + object IVolumeMAConfig { + val defaultVolumeMALists: IntArray = intArrayOf(5, 10) + var customizeVolumeMALists: ArrayList? = null + fun getVolumeMAConfig(): IntArray { + return customizeVolumeMALists?.toCalculate() ?: defaultVolumeMALists + } + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/entity/IWR.kt b/kchart/src/main/java/xyz/a1api/kchart/entity/IWR.kt new file mode 100644 index 0000000..dc38e7d --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/entity/IWR.kt @@ -0,0 +1,38 @@ +package xyz.a1api.kchart.entity + +import xyz.a1api.kchart.utils.* +import xyz.a1api.tools.LStorage + +/** + * @author fujianlian Created on 2018/8/20 15:16 + * @descripe WR指标(随机指标)接口 + */ +interface IWR { + + /** + * %R值 + */ + fun getRByNum(num: Int): Float + + object IWRConfig { + val defaultWRLists: HashMap = + hashMapOf(0 to EnableItem(7, false), 1 to EnableItem(14), 2 to EnableItem(20, false)) + var customizWRLists: HashMap + get() { + return LStorage(CONFIG_TAG).getString(IKLine.ISecondDrawConfig.typeWR).toShowConfig() + ?: defaultWRLists + } + set(value) { + LStorage(CONFIG_TAG).putString( + IKLine.ISecondDrawConfig.typeWR, + value.toSaveString() + ) + } + + fun getCalculateWRConfig(): IntArray { + return customizWRLists.toCalculate() + } + + } + +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/formatter/BigValueFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/formatter/BigValueFormatter.kt new file mode 100644 index 0000000..db09d57 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/formatter/BigValueFormatter.kt @@ -0,0 +1,33 @@ +package xyz.a1api.kchart.formatter + +import xyz.a1api.kchart.base.IValueFormatter +import java.util.* + +/** + * 对较大数据进行格式化 + * Created by tifezh on 2017/12/13. + * For KChart + * Cat-x All Rights Reserved + */ + +class BigValueFormatter : IValueFormatter { + + //必须是排好序的 + private val values = intArrayOf(10000, 1000000, 100000000) + private val units = arrayOf("万", "百万", "亿") + + override fun format(value: Float): String { + var value = value + var unit = "" + var i = values.size - 1 + while (i >= 0) { + if (value > values[i]) { + value /= values[i].toFloat() + unit = units[i] + break + } + i-- + } + return String.format(Locale.getDefault(), "%.2f", value) + unit + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/formatter/DateFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/formatter/DateFormatter.kt new file mode 100644 index 0000000..4266230 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/formatter/DateFormatter.kt @@ -0,0 +1,21 @@ +package xyz.a1api.kchart.formatter + +import xyz.a1api.kchart.base.IDateTimeFormatter +import xyz.a1api.kchart.utils.DateUtil + +/** + * 时间格式化器 + * Created by tifezh on 2016/6/21. + * For KChart + * Cat-x All Rights Reserved + */ + +class DateFormatter : IDateTimeFormatter { + override fun format(date: String?): String { + return if (date.isNullOrBlank()) { + "" + } else { + DateUtil.dateFormat.format(date) + } + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/formatter/QuaFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/formatter/QuaFormatter.kt new file mode 100644 index 0000000..7587aff --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/formatter/QuaFormatter.kt @@ -0,0 +1,15 @@ +package xyz.a1api.kchart.formatter + +import xyz.a1api.kchart.base.IDateTimeFormatter + +/** + * Created by Cat-x on 2018/11/30. + * For KChart + * Cat-x All Rights Reserved + */ +class QuaFormatter : IDateTimeFormatter { + override fun format(date: String?): String { + return date ?: "" + + } +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/formatter/TimeFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/formatter/TimeFormatter.kt new file mode 100644 index 0000000..b883c5b --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/formatter/TimeFormatter.kt @@ -0,0 +1,19 @@ +package xyz.a1api.kchart.formatter + +import xyz.a1api.kchart.base.IDateTimeFormatter +import xyz.a1api.kchart.utils.DateUtil + +/** + * 时间格式化器 + * Created by tifezh on 2016/6/21. + * For KChart + * Cat-x All Rights Reserved + */ + +class TimeFormatter : IDateTimeFormatter { + override fun format(date: String?): String { + return if (date.isNullOrBlank()) { + "" + } else DateUtil.timeFormat.format(date) + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/formatter/ValueFormatter.kt b/kchart/src/main/java/xyz/a1api/kchart/formatter/ValueFormatter.kt new file mode 100644 index 0000000..86ace24 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/formatter/ValueFormatter.kt @@ -0,0 +1,16 @@ +package xyz.a1api.kchart.formatter + +import xyz.a1api.kchart.base.IValueFormatter + +/** + * Value格式化类 + * Created by tifezh on 2016/6/21. + * For KChart + * Cat-x All Rights Reserved + */ + +class ValueFormatter : IValueFormatter { + override fun format(value: Float): String { + return String.format("%.2f", value) + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/ActivityEx.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/ActivityEx.kt new file mode 100644 index 0000000..5c6efb3 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/ActivityEx.kt @@ -0,0 +1,127 @@ +package xyz.a1api.kchart.utils + +import android.app.Activity +import android.content.pm.ActivityInfo +import android.content.res.Configuration +import android.graphics.Rect +import android.util.DisplayMetrics +import android.view.View +import android.view.WindowManager + +/** + * Created by Cat-x on 2018/8/7. + * For KChart + * Cat-x All Rights Reserved + */ + +/** + * 是否全屏 + * @receiver Activity + * @param isFull Boolean + */ +fun Activity.setFullScreen(isFull: Boolean) { + window.decorView.setOnSystemUiVisibilityChangeListener { visibility -> + if (visibility == View.SYSTEM_UI_FLAG_LOW_PROFILE || visibility == View.SYSTEM_UI_FLAG_LOW_PROFILE or View.SYSTEM_UI_FLAG_IMMERSIVE) { + window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + window.decorView.setOnSystemUiVisibilityChangeListener(null) + } else if (visibility == View.SYSTEM_UI_FLAG_VISIBLE || visibility == View.SYSTEM_UI_FLAG_VISIBLE or View.SYSTEM_UI_FLAG_IMMERSIVE) { + window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + window.decorView.setOnSystemUiVisibilityChangeListener(null) + } + } + if (isFull) { + window.decorView.systemUiVisibility = + View.SYSTEM_UI_FLAG_LOW_PROFILE or View.SYSTEM_UI_FLAG_IMMERSIVE + } else { + window.decorView.systemUiVisibility = + View.SYSTEM_UI_FLAG_VISIBLE or View.SYSTEM_UI_FLAG_IMMERSIVE + } + window.decorView.requestLayout() +} + +/** + * 是否保持亮屏 + * @receiver Activity + * @param enabled Boolean + */ +fun Activity.setKeepScreenOn(enabled: Boolean) { + if (enabled) { + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } else { + window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } +} + +/** + * 设置屏幕旋转状态 + * @receiver Activity + * @param rotation Int (1:默认方向感应;2:锁死横竖屏,但可以自动切换正反;3,锁死竖屏,能切换正反;4,锁死横屏,能切换正反; + * 5:锁死横竖屏,不能切换正反;6,锁死竖屏,不能切换正反;7,锁死横屏,不能切换正反;8,切换横竖屏,不锁死正反;9,切换横竖屏,锁死正反) + */ +fun Activity.setRotation(rotation: Int) { + when (rotation) { + + // Rotation free + 1 -> requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED + // Lock in current rotation + 2 -> { + val currentOrientation = resources.configuration.orientation + setRotation(if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) 3 else 4) + } + // Lock in portrait + 3 -> requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT + // Lock in landscape + 4 -> requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE + // Lock in current rotation + 5 -> { + val currentOrientation = resources.configuration.orientation + setRotation(if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) 5 else 6) + } + // Lock in portrait + 6 -> requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + // Lock in landscape + 7 -> requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE + 8 -> { + val currentOrientation = resources.configuration.orientation + setRotation(if (currentOrientation != Configuration.ORIENTATION_PORTRAIT) 3 else 4) + } + 9 -> { + val currentOrientation = resources.configuration.orientation + setRotation(if (currentOrientation != Configuration.ORIENTATION_PORTRAIT) 5 else 6) + } + } +} + +/** + * 获取状态栏高度,当获取不到是,默认高度为20dp + * @return Int 状态栏的px高度 + */ +fun Activity.getBarHeight(): Int { + var statusBarHeight = dip2px(20) + + val rect = Rect() + window.decorView.getWindowVisibleDisplayFrame(rect) //应用区域 + val statusBar = getWindowHeight() - rect.height() //状态栏高度=屏幕高度-应用区域高度 + if (statusBar == 0) { + //获取status_bar_height资源的ID + val resourceId = resources.getIdentifier("status_bar_height", "dimen", "android") + if (resourceId > 0) { + //根据资源ID获取响应的尺寸值 + statusBarHeight = resources.getDimensionPixelSize(resourceId) + } + } else { + statusBarHeight = statusBar + } + return statusBarHeight +} + +fun Activity.getWindowHeight(): Int { + val dm = DisplayMetrics() + windowManager.defaultDisplay.getMetrics(dm) + return dm.heightPixels +} + +fun Activity.getContentHeight(): Int { + return getWindowHeight() - getBarHeight() +} + diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/Anko.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/Anko.kt new file mode 100644 index 0000000..8f3fda3 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/Anko.kt @@ -0,0 +1,60 @@ +package xyz.a1api.kchart.utils + +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.os.Handler +import android.os.Looper +import java.lang.ref.WeakReference +import java.util.concurrent.ExecutorService +import java.util.concurrent.Executors +import java.util.concurrent.Future + +/** + * Created by Cat-x on 2019/10/31. + * For KChart + * Cat-x All Rights Reserved + */ + +private val crashLogger = { throwable: Throwable -> throwable.printStackTrace() } + +class AnkoAsyncContext(val weakRef: WeakReference) + +internal object BackgroundExecutor { + var executor: ExecutorService = + Executors.newScheduledThreadPool(2 * Runtime.getRuntime().availableProcessors()) + + fun submit(task: () -> T): Future = executor.submit(task) + +} + +fun T.doAsync( + exceptionHandler: ((Throwable) -> Unit)? = crashLogger, + task: AnkoAsyncContext.() -> Unit +): Future { + val context = AnkoAsyncContext(WeakReference(this)) + return BackgroundExecutor.submit { + return@submit try { + context.task() + } catch (thr: Throwable) { + val result = exceptionHandler?.invoke(thr) + if (result != null) { + result + } else { + Unit + } + } + } +} + +private object ContextHelper { + val handler = Handler(Looper.getMainLooper()) +} + +fun Context.runOnUiThread(f: Context.() -> Unit) { + if (Looper.getMainLooper() === Looper.myLooper()) f() else ContextHelper.handler.post { f() } +} + +inline fun Context.startActivity() = + startActivity(Intent(this, T::class.java)) + diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/CanvasUtils.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/CanvasUtils.kt new file mode 100644 index 0000000..3444806 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/CanvasUtils.kt @@ -0,0 +1,106 @@ +package xyz.a1api.kchart.utils + +import android.graphics.Canvas +import android.graphics.Paint +import android.util.Pair + + +/** + * 画图工具类 + * Created by tifezh on 2018/4/1. + * For KChart + * Cat-x All Rights Reserved + */ + +@Suppress("MemberVisibilityCanBePrivate") +object CanvasUtils { + + fun getTextX(_x: Float, paint: Paint, text: String, align: XAlign): Float { + var x = _x + when (align) { + XAlign.CENTER -> x -= paint.measureText(text) / 2 + XAlign.RIGHT -> x -= paint.measureText(text) + } + return x + } + + fun getTextY(_y: Float, paint: Paint, align: YAlign): Float { + var y = _y + val fm = paint.fontMetrics + val textHeight = fm.descent - fm.ascent + val baseLine = (textHeight - fm.bottom - fm.top) / 2 + when (align) { + YAlign.TOP -> y += baseLine + YAlign.CENTER -> y += textHeight / 2 - fm.descent + YAlign.BOTTOM -> y += baseLine - textHeight + } + return y + } + + + /** + * 绘制文本工具 + * @param canvas [Canvas] + * @param paint 画笔 + * @param x x坐标 + * @param y y坐标 + * @param xAlign x轴方向对齐方式 + * @param yAlign y轴方向对齐方式 + */ + fun drawText( + canvas: Canvas, + paint: Paint, + _x: Float, + _y: Float, + text: String, + xAlign: XAlign, + yAlign: YAlign + ) { + var x = _x + var y = _y + y = getTextY(y, paint, yAlign) + x = getTextX(x, paint, text, xAlign) + canvas.drawText(text, x, y, paint) + } + + + /** + * 绘制多个文本 + * @param canvas [Canvas] + * @param x x坐标 + * @param y y坐标 + * @param xAlign x轴方向对齐方式 + * @param yAlign y轴方向对齐方式 + * @param strings 画笔和对应文本的集合 + */ + @SafeVarargs + fun drawTexts( + canvas: Canvas, + _x: Float, + y: Float, + xAlign: XAlign, + yAlign: YAlign, + vararg strings: Pair + ) { + var x = _x + if (strings.isEmpty()) { + return + } + + var textWidth = 0f + if (xAlign != XAlign.LEFT) { + for (s in strings) { + textWidth += s.first.measureText(s.second) + } + + if (xAlign == XAlign.CENTER) x -= textWidth / 2f + if (xAlign == XAlign.RIGHT) x -= textWidth + } + + for (s in strings) { + val newY = getTextY(y, s.first, yAlign) + canvas.drawText(s.second, x, newY, s.first) + x += s.first.measureText(s.second) + } + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/ContextEx.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/ContextEx.kt new file mode 100644 index 0000000..c7c15c0 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/ContextEx.kt @@ -0,0 +1,98 @@ +package xyz.a1api.kchart.utils + +import android.content.Context +import android.graphics.Paint +import android.view.View +import androidx.annotation.ColorRes +import androidx.core.content.ContextCompat +import java.text.DecimalFormat + +/** + * Created by Cat-x on 2018/11/27. + * For KChart + * Cat-x All Rights Reserved + */ +fun Context.sp(value: Int): Int = (value * resources.displayMetrics.scaledDensity).toInt() + +fun Context.sp(value: Float): Int = (value * resources.displayMetrics.scaledDensity).toInt() +fun Context.dip(value: Int): Int = (value * resources.displayMetrics.density).toInt() +fun Context.dip(value: Float): Int = (value * resources.displayMetrics.density).toInt() +fun Context.dipF(value: Int): Float = (value * resources.displayMetrics.density) +fun Context.dipF(value: Float): Float = (value * resources.displayMetrics.density) + +fun Context.getResColor(@ColorRes id: Int): Int { + return ContextCompat.getColor( + this, id + ) +} + +var android.widget.TextView.textResColor: Int + @Deprecated( + "Property does not have a getter", + level = DeprecationLevel.ERROR + ) get() = throw Exception("Property does not have a getter") + set(v) = setTextColor(context.getResColor(v)) + + +fun Context.dip2px(value: Int): Int { + return Math.round(value * resources.displayMetrics.density); +} + +fun Context.dip2px(value: Float): Int { + return Math.round(value * resources.displayMetrics.density); +} + +fun View.setNegateVisibility( + show: (View) -> Unit = {}, + hide: (View) -> Unit = {}, + isGone: Boolean = true +) { + if (visibility == View.VISIBLE) { + hide(this) + visibility = if (isGone) View.GONE else View.INVISIBLE + } else { + show(this) + visibility = View.VISIBLE + } +} + +fun Float.toFix(number: Int = 2): String { +// var preString = "1" +// for (i in 1..number) { +// preString += "0" +// } +// val preNum = preString.toFloat() +// val num = Math.round(this * preNum) / preNum +// return num.toString() + + var preString = "0." + for (i in 1..number) { + preString += "0" + } + return DecimalFormat(preString).format(this) +} + +fun Double.toFix(number: Int = 2): String { + var preString = "0." + for (i in 1..number) { + preString += "0" + } + return DecimalFormat(preString).format(this) +} + + +fun Float.toPercentage(): String { + return DecimalFormat("#.##%").format(this) +} + +fun Double.toPercentage(): String { + return DecimalFormat("#.##%").format(this) +} + +fun Paint.getXAlignRight(originalX: Int, content: String): Float { + return getXAlignRight(originalX.toFloat(), content) +} + +fun Paint.getXAlignRight(originalX: Float, content: String): Float { + return originalX - measureText(content) +} \ No newline at end of file diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/DateUtil.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/DateUtil.kt new file mode 100644 index 0000000..b758ab7 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/DateUtil.kt @@ -0,0 +1,16 @@ +package xyz.a1api.kchart.utils + +import java.text.SimpleDateFormat +import java.util.* + +/** + * 时间工具类 + * Created by tifezh on 2016/4/27. + * For KChart + * Cat-x All Rights Reserved + */ +object DateUtil { + var dateTimeFormat = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault()) + var timeFormat = SimpleDateFormat("HH:mm", Locale.getDefault()) + var dateFormat = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault()) +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/KChartConfig.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/KChartConfig.kt new file mode 100644 index 0000000..bd50e8e --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/KChartConfig.kt @@ -0,0 +1,46 @@ +package xyz.a1api.kchart.utils + +import xyz.a1api.kchart.entity.ICandleBoll +import xyz.a1api.kchart.entity.IKLine + +/** + * Created by Cat-x on 2018/11/26. + * For KChart + * Cat-x All Rights Reserved + */ +//class KChartConfig { +// var showSecondPicture: Boolean = true +// var mainPictureIndicator: String = "MA" +// var secondPictureIndicator: String = "MACD" +// var configMAList: ArrayList = arrayListOf() +// var configRSIList: ArrayList = arrayListOf() +// var configMACD: ArrayList = arrayListOf() +// var configBOLL: ArrayList = arrayListOf() +// var configKDJ: ArrayList = arrayListOf() +// var configMAVolume: ArrayList = arrayListOf() +//} + + +const val CONFIG_TAG = "kChart" + +var isDebug: Boolean = true + +class EnableItem( + var name: Int = 0, + var enable: Boolean = true +) { + +} + +object DrawIndicator { + + fun isMain(name: String): Boolean { + return ICandleBoll.IMainConfig.useMainDrawIndicator == name + } + + fun isSecond(name: String): Boolean { + return IKLine.ISecondDrawConfig.useSecondDrawIndicator == name + } + +} + diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/ObjectEx.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/ObjectEx.kt new file mode 100644 index 0000000..0550cca --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/ObjectEx.kt @@ -0,0 +1,141 @@ +package xyz.a1api.kchart.utils + +/** + * Created by Cat-x on 2018/11/26. + * For KChart + * Cat-x All Rights Reserved + */ + +@JvmName("enableItemListToSaveString") +fun ArrayList?.toSaveString(): String { + var string = "" + if (this != null) { + for (num in this) { + string = "$string${num.name}:${num.enable}|" + } + } + return string +} + +@JvmName("enableItemHashToSaveString") +fun HashMap?.toSaveString(): String { + var string = "" + if (this != null) { + for (num in this) { + string = "$string${num.key}:${num.value.name}:${num.value.enable}|" + } + } + return string +} + +fun Triple?.toSaveString(): String { + var string = "" + if (this != null) { + string = "$first|$second|$third" + } + return string +} + +fun String.toUseConfig(): Triple? { + val list = split("|").map { it.toIntOrNull() } + if (list.size == 3) { + return Triple(list[0]!!, list[1]!!, list[2]!!) + } + return null +} + +//fun String.toShowConfig(): ArrayList? { +// if (this.isEmpty()) { +// return null +// } +// val configs = arrayListOf() +// //去掉末尾的| +// val list = this.dropLast(1).split("|") +// for (string in list) { +// val data = string.split(":") +// configs.add(EnableItem(data[0].toInt(), data[1].toBoolean())) +// } +// return configs; +//} + + +fun String.toShowConfig(): HashMap? { + if (this.isEmpty()) { + return null + } + val configs = hashMapOf() + //去掉末尾的| + val list = this.dropLast(1).split("|") + for (string in list) { + val data = string.split(":") + configs[data[0].toInt()] = (EnableItem(data[1].toInt(), data[2].toBoolean())) + } + return configs; +} + +fun ArrayList.toCalculate(): IntArray { + val list = arrayListOf() + for (enableItem in this) { + if (enableItem.enable && enableItem.name > 0) { + list.add(enableItem.name) + } + } + return list.toIntArray() +} + +fun HashMap.toCalculate(): IntArray { + val list = arrayListOf() + for (enableItem in this) { + if (enableItem.value.enable && enableItem.value.name > 0) { + list.add(enableItem.value.name) + } + } + return list.toIntArray() +} + + +@JvmName("intListToSaveString") +fun ArrayList?.toSaveString(): Set { + if (this == null) { + return setOf() + } + val set = hashSetOf() + for (i in this.toList()) { + set.add(i.toString()) + } + return set; +} + +fun ArrayList.toCalculate(): Set { + val set = hashSetOf() + for (i in this.toList()) { + set.add(i.toInt()) + } + return set; +} + +fun String.toCalculatePair(): Pair? { + if (this.isEmpty()) { + return null + } + val list = this.trim().replace("(", "") + .replace(")", "").split(",") + return list[0].toInt() to list[1].toInt() +} + +fun String.toCalculateTriple(): Triple? { + if (this.isEmpty()) { + return null + } + val list = this.trim().replace("(", "") + .replace(")", "").split(",") + return Triple(list[0].toInt(), list[1].toInt(), list[2].toInt()) +} + +public inline fun Map.unfold(action: (K, V) -> Unit): Unit { + for (element in this) action(element.key, element.value) +} + +public inline fun Map.unfold(action: (index: Int, num: Int, enable: Boolean) -> Unit): Unit { + for (element in this) action(element.key, element.value.name, element.value.enable) +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/ViewEx.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/ViewEx.kt new file mode 100644 index 0000000..d8ccda9 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/ViewEx.kt @@ -0,0 +1,187 @@ +package xyz.a1api.kchart.utils + +import android.os.Build +import android.text.Editable +import android.text.TextWatcher +import android.view.View +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.annotation.IdRes +import androidx.annotation.RequiresApi + +/** + * Created by Cat-x on 2019/10/31. + * For KChart + * Cat-x All Rights Reserved + */ +inline var View.isInvisible: Boolean + get() = visibility == View.INVISIBLE + set(value) { + visibility = if (value) View.INVISIBLE else View.VISIBLE + } + +inline var View.isVisible: Boolean + get() = visibility == View.VISIBLE + set(value) { + visibility = if (value) View.VISIBLE else View.GONE + } + + +/** + * Add an action which will be invoked before the text changed. + * + * @return the [TextWatcher] added to the TextView + */ +inline fun TextView.doBeforeTextChanged( + crossinline action: ( + text: CharSequence?, + start: Int, + count: Int, + after: Int + ) -> Unit +) = addTextChangedListener(beforeTextChanged = action) + +/** + * Add an action which will be invoked when the text is changing. + * + * @return the [TextWatcher] added to the TextView + */ +inline fun TextView.doOnTextChanged( + crossinline action: ( + text: CharSequence?, + start: Int, + count: Int, + after: Int + ) -> Unit +) = addTextChangedListener(onTextChanged = action) + +/** + * Add an action which will be invoked after the text changed. + * + * @return the [TextWatcher] added to the TextView + */ +inline fun TextView.doAfterTextChanged( + crossinline action: (text: Editable?) -> Unit +) = addTextChangedListener(afterTextChanged = action) + +/** + * Add a text changed listener to this TextView using the provided actions + * + * @return the [TextWatcher] added to the TextView + */ +inline fun TextView.addTextChangedListener( + crossinline beforeTextChanged: ( + text: CharSequence?, + start: Int, + count: Int, + after: Int + ) -> Unit = { _, _, _, _ -> }, + crossinline onTextChanged: ( + text: CharSequence?, + start: Int, + count: Int, + after: Int + ) -> Unit = { _, _, _, _ -> }, + crossinline afterTextChanged: (text: Editable?) -> Unit = {} +): TextWatcher { + val textWatcher = object : TextWatcher { + override fun afterTextChanged(s: Editable?) { + afterTextChanged.invoke(s) + } + + override fun beforeTextChanged(text: CharSequence?, start: Int, count: Int, after: Int) { + beforeTextChanged.invoke(text, start, count, after) + } + + override fun onTextChanged(text: CharSequence?, start: Int, before: Int, count: Int) { + onTextChanged.invoke(text, start, before, count) + } + } + addTextChangedListener(textWatcher) + + return textWatcher +} + + +var View.leftPadding: Int + inline get() = paddingLeft + set(value) = setPadding(value, paddingTop, paddingRight, paddingBottom) + +var View.topPadding: Int + inline get() = paddingTop + set(value) = setPadding(paddingLeft, value, paddingRight, paddingBottom) + +var View.rightPadding: Int + inline get() = paddingRight + set(value) = setPadding(paddingLeft, paddingTop, value, paddingBottom) + +var View.bottomPadding: Int + inline get() = paddingBottom + set(value) = setPadding(paddingLeft, paddingTop, paddingRight, value) + +/** + * Align the current View's start edge with another child's start edge. + */ +@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) +inline fun RelativeLayout.LayoutParams.alignStart(@IdRes id: Int): Unit = + addRule(RelativeLayout.ALIGN_START, id) + +/** + * Align the current View's end edge with another child's end edge. + */ +@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) +inline fun RelativeLayout.LayoutParams.alignEnd(@IdRes id: Int): Unit = + addRule(RelativeLayout.ALIGN_END, id) + +/** + * Align the current View's top edge with its parent's top edge. + */ +inline fun RelativeLayout.LayoutParams.alignParentTop() = addRule(RelativeLayout.ALIGN_PARENT_TOP) + +/** + * Align the current View's right edge with its parent's right edge. + */ +inline fun RelativeLayout.LayoutParams.alignParentRight() = + addRule(RelativeLayout.ALIGN_PARENT_RIGHT) + +/** + * Align the current View's bottom edge with its parent's bottom edge. + */ +inline fun RelativeLayout.LayoutParams.alignParentBottom() = + addRule(RelativeLayout.ALIGN_PARENT_BOTTOM) + +/** + * Align the current View's left edge with its parent's left edge. + */ +inline fun RelativeLayout.LayoutParams.alignParentLeft() = addRule(RelativeLayout.ALIGN_PARENT_LEFT) + +/** + * Center the child horizontally in its parent. + */ +inline fun RelativeLayout.LayoutParams.centerHorizontally() = + addRule(RelativeLayout.CENTER_HORIZONTAL) + +/** + * Center the child vertically in its parent. + */ +inline fun RelativeLayout.LayoutParams.centerVertically() = addRule(RelativeLayout.CENTER_VERTICAL) + +/** + * Center the child horizontally and vertically in its parent. + */ +inline fun RelativeLayout.LayoutParams.centerInParent() = addRule(RelativeLayout.CENTER_IN_PARENT) + +/** + * Align the current View's start edge with its parent's start edge. + */ +@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) +inline fun RelativeLayout.LayoutParams.alignParentStart(): Unit = + addRule(RelativeLayout.ALIGN_PARENT_START) + +/** + * Align the current View's end edge with its parent's end edge. + */ +@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) +inline fun RelativeLayout.LayoutParams.alignParentEnd(): Unit = + addRule(RelativeLayout.ALIGN_PARENT_END) + diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/XAlign.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/XAlign.kt new file mode 100644 index 0000000..3705e70 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/XAlign.kt @@ -0,0 +1,13 @@ +package xyz.a1api.kchart.utils + +/** + * x轴方向的对齐方式 + * Created by tifezh on 2018/4/2. + * For KChart + * Cat-x All Rights Reserved + */ +sealed class XAlign { + object LEFT : XAlign() + object CENTER : XAlign() + object RIGHT : XAlign() +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/utils/YAlign.kt b/kchart/src/main/java/xyz/a1api/kchart/utils/YAlign.kt new file mode 100644 index 0000000..93e5336 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/utils/YAlign.kt @@ -0,0 +1,10 @@ +package xyz.a1api.kchart.utils + +/** + * y轴方向的对齐方式 + */ +enum class YAlign { + TOP, + CENTER, + BOTTOM +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/view/BaseKChartView.kt b/kchart/src/main/java/xyz/a1api/kchart/view/BaseKChartView.kt new file mode 100644 index 0000000..f3846c4 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/view/BaseKChartView.kt @@ -0,0 +1,1002 @@ +package xyz.a1api.kchart.view + +import android.animation.ValueAnimator +import android.content.Context +import android.database.DataSetObserver +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.util.AttributeSet +import android.view.MotionEvent +import android.view.ScaleGestureDetector +import androidx.core.view.GestureDetectorCompat +import xyz.a1api.kchart.R +import xyz.a1api.kchart.base.IAdapter +import xyz.a1api.kchart.base.IChartDraw +import xyz.a1api.kchart.base.IDateTimeFormatter +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.entity.ICandle +import xyz.a1api.kchart.entity.IKLine +import xyz.a1api.kchart.formatter.TimeFormatter +import xyz.a1api.kchart.formatter.ValueFormatter +import xyz.a1api.kchart.utils.dip2px +import xyz.a1api.kchart.utils.getXAlignRight +import java.util.* + +/** + * k线图 + * Created by tian on 2016/5/3. + * For KChart + * Cat-x All Rights Reserved + */ +abstract class BaseKChartView : ScrollAndScaleView { + + protected var isRefreshing = false + + /** 选择绘制的子图*/ + var _secondDrawIndicator: String = "" + + private var mTranslateX = java.lang.Float.MIN_VALUE + + /** View绘制可用宽度*/ + var mChartWidth = 0 + private set + + private var mTopPadding: Int = 0 + + private var mBottomPadding: Int = 0 + + private var mDataLen = 0f + + private var mStartIndex = 0 + + private var mStopIndex = 0 + + private var mPointWidth = 6f + + /** 网格行数*/ + private var mGridRows = 4 + + /** 网格列数*/ + private var mGridColumns = 4 + + private val mGridPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mTextPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mTimeTextPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mBackgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private val mSelectedLinePaint = Paint(Paint.ANTI_ALIAS_FLAG) + + private var mSelectedIndex: Int = 0 + + private lateinit var mMainDraw: IChartDraw<*> + + private lateinit var mVolumeDraw: IChartDraw<*> + + protected var isShowChildDraw = true + + + private var mAdapter: IAdapter<*>? = null + + private val mDataSetObserver = object : DataSetObserver() { + override fun onChanged() { + mItemCount = getAdapter().getCount() + notifyChanged() + } + + override fun onInvalidated() { + mItemCount = getAdapter().getCount() + notifyChanged() + } + } + //当前点的个数 + private var mItemCount: Int = 0 + private var mChildDraw: IChartDraw<*>? = null + private val mChildDraws = ArrayList>>() + + private var mValueFormatter: IValueFormatter = ValueFormatter() + private var mDateTimeFormatter: IDateTimeFormatter? = null + + + private var mAnimator: ValueAnimator? = null + + private val mAnimationDuration: Long = 500 + + private var mOverScrollRange = 0f + + private var mOnSelectedChangedListener: OnSelectedChangedListener? = null + + protected open val mMainRect = Rect() + + private val mTabRect = Rect() + + protected open val mChildVolRect = Rect() + + protected open val mChildRect = Rect() + + private var mLineWidth: Float = 0.toFloat() + + constructor(context: Context) : super(context) { + init() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init() + } + + private fun init() { + setWillNotDraw(false) + mDetector = GestureDetectorCompat(context, this) + mScaleDetector = ScaleGestureDetector(context, this) + mTopPadding = resources.getDimension(R.dimen.chart_top_padding).toInt() + mBottomPadding = resources.getDimension(R.dimen.chart_bottom_padding).toInt() + + + mAnimator = ValueAnimator.ofFloat(0f, 1f) + mAnimator?.duration = mAnimationDuration + mAnimator?.addUpdateListener { invalidate() } + } + + + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { + super.onSizeChanged(w, h, oldw, oldh) + this.mChartWidth = w + setOverScrollRange(mChartWidth / mGridColumns.toFloat()) + if (mScrollX == 0) { + mScrollX = -(mChartWidth / mGridColumns.toFloat() - 0.5).toInt() + } + initRect(w, h) +// mKChartTabView.translationY = mMainRect.bottom.toFloat() + setTranslateXFromScrollX(mScrollX) + } + + private fun initRect(w: Int = width, h: Int = height) { + + val displayHeight = h - mTopPadding - mBottomPadding + val displayWidth = mChartWidth + + val mMainHeight = (displayHeight * if (isShowChildDraw) 0.66f else (0.66f + 0.17f)).toInt() + val mChildHeight = (displayHeight * 0.17f).toInt() + val mChildHeight2 = if (isShowChildDraw) (displayHeight * 0.17f).toInt() else 0 +// val mChildHeight = (displayHeight * 0.25f).toInt() + mMainRect.set(0, mTopPadding, displayWidth, mTopPadding + mMainHeight) +// mTabRect.set(0, mMainRect.bottom, mChartWidth, mMainRect.bottom + mMainChildSpace) + mChildVolRect.set(0, mMainRect.bottom, displayWidth, mMainRect.bottom + mChildHeight) + mChildRect.set(0, mChildVolRect.bottom, displayWidth, mChildVolRect.bottom + mChildHeight2) + } + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + canvas.drawColor(mBackgroundPaint.color) + if (mChartWidth == 0 || mMainRect.height() == 0 || mItemCount == 0) { + return + } + calculateValue() + drawGird(canvas) + mMainDraw.draw(canvas) + mVolumeDraw.draw(canvas) + if (isShowChildDraw) { + mChildDraw?.draw(canvas) + } + //画选择线 + if (isHadSelect) { + val point = getItem(mSelectedIndex) as ICandle + val x = translateXtoX(getX(mSelectedIndex)) + val y = mMainDraw.getY(point.getClosePrice()) + mMainRect.top + canvas.drawLine( + x, + mMainRect.top.toFloat(), + x, + mMainRect.bottom.toFloat(), + mSelectedLinePaint + ) + canvas.drawLine(0f, y, mChartWidth.toFloat(), y, mSelectedLinePaint) + canvas.drawLine( + x, + mChildVolRect.top.toFloat(), + x, + mChildVolRect.bottom.toFloat(), + mSelectedLinePaint + ) + canvas.drawLine( + x, + mChildRect.top.toFloat(), + x, + mChildRect.bottom.toFloat(), + mSelectedLinePaint + ) + val mSelectedPointPaint = Paint(Paint.ANTI_ALIAS_FLAG); + mSelectedPointPaint.strokeWidth = mSelectedLinePaint.strokeWidth * 3 + mSelectedPointPaint.color = mSelectedLinePaint.color + canvas.drawPoint(x, y, mSelectedPointPaint) + } + drawText(canvas) + } + + /** + * 解决text居中的问题 + */ + open fun fixTextY(y: Float): Float { + val fontMetrics = mTextPaint.fontMetrics + return y + (fontMetrics.descent - fontMetrics.ascent) / 2 - fontMetrics.descent + } + + /** + * 画表格 + * @param canvas + */ + private fun drawGird(canvas: Canvas) { + //-----------------------上方k线图------------------------ + //横向的grid + val rowSpace = (mMainRect.height() / mGridRows).toFloat() + for (i in 0..mGridRows) { + canvas.drawLine( + 0f, + rowSpace * i + mMainRect.top, + mChartWidth.toFloat(), + rowSpace * i + mMainRect.top, + mGridPaint + ) + } + //-----------------------下方子图------------------------ + canvas.drawLine( + 0f, + mChildRect.top.toFloat(), + mChartWidth.toFloat(), + mChildRect.top.toFloat(), + mGridPaint + ) + canvas.drawLine( + 0f, + mChildRect.bottom.toFloat(), + mChartWidth.toFloat(), + mChildRect.bottom.toFloat(), + mGridPaint + ) + +// canvas.drawLine(0f, mChildVolRect.top.toFloat(), mChartWidth.toFloat(), mChildVolRect.top.toFloat(), mGridPaint) +// canvas.drawLine(0f, mChildVolRect.bottom.toFloat(), mChartWidth.toFloat(), mChildVolRect.bottom.toFloat(), mGridPaint) + //纵向的grid + val columnSpace = (mChartWidth / mGridColumns).toFloat() + for (i in 0..mGridColumns) { + canvas.drawLine( + columnSpace * i, + mMainRect.top.toFloat(), + columnSpace * i, + mMainRect.bottom.toFloat(), + mGridPaint + ) + canvas.drawLine( + columnSpace * i, + mChildVolRect.top.toFloat(), + columnSpace * i, + mChildVolRect.bottom.toFloat(), + mGridPaint + ) + canvas.drawLine( + columnSpace * i, + mChildRect.top.toFloat(), + columnSpace * i, + mChildRect.bottom.toFloat(), + mGridPaint + ) + } + } + + /** + * 画文字 + * @param canvas + */ + private fun drawText(canvas: Canvas) { + val fm = mTextPaint.fontMetrics + val textHeight = fm.descent - fm.ascent + val baseLine = (textHeight - fm.bottom - fm.top) / 2 + //--------------画上方k线图的值------------- + if (mMainDraw != null) { + canvas.drawText( + formatValue(mMainDraw.getMaxValue()), + mTextPaint.getXAlignRight( + mChartWidth, + formatValue(mMainDraw.getMaxValue()) + ) - context.dip2px(5f), + baseLine + mMainRect.top, mTextPaint + ) + canvas.drawText( + formatValue(mMainDraw.getMinValue()), + mTextPaint.getXAlignRight( + mChartWidth, + formatValue(mMainDraw.getMinValue()) + ) - context.dip2px(5f), + mMainRect.bottom - textHeight + baseLine, + mTextPaint + ) + val rowValue = (mMainDraw.getMaxValue() - mMainDraw.getMinValue()) / mGridRows + val rowSpace = (mMainRect.height() / mGridRows).toFloat() + for (i in 1 until mGridRows) { + val text = formatValue(rowValue * (mGridRows - i) + mMainDraw.getMinValue()) + canvas.drawText( + text, + mTextPaint.getXAlignRight(mChartWidth, text) - context.dip2px(5f), + fixTextY(rowSpace * i + mMainRect.top), mTextPaint + ) + } + } + + mVolumeDraw.also { + // CanvasUtils.drawText(canvas, mTextPaint, 0f, mChildVolRect.top + baseLine, it.getValueFormatter().format(it.getMaxValue()), XAlign.RIGHT,YAlign.TOP) + canvas.drawText( + it.getValueFormatter().format(it.getMaxValue()), + mTextPaint.getXAlignRight( + mChartWidth, + it.getValueFormatter().format(it.getMaxValue()) + ) - context.dip2px(5f), + mChildVolRect.top + baseLine, + mTextPaint + ) + +// 成交量不需要最小值 +// canvas.drawText( +// it.getValueFormatter().format(it.getMinValue()), +// mTextPaint.getXAlignRight(mChartWidth, it.getValueFormatter().format(it.getMinValue())) - context.dip2px(5f), +// mChildVolRect.bottom.toFloat(), +// mTextPaint +// ) + } + + + //--------------画下方子图的值------------- + if (isShowChildDraw) { + mChildDraw?.also { + canvas.drawText( + it.getValueFormatter().format(it.getMaxValue()), + mTextPaint.getXAlignRight( + mChartWidth, + it.getValueFormatter().format(it.getMaxValue()) + ) - context.dip2px(5f), + mChildRect.top + baseLine, + mTextPaint + ) + canvas.drawText( + it.getValueFormatter().format(it.getMinValue()), + mTextPaint.getXAlignRight( + mChartWidth, + it.getValueFormatter().format(it.getMinValue()) + ) - context.dip2px(5f), + mChildRect.bottom.toFloat(), + mTextPaint + ) + } + } + + //--------------画时间--------------------- + val columnSpace = (mChartWidth / mGridColumns).toFloat() + var y = mChildRect.bottom + baseLine + + val startX = getX(mStartIndex) - mPointWidth / 2 + val stopX = getX(mStopIndex) + mPointWidth / 2 + + //分割线下方时间 + for (i in 1 until mGridColumns) { + val translateX = xToTranslateX(columnSpace * i) + if (translateX in startX..stopX) { + val index = indexOfTranslateX(translateX) + val text = formatDateTime(mAdapter?.getDate(index)) + canvas.drawText( + text, + columnSpace * i - mTimeTextPaint.measureText(text) / 2, + y, + mTimeTextPaint + ) + } + } + + //最左边时间 + var translateX = xToTranslateX(0f) + if (translateX >= startX && translateX <= stopX) { + val time = formatDateTime(getAdapter().getDate(mStartIndex)) + canvas.drawText(time, -mTextPaint.measureText(time) / 2, y, mTimeTextPaint) + } + //最右边时间 +// translateX = xToTranslateX(mChartWidth.toFloat()) +// if (translateX >= startX && translateX <= stopX) { +// val text = formatDateTime(getAdapter().getDate(mStopIndex)) +// canvas.drawText(text, mChartWidth - mTextPaint.measureText(text), y, mTimeTextPaint) +// } + + if (isHadSelect) { + val point = getItem(mSelectedIndex) as IKLine + val text = formatValue(point.getClosePrice()) + val r = textHeight / 2 + y = mMainDraw.getY(point.getClosePrice()) + mMainRect.top + val x: Float + if (translateXtoX(getX(mSelectedIndex)) < mChartWidth / 2) { + x = 0f + canvas.drawRect(x, y - r, mTextPaint.measureText(text), y + r, mBackgroundPaint) + } else { + x = mChartWidth - mTextPaint.measureText(text) + canvas.drawRect(x, y - r, mChartWidth.toFloat(), y + r, mBackgroundPaint) + } + canvas.drawText(text, x, fixTextY(y), mTextPaint) + } + } + + open fun dp2px(dp: Float): Int { + val scale = context.resources.displayMetrics.density + return (dp * scale + 0.5f).toInt() + } + + open fun sp2px(spValue: Float): Int { + val fontScale = context.resources.displayMetrics.scaledDensity + return (spValue * fontScale + 0.5f).toInt() + } + + /** + * 格式化值 + */ + open fun formatValue(value: Float): String { + return getValueFormatter().format(value) + } + + /** + * 重新计算并刷新线条 + */ + open fun notifyChanged() { + if (mItemCount != 0) { + mDataLen = (mItemCount - 1) * mPointWidth + checkAndFixScrollX() + setTranslateXFromScrollX(mScrollX) + } else { + scrollX = 0 + } + invalidate() + } + + override fun calculateSelectedX(x: Float) { + //如果刷新,则不进行计算 + if (isRefreshing || getAdapter().getData().isEmpty()) { + return + } + val lastIndex = mSelectedIndex + mSelectedIndex = indexOfTranslateX(xToTranslateX(x)) + if (mSelectedIndex < mStartIndex) { + mSelectedIndex = mStartIndex + } + if (mSelectedIndex > mStopIndex) { + mSelectedIndex = mStopIndex + } + if (lastIndex != mSelectedIndex) { + onSelectedChanged(this, getItem(mSelectedIndex), mSelectedIndex) + } + } + + override fun onLongPress(event: MotionEvent) { + super.onLongPress(event) + invalidate() + } + + override fun onScrollChanged(l: Int, t: Int, oldl: Int, oldt: Int) { + super.onScrollChanged(l, t, oldl, oldt) + setTranslateXFromScrollX(mScrollX) + } + + override fun onScaleChanged(scale: Float, oldScale: Float) { + checkAndFixScrollX() + setTranslateXFromScrollX(mScrollX) + super.onScaleChanged(scale, oldScale) + } + + /** + * 计算当前的显示区域 + */ + private fun calculateValue() { + if (!isHadSelect) { + mSelectedIndex = -1 + } + mStartIndex = indexOfTranslateX(xToTranslateX(0f)) + mStopIndex = indexOfTranslateX(xToTranslateX(mChartWidth.toFloat())) + + mMainDraw.calculate(mStartIndex, mStopIndex) + mVolumeDraw.calculate(mStartIndex, mStopIndex) + if (isShowChildDraw) { + mChildDraw?.calculate(mStartIndex, mStopIndex) + } + + mAnimator?.let { + if (it.isRunning) { + val value = it.animatedValue as Float + mStopIndex = mStartIndex + Math.round(value * (mStopIndex - mStartIndex)) + } + } + + } + + /** + * 获取平移的最小值 + * @return + */ + private fun getMinTranslateX(): Float { + return if (!isFullScreen()) { + getMaxTranslateX() + } else -mDataLen + mChartWidth / mScaleX - mPointWidth / 2 + } + + /** + * 获取平移的最大值 + * @return + */ + private fun getMaxTranslateX(): Float { + return mPointWidth / 2 + } + + override fun getMinScrollX(): Int { + return (-(mOverScrollRange / mScaleX)).toInt() + } + + override fun getMaxScrollX(): Int { + return Math.round(getMaxTranslateX() - getMinTranslateX()) + } + + open fun indexOfTranslateX(translateX: Float): Int { + return indexOfTranslateX(translateX, 0, mItemCount - 1) + } + + /** + * 根据索引获取实体 + * @param position 索引值 + * @return + */ + open fun getItem(_position: Int): Any { + var position = _position + if (position < 0) { + position = 0 + } + return mAdapter?.getItem(position) ?: throw NullPointerException("mAdapter can't be null") + } + + /** + * 根据索引索取x坐标 + * @param position 索引值 + */ + open fun getX(position: Int): Float { + return position * mPointWidth + } + + /** + * 获取适配器 + * @return + */ + open fun getAdapter(): IAdapter<*> { + return requireNotNull(mAdapter) { "mAdapter is can't be null" } + } + + /** + * 设置子图的绘制方法 + * @param position + */ + private fun setChildDraw(position: Int) { + secondDrawIndicator = mChildDraws[position].first + } + + var secondDrawIndicator: String + get() { + return _secondDrawIndicator + } + set(value) { + if (value.isEmpty()) { + isShowChildDraw = false + } else { + mChildDraws.forEachIndexed { index, pair -> + if (pair.first == value) { + if (isShowChildDraw && _secondDrawIndicator == value) { + //如果已经显示,同时显示的子图就是当前,则不再次重绘 + return + } + isShowChildDraw = true + this.mChildDraw = pair.second + _secondDrawIndicator = value + } + } + } + initRect(); + invalidate() + } + + open fun setSecondDraw(name: String) { + + } + + /** + * 给子区域添加画图方法 + * @param name 显示的文字标签 + * @param childDraw IChartDraw + */ + open fun addChildDraw(name: String, childDraw: IChartDraw<*>) { + mChildDraws.add(name to childDraw) + } + + /** + * scrollX 转换为 TranslateX + * @param scrollX + */ + private fun setTranslateXFromScrollX(scrollX: Int) { + mTranslateX = scrollX + getMinTranslateX() + } + + /** + * 获取ValueFormatter + * @return + */ + open fun getValueFormatter(): IValueFormatter { + return mValueFormatter + } + + /** + * 设置ValueFormatter + * @param valueFormatter value格式化器 + */ + open fun setValueFormatter(valueFormatter: IValueFormatter) { + this.mValueFormatter = valueFormatter + } + + /** + * 获取DatetimeFormatter + * @return 时间格式化器 + */ + open fun getDateTimeFormatter(): IDateTimeFormatter? { + return mDateTimeFormatter + } + + /** + * 设置dateTimeFormatter + * @param dateTimeFormatter 时间格式化器 + */ + open fun setDateTimeFormatter(dateTimeFormatter: IDateTimeFormatter) { + mDateTimeFormatter = dateTimeFormatter + } + + /** + * 格式化时间 + * @param date + */ + open fun formatDateTime(date: String?): String { + return getDateTimeFormatter()?.format(date) + ?: { setDateTimeFormatter(TimeFormatter()); TimeFormatter().format(date) }() + } + + /** + * 获取主区域的 IChartDraw + * @return IChartDraw + */ + open fun getMainDraw(): IChartDraw<*> { + return mMainDraw + } + + /** + * 设置主区域的 IChartDraw + * @param mainDraw IChartDraw + */ + open fun setMainDraw(mainDraw: IChartDraw<*>) { + mMainDraw = mainDraw + } + + open fun setVolumeDraw(volumeDraw: IChartDraw<*>) { + mVolumeDraw = volumeDraw + } + + + /** + * 二分查找当前值的index + * @return + */ + open fun indexOfTranslateX(translateX: Float, start: Int, end: Int): Int { + if (end == start) { + return start + } + if (end - start == 1) { + val startValue = getX(start) + val endValue = getX(end) + return if (Math.abs(translateX - startValue) < Math.abs(translateX - endValue)) start else end + } + val mid = start + (end - start) / 2 + val midValue = getX(mid) + return if (translateX < midValue) { + indexOfTranslateX(translateX, start, mid) + } else if (translateX > midValue) { + indexOfTranslateX(translateX, mid, end) + } else { + mid + } + } + + /** + * 设置数据适配器 + */ + open fun setAdapter(adapter: IAdapter<*>) { + if (mAdapter != null) { + mAdapter?.unregisterDataSetObserver(mDataSetObserver) + } + mAdapter = adapter + if (mAdapter != null) { + mAdapter?.registerDataSetObserver(mDataSetObserver) + mItemCount = mAdapter?.getCount() ?: 0 + } else { + mItemCount = 0 + } + notifyChanged() + } + + /** + * 开始动画 + */ + open fun startAnimation() { + mAnimator?.start() + } + + /** + * 设置动画时间 + */ + open fun setAnimationDuration(duration: Long) { + mAnimator?.duration = duration + } + + /** + * 设置表格行数 + */ + open fun setGridRows(gridRows: Int) { + if (gridRows < 1) { + error("gridRows must be greaterOrEqualTo 1") + } + mGridRows = gridRows + } + + /** + * 设置表格列数 + */ + open fun setGridColumns(gridColumns: Int) { + if (gridColumns < 1) { + error("gridColumns must be greaterOrEqualTo 1") + } + mGridColumns = gridColumns + } + + /** + * view中的x转化为TranslateX + * @param x + * @return + */ + open fun xToTranslateX(x: Float): Float { + return -mTranslateX + x / mScaleX + } + + /** + * translateX转化为view中的x + * @param translateX + * @return + */ + open fun translateXtoX(translateX: Float): Float { + return (translateX + mTranslateX) * mScaleX + } + + /** + * 获取上方padding + */ + open fun getTopPadding(): Float { + return mTopPadding.toFloat() + } + + + /** + * 是否长按 + */ + open fun isLongPressM(): Boolean { + return isLongPress + } + + + /** + * 获取选择索引 + */ + open fun getSelectedIndex(): Int { + return mSelectedIndex + } + + open fun getChildRect(): Rect { + return mChildRect + } + + /** + * 设置选择监听 + */ + open fun setOnSelectedChangedListener(l: OnSelectedChangedListener) { + this.mOnSelectedChangedListener = l + } + + open fun onSelectedChanged(view: BaseKChartView, point: Any, index: Int) { + this.mOnSelectedChangedListener?.onSelectedChanged(view, point, index) + } + + /** + * 数据是否充满屏幕 + * + * @return + */ + open fun isFullScreen(): Boolean { + return mDataLen >= mChartWidth / mScaleX + } + + /** + * 设置超出右方后可滑动的范围 + */ + open fun setOverScrollRange(_overScrollRange: Float) { + var overScrollRange = _overScrollRange + if (overScrollRange < 0) { + overScrollRange = 0f + } + mOverScrollRange = overScrollRange + } + + /** + * 设置上方padding + * @param topPadding + */ + open fun setTopPadding(topPadding: Int) { + mTopPadding = topPadding + } + + /** + * 设置下方padding + * @param bottomPadding + */ + open fun setBottomPadding(bottomPadding: Int) { + mBottomPadding = bottomPadding + } + + /** + * 设置表格线宽度 + */ + open fun setGridLineWidth(width: Float) { + mGridPaint.strokeWidth = width + } + + /** + * 设置表格线颜色 + */ + open fun setGridLineColor(color: Int) { + mGridPaint.color = color + } + + /** + * 设置选择线宽度 + */ + open fun setSelectedLineWidth(width: Float) { + mSelectedLinePaint.strokeWidth = width + } + + /** + * 设置表格线颜色 + */ + open fun setSelectedLineColor(color: Int) { + mSelectedLinePaint.color = color + } + + /** + * 设置文字颜色 + */ + open fun setTextColor(color: Int) { + mTextPaint.color = color + } + + /** + * 设置文字大小 + */ + open fun setTextSize(textSize: Float) { + mTextPaint.textSize = textSize + } + + open fun setTimeTextColor(color: Int) { + mTimeTextPaint.color = color + } + + open fun setTimeTextSize(textSize: Float) { + mTimeTextPaint.textSize = textSize + } + + /** + * 设置背景颜色 + */ + override fun setBackgroundColor(color: Int) { + mBackgroundPaint.color = color + } + + + /** + * 选中点变化时的监听 + */ + interface OnSelectedChangedListener { + /** + * 当选点中变化时 + * @param view 当前view + * @param point 选中的点 + * @param index 选中点的索引 + */ + fun onSelectedChanged(view: BaseKChartView, point: Any, index: Int) + } + + /** + * 获取文字大小 + */ + open fun getTextSize(): Float { + return mTextPaint.textSize + } + + /** + * 获取曲线宽度 + */ + open fun getLineWidth(): Float { + return mLineWidth + } + + /** + * 设置曲线的宽度 + */ + open fun setLineWidth(lineWidth: Float) { + mLineWidth = lineWidth + } + + /** + * 设置每个点的宽度 + */ + open fun setPointWidth(pointWidth: Float) { + mPointWidth = pointWidth + } + + open fun getGridPaint(): Paint { + return mGridPaint + } + + open fun getTextPaint(): Paint { + return mTextPaint + } + + open fun getBackgroundPaint(): Paint { + return mBackgroundPaint + } + + open fun getSelectedLinePaint(): Paint { + return mSelectedLinePaint + } + + /** + * 绘制区域显示的开始索引值 + */ + open fun getStartIndex(): Int { + return mStartIndex + } + + /** + * 绘制区域显示的结束索引值 + */ + open fun getStopIndex(): Int { + return mStopIndex + } + + open fun getTranslateX(): Float { + return mTranslateX + } + + open fun translateX(): Float { + return mScaleX * mTranslateX + } + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/view/KChartView.kt b/kchart/src/main/java/xyz/a1api/kchart/view/KChartView.kt new file mode 100644 index 0000000..a50c82e --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/view/KChartView.kt @@ -0,0 +1,715 @@ +package xyz.a1api.kchart.view + +import android.annotation.SuppressLint +import android.content.Context +import android.util.AttributeSet +import android.view.View +import android.widget.ProgressBar +import android.widget.RelativeLayout +import androidx.annotation.ColorRes +import androidx.annotation.DimenRes +import androidx.core.content.ContextCompat +import kotlinx.coroutines.* +import xyz.a1api.kchart.R +import xyz.a1api.kchart.draw.* +import xyz.a1api.kchart.entity.IKLine +import xyz.a1api.kchart.entity.IKMLine + +/** + * k线图 + * Created by tian on 2016/5/20. + * For KChart + * Cat-x All Rights Reserved + */ +open class KChartView : BaseKChartView { + + internal open var mProgressBar: ProgressBar? = null + private var isLoadMoreEnd = false + private var mLastScrollEnable: Boolean = false + private var mLastScaleEnable: Boolean = false + + private var mRefreshListener: KChartRefreshListener? = null + var mJob: Job? = null + protected set + + private lateinit var mMACDDraw: MACDDraw + private lateinit var mBOLLDraw: BOLLDraw + private lateinit var mRSIDraw: RSIDraw + private lateinit var mWRDraw: WRDraw + private lateinit var mMainDraw: MainDraw + private lateinit var mKDJDraw: KDJDraw + private lateinit var mVolumeDraw: VolumeDraw + private lateinit var mVolumeMinDraw: VolumeMinDraw + private lateinit var mMinuteChartDraw: MinuteChartDraw + + constructor(context: Context) : this(context, null) + + constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initView() + initAttrs(attrs) + } + + open fun initProgressBar() { + mProgressBar = ProgressBar(context) + val layoutParams = RelativeLayout.LayoutParams(dp2px(50f), dp2px(50f)) + layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT) + addView(mProgressBar, layoutParams) + mProgressBar?.visibility = View.GONE + } + + private fun initView() { + initProgressBar() + mVolumeDraw = VolumeDraw(mChildVolRect, this) + mVolumeMinDraw = VolumeMinDraw(mChildVolRect, this) + mMACDDraw = MACDDraw(getChildRect(), this) + mKDJDraw = KDJDraw(getChildRect(), this) + mRSIDraw = RSIDraw(getChildRect(), this) + mWRDraw = WRDraw(getChildRect(), this) + mBOLLDraw = BOLLDraw(getChildRect(), this) + mMinuteChartDraw = MinuteChartDraw(mMainRect, this) + mMainDraw = MainDraw(mMainRect, this) +// addChildDraw("VOL", mVolumeDraw) + addChildDraw(IKLine.ISecondDrawConfig.typeMACD, mMACDDraw) + addChildDraw(IKLine.ISecondDrawConfig.typeKDJ, mKDJDraw) + addChildDraw(IKLine.ISecondDrawConfig.typeRSI, mRSIDraw) + addChildDraw(IKLine.ISecondDrawConfig.typeWR, mWRDraw) +// addChildDraw("BOLL", mBOLLDraw) + addChildDraw(IKLine.ISecondDrawConfig.typeMCV, mMinuteChartDraw) +// setVolumeDraw(mVolumeDraw) +// setMainDraw(mMainDraw) + useMainOrMin(IKMLine.ITimeStepConfig.useMainOrMin, false) + } + + @SuppressLint("Recycle") + private fun initAttrs(attrs: AttributeSet?) { + val array = context.obtainStyledAttributes(attrs, R.styleable.KChartView) + array?.also { + try { + //public + setPointWidth( + it.getDimension( + R.styleable.KChartView_kc_point_width, + getDimension(R.dimen.chart_point_width) + ) + ) + setTextSize( + it.getDimension( + R.styleable.KChartView_kc_text_size, + getDimension(R.dimen.chart_text_size) + ) + ) + setTextColor( + it.getColor( + R.styleable.KChartView_kc_text_color, + getColor(R.color.chart_text) + ) + ) + setTimeTextSize( + it.getDimension( + R.styleable.KChartView_kc_text_size, + getDimension(R.dimen.chart_text_time_size) + ) + ) + setTimeTextColor( + it.getColor( + R.styleable.KChartView_kc_text_color, + getColor(R.color.chart_text) + ) + ) + setLineWidth( + it.getDimension( + R.styleable.KChartView_kc_line_width, + getDimension(R.dimen.chart_line_width) + ) + ) + setCandleTextBackground( + it.getColor( + R.styleable.KChartView_kc_background_color, + getColor(R.color.chart_background) + ) + ) + setBackgroundColor( + it.getColor( + R.styleable.KChartView_kc_background_color, + getColor(R.color.chart_background) + ) + ) + setSelectedLineColor( + it.getColor( + R.styleable.KChartView_kc_selected_line_color, + getColor(R.color.chart_text) + ) + ) + setSelectedLineWidth( + it.getDimension( + R.styleable.KChartView_kc_selected_line_width, + getDimension(R.dimen.chart_line_width) + ) + ) + setGridLineWidth( + it.getDimension( + R.styleable.KChartView_kc_grid_line_width, + getDimension(R.dimen.chart_grid_line_width) + ) + ) + setGridLineColor( + it.getColor( + R.styleable.KChartView_kc_grid_line_color, + getColor(R.color.chart_grid_line) + ) + ) + //macd + setMACDWidth( + it.getDimension( + R.styleable.KChartView_kc_macd_width, + getDimension(R.dimen.chart_candle_width) + ) + ) + setDIFColor( + it.getColor( + R.styleable.KChartView_kc_dif_color, + getColor(R.color.chart_ma1) + ) + ) + setDEAColor( + it.getColor( + R.styleable.KChartView_kc_dea_color, + getColor(R.color.chart_ma2) + ) + ) + setMACDColor( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma3) + ) + ) + //kdj + setKColor( + it.getColor( + R.styleable.KChartView_kc_dif_color, + getColor(R.color.chart_ma1) + ) + ) + setDColor( + it.getColor( + R.styleable.KChartView_kc_dea_color, + getColor(R.color.chart_ma2) + ) + ) + setJColor( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma3) + ) + ) + //rsi + setRSI1Color( + it.getColor( + R.styleable.KChartView_kc_dif_color, + getColor(R.color.chart_ma1) + ) + ) + setRSI2Color( + it.getColor( + R.styleable.KChartView_kc_dea_color, + getColor(R.color.chart_ma2) + ) + ) + setRSI3Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma3) + ) + ) + //wr + + setWR1Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma1) + ) + ) + setWR2Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma2) + ) + ) + setWR3Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma3) + ) + ) + //boll + setUpColor( + it.getColor( + R.styleable.KChartView_kc_dif_color, + getColor(R.color.chart_ma1) + ) + ) + setMbColor( + it.getColor( + R.styleable.KChartView_kc_dea_color, + getColor(R.color.chart_ma2) + ) + ) + setDnColor( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma3) + ) + ) + //main + setVolMa5Color( + it.getColor( + R.styleable.KChartView_kc_dif_color, + getColor(R.color.chart_ma1) + ) + ) + setVolMa10Color( + it.getColor( + R.styleable.KChartView_kc_dea_color, + getColor(R.color.chart_ma2) + ) + ) + + setMa1Color( + it.getColor( + R.styleable.KChartView_kc_dif_color, + getColor(R.color.chart_ma1) + ) + ) + setMa2Color( + it.getColor( + R.styleable.KChartView_kc_dea_color, + getColor(R.color.chart_ma2) + ) + ) + setMa3Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma3) + ) + ) + setMa4Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma4) + ) + ) + setMa5Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma5) + ) + ) + setMa6Color( + it.getColor( + R.styleable.KChartView_kc_macd_color, + getColor(R.color.chart_ma6) + ) + ) + + setCandleWidth( + it.getDimension( + R.styleable.KChartView_kc_candle_width, + getDimension(R.dimen.chart_candle_width) + ) + ) + setCandleLineWidth( + it.getDimension( + R.styleable.KChartView_kc_candle_line_width, + getDimension(R.dimen.chart_candle_line_width) + ) + ) + setSelectorBackgroundColor( + it.getColor( + R.styleable.KChartView_kc_selector_background_color, + getColor(R.color.chart_selector) + ) + ) + setSelectorTextSize( + it.getDimension( + R.styleable.KChartView_kc_selector_text_size, + getDimension(R.dimen.chart_selector_text_size) + ) + ) + setCandleSolid(it.getBoolean(R.styleable.KChartView_kc_candle_solid, true)) + //tab + + } catch (e: Exception) { + e.printStackTrace() + } finally { + it.recycle() + } + } + } + + private fun getDimension(@DimenRes resId: Int): Float { + return resources.getDimension(resId) + } + + private fun getColor(@ColorRes resId: Int): Int { + return ContextCompat.getColor(context, resId) + } + + override fun onLeftSide() { + showLoading(true, true) + } + + override fun onRightSide() {} + + open fun showLoading(isLoadMore: Boolean = false, needDelay: Boolean = false) { + if (!isLoadMoreEnd && !isRefreshing) { + isRefreshing = true + if (needDelay) { + GlobalScope.launch(Dispatchers.Main) { + mJob?.cancel() + mJob = launch(Dispatchers.Main) { + delay(500) + mProgressBar?.visibility = View.VISIBLE + } + } + } else { + mProgressBar?.visibility = View.VISIBLE + } + + if (isLoadMore) { + mRefreshListener?.onLoadMoreBegin(this) + } + mLastScaleEnable = isScaleEnable() + mLastScrollEnable = isScrollEnable() + super.setScrollEnable(false) + super.setScaleEnable(false) + } + } + + private fun hideLoading() { + mProgressBar?.visibility = View.GONE + super.setScrollEnable(mLastScrollEnable) + super.setScaleEnable(mLastScaleEnable) + } + + /** + * 刷新完成 + */ + open fun refreshComplete() { + isRefreshing = false + hideLoading() + } + + /** + * 刷新完成,没有数据 + */ + open fun refreshEnd() { + isLoadMoreEnd = true + isRefreshing = false + hideLoading() + } + + /** + * 重置加载更多 + */ + open fun resetLoadMoreEnd() { + isLoadMoreEnd = false + } + + interface KChartRefreshListener { + /** + * 加载更多 + * @param chart + */ + fun onLoadMoreBegin(chart: KChartView) + } + + override fun setScaleEnable(scaleEnable: Boolean) { + if (isRefreshing) { + throw IllegalStateException("请勿在刷新状态设置属性") + } + super.setScaleEnable(scaleEnable) + + } + + override fun setScrollEnable(scrollEnable: Boolean) { + if (isRefreshing) { + throw IllegalStateException("请勿在刷新状态设置属性") + } + super.setScrollEnable(scrollEnable) + } + + /** + * 设置DIF颜色 + */ + open fun setDIFColor(color: Int) { + mMACDDraw.setDIFColor(color) + } + + /** + * 设置DEA颜色 + */ + open fun setDEAColor(color: Int) { + mMACDDraw.setDEAColor(color) + } + + /** + * 设置MACD颜色 + */ + open fun setMACDColor(color: Int) { + mMACDDraw.setMACDColor(color) + } + + /** + * 设置MACD的宽度 + * @param MACDWidth + */ + open fun setMACDWidth(MACDWidth: Float) { + mMACDDraw.setMACDWidth(MACDWidth) + } + + /** + * 设置up颜色 + */ + open fun setUpColor(color: Int) { + mBOLLDraw.setUpColor(color) + mMainDraw.setUpColor(color) + } + + /** + * 设置mb颜色 + * @param color + */ + open fun setMbColor(color: Int) { + mBOLLDraw.setMbColor(color) + mMainDraw.setMbColor(color) + } + + /** + * 设置dn颜色 + */ + open fun setDnColor(color: Int) { + mBOLLDraw.setDnColor(color) + mMainDraw.setDnColor(color) + } + + /** + * 设置K颜色 + */ + open fun setKColor(color: Int) { + mKDJDraw.setKColor(color) + } + + /** + * 设置D颜色 + */ + open fun setDColor(color: Int) { + mKDJDraw.setDColor(color) + } + + /** + * 设置J颜色 + */ + open fun setJColor(color: Int) { + mKDJDraw.setJColor(color) + } + + open fun setCandleTextBackground(color: Int) { + mMainDraw.setTextBackgroundColor(color) + } + + open fun setVolMa5Color(color: Int) { + mVolumeDraw.setMa5Color(color) + } + + open fun setVolMa10Color(color: Int) { + mVolumeDraw.setMa10Color(color) + } + + /** + * 设置ma1颜色 + * @param color + */ + open fun setMa1Color(color: Int) { + mMainDraw.setMa1Color(color) + } + + /** + * 设置ma2颜色 + * @param color + */ + open fun setMa2Color(color: Int) { + mMainDraw.setMa2Color(color) + } + + /** + * 设置ma3颜色 + * @param color + */ + open fun setMa3Color(color: Int) { + mMainDraw.setMa3Color(color) + } + + /** + * 设置ma4颜色 + * @param color + */ + open fun setMa4Color(color: Int) { + mMainDraw.setMa4Color(color) + } + + /** + * 设置ma5颜色 + * @param color + */ + open fun setMa5Color(color: Int) { + mMainDraw.setMa5Color(color) + } + + /** + * 设置ma6颜色 + * @param color + */ + open fun setMa6Color(color: Int) { + mMainDraw.setMa6Color(color) + } + + /** + * 设置选择器文字大小 + * @param textSize + */ + open fun setSelectorTextSize(textSize: Float) { + mMainDraw.setSelectorTextSize(textSize) + } + + /** + * 设置选择器背景 + * @param color + */ + open fun setSelectorBackgroundColor(color: Int) { + mMainDraw.setSelectorBackgroundColor(color) + } + + /** + * 设置蜡烛宽度 + * @param candleWidth + */ + open fun setCandleWidth(candleWidth: Float) { + mMainDraw.setCandleWidth(candleWidth) + } + + /** + * 设置蜡烛线宽度 + * @param candleLineWidth + */ + open fun setCandleLineWidth(candleLineWidth: Float) { + mMainDraw.setCandleLineWidth(candleLineWidth) + } + + /** + * 蜡烛是否空心 + */ + open fun setCandleSolid(candleSolid: Boolean) { + mMainDraw.setCandleSolid(candleSolid) + } + + open fun setRSI1Color(color: Int) { + mRSIDraw.setRSI1Color(color) + } + + open fun setRSI2Color(color: Int) { + mRSIDraw.setRSI2Color(color) + } + + open fun setRSI3Color(color: Int) { + mRSIDraw.setRSI3Color(color) + } + + open fun setWR1Color(color: Int) { + mWRDraw.setR1Color(color) + } + + open fun setWR2Color(color: Int) { + mWRDraw.setR2Color(color) + } + + open fun setWR3Color(color: Int) { + mWRDraw.setR3Color(color) + } + + override fun setTextSize(textSize: Float) { + super.setTextSize(textSize) + mMainDraw.setMATextSize(textSize) + mMainDraw.setBOLLTextSize(textSize) + mBOLLDraw.setTextSize(textSize) + mRSIDraw.setTextSize(textSize) + mWRDraw.setTextSize(textSize) + mMACDDraw.setTextSize(textSize) + mKDJDraw.setTextSize(textSize) + mVolumeDraw.setTextSize(textSize) + } + + override fun setLineWidth(lineWidth: Float) { + super.setLineWidth(lineWidth) + mMainDraw.setMALineWidth(lineWidth) + mMainDraw.setBOLLLineWidth(lineWidth) + mBOLLDraw.setLineWidth(lineWidth) + mRSIDraw.setLineWidth(lineWidth) + mWRDraw.setLineWidth(lineWidth) + mMACDDraw.setLineWidth(lineWidth) + mKDJDraw.setLineWidth(lineWidth) + mVolumeDraw.setLineWidth(lineWidth) + } + + override fun setTextColor(color: Int) { + super.setTextColor(color) + mMainDraw.setSelectorTextColor(color) + } + + /** + * 设置刷新监听 + */ + open fun setRefreshListener(refreshListener: KChartRefreshListener) { + mRefreshListener = refreshListener + } + + var mainDrawIndicator: String + get() { + return mMainDraw.mainDrawIndicator + } + set(value) { + if (mMainDraw.mainDrawIndicator != value) { + mMainDraw.mainDrawIndicator = value + invalidate() + } + } + + + /** + * 使用蜡烛图或者分时图,需要注意的是吗,如果KChartView还未完成初始化的时候,需要将参数isNeedCheck设置成false,来避免空指针 + * @param isMain true表示使用蜡烛图,false表示使用分时图 + * @param isNeedCheck 是否检查当前主视图和设置的是否一致,减少重绘 + */ + fun useMainOrMin(isMain: Boolean, isNeedCheck: Boolean = true) { + if (isMain) { + if (!isNeedCheck || getMainDraw() != mMainDraw) { + setMainDraw(mMainDraw) + setVolumeDraw(mVolumeDraw) + invalidate() + } + } else { + if (!isNeedCheck || getMainDraw() != mMinuteChartDraw) { + setMainDraw(mMinuteChartDraw) + setVolumeDraw(mVolumeMinDraw) + invalidate() + } + } + + } + +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/view/MinuteChartView.kt b/kchart/src/main/java/xyz/a1api/kchart/view/MinuteChartView.kt new file mode 100644 index 0000000..70f44ed --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/view/MinuteChartView.kt @@ -0,0 +1,611 @@ +package xyz.a1api.kchart.view + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.util.AttributeSet +import android.view.GestureDetector +import android.view.MotionEvent +import android.view.View +import androidx.core.content.ContextCompat +import androidx.core.view.GestureDetectorCompat +import xyz.a1api.kchart.R +import xyz.a1api.kchart.base.IValueFormatter +import xyz.a1api.kchart.entity.IMinuteLine +import xyz.a1api.kchart.formatter.BigValueFormatter +import xyz.a1api.kchart.utils.DateUtil +import java.util.* + +/** + * 分时图 + * 简单的分时图示例 更丰富的需求可能需要在此基础上再作修改 + */ +class MinuteChartView : View, GestureDetector.OnGestureListener { + + private var mHeight = 0 + private var mWidth = 0 + private var mVolumeHeight = 100 + private var mTopPadding = 15 + private var mBottomPadding = 15 + private val mGridRows = 6 + private val GridColumns = 5 + private val mAvgPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mGridPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mTextPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mPricePaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mBackgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG) + private val mVolumePaintRed = Paint(Paint.ANTI_ALIAS_FLAG) + private val mVolumePaintGreen = Paint(Paint.ANTI_ALIAS_FLAG) + private var mBackgroundColor: Int = 0 + private var mValueMin: Float = 0.toFloat() + private var mValueMax: Float = 0.toFloat() + private var mVolumeMax: Float = 0.toFloat() + private var mValueStart: Float = 0.toFloat() + private var mScaleY = 1f + private var mVolumeScaleY = 1f + private var mTextSize = 10f + private var isLongPress = false + private var selectedIndex: Int = 0 + private lateinit var mDetector: GestureDetectorCompat + private val mPoints = ArrayList() + private var mFirstStartTime: Date? = null + private var mFirstEndTime: Date? = null + private var mSecondStartTime: Date? = null + private var mSecondEndTime: Date? = null + private var mTotalTime: Long = 0 + private var mPointWidth: Float = 0.toFloat() + + private var mVolumeFormatter: IValueFormatter? = null + + /** + * 获取最大能有多少个点 + */ + private val maxPointCount: Long + get() = mTotalTime / ONE_MINUTE + + /** + * 获取点的个数 + */ + private val itemSize: Int + get() = mPoints.size + + constructor(context: Context) : super(context) { + init() + } + + constructor(context: Context, attrs: AttributeSet) : super(context, attrs) { + init() + } + + constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init() + } + + private fun init() { + mDetector = GestureDetectorCompat(context, this) + mTopPadding = dp2px(mTopPadding.toFloat()) + mBottomPadding = dp2px(mBottomPadding.toFloat()) + mTextSize = sp2px(mTextSize).toFloat() + mVolumeHeight = dp2px(mVolumeHeight.toFloat()) + mGridPaint.color = Color.parseColor("#353941") + mGridPaint.strokeWidth = dp2px(1f).toFloat() + mTextPaint.color = Color.parseColor("#B1B2B6") + mTextPaint.textSize = mTextSize + mTextPaint.strokeWidth = dp2px(0.5f).toFloat() + mAvgPaint.color = Color.parseColor("#90A901") + mAvgPaint.strokeWidth = dp2px(0.5f).toFloat() + mAvgPaint.textSize = mTextSize + mPricePaint.color = Color.parseColor("#FF6600") + mPricePaint.strokeWidth = dp2px(0.5f).toFloat() + mPricePaint.textSize = mTextSize + mVolumePaintGreen.color = ContextCompat.getColor(context, R.color.chart_green) + mVolumePaintRed.color = ContextCompat.getColor(context, R.color.chart_red) + mBackgroundColor = Color.parseColor("#202326") + mBackgroundPaint.color = mBackgroundColor + + mVolumeFormatter = BigValueFormatter() + } + + override fun onTouchEvent(event: MotionEvent): Boolean { + this.mDetector.onTouchEvent(event) + when (event.action and MotionEvent.ACTION_MASK) { + MotionEvent.ACTION_DOWN -> { + } + MotionEvent.ACTION_MOVE -> + //一个点的时候滑动 + if (event.pointerCount == 1) { + //长按之后移动 + if (isLongPress) { + calculateSelectedX(event.x) + invalidate() + } + } + MotionEvent.ACTION_UP -> { + isLongPress = false + invalidate() + } + MotionEvent.ACTION_CANCEL -> { + isLongPress = false + invalidate() + } + } + return true + } + + private fun calculateSelectedX(x: Float) { + selectedIndex = (x * 1f / getX(mPoints.size - 1) * (mPoints.size - 1) + 0.5f).toInt() + if (selectedIndex < 0) { + selectedIndex = 0 + } + if (selectedIndex > mPoints.size - 1) { + selectedIndex = mPoints.size - 1 + } + } + + /** + * 根据索引获取x的值 + */ + private fun getX(position: Int): Float { + val date = /*mPoints[position].getDate()*/Date() + return if (mSecondStartTime != null && date.time >= mSecondStartTime!!.time) { + 1f * (date.time - mSecondStartTime!!.time + 60000 + + mFirstEndTime!!.time - mFirstStartTime!!.time) / mTotalTime * (mWidth - mPointWidth) + mPointWidth / 2f + } else { + 1f * (date.time - mFirstStartTime!!.time) / mTotalTime * (mWidth - mPointWidth) + mPointWidth / 2f + } + } + + + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { + super.onSizeChanged(w, h, oldw, oldh) + val height = h - mTopPadding - mBottomPadding + this.mHeight = height - mVolumeHeight + this.mWidth = w + notifyChanged() + } + + /** + * @param data 数据源 + * @param startTime 显示的开始时间 + * @param endTime 显示的结束时间 + * @param yesClosePrice 昨日开盘价 + */ + fun initData( + data: Collection, + startTime: Date, + endTime: Date, + yesClosePrice: Float + ) { + initData(data, startTime, endTime, null, null, yesClosePrice) + } + + /** + * @param data 数据源 + * @param startTime 显示的开始时间 + * @param endTime 显示的结束时间 + * @param firstEndTime 休息开始时间 可空 + * @param secondStartTime 休息结束时间 可空 + * @param yesClosePrice 昨收价 + */ + fun initData( + data: Collection?, + startTime: Date, + endTime: Date, + firstEndTime: Date?, + secondStartTime: Date?, + yesClosePrice: Float + ) { + this.mFirstStartTime = startTime + this.mSecondEndTime = endTime + if (mFirstStartTime!!.time >= mSecondEndTime!!.time) throw IllegalStateException("开始时间不能大于结束时间") + mTotalTime = mSecondEndTime!!.time - mFirstStartTime!!.time + if (firstEndTime != null && secondStartTime != null) { + this.mFirstEndTime = firstEndTime + this.mSecondStartTime = secondStartTime + if (!(mFirstStartTime!!.time < mFirstEndTime!!.time && + mFirstEndTime!!.time < mSecondStartTime!!.time && + mSecondStartTime!!.time < mSecondEndTime!!.time) + ) { + throw IllegalStateException("时间区间有误") + } + mTotalTime -= mSecondStartTime!!.time - mFirstEndTime!!.time - 60000 + } + setValueStart(yesClosePrice) + if (data != null) { + mPoints.clear() + this.mPoints.addAll(data) + } + notifyChanged() + } + + /** + * 当数据发生变化时调用 + */ + fun notifyChanged() { + mValueMax = java.lang.Float.MIN_VALUE + mValueMin = java.lang.Float.MAX_VALUE + for (i in mPoints.indices) { + val point = mPoints[i] + mValueMax = Math.max(mValueMax, point.getPrice()) + mValueMin = Math.min(mValueMin, point.getPrice()) + mVolumeMax = Math.max(mVolumeMax, point.getVolume()) + } + //最大值和开始值的差值 + val offsetValueMax = mValueMax - mValueStart + val offsetValueMin = mValueStart - mValueMin + //以开始的点为中点值 上下间隙多出20% + val offset = + (if (offsetValueMax > offsetValueMin) offsetValueMax else offsetValueMin) * 1.2f + //坐标轴高度以开始的点对称 + mValueMax = mValueStart + offset + mValueMin = mValueStart - offset + //y轴的缩放值 + mScaleY = mHeight / (mValueMax - mValueMin) + //判断最大值和最小值是否一致 + if (mValueMax == mValueMin) { + //当最大值和最小值都相等的时候 分别增大最大值和 减小最小值 + mValueMax += Math.abs(mValueMax * 0.05f) + mValueMin -= Math.abs(mValueMax * 0.05f) + if (mValueMax == 0f) { + mValueMax = 1f + } + } + + if (mVolumeMax == 0f) { + mVolumeMax = 1f + } + + mVolumeMax *= 1.1f + //成交量的缩放值 + mVolumeScaleY = mVolumeHeight / mVolumeMax + mPointWidth = mWidth.toFloat() / maxPointCount + mVolumePaintRed.strokeWidth = mPointWidth * 0.8f + mVolumePaintGreen.strokeWidth = mPointWidth * 0.8f + invalidate() + } + + override fun onDraw(canvas: Canvas) { + super.onDraw(canvas) + canvas.drawColor(mBackgroundColor) + if (mWidth == 0 || mHeight == 0 || mPoints == null || mPoints.size == 0) { + return + } + drawGird(canvas) + if (mPoints.size > 0) { + var lastPoint = mPoints[0] + var lastX = getX(0) + for (i in mPoints.indices) { + val curPoint = mPoints[i] + val curX = getX(i) + canvas.drawLine( + lastX, + getY(lastPoint.getPrice()), + curX, + getY(curPoint.getPrice()), + mPricePaint + ) + canvas.drawLine( + lastX, + getY(lastPoint.getAvgPrice()), + curX, + getY(curPoint.getAvgPrice()), + mAvgPaint + ) + //成交量 + val volumePaint = + if (i == 0 && curPoint.getPrice() <= mValueStart || curPoint.getPrice() <= lastPoint.getPrice()) mVolumePaintGreen else mVolumePaintRed + canvas.drawLine( + curX, + getVolumeY(0f), + curX, + getVolumeY(curPoint.getVolume()), + volumePaint + ) + lastPoint = curPoint + lastX = curX + } + } + drawText(canvas) + //画指示线 + if (isLongPress) { + val point = mPoints[selectedIndex] + var x = getX(selectedIndex) + canvas.drawLine(x, 0f, x, (mHeight + mVolumeHeight).toFloat(), mTextPaint) + canvas.drawLine( + 0f, + getY(point.getPrice()), + mWidth.toFloat(), + getY(point.getPrice()), + mTextPaint + ) + //画指示线的时间 + var text = DateUtil.timeFormat.format(Date()/*point.getDate()*/) + x = x - mTextPaint.measureText(text) / 2 + if (x < 0) { + x = 0f + } + if (x > mWidth - mTextPaint.measureText(text)) { + x = mWidth - mTextPaint.measureText(text) + } + val fm = mTextPaint.fontMetrics + val textHeight = fm.descent - fm.ascent + val baseLine = (textHeight - fm.bottom - fm.top) / 2 + //下方时间 + canvas.drawRect( + x, + mHeight + mVolumeHeight - baseLine + textHeight, + x + mTextPaint.measureText(text), + mVolumeHeight.toFloat() + mHeight.toFloat() + baseLine, + mBackgroundPaint + ) + canvas.drawText( + text, + x, + mHeight.toFloat() + mVolumeHeight.toFloat() + baseLine, + mTextPaint + ) + + val r = textHeight / 2 + val y = getY(point.getPrice()) + //左方值 + text = floatToString(point.getPrice()) + canvas.drawRect(0f, y - r, mTextPaint.measureText(text), y + r, mBackgroundPaint) + canvas.drawText(text, 0f, fixTextY(y), mTextPaint) + //右方值 + text = floatToString((point.getPrice() - mValueStart) * 100f / mValueStart) + "%" + canvas.drawRect( + mWidth - mTextPaint.measureText(text), + y - r, + mWidth.toFloat(), + y + r, + mBackgroundPaint + ) + canvas.drawText(text, mWidth - mTextPaint.measureText(text), fixTextY(y), mTextPaint) + } + drawValue(canvas, if (isLongPress) selectedIndex else mPoints.size - 1) + } + + /** + * 画值 + */ + private fun drawValue(canvas: Canvas, index: Int) { + val fm = mTextPaint.fontMetrics + val textHeight = fm.descent - fm.ascent + val baseLine = (textHeight - fm.bottom - fm.top) / 2 + if (index >= 0 && index < mPoints.size) { + val y = baseLine - textHeight + val point = mPoints[index] + var text = "成交价:" + floatToString(point.getPrice()) + " " + var x = 0f + canvas.drawText(text, x, y, mPricePaint) + x += mPricePaint.measureText(text) + text = "均价:" + floatToString(point.getAvgPrice()) + " " + canvas.drawText(text, x, y, mAvgPaint) + //成交量 + text = "VOL:" + mVolumeFormatter!!.format(point.getVolume()) + canvas.drawText( + text, + mWidth - mTextPaint.measureText(text), + mHeight + baseLine, + mTextPaint + ) + } + } + + /** + * 修正y值 + */ + private fun getY(value: Float): Float { + return (mValueMax - value) * mScaleY + } + + private fun getVolumeY(value: Float): Float { + return (mVolumeMax - value) * mVolumeScaleY + mHeight + } + + private fun drawGird(canvas: Canvas) { + //先画出坐标轴 + canvas.translate(0f, mTopPadding.toFloat()) + canvas.scale(1f, 1f) + //横向的grid + val rowSpace = (mHeight / mGridRows).toFloat() + + for (i in 0..mGridRows) { + canvas.drawLine(0f, rowSpace * i, mWidth.toFloat(), rowSpace * i, mGridPaint) + } + canvas.drawLine( + 0f, + rowSpace * mGridRows / 2, + mWidth.toFloat(), + rowSpace * mGridRows / 2, + mGridPaint + ) + + canvas.drawLine( + 0f, + (mHeight + mVolumeHeight).toFloat(), + mWidth.toFloat(), + (mHeight + mVolumeHeight).toFloat(), + mGridPaint + ) + //纵向的grid + val columnSpace = (mWidth / GridColumns).toFloat() + for (i in 0..GridColumns) { + canvas.drawLine( + columnSpace * i, + 0f, + columnSpace * i, + (mHeight + mVolumeHeight).toFloat(), + mGridPaint + ) + } + + } + + /** + * 解决text居中的问题 + */ + fun fixTextY(y: Float): Float { + val fontMetrics = mTextPaint.fontMetrics + return y + (fontMetrics.descent - fontMetrics.ascent) / 2 - fontMetrics.descent + } + + private fun drawText(canvas: Canvas) { + val fm = mTextPaint.fontMetrics + val textHeight = fm.descent - fm.ascent + val baseLine = (textHeight - fm.bottom - fm.top) / 2 + //画左边的值 + canvas.drawText(floatToString(mValueMax), 0f, baseLine, mTextPaint) + canvas.drawText(floatToString(mValueMin), 0f, mHeight.toFloat(), mTextPaint) + val rowValue = (mValueMax - mValueMin) / mGridRows + val rowSpace = (mHeight / mGridRows).toFloat() + for (i in 0..mGridRows) { + val text = floatToString(rowValue * (mGridRows - i) + mValueMin) + if (i >= 1 && i < mGridRows) { + canvas.drawText(text, 0f, fixTextY(rowSpace * i), mTextPaint) + } + } + var text = floatToString((mValueMax - mValueStart) * 100f / mValueStart) + "%" + canvas.drawText(text, mWidth - mTextPaint.measureText(text), baseLine, mTextPaint) + text = floatToString((mValueMin - mValueStart) * 100f / mValueStart) + "%" + canvas.drawText(text, mWidth - mTextPaint.measureText(text), mHeight.toFloat(), mTextPaint) + for (i in 0..mGridRows) { + text = + floatToString((rowValue * (mGridRows - i) + mValueMin - mValueStart) * 100f / mValueStart) + "%" + if (i >= 1 && i < mGridRows) { + canvas.drawText( + text, + mWidth - mTextPaint.measureText(text), + fixTextY(rowSpace * i), + mTextPaint + ) + } + } + //画时间 + val y = mHeight.toFloat() + mVolumeHeight.toFloat() + baseLine + canvas.drawText(DateUtil.timeFormat.format(mFirstStartTime), 0f, y, mTextPaint) + canvas.drawText( + DateUtil.timeFormat.format(mSecondEndTime), + mWidth - mTextPaint.measureText(DateUtil.timeFormat.format(mSecondEndTime)), + y, + mTextPaint + ) + //成交量 + canvas.drawText(mVolumeFormatter!!.format(mVolumeMax), 0f, mHeight + baseLine, mTextPaint) + } + + fun dp2px(dp: Float): Int { + val scale = context.resources.displayMetrics.density + return (dp * scale + 0.5f).toInt() + } + + fun sp2px(spValue: Float): Int { + val fontScale = context.resources.displayMetrics.scaledDensity + return (spValue * fontScale + 0.5f).toInt() + } + + /** + * 保留2位小数 + */ + fun floatToString(value: Float): String { + var s = String.format("%.2f", value) + var end = s[s.length - 1] + while (s.contains(".") && (end == '0' || end == '.')) { + s = s.substring(0, s.length - 1) + end = s[s.length - 1] + } + return s + } + + override fun onDown(e: MotionEvent): Boolean { + return false + } + + override fun onShowPress(e: MotionEvent) { + + } + + override fun onSingleTapUp(e: MotionEvent): Boolean { + return false + } + + override fun onScroll( + e1: MotionEvent, + e2: MotionEvent, + distanceX: Float, + distanceY: Float + ): Boolean { + return false + } + + override fun onLongPress(e: MotionEvent) { + isLongPress = true + calculateSelectedX(e.x) + invalidate() + } + + override fun onFling( + e1: MotionEvent, + e2: MotionEvent, + velocityX: Float, + velocityY: Float + ): Boolean { + return false + } + + /** + * 设置开始的值 对称轴线 + */ + fun setValueStart(valueStart: Float) { + this.mValueStart = valueStart + } + + /** + * 修改某个点的值 + * @param position 索引值 + */ + fun changePoint(position: Int, point: IMinuteLine) { + mPoints[position] = point + notifyChanged() + } + + /** + * 刷新最后一个点 + */ + fun refreshLastPoint(point: IMinuteLine) { + changePoint(itemSize - 1, point) + } + + /** + * 添加一个点 + */ + fun addPoint(point: IMinuteLine) { + mPoints.add(point) + notifyChanged() + } + + /** + * 根据索引获取点 + */ + fun getItem(position: Int): IMinuteLine { + return mPoints[position] + } + + /** + * 设置成交量格式化器 + * @param volumeFormatter [IValueFormatter] 成交量格式化器 + */ + fun setVolumeFormatter(volumeFormatter: IValueFormatter) { + mVolumeFormatter = volumeFormatter + } + + companion object { + + private val ONE_MINUTE = 60000 + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/view/ScrollAndScaleView.kt b/kchart/src/main/java/xyz/a1api/kchart/view/ScrollAndScaleView.kt new file mode 100644 index 0000000..330c3e8 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/view/ScrollAndScaleView.kt @@ -0,0 +1,320 @@ +package xyz.a1api.kchart.view + +import android.content.Context +import android.util.AttributeSet +import android.view.GestureDetector +import android.view.MotionEvent +import android.view.ScaleGestureDetector +import android.widget.OverScroller +import android.widget.RelativeLayout +import androidx.core.view.GestureDetectorCompat + +/** + * 可以滑动和放大的view + * Created by tian on 2016/5/3. + * For KChart + * Cat-x All Rights Reserved + */ +abstract class ScrollAndScaleView : RelativeLayout, GestureDetector.OnGestureListener, + ScaleGestureDetector.OnScaleGestureListener { + + protected open lateinit var mDetector: GestureDetectorCompat + protected open lateinit var mScaleDetector: ScaleGestureDetector + private lateinit var mScroller: OverScroller + + open var mScrollX = 0 + protected set + + /** 当前缩放值*/ + protected open var mScaleX = 1f + + /** 缩放的最大值*/ + open var mScaleXMax = 2f + + /** 缩放的最小值*/ + open var mScaleXMin = 0.5f + + /** 是否长按*/ + open var isLongPress = false + protected set + + /** 是否选中*/ + open var isHadSelect = false + protected set + + protected open var touch = false + + private var mMultipleTouch = false + + /** 能否滑动*/ + private var mScrollEnable = true + + /** 是否可以缩放*/ + private var mScaleEnable = true + + + constructor(context: Context) : super(context) { + init() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init() + } + + private fun init() { + setWillNotDraw(false) + mDetector = GestureDetectorCompat(context, this) + mScaleDetector = ScaleGestureDetector(context, this) + mScroller = OverScroller(context) +// setOnTouchListener { _, _ -> +// if (isHadSelect){ +// return@setOnTouchListener true +// } +// return@setOnTouchListener false +// } + } + + + /** + * 计算选中坐标点 + */ + abstract fun calculateSelectedX(x: Float) + + /** + * 滑到了最左边 + */ + abstract fun onLeftSide() + + /** + * 滑到了最右边 + */ + abstract fun onRightSide() + + + /** + * 获取位移的最小值 + */ + abstract fun getMinScrollX(): Int + + /** + * 获取位移的最大值 + */ + abstract fun getMaxScrollX(): Int + + override fun onDown(e: MotionEvent): Boolean { + return false + } + + override fun onShowPress(e: MotionEvent) { + + } + + override fun onSingleTapUp(e: MotionEvent): Boolean { + return false + } + + override fun onScroll( + e1: MotionEvent, + e2: MotionEvent, + distanceX: Float, + distanceY: Float + ): Boolean { + if (!isLongPress && !isMultipleTouch()) { + scrollBy(Math.round(distanceX), 0) + return true + } + return false + } + + override fun onLongPress(event: MotionEvent) { + isLongPress = true + isHadSelect = true + calculateSelectedX(event.x) + } + + override fun onFling( + e1: MotionEvent, + e2: MotionEvent, + velocityX: Float, + velocityY: Float + ): Boolean { + if (!isTouch() && isScrollEnable()) { + mScroller.fling( + mScrollX, 0, Math.round(velocityX / mScaleX), 0, + Integer.MIN_VALUE, Integer.MAX_VALUE, + 0, 0 + ) + } + return true + } + + override fun computeScroll() { + if (mScroller.computeScrollOffset()) { + if (!isTouch()) { + scrollTo(mScroller.currX, mScroller.currY) + } else { + mScroller.forceFinished(true) + } + } + } + + override fun scrollBy(x: Int, y: Int) { + scrollTo(mScrollX - Math.round(x / mScaleX), 0) + } + + override fun scrollTo(x: Int, y: Int) { + if (!isScrollEnable()) { + mScroller.forceFinished(true) + return + } + val oldX = mScrollX + mScrollX = x + if (mScrollX < getMinScrollX()) { + mScrollX = getMinScrollX() + onRightSide() + mScroller.forceFinished(true) + } else if (mScrollX > getMaxScrollX()) { + mScrollX = getMaxScrollX() + onLeftSide() + mScroller.forceFinished(true) + } + onScrollChanged(mScrollX, 0, oldX, 0) + invalidate() + } + + override fun onScale(detector: ScaleGestureDetector): Boolean { + if (!isScaleEnable()) { + return false + } + val oldScale = mScaleX + mScaleX *= detector.scaleFactor + when { + mScaleX < mScaleXMin -> mScaleX = mScaleXMin + mScaleX > mScaleXMax -> mScaleX = mScaleXMax + else -> onScaleChanged(mScaleX, oldScale) + } + return true + } + + protected open fun onScaleChanged(scale: Float, oldScale: Float) { + invalidate() + } + + override fun onScaleBegin(detector: ScaleGestureDetector): Boolean { + return true + } + + override fun onScaleEnd(detector: ScaleGestureDetector) { + + } + + override fun onTouchEvent(event: MotionEvent): Boolean { + when (event.action and MotionEvent.ACTION_MASK) { + MotionEvent.ACTION_DOWN -> { + touch = true + isHadSelect = true + calculateSelectedX(event.x) + } + MotionEvent.ACTION_MOVE -> if (event.pointerCount == 1) { + //长按之后移动 + if (isLongPress) { + onLongPress(event) + } else { + isHadSelect = false + } + } else { + isHadSelect = false + } + MotionEvent.ACTION_POINTER_UP -> invalidate() + MotionEvent.ACTION_UP -> { + isLongPress = false + touch = false + invalidate() + } + MotionEvent.ACTION_CANCEL -> { + isLongPress = false + touch = false + invalidate() + } + } + mMultipleTouch = event.pointerCount > 1 + this.mDetector.onTouchEvent(event) + this.mScaleDetector.onTouchEvent(event) + return true + } + + /** + * 是否在触摸中 + * + * @return + */ + open fun isTouch(): Boolean { + return touch + } + + /** + * 设置ScrollX + * + * @param scrollX + */ + override fun setScrollX(scrollX: Int) { + this.mScrollX = scrollX + scrollTo(scrollX, 0) + } + + /** + * 是否是多指触控 + * @return + */ + open fun isMultipleTouch(): Boolean { + return mMultipleTouch + } + + protected open fun checkAndFixScrollX() { + if (mScrollX < getMinScrollX()) { + mScrollX = getMinScrollX() + mScroller.forceFinished(true) + } else if (mScrollX > getMaxScrollX()) { + mScrollX = getMaxScrollX() + mScroller.forceFinished(true) + } + } + + open fun isScrollEnable(): Boolean { + return mScrollEnable + } + + + /** + * 设置是否可以滑动 + */ + open fun setScrollEnable(scrollEnable: Boolean) { + mScrollEnable = scrollEnable + } + + open fun isScaleEnable(): Boolean { + return mScaleEnable + } + + /** + * 设置是否可以缩放 + */ + open fun setScaleEnable(scaleEnable: Boolean) { + mScaleEnable = scaleEnable + } + + /** + * X坐标系的缩放值 + */ + override fun getScaleX(): Float { + return mScaleX + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/widget/ConfigKChartView.kt b/kchart/src/main/java/xyz/a1api/kchart/widget/ConfigKChartView.kt new file mode 100644 index 0000000..4f934c8 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/widget/ConfigKChartView.kt @@ -0,0 +1,414 @@ +package xyz.a1api.kchart.widget + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import android.util.Log +import android.view.View +import android.widget.ImageView +import android.widget.RelativeLayout +import androidx.annotation.RequiresApi +import xyz.a1api.kchart.R +import xyz.a1api.kchart.base.IDateTimeFormatter +import xyz.a1api.kchart.customize.BaseKLineEntity +import xyz.a1api.kchart.customize.KChartAdapter +import xyz.a1api.kchart.customize.KChartIndicatorConfigActivity +import xyz.a1api.kchart.entity.ICandleBoll +import xyz.a1api.kchart.entity.IKLine +import xyz.a1api.kchart.entity.IKMLine +import xyz.a1api.kchart.formatter.QuaFormatter +import xyz.a1api.kchart.utils.* +import xyz.a1api.kchart.view.BaseKChartView +import xyz.a1api.kchart.view.KChartView +import java.lang.ref.SoftReference + + +/** + * Created by Cat-x on 2019/10/30. + * For KChart + * Cat-x All Rights Reserved + */ +abstract class ConfigKChartView : RelativeLayout { + + var mAdapter: KChartAdapter? = null + lateinit var mKChartView: KChartView + protected var lastSelectView: TimeStepView? = null + protected var isLandSpace = false + + constructor(context: Context?) : super(context) { + initView(null) + } + + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { + initView(attrs) + } + + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initView(attrs) + } + + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) + constructor( + context: Context?, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initView(attrs) + } + + + protected fun initView(attrs: AttributeSet?) { + if (attrs != null) { + val array = context.obtainStyledAttributes(attrs, R.styleable.ConfigKChartView) + if (array != null) { + isLandSpace = array.getBoolean(R.styleable.ConfigKChartView_isLandSpace, false) + array.recycle() + } + } + + val view = + if (isLandSpace) View.inflate(context, R.layout.kchart_config_view_landscape, this) + else View.inflate(context, R.layout.kchart_config_view_portrait, this) + + + mKChartView = view.findViewById(R.id.mKChartView) + setTimeViews() + initMainChart( + view.findViewById(R.id.mainChartMAView), + view.findViewById(R.id.mainChartBOLLView), + view.findViewById(R.id.mainChartSeeView) + ) + initSecondChart( + view.findViewById(R.id.secondChartMACDView), + view.findViewById(R.id.secondChartKDJView), + view.findViewById(R.id.secondChartRSIView), + view.findViewById(R.id.secondChartWRView), + view.findViewById(R.id.secondChartSeeView) + ) + if (isLandSpace) { + findViewById(R.id.configChartDataView).setOnClickListener { + KChartIndicatorConfigActivity.mConfigKChartView = SoftReference(this) + context.startActivity() + }//指标设置 + mKChartView.setGridRows(4) + mKChartView.setGridColumns(5) + } else { + findViewById(R.id.configChartDataView).setOnClickListener { + KChartIndicatorConfigActivity.mConfigKChartView = SoftReference(this) + context.startActivity() + }//指标设置 + findViewById(R.id.timeStepMoreView).setOnClickListener { findViewById(R.id.tradeMoreTimeGroupLinearLayout).setNegateVisibility() }//更多时间选项 + findViewById(R.id.moreTradeToolView).setOnClickListener { findViewById(R.id.tradeDataIndicatorLinearLayout).setNegateVisibility() }//数据指标器选项 + mKChartView.setGridRows(5) + mKChartView.setGridColumns(5) + } + + initKChartData(mKChartView) + } + + + open fun initKChartData(kChartView: KChartView) { + this.mKChartView = kChartView + mAdapter = KChartAdapter(kChartView) + kChartView.setAdapter(mAdapter!!) + kChartView.setDateTimeFormatter(QuaFormatter()) + if (isDebug) { + kChartView.setOnSelectedChangedListener(object : + BaseKChartView.OnSelectedChangedListener { + override fun onSelectedChanged(view: BaseKChartView, point: Any, index: Int) { + val data = point as BaseKLineEntity + Log.i( + "onSelectedChanged", + "index:" + index + " openPrice:" + data.getOpenPrice() + " closePrice:" + data.getClosePrice() + ) + } + }) + } + + kChartView.setRefreshListener(object : KChartView.KChartRefreshListener { + override fun onLoadMoreBegin(chart: KChartView) { + try { + doAsync { + onRefreshData(::onLoadSuccess, ::onLoadFail) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + }) + } + + open fun startLoad() { + mKChartView.showLoading(true, false) + } + + /** + * 当需要刷新数据时(历史数据,向前滑动) + */ + abstract fun onRefreshData( + onLoadSuccess: (data: List, isHasNext: Boolean) -> Unit, + onLoadFail: (tip: () -> Unit) -> Unit = {} + ) + + /** + * 数据加载成功(历史数据,向前滑动) + */ + open fun onLoadSuccess(data: List, isHasNext: Boolean) { + context.runOnUiThread { + mKChartView.mJob?.cancel() + //第一次加载时开始动画 + if (mAdapter!!.getCount() == 0) { + mKChartView.startAnimation() + } + if (data.isNotEmpty()) { + mAdapter!!.addPrevData(data) + } + mKChartView.refreshComplete() + + if (!isHasNext) { + mKChartView.refreshEnd() + } + } + } + + /** + * 数据加载失败(历史数据,向前滑动) + */ + open fun onLoadFail(tip: () -> Unit) { + context.runOnUiThread { + mKChartView.mJob?.cancel() + mKChartView.refreshComplete() + tip() + } + } + + open fun initMainChart( + tMAView: IndicatorTextView, + tBOLLView: IndicatorTextView, + showMainView: ImageView + ) { + tMAView.setClickMainIndicator(mKChartView) { + tBOLLView.isSelected = false + showMainView.isSelected = true + } + tBOLLView.setClickMainIndicator(mKChartView) { + tMAView.isSelected = false + showMainView.isSelected = true + } + showMainView.setOnClickListener { + showMainView.isSelected = !showMainView.isSelected + ICandleBoll.IMainConfig.isShowMainDrawIndicator = showMainView.isSelected + if (showMainView.isSelected) { + tMAView.isSelected = DrawIndicator.isMain(ICandleBoll.IMainConfig.typeMA) + tBOLLView.isSelected = DrawIndicator.isMain(ICandleBoll.IMainConfig.typeBOLL) + mKChartView.mainDrawIndicator = ICandleBoll.IMainConfig.useMainDrawIndicator + } else { + tMAView.isSelected = false + tBOLLView.isSelected = false + mKChartView.mainDrawIndicator = "" + } + } + when { + ICandleBoll.IMainConfig.isShowMainDrawIndicator -> { + showMainView.isSelected = true + when { + ICandleBoll.IMainConfig.useMainDrawIndicator == + ICandleBoll.IMainConfig.typeMA -> tMAView.isSelected = true + ICandleBoll.IMainConfig.useMainDrawIndicator == + ICandleBoll.IMainConfig.typeBOLL -> tBOLLView.isSelected = true + } + } + else -> { + mKChartView.mainDrawIndicator = "" + showMainView.isSelected = false + } + } + } + + open fun initSecondChart( + tMACDView: IndicatorTextView, + tKDJView: IndicatorTextView, + tRSIView: IndicatorTextView, + tWRView: IndicatorTextView, + showSecondView: ImageView + ) { + tMACDView.setClickSecondIndicator(mKChartView) { + tKDJView.isSelected = false + tRSIView.isSelected = false + tWRView.isSelected = false + showSecondView.isSelected = true + } + tKDJView.setClickSecondIndicator(mKChartView) { + tMACDView.isSelected = false + tRSIView.isSelected = false + tWRView.isSelected = false + + showSecondView.isSelected = true + + } + tRSIView.setClickSecondIndicator(mKChartView) { + tMACDView.isSelected = false + tKDJView.isSelected = false + tWRView.isSelected = false + + showSecondView.isSelected = true + } + tWRView.setClickSecondIndicator(mKChartView) { + tMACDView.isSelected = false + tKDJView.isSelected = false + tRSIView.isSelected = false + + showSecondView.isSelected = true + } + showSecondView.setOnClickListener { + showSecondView.isSelected = !showSecondView.isSelected + IKLine.ISecondDrawConfig.isShowSecondDrawIndicator = showSecondView.isSelected + if (showSecondView.isSelected) { + tMACDView.isSelected = DrawIndicator.isSecond(IKLine.ISecondDrawConfig.typeMACD) + tKDJView.isSelected = DrawIndicator.isSecond(IKLine.ISecondDrawConfig.typeKDJ) + tRSIView.isSelected = DrawIndicator.isSecond(IKLine.ISecondDrawConfig.typeRSI) + tWRView.isSelected = DrawIndicator.isSecond(IKLine.ISecondDrawConfig.typeWR) + mKChartView.secondDrawIndicator = IKLine.ISecondDrawConfig.useSecondDrawIndicator + } else { + tMACDView.isSelected = false + tKDJView.isSelected = false + tRSIView.isSelected = false + tWRView.isSelected = false + mKChartView.secondDrawIndicator = "" + } + } + + when { + IKLine.ISecondDrawConfig.isShowSecondDrawIndicator -> { + mKChartView.secondDrawIndicator = IKLine.ISecondDrawConfig.useSecondDrawIndicator + showSecondView.isSelected = true + when { + IKLine.ISecondDrawConfig.useSecondDrawIndicator == + IKLine.ISecondDrawConfig.typeMACD -> tMACDView.isSelected = true + IKLine.ISecondDrawConfig.useSecondDrawIndicator == + IKLine.ISecondDrawConfig.typeKDJ -> tKDJView.isSelected = true + IKLine.ISecondDrawConfig.useSecondDrawIndicator == + IKLine.ISecondDrawConfig.typeRSI -> tRSIView.isSelected = true + IKLine.ISecondDrawConfig.useSecondDrawIndicator == + IKLine.ISecondDrawConfig.typeWR -> tWRView.isSelected = true + } + } + else -> { + mKChartView.secondDrawIndicator = "" + showSecondView.isSelected = false + } + + + } + + } + + + open fun initTimeSelect(vararg timesViews: Pair) { + for (timesView in timesViews) { + + if (IKMLine.ITimeStepConfig.useMainOrMin) { + if (!timesView.first.isTimeMinute() && timesView.second == IKMLine.ITimeStepConfig.timeStep) { + lastSelectView = timesView.first + lastSelectView?.isSelected = true + + } + } else { + if (timesView.first.isTimeMinute()) { + lastSelectView = timesView.first + lastSelectView?.isSelected = true + } + } + + timesView.first.setOnClickListener { + if (lastSelectView != timesView.first) { + lastSelectView?.isSelected = false + if (timesView.first.isTimeMinute()) { + mKChartView.useMainOrMin(false) + } else { + mKChartView.useMainOrMin(true) + } + timesView.first.isSelected = true + lastSelectView = timesView.first + IKMLine.ITimeStepConfig.timeStep = timesView.second + + if (oldTime != timesView.second) { + onSwitchTime(oldTime, timesView.second) + reRequest() + oldTime = timesView.second + } + } + } + } + } + + open fun setTimeViews() { + val timeViews: ArrayList> = arrayListOf() + timeViews.add(Pair(findViewById(R.id.timeStepTimeSharingView), 1)) + timeViews.add(Pair(findViewById(R.id.timeStep1MinView), 1)) + timeViews.add(Pair(findViewById(R.id.timeStep5MinView), 5)) + timeViews.add(Pair(findViewById(R.id.timeStep15MinView), 15)) + timeViews.add(Pair(findViewById(R.id.timeStep30MinView), 30)) + timeViews.add(Pair(findViewById(R.id.timeStep1HourView), 60)) + timeViews.add(Pair(findViewById(R.id.timeStep4HourView), 4 * 60)) + timeViews.add(Pair(findViewById(R.id.timeStep1DayView), 24 * 60)) + timeViews.add(Pair(findViewById(R.id.timeStep1WeekHourView), 7 * 24 * 60)) + timeViews.add(Pair(findViewById(R.id.timeStep1MonthView), 30 * 24 * 60)) + initTimeSelect(*timeViews.toTypedArray()) + } + + var oldTime: Long = 0 + abstract fun onSwitchTime(oldTime: Long, newTime: Long) + + open fun reRequest() { + mAdapter = KChartAdapter() + mAdapter!!.mKChartView = mKChartView + mKChartView.setAdapter(mAdapter!!) + mKChartView.refreshComplete() + mKChartView.resetLoadMoreEnd() + mKChartView.showLoading() + } + + /** + * 添加实时数据,用于最后一列数据跳动变化显示 + * @param data 数据 + * @param isNeedAddToData 是否永久添加到数据集合列表 + */ + @Suppress("unused") + open fun addRealTimeData(data: BaseKLineEntity, isNeedAddToData: Boolean = false) { + mAdapter?.addRealTimeData(data, isNeedAddToData) + } + + /** + * 获取原始的数据集合的实体 (不会包含实时数据) + * @return ArrayList + */ + open fun getOriginalData(): ArrayList { + return mAdapter?.getOriginalData() ?: arrayListOf() + } + + /** + * 获取数据集合的实体 (存在实时数据时,会包含实时数据) + */ + + open fun getData(): List { + return mAdapter?.getData() ?: listOf() + } + +// open fun getColorByStates(isSelect: Boolean = false): Int { +// return if (isSelect) selectColor else unSelectColor +// } +// +// open val selectColor: Int = R.color.black_select_chart +// +// open val unSelectColor: Int = R.color.black_noSelect_chart + + open fun setDateTimeFormatter(dateTimeFormatter: IDateTimeFormatter) { + mKChartView.setDateTimeFormatter(dateTimeFormatter) + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/widget/IndicatorTextView.kt b/kchart/src/main/java/xyz/a1api/kchart/widget/IndicatorTextView.kt new file mode 100644 index 0000000..73daf06 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/widget/IndicatorTextView.kt @@ -0,0 +1,113 @@ +package xyz.a1api.kchart.widget + +import android.content.Context +import android.util.AttributeSet +import androidx.appcompat.widget.AppCompatTextView +import xyz.a1api.kchart.R +import xyz.a1api.kchart.entity.ICandleBoll +import xyz.a1api.kchart.entity.IKLine +import xyz.a1api.kchart.utils.getResColor +import xyz.a1api.kchart.view.KChartView + +/** + * Created by Cat-x on 2019/10/30. + * For KChart + * Cat-x All Rights Reserved + */ +open class IndicatorTextView : AppCompatTextView { + + protected var selectColor: Int = 0 + protected var unSelectColor: Int = 0 + protected var nameText: String = "" + + constructor(context: Context?) : super(context) { + initView(null) + } + + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { + initView(attrs) + } + + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initView(attrs) + } + + protected fun initView(attrs: AttributeSet?) { + if (attrs != null) { + val array = context.obtainStyledAttributes(attrs, R.styleable.IndicatorTextView) + if (array != null) { + + try { + selectColor = + array.getColor( + R.styleable.IndicatorTextView_selectColor, + context.getResColor(R.color.indicator_select_color) + ) + unSelectColor = + array.getColor( + R.styleable.IndicatorTextView_unSelectColor, + context.getResColor(R.color.indicator_unSelect_color) + ) + nameText = + array.getString(R.styleable.IndicatorTextView_nameText) ?: text?.toString() + ?: "" + setTextColor(unSelectColor) + + if (nameText.isNotBlank()) { + setText(nameText) + } + } catch (e: Exception) { + e.printStackTrace() + } + + array.recycle() + } + } + } + + + override fun setSelected(selected: Boolean) { + super.setSelected(selected) + if (selected) { + setTextColor(selectColor) + } else { + setTextColor(unSelectColor) + } + } + + open fun setClickMainIndicator( + kChartView: KChartView, + name: String = "", + action: (indicatorName: String) -> Unit + ) { + if (name.isNotBlank()) { + nameText = name + } + setOnClickListener() { + isSelected = true + ICandleBoll.IMainConfig.useMainDrawIndicator = nameText + kChartView.mainDrawIndicator = nameText + action(nameText) + } + } + + open fun setClickSecondIndicator( + kChartView: KChartView, + name: String = "", + action: (indicatorName: String) -> Unit + ) { + if (name.isNotBlank()) { + nameText = name + } + setOnClickListener() { + isSelected = true + IKLine.ISecondDrawConfig.useSecondDrawIndicator = nameText + kChartView.secondDrawIndicator = nameText + action(nameText) + } + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/widget/KScrollView.kt b/kchart/src/main/java/xyz/a1api/kchart/widget/KScrollView.kt new file mode 100644 index 0000000..43f6329 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/widget/KScrollView.kt @@ -0,0 +1,50 @@ +package xyz.a1api.kchart.widget + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import android.widget.ScrollView +import androidx.annotation.RequiresApi +import xyz.a1api.kchart.view.ScrollAndScaleView + +/** + * Created by Cat-x on 2018/12/11. + * For KChart + * Cat-x All Rights Reserved + */ +class KScrollView : ScrollView { + + constructor(context: Context) : super(context) {} + + constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {} + + constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + } + + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) + constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super( + context, + attrs, + defStyleAttr, + defStyleRes + ) { + } + + var scaleView: ScrollAndScaleView? = null + + init { + /** + * 在选中和长按时,不允许滑动 + */ + setOnTouchListener { _, _ -> + if (scaleView?.isHadSelect == true || scaleView?.isLongPress == true) { + return@setOnTouchListener true + } + return@setOnTouchListener false + } + } +} diff --git a/kchart/src/main/java/xyz/a1api/kchart/widget/TimeStepView.kt b/kchart/src/main/java/xyz/a1api/kchart/widget/TimeStepView.kt new file mode 100644 index 0000000..f449c16 --- /dev/null +++ b/kchart/src/main/java/xyz/a1api/kchart/widget/TimeStepView.kt @@ -0,0 +1,100 @@ +package xyz.a1api.kchart.widget + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import android.util.TypedValue +import android.view.View +import android.widget.RelativeLayout +import androidx.annotation.RequiresApi +import androidx.appcompat.widget.AppCompatTextView +import xyz.a1api.kchart.R +import xyz.a1api.kchart.utils.getResColor +import xyz.a1api.kchart.utils.isInvisible + +/** + * Created by Cat-x on 2019/10/30. + * For KChart + * Cat-x All Rights Reserved + */ +open class TimeStepView : RelativeLayout { + protected var isMinute: Boolean = false + + constructor(context: Context?) : super(context) { + initView(null) + } + + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { + initView(attrs) + } + + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initView(attrs) + } + + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) + constructor( + context: Context?, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initView(attrs) + } + + protected fun initView(attrs: AttributeSet?) { + val view = View.inflate(context, R.layout.kchart_time_step_view, this) + val timeStepTextView = view.findViewById(R.id.timeStepTextView) + val timeStepLineView = view.findViewById(R.id.timeStepLineView) + + if (attrs != null) { + val array = context.obtainStyledAttributes(attrs, R.styleable.TimeStepView) + if (array != null) { + try { + isMinute = array.getBoolean(R.styleable.TimeStepView_isMinute, false) + val lineColor = + array.getColor( + R.styleable.TimeStepView_lineColor, + context.getResColor(R.color.time_step_view_line_color) + ) + val textColor = + array.getColor( + R.styleable.TimeStepView_textColor, + context.getResColor(R.color.time_step_view_text_color) + ) + val textSize = + array.getDimension( + R.styleable.TimeStepView_textSize, + resources.getDimension(R.dimen.time_step_view_text_size) + ) + val text = array.getString(R.styleable.TimeStepView_text) + + + timeStepLineView.setBackgroundColor(lineColor) + timeStepTextView.setTextColor(textColor) + timeStepTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize) + timeStepTextView.setText(text) + + } catch (e: Exception) { + e.printStackTrace() + } + + array.recycle() + } + } + } + + + override fun setSelected(selected: Boolean) { + super.setSelected(selected) + findViewById(R.id.timeStepLineView)?.isInvisible = !selected + } + + fun isTimeMinute(): Boolean { + return isMinute + } +} \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_check_k1.xml b/kchart/src/main/res/drawable/kchart_icon_check_k1.xml new file mode 100644 index 0000000..4402562 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_check_k1.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_check_k2.xml b/kchart/src/main/res/drawable/kchart_icon_check_k2.xml new file mode 100644 index 0000000..816e529 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_check_k2.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_check_k3.xml b/kchart/src/main/res/drawable/kchart_icon_check_k3.xml new file mode 100644 index 0000000..1c929f4 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_check_k3.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_check_k4.xml b/kchart/src/main/res/drawable/kchart_icon_check_k4.xml new file mode 100644 index 0000000..02e3f8f --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_check_k4.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_check_k5.xml b/kchart/src/main/res/drawable/kchart_icon_check_k5.xml new file mode 100644 index 0000000..b694182 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_check_k5.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_check_k6.xml b/kchart/src/main/res/drawable/kchart_icon_check_k6.xml new file mode 100644 index 0000000..2a832cc --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_check_k6.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_icon_see_d.xml b/kchart/src/main/res/drawable/kchart_icon_see_d.xml new file mode 100644 index 0000000..5acc8cf --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_icon_see_d.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_check_k1_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_check_k1_bg.xml new file mode 100644 index 0000000..c5c471a --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_check_k1_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_check_k2_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_check_k2_bg.xml new file mode 100644 index 0000000..88de239 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_check_k2_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_check_k3_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_check_k3_bg.xml new file mode 100644 index 0000000..071d161 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_check_k3_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_check_k4_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_check_k4_bg.xml new file mode 100644 index 0000000..e68003d --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_check_k4_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_check_k5_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_check_k5_bg.xml new file mode 100644 index 0000000..9f8ec97 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_check_k5_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_check_k6_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_check_k6_bg.xml new file mode 100644 index 0000000..418a814 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_check_k6_bg.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_1_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_1_bg.xml new file mode 100644 index 0000000..e75f627 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_1_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_2_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_2_bg.xml new file mode 100644 index 0000000..d22d1a2 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_2_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_3_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_3_bg.xml new file mode 100644 index 0000000..bba0622 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_3_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_4_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_4_bg.xml new file mode 100644 index 0000000..3f0482f --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_4_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_5_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_5_bg.xml new file mode 100644 index 0000000..51e34ee --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_5_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_6_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_6_bg.xml new file mode 100644 index 0000000..47a835b --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_6_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_edit_normal_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_edit_normal_bg.xml new file mode 100644 index 0000000..72af505 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_edit_normal_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/drawable/kchart_indicator_uncheck_bg.xml b/kchart/src/main/res/drawable/kchart_indicator_uncheck_bg.xml new file mode 100644 index 0000000..36ef205 --- /dev/null +++ b/kchart/src/main/res/drawable/kchart_indicator_uncheck_bg.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/layout/kchart_activity_indicator_config.xml b/kchart/src/main/res/layout/kchart_activity_indicator_config.xml new file mode 100644 index 0000000..1fce127 --- /dev/null +++ b/kchart/src/main/res/layout/kchart_activity_indicator_config.xml @@ -0,0 +1,933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kchart/src/main/res/layout/kchart_config_view_landscape.xml b/kchart/src/main/res/layout/kchart_config_view_landscape.xml new file mode 100644 index 0000000..a83bd6c --- /dev/null +++ b/kchart/src/main/res/layout/kchart_config_view_landscape.xml @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kchart/src/main/res/layout/kchart_config_view_portrait.xml b/kchart/src/main/res/layout/kchart_config_view_portrait.xml new file mode 100644 index 0000000..8c00066 --- /dev/null +++ b/kchart/src/main/res/layout/kchart_config_view_portrait.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/layout/kchart_reset_button.xml b/kchart/src/main/res/layout/kchart_reset_button.xml new file mode 100644 index 0000000..9a04945 --- /dev/null +++ b/kchart/src/main/res/layout/kchart_reset_button.xml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/layout/kchart_time_step_view.xml b/kchart/src/main/res/layout/kchart_time_step_view.xml new file mode 100644 index 0000000..1c63257 --- /dev/null +++ b/kchart/src/main/res/layout/kchart_time_step_view.xml @@ -0,0 +1,30 @@ + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/mipmap-hdpi/kchart_icon_drop_select.png b/kchart/src/main/res/mipmap-hdpi/kchart_icon_drop_select.png new file mode 100644 index 0000000..940977f Binary files /dev/null and b/kchart/src/main/res/mipmap-hdpi/kchart_icon_drop_select.png differ diff --git a/kchart/src/main/res/mipmap-hdpi/kchart_icon_exit.png b/kchart/src/main/res/mipmap-hdpi/kchart_icon_exit.png new file mode 100644 index 0000000..177d416 Binary files /dev/null and b/kchart/src/main/res/mipmap-hdpi/kchart_icon_exit.png differ diff --git a/kchart/src/main/res/mipmap-hdpi/kchart_icon_setting_config.png b/kchart/src/main/res/mipmap-hdpi/kchart_icon_setting_config.png new file mode 100644 index 0000000..a615c46 Binary files /dev/null and b/kchart/src/main/res/mipmap-hdpi/kchart_icon_setting_config.png differ diff --git a/kchart/src/main/res/mipmap-hdpi/kchart_icon_unstar.png b/kchart/src/main/res/mipmap-hdpi/kchart_icon_unstar.png new file mode 100644 index 0000000..99dba80 Binary files /dev/null and b/kchart/src/main/res/mipmap-hdpi/kchart_icon_unstar.png differ diff --git a/kchart/src/main/res/mipmap-ldpi/kchart_icon_drop_select.png b/kchart/src/main/res/mipmap-ldpi/kchart_icon_drop_select.png new file mode 100644 index 0000000..484315d Binary files /dev/null and b/kchart/src/main/res/mipmap-ldpi/kchart_icon_drop_select.png differ diff --git a/kchart/src/main/res/mipmap-ldpi/kchart_icon_exit.png b/kchart/src/main/res/mipmap-ldpi/kchart_icon_exit.png new file mode 100644 index 0000000..2f1e471 Binary files /dev/null and b/kchart/src/main/res/mipmap-ldpi/kchart_icon_exit.png differ diff --git a/kchart/src/main/res/mipmap-ldpi/kchart_icon_setting_config.png b/kchart/src/main/res/mipmap-ldpi/kchart_icon_setting_config.png new file mode 100644 index 0000000..2a08e4c Binary files /dev/null and b/kchart/src/main/res/mipmap-ldpi/kchart_icon_setting_config.png differ diff --git a/kchart/src/main/res/mipmap-ldpi/kchart_icon_unstar.png b/kchart/src/main/res/mipmap-ldpi/kchart_icon_unstar.png new file mode 100644 index 0000000..4b73919 Binary files /dev/null and b/kchart/src/main/res/mipmap-ldpi/kchart_icon_unstar.png differ diff --git a/kchart/src/main/res/mipmap-mdpi/kchart_icon_drop_select.png b/kchart/src/main/res/mipmap-mdpi/kchart_icon_drop_select.png new file mode 100644 index 0000000..4458cd5 Binary files /dev/null and b/kchart/src/main/res/mipmap-mdpi/kchart_icon_drop_select.png differ diff --git a/kchart/src/main/res/mipmap-mdpi/kchart_icon_exit.png b/kchart/src/main/res/mipmap-mdpi/kchart_icon_exit.png new file mode 100644 index 0000000..d5c33d9 Binary files /dev/null and b/kchart/src/main/res/mipmap-mdpi/kchart_icon_exit.png differ diff --git a/kchart/src/main/res/mipmap-mdpi/kchart_icon_setting_config.png b/kchart/src/main/res/mipmap-mdpi/kchart_icon_setting_config.png new file mode 100644 index 0000000..08a082f Binary files /dev/null and b/kchart/src/main/res/mipmap-mdpi/kchart_icon_setting_config.png differ diff --git a/kchart/src/main/res/mipmap-mdpi/kchart_icon_unstar.png b/kchart/src/main/res/mipmap-mdpi/kchart_icon_unstar.png new file mode 100644 index 0000000..b669101 Binary files /dev/null and b/kchart/src/main/res/mipmap-mdpi/kchart_icon_unstar.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_back.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_back.png new file mode 100644 index 0000000..cc77c2d Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_back.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_drop_select.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_drop_select.png new file mode 100644 index 0000000..80bb2c6 Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_drop_select.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_exit.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_exit.png new file mode 100644 index 0000000..772b982 Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_exit.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_full_screen.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_full_screen.png new file mode 100644 index 0000000..8ac3f17 Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_full_screen.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_no_see.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_no_see.png new file mode 100644 index 0000000..75e0725 Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_no_see.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_reset.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_reset.png new file mode 100644 index 0000000..01a4f98 Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_reset.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_see.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_see.png new file mode 100644 index 0000000..a7b4e63 Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_see.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_setting_config.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_setting_config.png new file mode 100644 index 0000000..076b6ef Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_setting_config.png differ diff --git a/kchart/src/main/res/mipmap-xhdpi/kchart_icon_unstar.png b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_unstar.png new file mode 100644 index 0000000..7f07a5f Binary files /dev/null and b/kchart/src/main/res/mipmap-xhdpi/kchart_icon_unstar.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_back.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_back.png new file mode 100644 index 0000000..1c4b292 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_back.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_drop_select.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_drop_select.png new file mode 100644 index 0000000..55efb0a Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_drop_select.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_exit.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_exit.png new file mode 100644 index 0000000..20dd695 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_exit.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_full_screen.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_full_screen.png new file mode 100644 index 0000000..7599094 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_full_screen.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_no_see.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_no_see.png new file mode 100644 index 0000000..8de983f Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_no_see.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_reset.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_reset.png new file mode 100644 index 0000000..1516ab7 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_reset.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_see.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_see.png new file mode 100644 index 0000000..bd0db65 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_see.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_setting_config.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_setting_config.png new file mode 100644 index 0000000..03fcba0 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_setting_config.png differ diff --git a/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_unstar.png b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_unstar.png new file mode 100644 index 0000000..c5ff277 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxhdpi/kchart_icon_unstar.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_back.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_back.png new file mode 100644 index 0000000..da5e378 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_back.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_drop_select.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_drop_select.png new file mode 100644 index 0000000..9f56f2f Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_drop_select.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_exit.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_exit.png new file mode 100644 index 0000000..f837eae Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_exit.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_full_screen.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_full_screen.png new file mode 100644 index 0000000..60d9436 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_full_screen.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_no_see.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_no_see.png new file mode 100644 index 0000000..8a0edbc Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_no_see.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_reset.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_reset.png new file mode 100644 index 0000000..d1c8562 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_reset.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_see.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_see.png new file mode 100644 index 0000000..85a4804 Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_see.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_setting_config.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_setting_config.png new file mode 100644 index 0000000..a34711c Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_setting_config.png differ diff --git a/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_unstar.png b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_unstar.png new file mode 100644 index 0000000..6c526bb Binary files /dev/null and b/kchart/src/main/res/mipmap-xxxhdpi/kchart_icon_unstar.png differ diff --git a/kchart/src/main/res/values/kchart_attrs.xml b/kchart/src/main/res/values/kchart_attrs.xml new file mode 100644 index 0000000..eeb1cd1 --- /dev/null +++ b/kchart/src/main/res/values/kchart_attrs.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kchart/src/main/res/values/kchart_colors.xml b/kchart/src/main/res/values/kchart_colors.xml new file mode 100644 index 0000000..2ed030a --- /dev/null +++ b/kchart/src/main/res/values/kchart_colors.xml @@ -0,0 +1,41 @@ + + + #DF3536 + #35DF7E + + #18CCF6 + #FE5EDF + #E7A520 + #EF5350 + #7E57C2 + #9CCC65 + + #fff + + #202326 + #353941 + #B1B2B6 + #c830343C + #30343C + #FF6601 + + #1882D4 + #6D87A8 + + #CCD0E6 + #6D87A8 + + #4B85D6 + #1A4B85D6 + + #CCD0E6 + #6D87A8 + + #155184 + + #465367 + #4E5F71 + #243441 + #2D3647 + + diff --git a/kchart/src/main/res/values/kchart_dimens.xml b/kchart/src/main/res/values/kchart_dimens.xml new file mode 100644 index 0000000..0c65cbb --- /dev/null +++ b/kchart/src/main/res/values/kchart_dimens.xml @@ -0,0 +1,14 @@ + + 10sp + 9sp + 11sp + 1dp + 4dp + 0.5dp + 1dp + 6dp + 15dp + 15dp + + 12sp + \ No newline at end of file diff --git a/kchart/src/main/res/values/kchart_strings.xml b/kchart/src/main/res/values/kchart_strings.xml new file mode 100644 index 0000000..55aeae2 --- /dev/null +++ b/kchart/src/main/res/values/kchart_strings.xml @@ -0,0 +1,5 @@ + + + 主图 + 副图 + \ No newline at end of file diff --git a/kchart/src/main/res/values/kchart_styles.xml b/kchart/src/main/res/values/kchart_styles.xml new file mode 100644 index 0000000..029cc5d --- /dev/null +++ b/kchart/src/main/res/values/kchart_styles.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kchart/src/main/res/values/strings.xml b/kchart/src/main/res/values/strings.xml new file mode 100644 index 0000000..c270caa --- /dev/null +++ b/kchart/src/main/res/values/strings.xml @@ -0,0 +1,20 @@ + + + 简介 + MA指标由一段时间内的收盘价之和取算数平均数后连线,可抚平短期波动,反映出长期趋势或周期。 + BOLL指标又叫布林带,其基本的型态是由三条轨道线组成的带状通道(中轨和上、下轨各一条)。中轨为价格的平均成本,上轨和下轨可分别视为价格的压力线和支撑线。 + MACD指标由一组曲线与图形组成,通过收盘时价格或指数的快变及慢变的指数移动平均值(EMA)之间的差计算出来。“S”指更短时段的EMA,而“L”则指较长时段的EMA,最常用的是12及26日EMA。 + KDJ指标通过一个特定的周期(常为9日、9周等)内出现过的最高价、最低价及最后一个计算周期的收盘价及这三者之间的比例关系,来计算最后一个计算周期的未成熟随机值,然后根据平滑移动平均线的方法来计算K值、D值与J值,并绘成曲线图来研判价格走势。 + RSI指标是比较价格升降运动以表达价格强度的技术分析工具,其中14日RSI最具代表性。 + WR指标是一个振荡指标,是依价格的摆动点来度量是否处于超买或超卖的现象。它衡量多空双方创出的峰值(最高价)距每天收盘价的距离与一定时间内(如7天、14天、28天等)的价格波动范围的比例,以提供出价格趋势反转的讯号。 + 重置 + 指标设置 + 时间: + 开: + 高: + 低: + 收: + 涨跌额: + 涨跌幅: + 成交量: + \ No newline at end of file diff --git a/kchart/src/test/java/xyz/a1api/kchart/ExampleUnitTest.kt b/kchart/src/test/java/xyz/a1api/kchart/ExampleUnitTest.kt new file mode 100644 index 0000000..a5f0ff5 --- /dev/null +++ b/kchart/src/test/java/xyz/a1api/kchart/ExampleUnitTest.kt @@ -0,0 +1,16 @@ +package xyz.a1api.kchart + +import org.junit.Assert.assertEquals +import org.junit.Test + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..f083cae --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include /*':app', */':simple', ':stomped-lib', ':kchart' diff --git a/simple/.gitignore b/simple/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/simple/.gitignore @@ -0,0 +1 @@ +/build diff --git a/simple/build.gradle b/simple/build.gradle new file mode 100644 index 0000000..42a5f7b --- /dev/null +++ b/simple/build.gradle @@ -0,0 +1,68 @@ +apply plugin: 'com.android.application' + +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' + +android { + + compileSdkVersion 28 + defaultConfig { + applicationId "pro.udax.app" + minSdkVersion 16 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" +// vectorDrawables.useSupportLibrary = true + multiDexEnabled true + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation 'androidx.multidex:multidex:2.0.1' + + //网络框架 + implementation 'com.squareup.okhttp3:okhttp:3.12.0' + implementation 'com.google.code.gson:gson:2.8.5' + def retrofit_version = "2.5.0" + implementation "com.squareup.retrofit2:retrofit:$retrofit_version" + implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" + + + + implementation 'com.github.cat-x:LStorage:0.20' + implementation project(':stomped-lib') + implementation 'androidx.core:core-ktx:1.2.0-beta01' + implementation project(path: ':kchart') +} +androidExtensions { + experimental = true +} diff --git a/simple/proguard-rules.pro b/simple/proguard-rules.pro new file mode 100644 index 0000000..b30a764 --- /dev/null +++ b/simple/proguard-rules.pro @@ -0,0 +1,83 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile + +##################OKhttp########################### +# JSR 305 annotations are for embedding nullability information. +-dontwarn javax.annotation.** + +# A resource is loaded with a relative path so the package of this class must be preserved. +-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase + +# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. +-dontwarn org.codehaus.mojo.animal_sniffer.* + +# OkHttp platform used only on JVM and when Conscrypt dependency is available. +-dontwarn okhttp3.internal.platform.ConscryptPlatform +##################OKhttp########################### + +##################glide########################### +-keep public class * implements com.bumptech.glide.module.GlideModule +-keep public class * extends com.bumptech.glide.module.AppGlideModule +-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { + **[] $VALUES; + public *; +} + +# for DexGuard only +-keepresourcexmlelements manifest/application/meta-data@value=GlideModule +##################glide########################### + + +##################Retrofit########################### +# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and +# EnclosingMethod is required to use InnerClasses. +-keepattributes Signature, InnerClasses, EnclosingMethod + +# Retain service method parameters when optimizing. +-keepclassmembers,allowshrinking,allowobfuscation interface * { + @retrofit2.http.* ; +} + +# Ignore annotation used for build tooling. +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement + +# Ignore JSR 305 annotations for embedding nullability information. +-dontwarn javax.annotation.** + +# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. +-dontwarn kotlin.Unit + +# Top-level functions that can only be used by Kotlin. +-dontwarn retrofit2.-KotlinExtensions +##################Retrofit########################### + + +##################kotlinx.coroutines########################### +# ServiceLoader support +-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} +-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} + +# Most of volatile fields are updated with AFU and should not be mangled +-keepclassmembernames class kotlinx.** { + volatile ; +} +##################kotlinx.coroutines########################### \ No newline at end of file diff --git a/simple/src/main/AndroidManifest.xml b/simple/src/main/AndroidManifest.xml new file mode 100644 index 0000000..0c813c8 --- /dev/null +++ b/simple/src/main/AndroidManifest.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/simple/src/main/assets/ibm.json b/simple/src/main/assets/ibm.json new file mode 100644 index 0000000..41a32e0 --- /dev/null +++ b/simple/src/main/assets/ibm.json @@ -0,0 +1,50130 @@ +[ + { + "Close": "86.875", + "Date": "1991/12/16", + "High": "88", + "Low": "86.75", + "Open": "87.75", + "Volume": "5168400" + }, + { + "Close": "85.5", + "Date": "1991/12/17", + "High": "87", + "Low": "85.25", + "Open": "86.75", + "Volume": "5928000" + }, + { + "Close": "86.25", + "Date": "1991/12/18", + "High": "86.875", + "Low": "84.875", + "Open": "85.5", + "Volume": "7624000" + }, + { + "Close": "84.875", + "Date": "1991/12/19", + "High": "85.875", + "Low": "84.5", + "Open": "85.625", + "Volume": "7609600" + }, + { + "Close": "85.75", + "Date": "1991/12/20", + "High": "86.25", + "Low": "85", + "Open": "86", + "Volume": "12893200" + }, + { + "Close": "88.25", + "Date": "1991/12/23", + "High": "88.5", + "Low": "85.5", + "Open": "85.875", + "Volume": "9367200" + }, + { + "Close": "88.25", + "Date": "1991/12/24", + "High": "90", + "Low": "87.875", + "Open": "88.25", + "Volume": "6876800" + }, + { + "Close": "88.25", + "Date": "1991/12/26", + "High": "88.875", + "Low": "87.5", + "Open": "88.25", + "Volume": "4915200" + }, + { + "Close": "89.375", + "Date": "1991/12/27", + "High": "89.625", + "Low": "88.375", + "Open": "88.375", + "Volume": "6164000" + }, + { + "Close": "90.375", + "Date": "1991/12/30", + "High": "90.75", + "Low": "89.125", + "Open": "89.75", + "Volume": "7784800" + }, + { + "Close": "89", + "Date": "1991/12/31", + "High": "91.125", + "Low": "88.875", + "Open": "90.125", + "Volume": "7626000" + }, + { + "Close": "90.25", + "Date": "1992/1/2", + "High": "90.625", + "Low": "88.875", + "Open": "89", + "Volume": "7123600" + }, + { + "Close": "90.375", + "Date": "1992/1/3", + "High": "91.125", + "Low": "90", + "Open": "90.25", + "Volume": "5802400" + }, + { + "Close": "92.25", + "Date": "1992/1/6", + "High": "93.125", + "Low": "90.875", + "Open": "91", + "Volume": "8794000" + }, + { + "Close": "94.625", + "Date": "1992/1/7", + "High": "94.75", + "Low": "91.875", + "Open": "92", + "Volume": "7892000" + }, + { + "Close": "92.375", + "Date": "1992/1/8", + "High": "95", + "Low": "92.25", + "Open": "94", + "Volume": "10063600" + }, + { + "Close": "91.25", + "Date": "1992/1/9", + "High": "94.25", + "Low": "91.25", + "Open": "92.625", + "Volume": "8160400" + }, + { + "Close": "90.875", + "Date": "1992/1/10", + "High": "92.5", + "Low": "90.625", + "Open": "91.375", + "Volume": "6446000" + }, + { + "Close": "90.25", + "Date": "1992/1/13", + "High": "90.875", + "Low": "89.75", + "Open": "90.75", + "Volume": "5333200" + }, + { + "Close": "92.375", + "Date": "1992/1/14", + "High": "92.5", + "Low": "90.25", + "Open": "90.375", + "Volume": "5353600" + }, + { + "Close": "95.375", + "Date": "1992/1/15", + "High": "95.75", + "Low": "93.5", + "Open": "94", + "Volume": "12415600" + }, + { + "Close": "95.5", + "Date": "1992/1/16", + "High": "97.125", + "Low": "95", + "Open": "95.125", + "Volume": "9012800" + }, + { + "Close": "96.375", + "Date": "1992/1/17", + "High": "98.125", + "Low": "92.625", + "Open": "95", + "Volume": "14328000" + }, + { + "Close": "95.25", + "Date": "1992/1/20", + "High": "96.375", + "Low": "95.25", + "Open": "96.25", + "Volume": "4839600" + }, + { + "Close": "92.875", + "Date": "1992/1/21", + "High": "95.5", + "Low": "92.875", + "Open": "95.25", + "Volume": "5705600" + }, + { + "Close": "95.625", + "Date": "1992/1/22", + "High": "95.625", + "Low": "92.875", + "Open": "92.875", + "Volume": "5093600" + }, + { + "Close": "93.5", + "Date": "1992/1/23", + "High": "95.875", + "Low": "93.25", + "Open": "95.5", + "Volume": "5356800" + }, + { + "Close": "93.125", + "Date": "1992/1/24", + "High": "94.25", + "Low": "93.125", + "Open": "93.625", + "Volume": "4221200" + }, + { + "Close": "93.75", + "Date": "1992/1/27", + "High": "94", + "Low": "93.375", + "Open": "93.5", + "Volume": "2872000" + }, + { + "Close": "93.25", + "Date": "1992/1/28", + "High": "94", + "Low": "92.875", + "Open": "93.875", + "Volume": "3914000" + }, + { + "Close": "91.875", + "Date": "1992/1/29", + "High": "94.125", + "Low": "91.625", + "Open": "92.75", + "Volume": "5754400" + }, + { + "Close": "91.75", + "Date": "1992/1/30", + "High": "92.5", + "Low": "91.375", + "Open": "92.125", + "Volume": "4190400" + }, + { + "Close": "90", + "Date": "1992/1/31", + "High": "92", + "Low": "90", + "Open": "91.875", + "Volume": "5962000" + }, + { + "Close": "91.375", + "Date": "1992/2/3", + "High": "91.375", + "Low": "89.25", + "Open": "90", + "Volume": "6077200" + }, + { + "Close": "92.25", + "Date": "1992/2/4", + "High": "92.25", + "Low": "90", + "Open": "91.125", + "Volume": "6010400" + }, + { + "Close": "91.25", + "Date": "1992/2/5", + "High": "92.125", + "Low": "91", + "Open": "91.75", + "Volume": "6530000" + }, + { + "Close": "89.875", + "Date": "1992/2/6", + "High": "90.875", + "Low": "89.625", + "Open": "90.375", + "Volume": "5606800" + }, + { + "Close": "89.25", + "Date": "1992/2/7", + "High": "90.375", + "Low": "88.625", + "Open": "90", + "Volume": "6896800" + }, + { + "Close": "89.75", + "Date": "1992/2/10", + "High": "89.875", + "Low": "89.125", + "Open": "89.625", + "Volume": "3783200" + }, + { + "Close": "90.25", + "Date": "1992/2/11", + "High": "90.875", + "Low": "89.75", + "Open": "89.75", + "Volume": "4522800" + }, + { + "Close": "92.125", + "Date": "1992/2/12", + "High": "92.375", + "Low": "89.875", + "Open": "90.5", + "Volume": "6326000" + }, + { + "Close": "90.75", + "Date": "1992/2/13", + "High": "93.25", + "Low": "90.125", + "Open": "92.75", + "Volume": "7816000" + }, + { + "Close": "89.75", + "Date": "1992/2/14", + "High": "91.125", + "Low": "89.5", + "Open": "90.5", + "Volume": "5180400" + }, + { + "Close": "89.625", + "Date": "1992/2/18", + "High": "91.125", + "Low": "89.125", + "Open": "90", + "Volume": "5258000" + }, + { + "Close": "89.625", + "Date": "1992/2/19", + "High": "90.75", + "Low": "89.375", + "Open": "90", + "Volume": "4593600" + }, + { + "Close": "89.75", + "Date": "1992/2/20", + "High": "90.625", + "Low": "89.125", + "Open": "89.75", + "Volume": "5452800" + }, + { + "Close": "89.875", + "Date": "1992/2/21", + "High": "90.375", + "Low": "89.25", + "Open": "89.75", + "Volume": "5784400" + }, + { + "Close": "89.375", + "Date": "1992/2/24", + "High": "90.25", + "Low": "88.75", + "Open": "89.875", + "Volume": "4226000" + }, + { + "Close": "88.25", + "Date": "1992/2/25", + "High": "89.25", + "Low": "88.125", + "Open": "89.25", + "Volume": "6319200" + }, + { + "Close": "88.25", + "Date": "1992/2/26", + "High": "88.625", + "Low": "87.625", + "Open": "88.375", + "Volume": "6221200" + }, + { + "Close": "87.75", + "Date": "1992/2/27", + "High": "88.375", + "Low": "87.5", + "Open": "88", + "Volume": "5926400" + }, + { + "Close": "86.875", + "Date": "1992/2/28", + "High": "88.625", + "Low": "86.625", + "Open": "88.375", + "Volume": "6988800" + }, + { + "Close": "87.5", + "Date": "1992/3/2", + "High": "87.75", + "Low": "86.25", + "Open": "86.875", + "Volume": "5765600" + }, + { + "Close": "88.25", + "Date": "1992/3/3", + "High": "88.625", + "Low": "87.125", + "Open": "87.625", + "Volume": "6309200" + }, + { + "Close": "87.375", + "Date": "1992/3/4", + "High": "89.625", + "Low": "87.375", + "Open": "88.25", + "Volume": "7210000" + }, + { + "Close": "86.625", + "Date": "1992/3/5", + "High": "88.125", + "Low": "86.5", + "Open": "86.75", + "Volume": "6630800" + }, + { + "Close": "86.375", + "Date": "1992/3/6", + "High": "87.25", + "Low": "86", + "Open": "86.75", + "Volume": "7251200" + }, + { + "Close": "87.375", + "Date": "1992/3/9", + "High": "87.375", + "Low": "85.125", + "Open": "86.375", + "Volume": "6315200" + }, + { + "Close": "87.875", + "Date": "1992/3/10", + "High": "88.375", + "Low": "87.5", + "Open": "87.75", + "Volume": "5055200" + }, + { + "Close": "87.75", + "Date": "1992/3/11", + "High": "88.375", + "Low": "87.125", + "Open": "87.875", + "Volume": "4870400" + }, + { + "Close": "89.125", + "Date": "1992/3/12", + "High": "89.125", + "Low": "87.625", + "Open": "87.625", + "Volume": "5398800" + }, + { + "Close": "89.625", + "Date": "1992/3/13", + "High": "90.25", + "Low": "89.125", + "Open": "90.25", + "Volume": "5373600" + }, + { + "Close": "88.75", + "Date": "1992/3/16", + "High": "89.625", + "Low": "88.25", + "Open": "89.25", + "Volume": "3903200" + }, + { + "Close": "87.625", + "Date": "1992/3/17", + "High": "88.875", + "Low": "87.375", + "Open": "88.75", + "Volume": "5886800" + }, + { + "Close": "87.5", + "Date": "1992/3/18", + "High": "88.5", + "Low": "87.25", + "Open": "87.375", + "Volume": "4292400" + }, + { + "Close": "85.875", + "Date": "1992/3/19", + "High": "87.125", + "Low": "85.625", + "Open": "85.875", + "Volume": "7691600" + }, + { + "Close": "86.125", + "Date": "1992/3/20", + "High": "86.625", + "Low": "85.75", + "Open": "85.875", + "Volume": "7849600" + }, + { + "Close": "85.625", + "Date": "1992/3/23", + "High": "86.75", + "Low": "85.625", + "Open": "86", + "Volume": "4996000" + }, + { + "Close": "85.25", + "Date": "1992/3/24", + "High": "86", + "Low": "85", + "Open": "85.75", + "Volume": "7334000" + }, + { + "Close": "85.125", + "Date": "1992/3/25", + "High": "86", + "Low": "84.75", + "Open": "85.125", + "Volume": "5261200" + }, + { + "Close": "84.125", + "Date": "1992/3/26", + "High": "85.375", + "Low": "84.125", + "Open": "85.375", + "Volume": "6360400" + }, + { + "Close": "83.25", + "Date": "1992/3/27", + "High": "84.375", + "Low": "83.125", + "Open": "84", + "Volume": "8572400" + }, + { + "Close": "83.375", + "Date": "1992/3/30", + "High": "83.875", + "Low": "83.125", + "Open": "83.375", + "Volume": "5402000" + }, + { + "Close": "83.5", + "Date": "1992/3/31", + "High": "84.875", + "Low": "83.375", + "Open": "83.375", + "Volume": "6479200" + }, + { + "Close": "82.875", + "Date": "1992/4/1", + "High": "83.5", + "Low": "82.75", + "Open": "83.5", + "Volume": "7874400" + }, + { + "Close": "82.25", + "Date": "1992/4/2", + "High": "83.5", + "Low": "81.875", + "Open": "83.25", + "Volume": "8291200" + }, + { + "Close": "81.75", + "Date": "1992/4/3", + "High": "82.375", + "Low": "81.75", + "Open": "82.125", + "Volume": "6910000" + }, + { + "Close": "83.125", + "Date": "1992/4/6", + "High": "83.125", + "Low": "81.625", + "Open": "82", + "Volume": "5685200" + }, + { + "Close": "82.375", + "Date": "1992/4/7", + "High": "84.875", + "Low": "82.25", + "Open": "83.375", + "Volume": "7705600" + }, + { + "Close": "84.875", + "Date": "1992/4/8", + "High": "85", + "Low": "82.625", + "Open": "82.625", + "Volume": "12080400" + }, + { + "Close": "85.125", + "Date": "1992/4/9", + "High": "85.875", + "Low": "84.625", + "Open": "85.375", + "Volume": "9102400" + }, + { + "Close": "86", + "Date": "1992/4/10", + "High": "86.125", + "Low": "84.5", + "Open": "85.625", + "Volume": "8211600" + }, + { + "Close": "87.5", + "Date": "1992/4/13", + "High": "87.5", + "Low": "85.875", + "Open": "86.125", + "Volume": "6849200" + }, + { + "Close": "88.25", + "Date": "1992/4/14", + "High": "89.75", + "Low": "88", + "Open": "89.5", + "Volume": "13266400" + }, + { + "Close": "88.5", + "Date": "1992/4/15", + "High": "88.875", + "Low": "87.625", + "Open": "88.75", + "Volume": "8862400" + }, + { + "Close": "88.625", + "Date": "1992/4/16", + "High": "88.625", + "Low": "87.5", + "Open": "88.5", + "Volume": "8252400" + }, + { + "Close": "89.5", + "Date": "1992/4/20", + "High": "89.75", + "Low": "88.25", + "Open": "88.5", + "Volume": "7171200" + }, + { + "Close": "90", + "Date": "1992/4/21", + "High": "90.25", + "Low": "89.5", + "Open": "89.625", + "Volume": "8468800" + }, + { + "Close": "90.125", + "Date": "1992/4/22", + "High": "90.125", + "Low": "89.625", + "Open": "89.875", + "Volume": "5299600" + }, + { + "Close": "89.25", + "Date": "1992/4/23", + "High": "90.625", + "Low": "89", + "Open": "90", + "Volume": "5901600" + }, + { + "Close": "88.125", + "Date": "1992/4/24", + "High": "89.25", + "Low": "88.125", + "Open": "89.125", + "Volume": "3972400" + }, + { + "Close": "88.125", + "Date": "1992/4/27", + "High": "88.75", + "Low": "87.75", + "Open": "87.875", + "Volume": "4003600" + }, + { + "Close": "88.5", + "Date": "1992/4/28", + "High": "88.5", + "Low": "87.375", + "Open": "88.125", + "Volume": "4435600" + }, + { + "Close": "88.125", + "Date": "1992/4/29", + "High": "88.875", + "Low": "87.75", + "Open": "88.875", + "Volume": "5074400" + }, + { + "Close": "90.75", + "Date": "1992/4/30", + "High": "90.75", + "Low": "88.25", + "Open": "88.5", + "Volume": "6727600" + }, + { + "Close": "90.625", + "Date": "1992/5/1", + "High": "92.125", + "Low": "90.375", + "Open": "91.25", + "Volume": "8297600" + }, + { + "Close": "92.5", + "Date": "1992/5/4", + "High": "93", + "Low": "92.125", + "Open": "92.5", + "Volume": "9364800" + }, + { + "Close": "93.875", + "Date": "1992/5/5", + "High": "94", + "Low": "92.375", + "Open": "92.5", + "Volume": "8179600" + }, + { + "Close": "93.375", + "Date": "1992/5/6", + "High": "94.125", + "Low": "93.125", + "Open": "94", + "Volume": "8116400" + }, + { + "Close": "93.75", + "Date": "1992/5/7", + "High": "94.125", + "Low": "92.75", + "Open": "92.75", + "Volume": "7582800" + }, + { + "Close": "93.125", + "Date": "1992/5/8", + "High": "94.25", + "Low": "93.125", + "Open": "94.125", + "Volume": "5698800" + }, + { + "Close": "93.875", + "Date": "1992/5/11", + "High": "94.375", + "Low": "93.375", + "Open": "93.5", + "Volume": "6591200" + }, + { + "Close": "93.5", + "Date": "1992/5/12", + "High": "93.875", + "Low": "93", + "Open": "93.75", + "Volume": "5132000" + }, + { + "Close": "92.375", + "Date": "1992/5/13", + "High": "93.625", + "Low": "92.375", + "Open": "93.5", + "Volume": "5552800" + }, + { + "Close": "91.75", + "Date": "1992/5/14", + "High": "92.25", + "Low": "91", + "Open": "92.125", + "Volume": "5878000" + }, + { + "Close": "91.625", + "Date": "1992/5/15", + "High": "92.125", + "Low": "91.125", + "Open": "91.375", + "Volume": "6408400" + }, + { + "Close": "90.75", + "Date": "1992/5/18", + "High": "91.875", + "Low": "90.5", + "Open": "91.625", + "Volume": "4679600" + }, + { + "Close": "92.5", + "Date": "1992/5/19", + "High": "92.5", + "Low": "90.625", + "Open": "90.875", + "Volume": "4916000" + }, + { + "Close": "91.625", + "Date": "1992/5/20", + "High": "92.75", + "Low": "91.5", + "Open": "92.375", + "Volume": "4626000" + }, + { + "Close": "91.5", + "Date": "1992/5/21", + "High": "91.625", + "Low": "90.625", + "Open": "91.375", + "Volume": "3735600" + }, + { + "Close": "91.75", + "Date": "1992/5/22", + "High": "92.25", + "Low": "91.25", + "Open": "91.5", + "Volume": "3357600" + }, + { + "Close": "90.5", + "Date": "1992/5/26", + "High": "91.5", + "Low": "90.375", + "Open": "91.25", + "Volume": "3876400" + }, + { + "Close": "90.875", + "Date": "1992/5/27", + "High": "91", + "Low": "90.125", + "Open": "90.375", + "Volume": "3630000" + }, + { + "Close": "91.125", + "Date": "1992/5/28", + "High": "91.5", + "Low": "90.375", + "Open": "90.875", + "Volume": "3252000" + }, + { + "Close": "90.75", + "Date": "1992/5/29", + "High": "92", + "Low": "90.75", + "Open": "91.375", + "Volume": "4138800" + }, + { + "Close": "90.625", + "Date": "1992/6/1", + "High": "91.25", + "Low": "90.125", + "Open": "90.5", + "Volume": "4687200" + }, + { + "Close": "90.625", + "Date": "1992/6/2", + "High": "91", + "Low": "90.375", + "Open": "90.625", + "Volume": "4106400" + }, + { + "Close": "89.75", + "Date": "1992/6/3", + "High": "90.75", + "Low": "89.75", + "Open": "90.625", + "Volume": "4516400" + }, + { + "Close": "89", + "Date": "1992/6/4", + "High": "89.75", + "Low": "88.875", + "Open": "89.625", + "Volume": "4184000" + }, + { + "Close": "90.375", + "Date": "1992/6/5", + "High": "90.75", + "Low": "88.25", + "Open": "88.625", + "Volume": "6172800" + }, + { + "Close": "91", + "Date": "1992/6/8", + "High": "91.25", + "Low": "90.375", + "Open": "90.375", + "Volume": "3882400" + }, + { + "Close": "90.625", + "Date": "1992/6/9", + "High": "91", + "Low": "90.375", + "Open": "91", + "Volume": "3520400" + }, + { + "Close": "90.125", + "Date": "1992/6/10", + "High": "91.125", + "Low": "90.125", + "Open": "90.5", + "Volume": "7176400" + }, + { + "Close": "92", + "Date": "1992/6/11", + "High": "92.125", + "Low": "90.375", + "Open": "90.5", + "Volume": "7861600" + }, + { + "Close": "93", + "Date": "1992/6/12", + "High": "93.875", + "Low": "92.25", + "Open": "92.5", + "Volume": "11170400" + }, + { + "Close": "94.125", + "Date": "1992/6/15", + "High": "94.125", + "Low": "92.5", + "Open": "92.5", + "Volume": "7490800" + }, + { + "Close": "93.125", + "Date": "1992/6/16", + "High": "94", + "Low": "92.875", + "Open": "94", + "Volume": "6823200" + }, + { + "Close": "92.625", + "Date": "1992/6/17", + "High": "93.875", + "Low": "92.125", + "Open": "92.875", + "Volume": "7372800" + }, + { + "Close": "94.5", + "Date": "1992/6/18", + "High": "95.875", + "Low": "93.125", + "Open": "93.375", + "Volume": "12766800" + }, + { + "Close": "95", + "Date": "1992/6/19", + "High": "95.5", + "Low": "94.75", + "Open": "95", + "Volume": "9402000" + }, + { + "Close": "95.25", + "Date": "1992/6/22", + "High": "95.375", + "Low": "94.625", + "Open": "94.75", + "Volume": "7436800" + }, + { + "Close": "95.875", + "Date": "1992/6/23", + "High": "96.375", + "Low": "95.25", + "Open": "95.5", + "Volume": "8334400" + }, + { + "Close": "97.625", + "Date": "1992/6/24", + "High": "97.875", + "Low": "96.25", + "Open": "96.375", + "Volume": "8484400" + }, + { + "Close": "97.125", + "Date": "1992/6/25", + "High": "98.25", + "Low": "96.625", + "Open": "97.625", + "Volume": "7344000" + }, + { + "Close": "97.25", + "Date": "1992/6/26", + "High": "97.375", + "Low": "96.5", + "Open": "96.75", + "Volume": "4185600" + }, + { + "Close": "98.625", + "Date": "1992/6/29", + "High": "98.625", + "Low": "97.75", + "Open": "97.875", + "Volume": "5179600" + }, + { + "Close": "97.875", + "Date": "1992/6/30", + "High": "98.625", + "Low": "97.75", + "Open": "98.625", + "Volume": "4276000" + }, + { + "Close": "98.25", + "Date": "1992/7/1", + "High": "98.5", + "Low": "97.75", + "Open": "97.875", + "Volume": "6107600" + }, + { + "Close": "96.875", + "Date": "1992/7/2", + "High": "98.25", + "Low": "96.875", + "Open": "98.25", + "Volume": "5085200" + }, + { + "Close": "98.125", + "Date": "1992/7/6", + "High": "98.25", + "Low": "97", + "Open": "97.125", + "Volume": "4594800" + }, + { + "Close": "96.75", + "Date": "1992/7/7", + "High": "98.75", + "Low": "96.625", + "Open": "98.125", + "Volume": "5414400" + }, + { + "Close": "97.875", + "Date": "1992/7/8", + "High": "97.875", + "Low": "96.75", + "Open": "96.75", + "Volume": "5013200" + }, + { + "Close": "97.5", + "Date": "1992/7/9", + "High": "98.375", + "Low": "97.5", + "Open": "97.75", + "Volume": "4561600" + }, + { + "Close": "97.625", + "Date": "1992/7/10", + "High": "97.875", + "Low": "96.5", + "Open": "97.75", + "Volume": "3664400" + }, + { + "Close": "97.875", + "Date": "1992/7/13", + "High": "98.875", + "Low": "97.625", + "Open": "98", + "Volume": "4772800" + }, + { + "Close": "97.875", + "Date": "1992/7/14", + "High": "98.375", + "Low": "97.5", + "Open": "97.875", + "Volume": "3684000" + }, + { + "Close": "99.25", + "Date": "1992/7/15", + "High": "99.375", + "Low": "98", + "Open": "98", + "Volume": "8332000" + }, + { + "Close": "100.25", + "Date": "1992/7/16", + "High": "100.375", + "Low": "99", + "Open": "99", + "Volume": "10243600" + }, + { + "Close": "95", + "Date": "1992/7/17", + "High": "97.375", + "Low": "94.625", + "Open": "97", + "Volume": "23750000" + }, + { + "Close": "92.875", + "Date": "1992/7/20", + "High": "93.375", + "Low": "92.75", + "Open": "93.25", + "Volume": "11625200" + }, + { + "Close": "93.75", + "Date": "1992/7/21", + "High": "94.25", + "Low": "92.875", + "Open": "93.125", + "Volume": "7960400" + }, + { + "Close": "92.5", + "Date": "1992/7/22", + "High": "94", + "Low": "92.5", + "Open": "93.5", + "Volume": "6144400" + }, + { + "Close": "92.75", + "Date": "1992/7/23", + "High": "93.25", + "Low": "92.625", + "Open": "92.75", + "Volume": "4278400" + }, + { + "Close": "92.75", + "Date": "1992/7/24", + "High": "93.625", + "Low": "92.375", + "Open": "92.625", + "Volume": "6149200" + }, + { + "Close": "92.375", + "Date": "1992/7/27", + "High": "93.25", + "Low": "92.375", + "Open": "92.75", + "Volume": "3493200" + }, + { + "Close": "93.75", + "Date": "1992/7/28", + "High": "94", + "Low": "92.375", + "Open": "92.625", + "Volume": "4620400" + }, + { + "Close": "94.375", + "Date": "1992/7/29", + "High": "94.875", + "Low": "94.25", + "Open": "94.625", + "Volume": "6348800" + }, + { + "Close": "95.375", + "Date": "1992/7/30", + "High": "95.5", + "Low": "94.375", + "Open": "94.375", + "Volume": "4461200" + }, + { + "Close": "94.75", + "Date": "1992/7/31", + "High": "95.125", + "Low": "94.5", + "Open": "94.875", + "Volume": "3285600" + }, + { + "Close": "94.875", + "Date": "1992/8/3", + "High": "95.25", + "Low": "94.375", + "Open": "94.5", + "Volume": "2655600" + }, + { + "Close": "94.25", + "Date": "1992/8/4", + "High": "94.875", + "Low": "94.25", + "Open": "94.75", + "Volume": "2539200" + }, + { + "Close": "91.625", + "Date": "1992/8/5", + "High": "93", + "Low": "91.375", + "Open": "92.625", + "Volume": "10568800" + }, + { + "Close": "88.25", + "Date": "1992/8/6", + "High": "90.125", + "Low": "88.125", + "Open": "90", + "Volume": "13726800" + }, + { + "Close": "87.125", + "Date": "1992/8/7", + "High": "88.625", + "Low": "86.625", + "Open": "88.375", + "Volume": "11211200" + }, + { + "Close": "88.5", + "Date": "1992/8/10", + "High": "88.75", + "Low": "87.25", + "Open": "87.25", + "Volume": "6414000" + }, + { + "Close": "88", + "Date": "1992/8/11", + "High": "88.625", + "Low": "87.75", + "Open": "88.375", + "Volume": "5900400" + }, + { + "Close": "88.375", + "Date": "1992/8/12", + "High": "89", + "Low": "88", + "Open": "88.125", + "Volume": "5770000" + }, + { + "Close": "88.125", + "Date": "1992/8/13", + "High": "89.125", + "Low": "87.875", + "Open": "88.625", + "Volume": "5375600" + }, + { + "Close": "88.375", + "Date": "1992/8/14", + "High": "88.75", + "Low": "88.25", + "Open": "88.375", + "Volume": "3994400" + }, + { + "Close": "88.625", + "Date": "1992/8/17", + "High": "89.125", + "Low": "88.5", + "Open": "88.875", + "Volume": "2919600" + }, + { + "Close": "88", + "Date": "1992/8/18", + "High": "88.625", + "Low": "87.875", + "Open": "88.625", + "Volume": "3312800" + }, + { + "Close": "86.625", + "Date": "1992/8/19", + "High": "88.5", + "Low": "86.5", + "Open": "88.25", + "Volume": "5366400" + }, + { + "Close": "85.875", + "Date": "1992/8/20", + "High": "86.875", + "Low": "85.5", + "Open": "86.625", + "Volume": "5785200" + }, + { + "Close": "86", + "Date": "1992/8/21", + "High": "86.5", + "Low": "85.75", + "Open": "86.375", + "Volume": "7381200" + }, + { + "Close": "85.125", + "Date": "1992/8/24", + "High": "86.25", + "Low": "85", + "Open": "85.625", + "Volume": "5701600" + }, + { + "Close": "87.125", + "Date": "1992/8/25", + "High": "87.125", + "Low": "85.25", + "Open": "85.375", + "Volume": "7609600" + }, + { + "Close": "86.375", + "Date": "1992/8/26", + "High": "87.125", + "Low": "86.25", + "Open": "87", + "Volume": "3236400" + }, + { + "Close": "87.375", + "Date": "1992/8/27", + "High": "87.375", + "Low": "86.375", + "Open": "86.75", + "Volume": "4705200" + }, + { + "Close": "87.25", + "Date": "1992/8/28", + "High": "87.375", + "Low": "86.625", + "Open": "87.375", + "Volume": "3150800" + }, + { + "Close": "86.625", + "Date": "1992/8/31", + "High": "87.5", + "Low": "86.5", + "Open": "87.5", + "Volume": "3956000" + }, + { + "Close": "87.625", + "Date": "1992/9/1", + "High": "87.625", + "Low": "86.5", + "Open": "86.625", + "Volume": "3857600" + }, + { + "Close": "87.5", + "Date": "1992/9/2", + "High": "87.625", + "Low": "86.75", + "Open": "87.5", + "Volume": "3192800" + }, + { + "Close": "86.625", + "Date": "1992/9/3", + "High": "87.75", + "Low": "86.625", + "Open": "87.75", + "Volume": "4713600" + }, + { + "Close": "86", + "Date": "1992/9/4", + "High": "86.625", + "Low": "85.875", + "Open": "86.25", + "Volume": "3150800" + }, + { + "Close": "86.125", + "Date": "1992/9/8", + "High": "86.375", + "Low": "85.875", + "Open": "85.875", + "Volume": "3048800" + }, + { + "Close": "86.875", + "Date": "1992/9/9", + "High": "86.875", + "Low": "86.25", + "Open": "86.25", + "Volume": "3424400" + }, + { + "Close": "87.5", + "Date": "1992/9/10", + "High": "87.5", + "Low": "86.625", + "Open": "87", + "Volume": "4386800" + }, + { + "Close": "88", + "Date": "1992/9/11", + "High": "88.25", + "Low": "87.125", + "Open": "87.25", + "Volume": "4110400" + }, + { + "Close": "88.375", + "Date": "1992/9/14", + "High": "88.75", + "Low": "88.125", + "Open": "88.625", + "Volume": "5339200" + }, + { + "Close": "85.5", + "Date": "1992/9/15", + "High": "87", + "Low": "85.375", + "Open": "87", + "Volume": "7314800" + }, + { + "Close": "83.125", + "Date": "1992/9/16", + "High": "84.5", + "Low": "82.5", + "Open": "84", + "Volume": "19267600" + }, + { + "Close": "83.75", + "Date": "1992/9/17", + "High": "83.75", + "Low": "82.75", + "Open": "83.25", + "Volume": "9558400" + }, + { + "Close": "83.5", + "Date": "1992/9/18", + "High": "84", + "Low": "83.25", + "Open": "83.375", + "Volume": "9266400" + }, + { + "Close": "84.375", + "Date": "1992/9/21", + "High": "84.5", + "Low": "83.875", + "Open": "83.875", + "Volume": "5025200" + }, + { + "Close": "83.25", + "Date": "1992/9/22", + "High": "84.625", + "Low": "83.125", + "Open": "84.375", + "Volume": "6032800" + }, + { + "Close": "83.625", + "Date": "1992/9/23", + "High": "83.75", + "Low": "83.25", + "Open": "83.375", + "Volume": "4450000" + }, + { + "Close": "82.5", + "Date": "1992/9/24", + "High": "83.75", + "Low": "82.25", + "Open": "83.75", + "Volume": "6388800" + }, + { + "Close": "82.25", + "Date": "1992/9/25", + "High": "83.125", + "Low": "82", + "Open": "82.5", + "Volume": "6580400" + }, + { + "Close": "82.75", + "Date": "1992/9/28", + "High": "82.875", + "Low": "82", + "Open": "82", + "Volume": "4589200" + }, + { + "Close": "81", + "Date": "1992/9/29", + "High": "82.75", + "Low": "81", + "Open": "82.25", + "Volume": "8558800" + }, + { + "Close": "80.75", + "Date": "1992/9/30", + "High": "81.375", + "Low": "80", + "Open": "80.375", + "Volume": "12027200" + }, + { + "Close": "80.125", + "Date": "1992/10/1", + "High": "81.125", + "Low": "80", + "Open": "81", + "Volume": "8548800" + }, + { + "Close": "78.5", + "Date": "1992/10/2", + "High": "80.5", + "Low": "78.25", + "Open": "80.25", + "Volume": "13153200" + }, + { + "Close": "78.875", + "Date": "1992/10/5", + "High": "78.875", + "Low": "75.5", + "Open": "78.125", + "Volume": "15406400" + }, + { + "Close": "79.75", + "Date": "1992/10/6", + "High": "80.375", + "Low": "78.625", + "Open": "79.125", + "Volume": "7226400" + }, + { + "Close": "78.375", + "Date": "1992/10/7", + "High": "80", + "Low": "78", + "Open": "79.875", + "Volume": "5016800" + }, + { + "Close": "79.375", + "Date": "1992/10/8", + "High": "79.5", + "Low": "78.5", + "Open": "78.875", + "Volume": "4831200" + }, + { + "Close": "78.5", + "Date": "1992/10/9", + "High": "79.875", + "Low": "78.25", + "Open": "79.375", + "Volume": "5417600" + }, + { + "Close": "78.5", + "Date": "1992/10/12", + "High": "79", + "Low": "78.375", + "Open": "78.625", + "Volume": "3519600" + }, + { + "Close": "78.75", + "Date": "1992/10/13", + "High": "80", + "Low": "78.375", + "Open": "78.75", + "Volume": "5924000" + }, + { + "Close": "78", + "Date": "1992/10/14", + "High": "78.875", + "Low": "76.75", + "Open": "78.375", + "Volume": "7798800" + }, + { + "Close": "72.875", + "Date": "1992/10/15", + "High": "74.125", + "Low": "72", + "Open": "73.25", + "Volume": "33316000" + }, + { + "Close": "70.75", + "Date": "1992/10/16", + "High": "72.875", + "Low": "68.875", + "Open": "72.875", + "Volume": "30614000" + }, + { + "Close": "68.5", + "Date": "1992/10/19", + "High": "70.25", + "Low": "68.5", + "Open": "70.125", + "Volume": "15607200" + }, + { + "Close": "68.375", + "Date": "1992/10/20", + "High": "69.625", + "Low": "67.75", + "Open": "69.25", + "Volume": "13419600" + }, + { + "Close": "68.5", + "Date": "1992/10/21", + "High": "69.125", + "Low": "68.25", + "Open": "68.625", + "Volume": "11067600" + }, + { + "Close": "68.5", + "Date": "1992/10/22", + "High": "69", + "Low": "68", + "Open": "68.75", + "Volume": "9732400" + }, + { + "Close": "69.125", + "Date": "1992/10/23", + "High": "69.375", + "Low": "68.375", + "Open": "68.5", + "Volume": "8948400" + }, + { + "Close": "67.5", + "Date": "1992/10/26", + "High": "68.75", + "Low": "67.5", + "Open": "68.5", + "Volume": "10102800" + }, + { + "Close": "65.75", + "Date": "1992/10/27", + "High": "67.25", + "Low": "65", + "Open": "67.125", + "Volume": "18146800" + }, + { + "Close": "67.125", + "Date": "1992/10/28", + "High": "67.125", + "Low": "65.625", + "Open": "65.75", + "Volume": "11386000" + }, + { + "Close": "66", + "Date": "1992/10/29", + "High": "67.625", + "Low": "65.625", + "Open": "67.375", + "Volume": "10283200" + }, + { + "Close": "66.875", + "Date": "1992/10/30", + "High": "67.375", + "Low": "66", + "Open": "66", + "Volume": "9178000" + }, + { + "Close": "68.875", + "Date": "1992/11/2", + "High": "69", + "Low": "67", + "Open": "67", + "Volume": "9288400" + }, + { + "Close": "69.125", + "Date": "1992/11/3", + "High": "69.875", + "Low": "68.5", + "Open": "68.5", + "Volume": "9500800" + }, + { + "Close": "68.25", + "Date": "1992/11/4", + "High": "69.625", + "Low": "68.125", + "Open": "69", + "Volume": "8319200" + }, + { + "Close": "65.875", + "Date": "1992/11/5", + "High": "67.25", + "Low": "65.625", + "Open": "67.125", + "Volume": "8544800" + }, + { + "Close": "66.25", + "Date": "1992/11/6", + "High": "66.5", + "Low": "65", + "Open": "65.375", + "Volume": "10569200" + }, + { + "Close": "67.5", + "Date": "1992/11/9", + "High": "67.625", + "Low": "66.25", + "Open": "66.25", + "Volume": "8865600" + }, + { + "Close": "65.875", + "Date": "1992/11/10", + "High": "68", + "Low": "65.875", + "Open": "67.625", + "Volume": "8748400" + }, + { + "Close": "65", + "Date": "1992/11/11", + "High": "65.75", + "Low": "64.5", + "Open": "65.625", + "Volume": "12580400" + }, + { + "Close": "64.125", + "Date": "1992/11/12", + "High": "65.375", + "Low": "64.125", + "Open": "65.125", + "Volume": "12532000" + }, + { + "Close": "64.875", + "Date": "1992/11/13", + "High": "65.125", + "Low": "64", + "Open": "64.875", + "Volume": "7405200" + }, + { + "Close": "64.875", + "Date": "1992/11/16", + "High": "65.5", + "Low": "64.625", + "Open": "64.75", + "Volume": "7060400" + }, + { + "Close": "64.25", + "Date": "1992/11/17", + "High": "65", + "Low": "64", + "Open": "64.875", + "Volume": "8082800" + }, + { + "Close": "63.125", + "Date": "1992/11/18", + "High": "64.375", + "Low": "62.75", + "Open": "64.125", + "Volume": "10828400" + }, + { + "Close": "61.25", + "Date": "1992/11/19", + "High": "63.875", + "Low": "61", + "Open": "63", + "Volume": "13230400" + }, + { + "Close": "62.25", + "Date": "1992/11/20", + "High": "62.625", + "Low": "60.875", + "Open": "61.375", + "Volume": "14860800" + }, + { + "Close": "63.25", + "Date": "1992/11/23", + "High": "63.875", + "Low": "62.25", + "Open": "62.375", + "Volume": "8880800" + }, + { + "Close": "64.875", + "Date": "1992/11/24", + "High": "65.5", + "Low": "63.5", + "Open": "63.75", + "Volume": "11388400" + }, + { + "Close": "65.375", + "Date": "1992/11/25", + "High": "66", + "Low": "65.125", + "Open": "65.375", + "Volume": "7154800" + }, + { + "Close": "66", + "Date": "1992/11/27", + "High": "66.25", + "Low": "65.25", + "Open": "65.875", + "Volume": "4918000" + }, + { + "Close": "68.25", + "Date": "1992/11/30", + "High": "68.625", + "Low": "67.5", + "Open": "67.875", + "Volume": "12956000" + }, + { + "Close": "67.75", + "Date": "1992/12/1", + "High": "68.875", + "Low": "67.5", + "Open": "68.375", + "Volume": "8359200" + }, + { + "Close": "67.875", + "Date": "1992/12/2", + "High": "68.25", + "Low": "67.625", + "Open": "67.75", + "Volume": "5331600" + }, + { + "Close": "67.25", + "Date": "1992/12/3", + "High": "68", + "Low": "66.75", + "Open": "67.875", + "Volume": "5785600" + }, + { + "Close": "67", + "Date": "1992/12/4", + "High": "67.625", + "Low": "66.625", + "Open": "67.375", + "Volume": "5785600" + }, + { + "Close": "65.875", + "Date": "1992/12/7", + "High": "67.375", + "Low": "65.75", + "Open": "67.25", + "Volume": "6673600" + }, + { + "Close": "65.375", + "Date": "1992/12/8", + "High": "65.75", + "Low": "64.375", + "Open": "65.5", + "Volume": "8853600" + }, + { + "Close": "62.625", + "Date": "1992/12/9", + "High": "64.25", + "Low": "61.5", + "Open": "64", + "Volume": "14416400" + }, + { + "Close": "61.75", + "Date": "1992/12/10", + "High": "62.375", + "Low": "61.375", + "Open": "61.625", + "Volume": "12756000" + }, + { + "Close": "62.375", + "Date": "1992/12/11", + "High": "62.875", + "Low": "61.625", + "Open": "61.75", + "Volume": "7787200" + }, + { + "Close": "62.875", + "Date": "1992/12/14", + "High": "63.375", + "Low": "62.375", + "Open": "62.375", + "Volume": "10167200" + }, + { + "Close": "56.125", + "Date": "1992/12/15", + "High": "59.875", + "Low": "56", + "Open": "59.875", + "Volume": "48774000" + }, + { + "Close": "51.875", + "Date": "1992/12/16", + "High": "55", + "Low": "50.75", + "Open": "53.625", + "Volume": "53685200" + }, + { + "Close": "53", + "Date": "1992/12/17", + "High": "53.375", + "Low": "51.25", + "Open": "52.125", + "Volume": "32101600" + }, + { + "Close": "51.375", + "Date": "1992/12/18", + "High": "53.25", + "Low": "50.25", + "Open": "53.125", + "Volume": "30629600" + }, + { + "Close": "48.875", + "Date": "1992/12/21", + "High": "51.625", + "Low": "48.75", + "Open": "51.25", + "Volume": "29538000" + }, + { + "Close": "51.75", + "Date": "1992/12/22", + "High": "52", + "Low": "49", + "Open": "50", + "Volume": "24462800" + }, + { + "Close": "51.25", + "Date": "1992/12/23", + "High": "52.625", + "Low": "51", + "Open": "51.625", + "Volume": "16744800" + }, + { + "Close": "52.75", + "Date": "1992/12/24", + "High": "53", + "Low": "51.25", + "Open": "51.375", + "Volume": "7149200" + }, + { + "Close": "51.75", + "Date": "1992/12/28", + "High": "53", + "Low": "51.125", + "Open": "52.875", + "Volume": "11082400" + }, + { + "Close": "49.75", + "Date": "1992/12/29", + "High": "51.125", + "Low": "49.25", + "Open": "50.125", + "Volume": "20006000" + }, + { + "Close": "50.125", + "Date": "1992/12/30", + "High": "50.875", + "Low": "49.75", + "Open": "50.375", + "Volume": "15928400" + }, + { + "Close": "50.375", + "Date": "1992/12/31", + "High": "51.25", + "Low": "50", + "Open": "50.125", + "Volume": "16729600" + }, + { + "Close": "50.125", + "Date": "1993/1/4", + "High": "51.875", + "Low": "50", + "Open": "51.75", + "Volume": "14225600" + }, + { + "Close": "48.875", + "Date": "1993/1/5", + "High": "50", + "Low": "48.5", + "Open": "50", + "Volume": "13935200" + }, + { + "Close": "48", + "Date": "1993/1/6", + "High": "49.125", + "Low": "47.125", + "Open": "48.875", + "Volume": "19358400" + }, + { + "Close": "47", + "Date": "1993/1/7", + "High": "48.625", + "Low": "46.625", + "Open": "48", + "Volume": "14734800" + }, + { + "Close": "46.5", + "Date": "1993/1/8", + "High": "46.875", + "Low": "45.875", + "Open": "46.75", + "Volume": "15790800" + }, + { + "Close": "47.75", + "Date": "1993/1/11", + "High": "48.375", + "Low": "46.75", + "Open": "46.75", + "Volume": "15498800" + }, + { + "Close": "48.75", + "Date": "1993/1/12", + "High": "49.875", + "Low": "47.75", + "Open": "48", + "Volume": "19464400" + }, + { + "Close": "47.75", + "Date": "1993/1/13", + "High": "49", + "Low": "47.5", + "Open": "49", + "Volume": "12833200" + }, + { + "Close": "48.75", + "Date": "1993/1/14", + "High": "49.5", + "Low": "47.75", + "Open": "48.375", + "Volume": "17147200" + }, + { + "Close": "48.25", + "Date": "1993/1/15", + "High": "49", + "Low": "47.75", + "Open": "48.25", + "Volume": "13492800" + }, + { + "Close": "49.5", + "Date": "1993/1/18", + "High": "50.125", + "Low": "48.625", + "Open": "48.875", + "Volume": "11902000" + }, + { + "Close": "48.375", + "Date": "1993/1/19", + "High": "50.875", + "Low": "47.25", + "Open": "50.25", + "Volume": "20156800" + }, + { + "Close": "46.875", + "Date": "1993/1/20", + "High": "48.25", + "Low": "46.625", + "Open": "48.25", + "Volume": "13433200" + }, + { + "Close": "46.375", + "Date": "1993/1/21", + "High": "47", + "Low": "45.875", + "Open": "47", + "Volume": "14555600" + }, + { + "Close": "48.625", + "Date": "1993/1/22", + "High": "48.75", + "Low": "46.5", + "Open": "46.5", + "Volume": "13682000" + }, + { + "Close": "48.875", + "Date": "1993/1/25", + "High": "49.25", + "Low": "47.5", + "Open": "48.75", + "Volume": "12218000" + }, + { + "Close": "49", + "Date": "1993/1/26", + "High": "53.25", + "Low": "48.75", + "Open": "52.875", + "Volume": "31217600" + }, + { + "Close": "49.625", + "Date": "1993/1/27", + "High": "50", + "Low": "48.25", + "Open": "49.125", + "Volume": "13230800" + }, + { + "Close": "50.25", + "Date": "1993/1/28", + "High": "50.875", + "Low": "49.75", + "Open": "50", + "Volume": "12382800" + }, + { + "Close": "51.5", + "Date": "1993/1/29", + "High": "51.625", + "Low": "50.875", + "Open": "51", + "Volume": "11926000" + }, + { + "Close": "52.625", + "Date": "1993/2/1", + "High": "52.625", + "Low": "52", + "Open": "52", + "Volume": "12158000" + }, + { + "Close": "52.125", + "Date": "1993/2/2", + "High": "53", + "Low": "52", + "Open": "52.25", + "Volume": "10541600" + }, + { + "Close": "51.125", + "Date": "1993/2/3", + "High": "52.75", + "Low": "50.875", + "Open": "52.5", + "Volume": "12790400" + }, + { + "Close": "51.375", + "Date": "1993/2/4", + "High": "51.875", + "Low": "50.75", + "Open": "51", + "Volume": "9488400" + }, + { + "Close": "52", + "Date": "1993/2/5", + "High": "52.625", + "Low": "51.625", + "Open": "51.75", + "Volume": "12586000" + }, + { + "Close": "52.875", + "Date": "1993/2/8", + "High": "53.125", + "Low": "52.125", + "Open": "52.25", + "Volume": "10330000" + }, + { + "Close": "53.375", + "Date": "1993/2/9", + "High": "54.5", + "Low": "52.875", + "Open": "53", + "Volume": "14322800" + }, + { + "Close": "52.25", + "Date": "1993/2/10", + "High": "53.875", + "Low": "51.625", + "Open": "53.625", + "Volume": "14409600" + }, + { + "Close": "51.125", + "Date": "1993/2/11", + "High": "51.875", + "Low": "50.5", + "Open": "51.875", + "Volume": "12374400" + }, + { + "Close": "50.75", + "Date": "1993/2/12", + "High": "51.625", + "Low": "50.5", + "Open": "51.125", + "Volume": "6433200" + }, + { + "Close": "50", + "Date": "1993/2/16", + "High": "50.875", + "Low": "48.75", + "Open": "50.5", + "Volume": "11937600" + }, + { + "Close": "50.5", + "Date": "1993/2/17", + "High": "50.75", + "Low": "49.75", + "Open": "50.25", + "Volume": "8032000" + }, + { + "Close": "50.5", + "Date": "1993/2/18", + "High": "51.25", + "Low": "49.75", + "Open": "51", + "Volume": "8332400" + }, + { + "Close": "50.5", + "Date": "1993/2/19", + "High": "50.75", + "Low": "50", + "Open": "50.625", + "Volume": "7657600" + }, + { + "Close": "51.25", + "Date": "1993/2/22", + "High": "51.375", + "Low": "50.5", + "Open": "50.5", + "Volume": "7544800" + }, + { + "Close": "51.125", + "Date": "1993/2/23", + "High": "51.75", + "Low": "50.75", + "Open": "51.5", + "Volume": "6755600" + }, + { + "Close": "51.875", + "Date": "1993/2/24", + "High": "52", + "Low": "51", + "Open": "51.125", + "Volume": "7446000" + }, + { + "Close": "53.75", + "Date": "1993/2/25", + "High": "53.875", + "Low": "51.625", + "Open": "51.75", + "Volume": "10568400" + }, + { + "Close": "54.375", + "Date": "1993/2/26", + "High": "54.875", + "Low": "53.375", + "Open": "54", + "Volume": "12123200" + }, + { + "Close": "54.75", + "Date": "1993/3/1", + "High": "55.375", + "Low": "54.5", + "Open": "54.75", + "Volume": "10496800" + }, + { + "Close": "54.25", + "Date": "1993/3/2", + "High": "54.625", + "Low": "53.75", + "Open": "54.625", + "Volume": "7140800" + }, + { + "Close": "55.25", + "Date": "1993/3/3", + "High": "55.5", + "Low": "53.625", + "Open": "54.375", + "Volume": "10871600" + }, + { + "Close": "54.875", + "Date": "1993/3/4", + "High": "55.25", + "Low": "54.5", + "Open": "55.25", + "Volume": "6880800" + }, + { + "Close": "55.25", + "Date": "1993/3/5", + "High": "55.875", + "Low": "54.75", + "Open": "55.375", + "Volume": "10661200" + }, + { + "Close": "56.125", + "Date": "1993/3/8", + "High": "56.25", + "Low": "55.25", + "Open": "55.5", + "Volume": "13425600" + }, + { + "Close": "56.625", + "Date": "1993/3/9", + "High": "56.75", + "Low": "56", + "Open": "56.125", + "Volume": "9726000" + }, + { + "Close": "55.875", + "Date": "1993/3/10", + "High": "57.125", + "Low": "55", + "Open": "56.875", + "Volume": "14489600" + }, + { + "Close": "54.875", + "Date": "1993/3/11", + "High": "55.875", + "Low": "54.75", + "Open": "55.875", + "Volume": "9042400" + }, + { + "Close": "55.625", + "Date": "1993/3/12", + "High": "55.75", + "Low": "53.625", + "Open": "54", + "Volume": "9710800" + }, + { + "Close": "55", + "Date": "1993/3/15", + "High": "56.25", + "Low": "55", + "Open": "56.125", + "Volume": "4830000" + }, + { + "Close": "55.125", + "Date": "1993/3/16", + "High": "55.375", + "Low": "54.875", + "Open": "55.125", + "Volume": "4576800" + }, + { + "Close": "54.5", + "Date": "1993/3/17", + "High": "55.625", + "Low": "54.125", + "Open": "55", + "Volume": "5487200" + }, + { + "Close": "54.625", + "Date": "1993/3/18", + "High": "54.75", + "Low": "54.25", + "Open": "54.625", + "Volume": "5583600" + }, + { + "Close": "53.75", + "Date": "1993/3/19", + "High": "54.5", + "Low": "53.625", + "Open": "54.5", + "Volume": "8929200" + }, + { + "Close": "53.625", + "Date": "1993/3/22", + "High": "53.75", + "Low": "52.75", + "Open": "53.5", + "Volume": "6731200" + }, + { + "Close": "54.25", + "Date": "1993/3/23", + "High": "54.25", + "Low": "52.875", + "Open": "53.375", + "Volume": "6629200" + }, + { + "Close": "51.125", + "Date": "1993/3/24", + "High": "53.75", + "Low": "50.875", + "Open": "53.375", + "Volume": "14302400" + }, + { + "Close": "50.5", + "Date": "1993/3/25", + "High": "50.875", + "Low": "50.125", + "Open": "50.75", + "Volume": "11220400" + }, + { + "Close": "51.375", + "Date": "1993/3/26", + "High": "51.625", + "Low": "50.625", + "Open": "50.625", + "Volume": "9603600" + }, + { + "Close": "51.75", + "Date": "1993/3/29", + "High": "52.75", + "Low": "51.625", + "Open": "52", + "Volume": "8231200" + }, + { + "Close": "50", + "Date": "1993/3/30", + "High": "52", + "Low": "49.875", + "Open": "52", + "Volume": "10202000" + }, + { + "Close": "50.875", + "Date": "1993/3/31", + "High": "51.5", + "Low": "50.125", + "Open": "50.25", + "Volume": "10373200" + }, + { + "Close": "51.875", + "Date": "1993/4/1", + "High": "52.125", + "Low": "51.375", + "Open": "51.5", + "Volume": "7670400" + }, + { + "Close": "52.625", + "Date": "1993/4/2", + "High": "53.125", + "Low": "51.75", + "Open": "52", + "Volume": "11237200" + }, + { + "Close": "52.625", + "Date": "1993/4/5", + "High": "53", + "Low": "51.625", + "Open": "52.625", + "Volume": "6808400" + }, + { + "Close": "52", + "Date": "1993/4/6", + "High": "52.625", + "Low": "51.75", + "Open": "52.625", + "Volume": "5642000" + }, + { + "Close": "52.25", + "Date": "1993/4/7", + "High": "52.25", + "Low": "50.875", + "Open": "51.25", + "Volume": "4946800" + }, + { + "Close": "50.25", + "Date": "1993/4/8", + "High": "52.375", + "Low": "50.25", + "Open": "52.25", + "Volume": "4822400" + }, + { + "Close": "51", + "Date": "1993/4/12", + "High": "51.875", + "Low": "50.625", + "Open": "50.75", + "Volume": "5597200" + }, + { + "Close": "49.375", + "Date": "1993/4/13", + "High": "51.125", + "Low": "49.25", + "Open": "51", + "Volume": "9255600" + }, + { + "Close": "49", + "Date": "1993/4/14", + "High": "49.625", + "Low": "48.5", + "Open": "49.125", + "Volume": "11047600" + }, + { + "Close": "48.75", + "Date": "1993/4/15", + "High": "49.25", + "Low": "48.5", + "Open": "49", + "Volume": "6251600" + }, + { + "Close": "49", + "Date": "1993/4/16", + "High": "49.125", + "Low": "48.5", + "Open": "49", + "Volume": "8439600" + }, + { + "Close": "49.25", + "Date": "1993/4/19", + "High": "50.625", + "Low": "48.875", + "Open": "50.25", + "Volume": "6998000" + }, + { + "Close": "50.625", + "Date": "1993/4/20", + "High": "50.625", + "Low": "48.75", + "Open": "49.875", + "Volume": "11799200" + }, + { + "Close": "49.125", + "Date": "1993/4/21", + "High": "50.25", + "Low": "49.125", + "Open": "50", + "Volume": "8731200" + }, + { + "Close": "48.5", + "Date": "1993/4/22", + "High": "49", + "Low": "48.125", + "Open": "48.875", + "Volume": "8602400" + }, + { + "Close": "47.75", + "Date": "1993/4/23", + "High": "48.375", + "Low": "47.375", + "Open": "48.125", + "Volume": "8626400" + }, + { + "Close": "48.375", + "Date": "1993/4/26", + "High": "49.25", + "Low": "47.875", + "Open": "48.125", + "Volume": "8000800" + }, + { + "Close": "48.375", + "Date": "1993/4/27", + "High": "48.75", + "Low": "47.875", + "Open": "48.375", + "Volume": "5892000" + }, + { + "Close": "49.875", + "Date": "1993/4/28", + "High": "50.75", + "Low": "48.625", + "Open": "48.75", + "Volume": "12906400" + }, + { + "Close": "48.875", + "Date": "1993/4/29", + "High": "50.125", + "Low": "48.375", + "Open": "49.875", + "Volume": "6292400" + }, + { + "Close": "48.625", + "Date": "1993/4/30", + "High": "49.375", + "Low": "48.625", + "Open": "48.875", + "Volume": "5326400" + }, + { + "Close": "49.25", + "Date": "1993/5/3", + "High": "49.375", + "Low": "48.5", + "Open": "49.125", + "Volume": "5288400" + }, + { + "Close": "49.25", + "Date": "1993/5/4", + "High": "49.875", + "Low": "49.25", + "Open": "49.625", + "Volume": "5492800" + }, + { + "Close": "49.375", + "Date": "1993/5/5", + "High": "49.5", + "Low": "48.875", + "Open": "49", + "Volume": "5412000" + }, + { + "Close": "48.25", + "Date": "1993/5/6", + "High": "48.625", + "Low": "48", + "Open": "48.5", + "Volume": "4608000" + }, + { + "Close": "48.625", + "Date": "1993/5/7", + "High": "48.625", + "Low": "47.75", + "Open": "48.125", + "Volume": "5647600" + }, + { + "Close": "48.875", + "Date": "1993/5/10", + "High": "49.125", + "Low": "48.375", + "Open": "48.875", + "Volume": "6844400" + }, + { + "Close": "48.875", + "Date": "1993/5/11", + "High": "48.875", + "Low": "48.375", + "Open": "48.875", + "Volume": "4504400" + }, + { + "Close": "48", + "Date": "1993/5/12", + "High": "48.625", + "Low": "47.875", + "Open": "48.25", + "Volume": "5244000" + }, + { + "Close": "47.5", + "Date": "1993/5/13", + "High": "47.75", + "Low": "47.125", + "Open": "47.5", + "Volume": "5244800" + }, + { + "Close": "47.875", + "Date": "1993/5/14", + "High": "48.125", + "Low": "47.375", + "Open": "47.5", + "Volume": "4853600" + }, + { + "Close": "47.625", + "Date": "1993/5/17", + "High": "48.25", + "Low": "47.5", + "Open": "47.875", + "Volume": "3378400" + }, + { + "Close": "49", + "Date": "1993/5/18", + "High": "49", + "Low": "47.75", + "Open": "47.75", + "Volume": "10647600" + }, + { + "Close": "49.625", + "Date": "1993/5/19", + "High": "50.125", + "Low": "48.375", + "Open": "49.125", + "Volume": "12068000" + }, + { + "Close": "49.25", + "Date": "1993/5/20", + "High": "49.5", + "Low": "48.75", + "Open": "49.375", + "Volume": "5651200" + }, + { + "Close": "48.375", + "Date": "1993/5/21", + "High": "49.25", + "Low": "48.25", + "Open": "48.75", + "Volume": "6181200" + }, + { + "Close": "49.75", + "Date": "1993/5/24", + "High": "49.875", + "Low": "48.5", + "Open": "48.625", + "Volume": "7100000" + }, + { + "Close": "50.375", + "Date": "1993/5/25", + "High": "50.875", + "Low": "49.875", + "Open": "49.875", + "Volume": "11763200" + }, + { + "Close": "52.75", + "Date": "1993/5/26", + "High": "52.75", + "Low": "50.5", + "Open": "50.5", + "Volume": "16225600" + }, + { + "Close": "53.25", + "Date": "1993/5/27", + "High": "54", + "Low": "52.875", + "Open": "53.25", + "Volume": "16064800" + }, + { + "Close": "52.75", + "Date": "1993/5/28", + "High": "53.125", + "Low": "52", + "Open": "53.125", + "Volume": "9063200" + }, + { + "Close": "52", + "Date": "1993/6/1", + "High": "53.375", + "Low": "51.875", + "Open": "53.25", + "Volume": "7794800" + }, + { + "Close": "53.875", + "Date": "1993/6/2", + "High": "54", + "Low": "51.75", + "Open": "51.75", + "Volume": "9932000" + }, + { + "Close": "53.875", + "Date": "1993/6/3", + "High": "54.375", + "Low": "53.5", + "Open": "54", + "Volume": "10491600" + }, + { + "Close": "54", + "Date": "1993/6/4", + "High": "54.375", + "Low": "53.625", + "Open": "54", + "Volume": "7514800" + }, + { + "Close": "52.25", + "Date": "1993/6/7", + "High": "54", + "Low": "52.25", + "Open": "54", + "Volume": "6763200" + }, + { + "Close": "52.25", + "Date": "1993/6/8", + "High": "52.5", + "Low": "51.625", + "Open": "52.25", + "Volume": "5859600" + }, + { + "Close": "52.875", + "Date": "1993/6/9", + "High": "53.375", + "Low": "52.625", + "Open": "53", + "Volume": "4872800" + }, + { + "Close": "52.5", + "Date": "1993/6/10", + "High": "52.75", + "Low": "51.5", + "Open": "52.75", + "Volume": "6020800" + }, + { + "Close": "52.5", + "Date": "1993/6/11", + "High": "53", + "Low": "52.375", + "Open": "52.875", + "Volume": "5361200" + }, + { + "Close": "52", + "Date": "1993/6/14", + "High": "52.5", + "Low": "51.875", + "Open": "52.25", + "Volume": "4698800" + }, + { + "Close": "49.875", + "Date": "1993/6/15", + "High": "51.875", + "Low": "49.75", + "Open": "51.875", + "Volume": "12107200" + }, + { + "Close": "50.375", + "Date": "1993/6/16", + "High": "50.375", + "Low": "48.875", + "Open": "49.5", + "Volume": "10532800" + }, + { + "Close": "49.625", + "Date": "1993/6/17", + "High": "50.25", + "Low": "49.375", + "Open": "50.125", + "Volume": "5211600" + }, + { + "Close": "49.375", + "Date": "1993/6/18", + "High": "49.625", + "Low": "48.875", + "Open": "49.625", + "Volume": "8301200" + }, + { + "Close": "49.25", + "Date": "1993/6/21", + "High": "50.125", + "Low": "49", + "Open": "50.125", + "Volume": "4964800" + }, + { + "Close": "49.25", + "Date": "1993/6/22", + "High": "49.625", + "Low": "49.125", + "Open": "49.125", + "Volume": "4279200" + }, + { + "Close": "48.625", + "Date": "1993/6/23", + "High": "49.375", + "Low": "48.5", + "Open": "49.25", + "Volume": "6006000" + }, + { + "Close": "48.75", + "Date": "1993/6/24", + "High": "49.125", + "Low": "48.625", + "Open": "48.625", + "Volume": "4414400" + }, + { + "Close": "49.75", + "Date": "1993/6/25", + "High": "49.75", + "Low": "49", + "Open": "49", + "Volume": "5505200" + }, + { + "Close": "50.375", + "Date": "1993/6/28", + "High": "50.75", + "Low": "49.75", + "Open": "49.875", + "Volume": "5594000" + }, + { + "Close": "49.375", + "Date": "1993/6/29", + "High": "50.5", + "Low": "48.75", + "Open": "50.375", + "Volume": "5751200" + }, + { + "Close": "49.375", + "Date": "1993/6/30", + "High": "49.875", + "Low": "49.125", + "Open": "49.5", + "Volume": "3945200" + }, + { + "Close": "49.25", + "Date": "1993/7/1", + "High": "49.75", + "Low": "49.125", + "Open": "49.625", + "Volume": "3581200" + }, + { + "Close": "48.25", + "Date": "1993/7/2", + "High": "48.625", + "Low": "47.75", + "Open": "48.5", + "Volume": "9738000" + }, + { + "Close": "46.875", + "Date": "1993/7/6", + "High": "48.125", + "Low": "46.875", + "Open": "48", + "Volume": "7310000" + }, + { + "Close": "46.625", + "Date": "1993/7/7", + "High": "47", + "Low": "46.375", + "Open": "46.875", + "Volume": "5914400" + }, + { + "Close": "46.625", + "Date": "1993/7/8", + "High": "47.625", + "Low": "46.375", + "Open": "46.875", + "Volume": "7257600" + }, + { + "Close": "46.625", + "Date": "1993/7/9", + "High": "47", + "Low": "46.375", + "Open": "46.75", + "Volume": "4714400" + }, + { + "Close": "48.125", + "Date": "1993/7/12", + "High": "48.25", + "Low": "46.75", + "Open": "46.875", + "Volume": "5034400" + }, + { + "Close": "47.625", + "Date": "1993/7/13", + "High": "48.5", + "Low": "47.25", + "Open": "48.125", + "Volume": "4321600" + }, + { + "Close": "47.375", + "Date": "1993/7/14", + "High": "47.875", + "Low": "47.125", + "Open": "47.5", + "Volume": "3708800" + }, + { + "Close": "47.5", + "Date": "1993/7/15", + "High": "47.875", + "Low": "47.125", + "Open": "47.375", + "Volume": "4530400" + }, + { + "Close": "45.625", + "Date": "1993/7/16", + "High": "47.5", + "Low": "45.5", + "Open": "47.5", + "Volume": "10565600" + }, + { + "Close": "43.625", + "Date": "1993/7/19", + "High": "46", + "Low": "43.375", + "Open": "45.625", + "Volume": "17930000" + }, + { + "Close": "42.875", + "Date": "1993/7/20", + "High": "43.75", + "Low": "41.625", + "Open": "43.625", + "Volume": "18353200" + }, + { + "Close": "43.625", + "Date": "1993/7/21", + "High": "43.875", + "Low": "43", + "Open": "43.125", + "Volume": "7702800" + }, + { + "Close": "43.375", + "Date": "1993/7/22", + "High": "44.75", + "Low": "43", + "Open": "43.75", + "Volume": "10291200" + }, + { + "Close": "42.25", + "Date": "1993/7/23", + "High": "43.625", + "Low": "42", + "Open": "43.625", + "Volume": "9976800" + }, + { + "Close": "42.375", + "Date": "1993/7/26", + "High": "43", + "Low": "41.125", + "Open": "41.875", + "Volume": "15691200" + }, + { + "Close": "45.625", + "Date": "1993/7/27", + "High": "45.875", + "Low": "44.5", + "Open": "44.875", + "Volume": "25041200" + }, + { + "Close": "44", + "Date": "1993/7/28", + "High": "46.375", + "Low": "43.875", + "Open": "46", + "Volume": "16866800" + }, + { + "Close": "43.875", + "Date": "1993/7/29", + "High": "44.5", + "Low": "43.375", + "Open": "44", + "Volume": "10139600" + }, + { + "Close": "44.5", + "Date": "1993/7/30", + "High": "44.5", + "Low": "43.625", + "Open": "43.625", + "Volume": "7520400" + }, + { + "Close": "43.875", + "Date": "1993/8/2", + "High": "44.75", + "Low": "43.875", + "Open": "44.375", + "Volume": "5352400" + }, + { + "Close": "43.375", + "Date": "1993/8/3", + "High": "44.125", + "Low": "43.125", + "Open": "44", + "Volume": "5010800" + }, + { + "Close": "44.375", + "Date": "1993/8/4", + "High": "44.375", + "Low": "43.25", + "Open": "43.375", + "Volume": "5329200" + }, + { + "Close": "43.75", + "Date": "1993/8/5", + "High": "44.75", + "Low": "43.5", + "Open": "44.125", + "Volume": "4940000" + }, + { + "Close": "43.375", + "Date": "1993/8/6", + "High": "43.75", + "Low": "43.125", + "Open": "43.625", + "Volume": "4482400" + }, + { + "Close": "43.125", + "Date": "1993/8/9", + "High": "43.75", + "Low": "42.875", + "Open": "43.375", + "Volume": "5374800" + }, + { + "Close": "43.25", + "Date": "1993/8/10", + "High": "43.375", + "Low": "42.875", + "Open": "43.125", + "Volume": "4474800" + }, + { + "Close": "42.25", + "Date": "1993/8/11", + "High": "43.5", + "Low": "42", + "Open": "43.5", + "Volume": "7021200" + }, + { + "Close": "41.75", + "Date": "1993/8/12", + "High": "42.5", + "Low": "41.25", + "Open": "42.5", + "Volume": "8331600" + }, + { + "Close": "41.625", + "Date": "1993/8/13", + "High": "42", + "Low": "41.5", + "Open": "42", + "Volume": "4456400" + }, + { + "Close": "41", + "Date": "1993/8/16", + "High": "41.75", + "Low": "40.625", + "Open": "41.625", + "Volume": "7701600" + }, + { + "Close": "43", + "Date": "1993/8/17", + "High": "43", + "Low": "41", + "Open": "41", + "Volume": "8076000" + }, + { + "Close": "42.75", + "Date": "1993/8/18", + "High": "43.5", + "Low": "42.375", + "Open": "43.375", + "Volume": "7818000" + }, + { + "Close": "43", + "Date": "1993/8/19", + "High": "43.25", + "Low": "42.75", + "Open": "43.125", + "Volume": "6257200" + }, + { + "Close": "43.125", + "Date": "1993/8/20", + "High": "43.25", + "Low": "42.625", + "Open": "43", + "Volume": "6784400" + }, + { + "Close": "44.375", + "Date": "1993/8/23", + "High": "44.75", + "Low": "43", + "Open": "43.125", + "Volume": "10530000" + }, + { + "Close": "43.875", + "Date": "1993/8/24", + "High": "44.625", + "Low": "43.625", + "Open": "44.5", + "Volume": "6091200" + }, + { + "Close": "44", + "Date": "1993/8/25", + "High": "44.125", + "Low": "43.5", + "Open": "44", + "Volume": "5284800" + }, + { + "Close": "44", + "Date": "1993/8/26", + "High": "44.75", + "Low": "43.625", + "Open": "44.125", + "Volume": "7414400" + }, + { + "Close": "44.125", + "Date": "1993/8/27", + "High": "44.125", + "Low": "43.625", + "Open": "43.875", + "Volume": "3897600" + }, + { + "Close": "44.625", + "Date": "1993/8/30", + "High": "44.75", + "Low": "44.125", + "Open": "44.125", + "Volume": "6230400" + }, + { + "Close": "45.75", + "Date": "1993/8/31", + "High": "45.875", + "Low": "44.75", + "Open": "44.75", + "Volume": "9854400" + }, + { + "Close": "45.875", + "Date": "1993/9/1", + "High": "46.375", + "Low": "45.625", + "Open": "45.75", + "Volume": "7955600" + }, + { + "Close": "46", + "Date": "1993/9/2", + "High": "46.375", + "Low": "45.75", + "Open": "46", + "Volume": "4744400" + }, + { + "Close": "45.75", + "Date": "1993/9/3", + "High": "46.375", + "Low": "45.625", + "Open": "46.25", + "Volume": "4112000" + }, + { + "Close": "45.5", + "Date": "1993/9/7", + "High": "46.25", + "Low": "45.25", + "Open": "46.125", + "Volume": "5301600" + }, + { + "Close": "44.375", + "Date": "1993/9/8", + "High": "45.375", + "Low": "43.75", + "Open": "45.25", + "Volume": "9416000" + }, + { + "Close": "44.375", + "Date": "1993/9/9", + "High": "44.625", + "Low": "44.125", + "Open": "44.25", + "Volume": "7043200" + }, + { + "Close": "43.75", + "Date": "1993/9/10", + "High": "44.625", + "Low": "43.5", + "Open": "44.625", + "Volume": "8658800" + }, + { + "Close": "43.875", + "Date": "1993/9/13", + "High": "44.375", + "Low": "43.5", + "Open": "43.875", + "Volume": "5436400" + }, + { + "Close": "43.5", + "Date": "1993/9/14", + "High": "43.875", + "Low": "43.375", + "Open": "43.875", + "Volume": "4358400" + }, + { + "Close": "43.625", + "Date": "1993/9/15", + "High": "43.875", + "Low": "43.25", + "Open": "43.5", + "Volume": "7725200" + }, + { + "Close": "43.5", + "Date": "1993/9/16", + "High": "44", + "Low": "43.375", + "Open": "43.5", + "Volume": "3154000" + }, + { + "Close": "43.375", + "Date": "1993/9/17", + "High": "43.375", + "Low": "42.75", + "Open": "43.25", + "Volume": "12769200" + }, + { + "Close": "42.25", + "Date": "1993/9/20", + "High": "43.375", + "Low": "42.25", + "Open": "43.25", + "Volume": "5320000" + }, + { + "Close": "42.125", + "Date": "1993/9/21", + "High": "42.625", + "Low": "41.875", + "Open": "42.5", + "Volume": "7419200" + }, + { + "Close": "41.875", + "Date": "1993/9/22", + "High": "42.5", + "Low": "41.625", + "Open": "42.25", + "Volume": "6836400" + }, + { + "Close": "41.875", + "Date": "1993/9/23", + "High": "42.375", + "Low": "41.75", + "Open": "42", + "Volume": "7690000" + }, + { + "Close": "41.75", + "Date": "1993/9/24", + "High": "42", + "Low": "41.5", + "Open": "41.875", + "Volume": "5220800" + }, + { + "Close": "41.75", + "Date": "1993/9/27", + "High": "41.875", + "Low": "41.5", + "Open": "41.75", + "Volume": "6416800" + }, + { + "Close": "41.75", + "Date": "1993/9/28", + "High": "42.625", + "Low": "41.625", + "Open": "41.75", + "Volume": "9495600" + }, + { + "Close": "41.625", + "Date": "1993/9/29", + "High": "42.125", + "Low": "41.25", + "Open": "41.75", + "Volume": "8784800" + }, + { + "Close": "42", + "Date": "1993/9/30", + "High": "42.125", + "Low": "41.375", + "Open": "41.625", + "Volume": "5857600" + }, + { + "Close": "43.875", + "Date": "1993/10/1", + "High": "43.875", + "Low": "42.125", + "Open": "42.125", + "Volume": "13348400" + }, + { + "Close": "44.25", + "Date": "1993/10/4", + "High": "44.75", + "Low": "43.75", + "Open": "44.25", + "Volume": "9658000" + }, + { + "Close": "43.75", + "Date": "1993/10/5", + "High": "44.5", + "Low": "43.25", + "Open": "44.375", + "Volume": "6256800" + }, + { + "Close": "44", + "Date": "1993/10/6", + "High": "44.375", + "Low": "43.25", + "Open": "43.5", + "Volume": "6570000" + }, + { + "Close": "44", + "Date": "1993/10/7", + "High": "44.125", + "Low": "43.625", + "Open": "44", + "Volume": "4183600" + }, + { + "Close": "44.25", + "Date": "1993/10/8", + "High": "44.375", + "Low": "43.375", + "Open": "44.375", + "Volume": "6428400" + }, + { + "Close": "44.125", + "Date": "1993/10/11", + "High": "44.375", + "Low": "43.875", + "Open": "44.25", + "Volume": "2139600" + }, + { + "Close": "43.75", + "Date": "1993/10/12", + "High": "44.375", + "Low": "43.75", + "Open": "44.125", + "Volume": "5351600" + }, + { + "Close": "43.125", + "Date": "1993/10/13", + "High": "43.875", + "Low": "43.125", + "Open": "43.5", + "Volume": "4418400" + }, + { + "Close": "42.625", + "Date": "1993/10/14", + "High": "43.25", + "Low": "42.5", + "Open": "43.125", + "Volume": "6714000" + }, + { + "Close": "44.5", + "Date": "1993/10/15", + "High": "44.875", + "Low": "42.875", + "Open": "43", + "Volume": "12885600" + }, + { + "Close": "44", + "Date": "1993/10/18", + "High": "45.125", + "Low": "43.875", + "Open": "44.5", + "Volume": "8272800" + }, + { + "Close": "43.375", + "Date": "1993/10/19", + "High": "44.625", + "Low": "42.875", + "Open": "44", + "Volume": "7807600" + }, + { + "Close": "43.625", + "Date": "1993/10/20", + "High": "43.625", + "Low": "42.875", + "Open": "43.375", + "Volume": "5213200" + }, + { + "Close": "45", + "Date": "1993/10/21", + "High": "45.25", + "Low": "43.5", + "Open": "43.625", + "Volume": "9912400" + }, + { + "Close": "44.5", + "Date": "1993/10/22", + "High": "45.75", + "Low": "44.375", + "Open": "45.375", + "Volume": "10876800" + }, + { + "Close": "44.875", + "Date": "1993/10/25", + "High": "45", + "Low": "43.75", + "Open": "43.875", + "Volume": "8868800" + }, + { + "Close": "46.25", + "Date": "1993/10/26", + "High": "46.25", + "Low": "44.375", + "Open": "45.75", + "Volume": "17407600" + }, + { + "Close": "46", + "Date": "1993/10/27", + "High": "46.625", + "Low": "45.75", + "Open": "46.375", + "Volume": "17541200" + }, + { + "Close": "45.75", + "Date": "1993/10/28", + "High": "46.375", + "Low": "45.625", + "Open": "45.75", + "Volume": "10650000" + }, + { + "Close": "46", + "Date": "1993/10/29", + "High": "46.625", + "Low": "45.875", + "Open": "46", + "Volume": "7646400" + }, + { + "Close": "47.75", + "Date": "1993/11/1", + "High": "48", + "Low": "45.75", + "Open": "46", + "Volume": "15852400" + }, + { + "Close": "50.875", + "Date": "1993/11/2", + "High": "51.125", + "Low": "48.5", + "Open": "49", + "Volume": "40832400" + }, + { + "Close": "50.75", + "Date": "1993/11/3", + "High": "51.125", + "Low": "50.125", + "Open": "51", + "Volume": "20897600" + }, + { + "Close": "49.75", + "Date": "1993/11/4", + "High": "50.5", + "Low": "49.375", + "Open": "50.25", + "Volume": "12093200" + }, + { + "Close": "49.875", + "Date": "1993/11/5", + "High": "50.125", + "Low": "49.375", + "Open": "49.75", + "Volume": "13198400" + }, + { + "Close": "50.25", + "Date": "1993/11/8", + "High": "50.75", + "Low": "50", + "Open": "50.25", + "Volume": "7523600" + }, + { + "Close": "49.125", + "Date": "1993/11/9", + "High": "50.625", + "Low": "49", + "Open": "50.5", + "Volume": "10071200" + }, + { + "Close": "49.875", + "Date": "1993/11/10", + "High": "50.125", + "Low": "49", + "Open": "49.5", + "Volume": "8226800" + }, + { + "Close": "52", + "Date": "1993/11/11", + "High": "52.375", + "Low": "50.125", + "Open": "50.25", + "Volume": "14733600" + }, + { + "Close": "51.625", + "Date": "1993/11/12", + "High": "52.5", + "Low": "51.5", + "Open": "52.25", + "Volume": "12788800" + }, + { + "Close": "51", + "Date": "1993/11/15", + "High": "51.625", + "Low": "50.875", + "Open": "51.625", + "Volume": "5813600" + }, + { + "Close": "52.75", + "Date": "1993/11/16", + "High": "53", + "Low": "50.75", + "Open": "51.125", + "Volume": "13556800" + }, + { + "Close": "51.875", + "Date": "1993/11/17", + "High": "54.25", + "Low": "51.875", + "Open": "53.5", + "Volume": "17522800" + }, + { + "Close": "52.75", + "Date": "1993/11/18", + "High": "53.125", + "Low": "52.125", + "Open": "52.25", + "Volume": "9740400" + }, + { + "Close": "51.875", + "Date": "1993/11/19", + "High": "52.625", + "Low": "51.5", + "Open": "52.25", + "Volume": "9326800" + }, + { + "Close": "52", + "Date": "1993/11/22", + "High": "52.5", + "Low": "51.625", + "Open": "51.875", + "Volume": "10381200" + }, + { + "Close": "53.125", + "Date": "1993/11/23", + "High": "53.25", + "Low": "51.875", + "Open": "52.375", + "Volume": "8268800" + }, + { + "Close": "55.125", + "Date": "1993/11/24", + "High": "55.25", + "Low": "53.75", + "Open": "54", + "Volume": "16736000" + }, + { + "Close": "55.75", + "Date": "1993/11/26", + "High": "56", + "Low": "55.125", + "Open": "55.5", + "Volume": "4844000" + }, + { + "Close": "54.375", + "Date": "1993/11/29", + "High": "56.125", + "Low": "54.375", + "Open": "56", + "Volume": "9951600" + }, + { + "Close": "53.875", + "Date": "1993/11/30", + "High": "55.125", + "Low": "53.75", + "Open": "54.5", + "Volume": "7907200" + }, + { + "Close": "53.125", + "Date": "1993/12/1", + "High": "54.75", + "Low": "53.125", + "Open": "54.75", + "Volume": "9541200" + }, + { + "Close": "53.75", + "Date": "1993/12/2", + "High": "54.125", + "Low": "53.25", + "Open": "53.25", + "Volume": "7463200" + }, + { + "Close": "53.5", + "Date": "1993/12/3", + "High": "54", + "Low": "53.125", + "Open": "54", + "Volume": "7038800" + }, + { + "Close": "53.75", + "Date": "1993/12/6", + "High": "54.375", + "Low": "52.75", + "Open": "53", + "Volume": "7026800" + }, + { + "Close": "53.75", + "Date": "1993/12/7", + "High": "54.25", + "Low": "53.25", + "Open": "54.125", + "Volume": "6203600" + }, + { + "Close": "53.875", + "Date": "1993/12/8", + "High": "54.125", + "Low": "53.375", + "Open": "53.875", + "Volume": "4004000" + }, + { + "Close": "53.625", + "Date": "1993/12/9", + "High": "54.125", + "Low": "53.25", + "Open": "53.875", + "Volume": "5664000" + }, + { + "Close": "55.25", + "Date": "1993/12/10", + "High": "55.5", + "Low": "53.875", + "Open": "54", + "Volume": "15429600" + }, + { + "Close": "57.375", + "Date": "1993/12/13", + "High": "57.75", + "Low": "55.375", + "Open": "55.875", + "Volume": "19524400" + }, + { + "Close": "56.125", + "Date": "1993/12/14", + "High": "57.375", + "Low": "56", + "Open": "57.25", + "Volume": "9742000" + }, + { + "Close": "56.875", + "Date": "1993/12/15", + "High": "57.625", + "Low": "55.625", + "Open": "56.125", + "Volume": "9145200" + }, + { + "Close": "57.5", + "Date": "1993/12/16", + "High": "57.625", + "Low": "57.125", + "Open": "57.25", + "Volume": "11811200" + }, + { + "Close": "59.75", + "Date": "1993/12/17", + "High": "59.875", + "Low": "57.75", + "Open": "57.75", + "Volume": "23063200" + }, + { + "Close": "58.375", + "Date": "1993/12/20", + "High": "59.375", + "Low": "58.25", + "Open": "59.25", + "Volume": "11342000" + }, + { + "Close": "58.625", + "Date": "1993/12/21", + "High": "59.125", + "Low": "58.125", + "Open": "58.25", + "Volume": "9089200" + }, + { + "Close": "59.25", + "Date": "1993/12/22", + "High": "59.25", + "Low": "58.5", + "Open": "58.75", + "Volume": "6121200" + }, + { + "Close": "58.625", + "Date": "1993/12/23", + "High": "59.375", + "Low": "58.5", + "Open": "59.25", + "Volume": "5293200" + }, + { + "Close": "59.125", + "Date": "1993/12/27", + "High": "59.25", + "Low": "58", + "Open": "58.625", + "Volume": "5646800" + }, + { + "Close": "58.375", + "Date": "1993/12/28", + "High": "59.375", + "Low": "58.25", + "Open": "58.875", + "Volume": "5109600" + }, + { + "Close": "58.125", + "Date": "1993/12/29", + "High": "58.75", + "Low": "58.125", + "Open": "58.5", + "Volume": "4323600" + }, + { + "Close": "57", + "Date": "1993/12/30", + "High": "58.375", + "Low": "56.875", + "Open": "58", + "Volume": "6651200" + }, + { + "Close": "56.5", + "Date": "1993/12/31", + "High": "57.375", + "Low": "56.375", + "Open": "56.625", + "Volume": "7675600" + }, + { + "Close": "57.625", + "Date": "1994/1/3", + "High": "57.75", + "Low": "56.875", + "Open": "56.875", + "Volume": "5723200" + }, + { + "Close": "59", + "Date": "1994/1/4", + "High": "59.125", + "Low": "58", + "Open": "58.125", + "Volume": "7387200" + }, + { + "Close": "59.5", + "Date": "1994/1/5", + "High": "59.875", + "Low": "58.5", + "Open": "59", + "Volume": "10280000" + }, + { + "Close": "58.5", + "Date": "1994/1/6", + "High": "60", + "Low": "58.5", + "Open": "60", + "Volume": "9519200" + }, + { + "Close": "58.875", + "Date": "1994/1/7", + "High": "59.375", + "Low": "58", + "Open": "58.5", + "Volume": "5834400" + }, + { + "Close": "59.25", + "Date": "1994/1/10", + "High": "59.5", + "Low": "58.5", + "Open": "58.875", + "Volume": "6940000" + }, + { + "Close": "58.625", + "Date": "1994/1/11", + "High": "59.375", + "Low": "58.5", + "Open": "59.125", + "Volume": "6762400" + }, + { + "Close": "58.125", + "Date": "1994/1/12", + "High": "58.875", + "Low": "58.125", + "Open": "58.75", + "Volume": "6012400" + }, + { + "Close": "58.75", + "Date": "1994/1/13", + "High": "59", + "Low": "58.25", + "Open": "58.25", + "Volume": "7216800" + }, + { + "Close": "58.625", + "Date": "1994/1/14", + "High": "59.5", + "Low": "58.375", + "Open": "58.75", + "Volume": "6344000" + }, + { + "Close": "57.5", + "Date": "1994/1/17", + "High": "58.5", + "Low": "57.125", + "Open": "58.5", + "Volume": "6112400" + }, + { + "Close": "57.125", + "Date": "1994/1/18", + "High": "57.375", + "Low": "56.375", + "Open": "57.375", + "Volume": "9023600" + }, + { + "Close": "56", + "Date": "1994/1/19", + "High": "57", + "Low": "55.75", + "Open": "56.75", + "Volume": "7838000" + }, + { + "Close": "55.25", + "Date": "1994/1/20", + "High": "55.875", + "Low": "55.125", + "Open": "55.875", + "Volume": "9114000" + }, + { + "Close": "55.25", + "Date": "1994/1/21", + "High": "55.625", + "Low": "54.75", + "Open": "55.125", + "Volume": "12706400" + }, + { + "Close": "58.625", + "Date": "1994/1/24", + "High": "58.75", + "Low": "55.75", + "Open": "55.75", + "Volume": "16877200" + }, + { + "Close": "58.25", + "Date": "1994/1/25", + "High": "59.375", + "Low": "55.375", + "Open": "58.875", + "Volume": "40618000" + }, + { + "Close": "56.375", + "Date": "1994/1/26", + "High": "58.75", + "Low": "56", + "Open": "58.75", + "Volume": "16358400" + }, + { + "Close": "57.125", + "Date": "1994/1/27", + "High": "57.5", + "Low": "56.5", + "Open": "56.625", + "Volume": "8860800" + }, + { + "Close": "57.75", + "Date": "1994/1/28", + "High": "58.125", + "Low": "57.5", + "Open": "58.125", + "Volume": "6175600" + }, + { + "Close": "56.5", + "Date": "1994/1/31", + "High": "57.875", + "Low": "56.5", + "Open": "57.875", + "Volume": "8369600" + }, + { + "Close": "56.5", + "Date": "1994/2/1", + "High": "57.375", + "Low": "56.5", + "Open": "56.875", + "Volume": "7433600" + }, + { + "Close": "56.375", + "Date": "1994/2/2", + "High": "56.5", + "Low": "55.5", + "Open": "56.5", + "Volume": "8612800" + }, + { + "Close": "55.75", + "Date": "1994/2/3", + "High": "56.875", + "Low": "55.75", + "Open": "56.25", + "Volume": "7055200" + }, + { + "Close": "52", + "Date": "1994/2/4", + "High": "55.625", + "Low": "52", + "Open": "55.5", + "Volume": "14239600" + }, + { + "Close": "54.25", + "Date": "1994/2/7", + "High": "54.625", + "Low": "52.25", + "Open": "52.375", + "Volume": "16475200" + }, + { + "Close": "53.625", + "Date": "1994/2/8", + "High": "54.75", + "Low": "53.375", + "Open": "54.75", + "Volume": "8035200" + }, + { + "Close": "53.125", + "Date": "1994/2/9", + "High": "54.25", + "Low": "53.125", + "Open": "53.875", + "Volume": "7916400" + }, + { + "Close": "52.875", + "Date": "1994/2/10", + "High": "53.625", + "Low": "52.75", + "Open": "53.375", + "Volume": "6262400" + }, + { + "Close": "53.25", + "Date": "1994/2/11", + "High": "53.375", + "Low": "52", + "Open": "52.5", + "Volume": "7942000" + }, + { + "Close": "54", + "Date": "1994/2/14", + "High": "54.625", + "Low": "53.375", + "Open": "53.375", + "Volume": "7494800" + }, + { + "Close": "54.5", + "Date": "1994/2/15", + "High": "54.625", + "Low": "54", + "Open": "54.375", + "Volume": "6909600" + }, + { + "Close": "54.625", + "Date": "1994/2/16", + "High": "55.25", + "Low": "54.5", + "Open": "55.25", + "Volume": "5982800" + }, + { + "Close": "52.75", + "Date": "1994/2/17", + "High": "55", + "Low": "52.5", + "Open": "54.875", + "Volume": "9160800" + }, + { + "Close": "52.625", + "Date": "1994/2/18", + "High": "52.875", + "Low": "52.125", + "Open": "52.625", + "Volume": "10714800" + }, + { + "Close": "53.625", + "Date": "1994/2/22", + "High": "53.875", + "Low": "52.625", + "Open": "52.625", + "Volume": "5107600" + }, + { + "Close": "53.5", + "Date": "1994/2/23", + "High": "54.25", + "Low": "53.25", + "Open": "53.75", + "Volume": "4780800" + }, + { + "Close": "52.875", + "Date": "1994/2/24", + "High": "53.375", + "Low": "52.625", + "Open": "53.25", + "Volume": "6611600" + }, + { + "Close": "52.875", + "Date": "1994/2/25", + "High": "53.375", + "Low": "52.625", + "Open": "53.375", + "Volume": "4246800" + }, + { + "Close": "52.875", + "Date": "1994/2/28", + "High": "53.25", + "Low": "52.625", + "Open": "53.125", + "Volume": "3842800" + }, + { + "Close": "53.625", + "Date": "1994/3/1", + "High": "53.875", + "Low": "52.5", + "Open": "52.875", + "Volume": "8139600" + }, + { + "Close": "53", + "Date": "1994/3/2", + "High": "53.5", + "Low": "52.125", + "Open": "52.75", + "Volume": "10888400" + }, + { + "Close": "52.625", + "Date": "1994/3/3", + "High": "53.375", + "Low": "52.625", + "Open": "52.875", + "Volume": "6466000" + }, + { + "Close": "52.625", + "Date": "1994/3/4", + "High": "53.25", + "Low": "52.375", + "Open": "53.25", + "Volume": "6886800" + }, + { + "Close": "52.25", + "Date": "1994/3/7", + "High": "53", + "Low": "52.125", + "Open": "53", + "Volume": "7134800" + }, + { + "Close": "54.75", + "Date": "1994/3/8", + "High": "54.875", + "Low": "51.375", + "Open": "52.125", + "Volume": "18578000" + }, + { + "Close": "55.375", + "Date": "1994/3/9", + "High": "55.75", + "Low": "54.75", + "Open": "55", + "Volume": "14960400" + }, + { + "Close": "56", + "Date": "1994/3/10", + "High": "56.25", + "Low": "55.125", + "Open": "55.5", + "Volume": "12110000" + }, + { + "Close": "55.875", + "Date": "1994/3/11", + "High": "56.25", + "Low": "55.25", + "Open": "56.125", + "Volume": "6753200" + }, + { + "Close": "57.5", + "Date": "1994/3/14", + "High": "57.875", + "Low": "55.875", + "Open": "56.125", + "Volume": "11664000" + }, + { + "Close": "57.375", + "Date": "1994/3/15", + "High": "58.375", + "Low": "57.375", + "Open": "57.75", + "Volume": "9810000" + }, + { + "Close": "58.25", + "Date": "1994/3/16", + "High": "58.25", + "Low": "57.125", + "Open": "57.625", + "Volume": "7533600" + }, + { + "Close": "57.875", + "Date": "1994/3/17", + "High": "58.25", + "Low": "57.5", + "Open": "58.25", + "Volume": "7576400" + }, + { + "Close": "57.125", + "Date": "1994/3/18", + "High": "58.25", + "Low": "56.75", + "Open": "57.875", + "Volume": "13024800" + }, + { + "Close": "58.625", + "Date": "1994/3/21", + "High": "58.875", + "Low": "56.75", + "Open": "56.875", + "Volume": "10804000" + }, + { + "Close": "58.25", + "Date": "1994/3/22", + "High": "58.625", + "Low": "57.75", + "Open": "58", + "Volume": "7397200" + }, + { + "Close": "57.25", + "Date": "1994/3/23", + "High": "57.875", + "Low": "56.625", + "Open": "57", + "Volume": "10651600" + }, + { + "Close": "56.375", + "Date": "1994/3/24", + "High": "57.125", + "Low": "56", + "Open": "56.875", + "Volume": "8163600" + }, + { + "Close": "54", + "Date": "1994/3/25", + "High": "56.5", + "Low": "53.625", + "Open": "56.5", + "Volume": "11934000" + }, + { + "Close": "53.625", + "Date": "1994/3/28", + "High": "54.625", + "Low": "52.5", + "Open": "54.375", + "Volume": "13426000" + }, + { + "Close": "52.625", + "Date": "1994/3/29", + "High": "54.375", + "Low": "52.5", + "Open": "53.625", + "Volume": "12658800" + }, + { + "Close": "53.5", + "Date": "1994/3/30", + "High": "55", + "Low": "52.5", + "Open": "52.5", + "Volume": "16530000" + }, + { + "Close": "54.625", + "Date": "1994/3/31", + "High": "54.625", + "Low": "52", + "Open": "54", + "Volume": "13841600" + }, + { + "Close": "53", + "Date": "1994/4/4", + "High": "53.5", + "Low": "52.25", + "Open": "53", + "Volume": "11060000" + }, + { + "Close": "53.375", + "Date": "1994/4/5", + "High": "54.125", + "Low": "53", + "Open": "53.5", + "Volume": "9356400" + }, + { + "Close": "53.125", + "Date": "1994/4/6", + "High": "53.546799", + "Low": "52.75", + "Open": "53.5", + "Volume": "7720000" + }, + { + "Close": "53.125", + "Date": "1994/4/7", + "High": "53.25", + "Low": "52.25", + "Open": "53.25", + "Volume": "7099600" + }, + { + "Close": "52.5", + "Date": "1994/4/8", + "High": "53.125", + "Low": "52.375", + "Open": "52.875", + "Volume": "5236400" + }, + { + "Close": "53", + "Date": "1994/4/11", + "High": "53.375", + "Low": "52.25", + "Open": "52.625", + "Volume": "5209200" + }, + { + "Close": "52.875", + "Date": "1994/4/12", + "High": "53.875", + "Low": "52.5", + "Open": "53.75", + "Volume": "7552800" + }, + { + "Close": "52.375", + "Date": "1994/4/13", + "High": "53.375", + "Low": "51.875", + "Open": "52.875", + "Volume": "13984400" + }, + { + "Close": "53.875", + "Date": "1994/4/14", + "High": "53.875", + "Low": "52.5", + "Open": "52.5", + "Volume": "10512000" + }, + { + "Close": "53", + "Date": "1994/4/15", + "High": "54.5", + "Low": "52.625", + "Open": "53.875", + "Volume": "10556000" + }, + { + "Close": "53.375", + "Date": "1994/4/18", + "High": "54.125", + "Low": "52.75", + "Open": "52.875", + "Volume": "12480000" + }, + { + "Close": "53.375", + "Date": "1994/4/19", + "High": "53.75", + "Low": "51.375", + "Open": "53.5", + "Volume": "8376000" + }, + { + "Close": "52.25", + "Date": "1994/4/20", + "High": "53.5", + "Low": "51.75", + "Open": "53.25", + "Volume": "8830800" + }, + { + "Close": "58.375", + "Date": "1994/4/21", + "High": "58.625", + "Low": "54", + "Open": "55", + "Volume": "35032400" + }, + { + "Close": "58.75", + "Date": "1994/4/22", + "High": "59.5", + "Low": "58", + "Open": "58.375", + "Volume": "22642000" + }, + { + "Close": "59.25", + "Date": "1994/4/25", + "High": "59.25", + "Low": "58.25", + "Open": "58.5", + "Volume": "12249200" + }, + { + "Close": "58.5", + "Date": "1994/4/26", + "High": "59.25", + "Low": "58.5", + "Open": "58.875", + "Volume": "8868800" + }, + { + "Close": "57.125", + "Date": "1994/4/28", + "High": "58.25", + "Low": "56.75", + "Open": "57.875", + "Volume": "9190000" + }, + { + "Close": "57.5", + "Date": "1994/4/29", + "High": "57.875", + "Low": "56.875", + "Open": "57.375", + "Volume": "7634400" + }, + { + "Close": "58", + "Date": "1994/5/2", + "High": "58.375", + "Low": "56.875", + "Open": "57.5", + "Volume": "6434000" + }, + { + "Close": "58.375", + "Date": "1994/5/3", + "High": "58.625", + "Low": "57.875", + "Open": "58.125", + "Volume": "5506400" + }, + { + "Close": "57.75", + "Date": "1994/5/4", + "High": "58.25", + "Low": "57.5", + "Open": "58.25", + "Volume": "6001200" + }, + { + "Close": "57.125", + "Date": "1994/5/5", + "High": "57.5", + "Low": "56.875", + "Open": "57.375", + "Volume": "4164400" + }, + { + "Close": "56.5", + "Date": "1994/5/6", + "High": "57.125", + "Low": "56.25", + "Open": "56.5", + "Volume": "7917200" + }, + { + "Close": "57", + "Date": "1994/5/9", + "High": "57.875", + "Low": "56.5", + "Open": "56.5", + "Volume": "7520000" + }, + { + "Close": "58", + "Date": "1994/5/10", + "High": "58.25", + "Low": "57.375", + "Open": "57.625", + "Volume": "7942400" + }, + { + "Close": "57.25", + "Date": "1994/5/11", + "High": "58.25", + "Low": "57", + "Open": "58", + "Volume": "6186800" + }, + { + "Close": "57.25", + "Date": "1994/5/12", + "High": "57.75", + "Low": "57", + "Open": "57.625", + "Volume": "3690400" + }, + { + "Close": "57.5", + "Date": "1994/5/13", + "High": "57.875", + "Low": "57.25", + "Open": "57.5", + "Volume": "4402000" + }, + { + "Close": "58.5", + "Date": "1994/5/16", + "High": "58.625", + "Low": "57.375", + "Open": "57.625", + "Volume": "6392400" + }, + { + "Close": "61.25", + "Date": "1994/5/17", + "High": "61.5", + "Low": "58.625", + "Open": "58.625", + "Volume": "21587600" + }, + { + "Close": "60.75", + "Date": "1994/5/18", + "High": "61.875", + "Low": "60.5", + "Open": "61.625", + "Volume": "19178400" + }, + { + "Close": "61.375", + "Date": "1994/5/19", + "High": "62.125", + "Low": "60.5", + "Open": "60.875", + "Volume": "15087600" + }, + { + "Close": "62.125", + "Date": "1994/5/20", + "High": "62.375", + "Low": "61", + "Open": "61.375", + "Volume": "14960400" + }, + { + "Close": "61.75", + "Date": "1994/5/23", + "High": "62.5", + "Low": "61.375", + "Open": "62.125", + "Volume": "8296400" + }, + { + "Close": "63.125", + "Date": "1994/5/24", + "High": "63.375", + "Low": "61.875", + "Open": "62", + "Volume": "11203200" + }, + { + "Close": "63.625", + "Date": "1994/5/25", + "High": "64.125", + "Low": "62.5", + "Open": "63", + "Volume": "14713600" + }, + { + "Close": "64", + "Date": "1994/5/26", + "High": "64.125", + "Low": "62.5", + "Open": "63.25", + "Volume": "9180000" + }, + { + "Close": "63.625", + "Date": "1994/5/27", + "High": "64.125", + "Low": "63.625", + "Open": "63.875", + "Volume": "5446400" + }, + { + "Close": "63", + "Date": "1994/5/31", + "High": "63.75", + "Low": "62.75", + "Open": "63.5", + "Volume": "6016400" + }, + { + "Close": "63.5", + "Date": "1994/6/1", + "High": "63.625", + "Low": "62.5", + "Open": "63", + "Volume": "6758400" + }, + { + "Close": "62", + "Date": "1994/6/2", + "High": "63.5", + "Low": "61.875", + "Open": "63.375", + "Volume": "9921600" + }, + { + "Close": "61", + "Date": "1994/6/3", + "High": "61.875", + "Low": "60.75", + "Open": "61.75", + "Volume": "9525600" + }, + { + "Close": "62.625", + "Date": "1994/6/6", + "High": "63.5", + "Low": "61.125", + "Open": "61.25", + "Volume": "9376800" + }, + { + "Close": "62.625", + "Date": "1994/6/7", + "High": "63.25", + "Low": "62.625", + "Open": "62.75", + "Volume": "5596400" + }, + { + "Close": "61.625", + "Date": "1994/6/8", + "High": "63", + "Low": "61.5", + "Open": "62.875", + "Volume": "6606000" + }, + { + "Close": "62", + "Date": "1994/6/9", + "High": "62.125", + "Low": "61.5", + "Open": "61.5", + "Volume": "4350800" + }, + { + "Close": "62.625", + "Date": "1994/6/10", + "High": "62.875", + "Low": "62.25", + "Open": "62.25", + "Volume": "5299600" + }, + { + "Close": "63.75", + "Date": "1994/6/13", + "High": "64.125", + "Low": "62.25", + "Open": "62.375", + "Volume": "8658000" + }, + { + "Close": "65", + "Date": "1994/6/14", + "High": "65", + "Low": "63.875", + "Open": "63.875", + "Volume": "11114400" + }, + { + "Close": "63.75", + "Date": "1994/6/15", + "High": "64.75", + "Low": "63.5", + "Open": "64.5", + "Volume": "7157200" + }, + { + "Close": "62.875", + "Date": "1994/6/16", + "High": "63.5", + "Low": "62.875", + "Open": "63.25", + "Volume": "5730400" + }, + { + "Close": "62.375", + "Date": "1994/6/17", + "High": "63.125", + "Low": "62.25", + "Open": "62.625", + "Volume": "12136400" + }, + { + "Close": "61.625", + "Date": "1994/6/20", + "High": "62.25", + "Low": "61.625", + "Open": "61.875", + "Volume": "6236800" + }, + { + "Close": "61", + "Date": "1994/6/21", + "High": "62.125", + "Low": "60.375", + "Open": "61.75", + "Volume": "9909200" + }, + { + "Close": "62", + "Date": "1994/6/22", + "High": "62.125", + "Low": "61.125", + "Open": "61.375", + "Volume": "5308000" + }, + { + "Close": "60.875", + "Date": "1994/6/23", + "High": "62.25", + "Low": "60.875", + "Open": "61.875", + "Volume": "4617200" + }, + { + "Close": "59.875", + "Date": "1994/6/24", + "High": "61", + "Low": "59.5", + "Open": "60.75", + "Volume": "9061200" + }, + { + "Close": "61.5", + "Date": "1994/6/27", + "High": "61.625", + "Low": "58.125", + "Open": "59", + "Volume": "15504000" + }, + { + "Close": "61.125", + "Date": "1994/6/28", + "High": "61.875", + "Low": "60", + "Open": "61.5", + "Volume": "6945600" + }, + { + "Close": "60.375", + "Date": "1994/6/29", + "High": "61.5", + "Low": "60.125", + "Open": "60.875", + "Volume": "9084400" + }, + { + "Close": "58.75", + "Date": "1994/6/30", + "High": "60.5", + "Low": "58.625", + "Open": "60.375", + "Volume": "10934000" + }, + { + "Close": "57", + "Date": "1994/7/1", + "High": "59.125", + "Low": "56.75", + "Open": "59", + "Volume": "15272400" + }, + { + "Close": "56.25", + "Date": "1994/7/5", + "High": "57.875", + "Low": "56.25", + "Open": "57", + "Volume": "11160000" + }, + { + "Close": "57", + "Date": "1994/7/6", + "High": "57", + "Low": "56.375", + "Open": "56.5", + "Volume": "7756400" + }, + { + "Close": "56.75", + "Date": "1994/7/7", + "High": "57.375", + "Low": "56.625", + "Open": "57.375", + "Volume": "6871600" + }, + { + "Close": "56.625", + "Date": "1994/7/8", + "High": "57.875", + "Low": "56.5", + "Open": "56.5", + "Volume": "9261600" + }, + { + "Close": "55.625", + "Date": "1994/7/11", + "High": "57.125", + "Low": "55.375", + "Open": "56.875", + "Volume": "10795600" + }, + { + "Close": "55.875", + "Date": "1994/7/12", + "High": "56.125", + "Low": "54.875", + "Open": "55.75", + "Volume": "11974800" + }, + { + "Close": "56.75", + "Date": "1994/7/13", + "High": "56.75", + "Low": "55.875", + "Open": "56", + "Volume": "9924800" + }, + { + "Close": "58.25", + "Date": "1994/7/14", + "High": "58.5", + "Low": "57.25", + "Open": "57.5", + "Volume": "12010800" + }, + { + "Close": "56.875", + "Date": "1994/7/15", + "High": "57.875", + "Low": "56.75", + "Open": "57.75", + "Volume": "9913200" + }, + { + "Close": "56.875", + "Date": "1994/7/18", + "High": "57.625", + "Low": "56.625", + "Open": "57.25", + "Volume": "6622400" + }, + { + "Close": "55.625", + "Date": "1994/7/19", + "High": "56.875", + "Low": "55.625", + "Open": "56.75", + "Volume": "7268800" + }, + { + "Close": "55.875", + "Date": "1994/7/20", + "High": "56.25", + "Low": "54.5", + "Open": "55.75", + "Volume": "12757200" + }, + { + "Close": "62.375", + "Date": "1994/7/21", + "High": "62.625", + "Low": "58", + "Open": "59", + "Volume": "35226000" + }, + { + "Close": "61.375", + "Date": "1994/7/22", + "High": "62.5", + "Low": "61.125", + "Open": "62.25", + "Volume": "14856800" + }, + { + "Close": "62.25", + "Date": "1994/7/25", + "High": "62.375", + "Low": "61.328098", + "Open": "61.375", + "Volume": "9368800" + }, + { + "Close": "62.375", + "Date": "1994/7/26", + "High": "63.125", + "Low": "62.125", + "Open": "62.5", + "Volume": "11587600" + }, + { + "Close": "62.5", + "Date": "1994/7/27", + "High": "62.5", + "Low": "61.875", + "Open": "62.25", + "Volume": "5765200" + }, + { + "Close": "62.25", + "Date": "1994/7/28", + "High": "63", + "Low": "62.25", + "Open": "62.375", + "Volume": "5047200" + }, + { + "Close": "61.875", + "Date": "1994/7/29", + "High": "62.75", + "Low": "61.75", + "Open": "62.625", + "Volume": "6775600" + }, + { + "Close": "62.875", + "Date": "1994/8/1", + "High": "63.125", + "Low": "61.5", + "Open": "61.875", + "Volume": "7085600" + }, + { + "Close": "62.25", + "Date": "1994/8/2", + "High": "63.375", + "Low": "62.25", + "Open": "63", + "Volume": "8335200" + }, + { + "Close": "63", + "Date": "1994/8/3", + "High": "63.125", + "Low": "62.25", + "Open": "62.375", + "Volume": "5416800" + }, + { + "Close": "63.125", + "Date": "1994/8/4", + "High": "63.5", + "Low": "62.75", + "Open": "63", + "Volume": "8185600" + }, + { + "Close": "62.375", + "Date": "1994/8/5", + "High": "63.125", + "Low": "61.875", + "Open": "62.75", + "Volume": "6399600" + }, + { + "Close": "63.25", + "Date": "1994/8/8", + "High": "63.375", + "Low": "62.625", + "Open": "62.75", + "Volume": "6706400" + }, + { + "Close": "64.5", + "Date": "1994/8/9", + "High": "64.5", + "Low": "63.25", + "Open": "63.375", + "Volume": "12052000" + }, + { + "Close": "64.125", + "Date": "1994/8/10", + "High": "65", + "Low": "64.125", + "Open": "64.5", + "Volume": "10834400" + }, + { + "Close": "64.625", + "Date": "1994/8/11", + "High": "64.625", + "Low": "63.75", + "Open": "64", + "Volume": "9782800" + }, + { + "Close": "63.75", + "Date": "1994/8/12", + "High": "65.125", + "Low": "63.75", + "Open": "64.75", + "Volume": "8006400" + }, + { + "Close": "64.375", + "Date": "1994/8/15", + "High": "64.5", + "Low": "63.75", + "Open": "63.75", + "Volume": "4311200" + }, + { + "Close": "64.625", + "Date": "1994/8/16", + "High": "64.75", + "Low": "63.75", + "Open": "64.5", + "Volume": "8140400" + }, + { + "Close": "64.875", + "Date": "1994/8/17", + "High": "65.625", + "Low": "64.375", + "Open": "64.875", + "Volume": "11780800" + }, + { + "Close": "66.25", + "Date": "1994/8/18", + "High": "66.875", + "Low": "65.375", + "Open": "65.375", + "Volume": "16787200" + }, + { + "Close": "68.125", + "Date": "1994/8/19", + "High": "68.625", + "Low": "66", + "Open": "66.375", + "Volume": "18653600" + }, + { + "Close": "67.75", + "Date": "1994/8/22", + "High": "68.375", + "Low": "67.25", + "Open": "67.5", + "Volume": "11882400" + }, + { + "Close": "67.625", + "Date": "1994/8/23", + "High": "68.25", + "Low": "67.625", + "Open": "67.875", + "Volume": "11645200" + }, + { + "Close": "67.375", + "Date": "1994/8/24", + "High": "67.375", + "Low": "66.625", + "Open": "67.375", + "Volume": "11196800" + }, + { + "Close": "69.375", + "Date": "1994/8/25", + "High": "69.75", + "Low": "66.875", + "Open": "67", + "Volume": "21095600" + }, + { + "Close": "70", + "Date": "1994/8/26", + "High": "70.125", + "Low": "69.125", + "Open": "69.375", + "Volume": "16576400" + }, + { + "Close": "69.375", + "Date": "1994/8/29", + "High": "70", + "Low": "69.25", + "Open": "69.75", + "Volume": "9257600" + }, + { + "Close": "69.375", + "Date": "1994/8/30", + "High": "69.75", + "Low": "68.875", + "Open": "69.375", + "Volume": "7486000" + }, + { + "Close": "68.5", + "Date": "1994/8/31", + "High": "69.5", + "Low": "68.5", + "Open": "69.25", + "Volume": "9886800" + }, + { + "Close": "67.875", + "Date": "1994/9/1", + "High": "68.25", + "Low": "66.875", + "Open": "66.875", + "Volume": "11114000" + }, + { + "Close": "67.25", + "Date": "1994/9/2", + "High": "68", + "Low": "66.75", + "Open": "68", + "Volume": "5858800" + }, + { + "Close": "67.5", + "Date": "1994/9/6", + "High": "67.625", + "Low": "66.625", + "Open": "67.125", + "Volume": "4985200" + }, + { + "Close": "67.5", + "Date": "1994/9/7", + "High": "68.25", + "Low": "67.375", + "Open": "67.5", + "Volume": "8123200" + }, + { + "Close": "67.875", + "Date": "1994/9/8", + "High": "68.125", + "Low": "67.25", + "Open": "67.25", + "Volume": "5457200" + }, + { + "Close": "67.25", + "Date": "1994/9/9", + "High": "68", + "Low": "66.75", + "Open": "66.875", + "Volume": "9236800" + }, + { + "Close": "67.875", + "Date": "1994/9/12", + "High": "68.125", + "Low": "67.5", + "Open": "67.5", + "Volume": "4823600" + }, + { + "Close": "69.25", + "Date": "1994/9/13", + "High": "69.625", + "Low": "68.625", + "Open": "68.75", + "Volume": "11616800" + }, + { + "Close": "69.75", + "Date": "1994/9/14", + "High": "70.125", + "Low": "69", + "Open": "69.125", + "Volume": "10146000" + }, + { + "Close": "69.75", + "Date": "1994/9/15", + "High": "70.25", + "Low": "69.5", + "Open": "69.5", + "Volume": "8228400" + }, + { + "Close": "71", + "Date": "1994/9/16", + "High": "71.375", + "Low": "69.5", + "Open": "69.75", + "Volume": "20598400" + }, + { + "Close": "70.375", + "Date": "1994/9/19", + "High": "71.25", + "Low": "70.25", + "Open": "70.625", + "Volume": "7394000" + }, + { + "Close": "70.25", + "Date": "1994/9/20", + "High": "70.5", + "Low": "69.625", + "Open": "69.875", + "Volume": "10980800" + }, + { + "Close": "69.5", + "Date": "1994/9/21", + "High": "71.375", + "Low": "69.375", + "Open": "71", + "Volume": "14548400" + }, + { + "Close": "69.625", + "Date": "1994/9/22", + "High": "70.25", + "Low": "69.375", + "Open": "69.75", + "Volume": "8482000" + }, + { + "Close": "69.125", + "Date": "1994/9/23", + "High": "69.5", + "Low": "68.875", + "Open": "69.375", + "Volume": "7043200" + }, + { + "Close": "69", + "Date": "1994/9/26", + "High": "69.125", + "Low": "67.75", + "Open": "69", + "Volume": "7059200" + }, + { + "Close": "69", + "Date": "1994/9/27", + "High": "69.375", + "Low": "68.625", + "Open": "68.875", + "Volume": "4462800" + }, + { + "Close": "68.5", + "Date": "1994/9/28", + "High": "69.875", + "Low": "68.5", + "Open": "69.125", + "Volume": "5200000" + }, + { + "Close": "69.5", + "Date": "1994/9/29", + "High": "69.875", + "Low": "67.75", + "Open": "68.375", + "Volume": "9224800" + }, + { + "Close": "69.625", + "Date": "1994/9/30", + "High": "70.125", + "Low": "68.875", + "Open": "69.25", + "Volume": "8159200" + }, + { + "Close": "68.875", + "Date": "1994/10/3", + "High": "69.5", + "Low": "68.625", + "Open": "69.375", + "Volume": "4666000" + }, + { + "Close": "68.375", + "Date": "1994/10/4", + "High": "69.5", + "Low": "68.25", + "Open": "69.125", + "Volume": "6882000" + }, + { + "Close": "69.125", + "Date": "1994/10/5", + "High": "69.125", + "Low": "67.375", + "Open": "68.125", + "Volume": "10766000" + }, + { + "Close": "68.75", + "Date": "1994/10/6", + "High": "69.5", + "Low": "68.625", + "Open": "69", + "Volume": "7236800" + }, + { + "Close": "71.125", + "Date": "1994/10/7", + "High": "71.75", + "Low": "68.75", + "Open": "68.875", + "Volume": "17982400" + }, + { + "Close": "71.5", + "Date": "1994/10/10", + "High": "71.875", + "Low": "70.75", + "Open": "71.25", + "Volume": "7219600" + }, + { + "Close": "71.625", + "Date": "1994/10/11", + "High": "72.375", + "Low": "71.5", + "Open": "71.75", + "Volume": "11230400" + }, + { + "Close": "73.125", + "Date": "1994/10/12", + "High": "73.5", + "Low": "71", + "Open": "71", + "Volume": "12910400" + }, + { + "Close": "72.25", + "Date": "1994/10/13", + "High": "74.125", + "Low": "72.25", + "Open": "73.625", + "Volume": "9366400" + }, + { + "Close": "73.125", + "Date": "1994/10/14", + "High": "73.125", + "Low": "71.875", + "Open": "72.5", + "Volume": "8163200" + }, + { + "Close": "73.25", + "Date": "1994/10/17", + "High": "73.75", + "Low": "72.75", + "Open": "72.875", + "Volume": "6145600" + }, + { + "Close": "74.5", + "Date": "1994/10/18", + "High": "74.5", + "Low": "73.375", + "Open": "73.5", + "Volume": "9853600" + }, + { + "Close": "75.375", + "Date": "1994/10/19", + "High": "75.75", + "Low": "73.75", + "Open": "74", + "Volume": "15736800" + }, + { + "Close": "75", + "Date": "1994/10/20", + "High": "76.125", + "Low": "73.875", + "Open": "75.5", + "Volume": "20867600" + }, + { + "Close": "74.625", + "Date": "1994/10/21", + "High": "75.375", + "Low": "74.125", + "Open": "74.625", + "Volume": "13490000" + }, + { + "Close": "73", + "Date": "1994/10/24", + "High": "74.625", + "Low": "72.875", + "Open": "74.625", + "Volume": "10460800" + }, + { + "Close": "73.875", + "Date": "1994/10/25", + "High": "74.375", + "Low": "72.625", + "Open": "72.625", + "Volume": "11318400" + }, + { + "Close": "74.375", + "Date": "1994/10/26", + "High": "74.5", + "Low": "73.625", + "Open": "74", + "Volume": "9759200" + }, + { + "Close": "74.125", + "Date": "1994/10/27", + "High": "74.625", + "Low": "73.75", + "Open": "74.5", + "Volume": "4998400" + }, + { + "Close": "76.125", + "Date": "1994/10/28", + "High": "76.375", + "Low": "74.125", + "Open": "74.125", + "Volume": "10853200" + }, + { + "Close": "74.5", + "Date": "1994/10/31", + "High": "75.625", + "Low": "74.5", + "Open": "75.625", + "Volume": "7705600" + }, + { + "Close": "73.875", + "Date": "1994/11/1", + "High": "75.25", + "Low": "73.5", + "Open": "74.375", + "Volume": "10000000" + }, + { + "Close": "74.25", + "Date": "1994/11/2", + "High": "75.25", + "Low": "73.75", + "Open": "74", + "Volume": "10678400" + }, + { + "Close": "73.5", + "Date": "1994/11/3", + "High": "74.625", + "Low": "73.125", + "Open": "74.5", + "Volume": "6645200" + }, + { + "Close": "71.125", + "Date": "1994/11/4", + "High": "73.5", + "Low": "71.125", + "Open": "73.375", + "Volume": "12971600" + }, + { + "Close": "71.875", + "Date": "1994/11/7", + "High": "72.25", + "Low": "70.75", + "Open": "71.375", + "Volume": "9115600" + }, + { + "Close": "73", + "Date": "1994/11/8", + "High": "73.5", + "Low": "71.375", + "Open": "71.625", + "Volume": "7476000" + }, + { + "Close": "74", + "Date": "1994/11/9", + "High": "74.375", + "Low": "73.25", + "Open": "73.75", + "Volume": "10468400" + }, + { + "Close": "72", + "Date": "1994/11/10", + "High": "73.625", + "Low": "71.625", + "Open": "73.5", + "Volume": "10746000" + }, + { + "Close": "72.375", + "Date": "1994/11/11", + "High": "73", + "Low": "71.75", + "Open": "72", + "Volume": "7391600" + }, + { + "Close": "72.875", + "Date": "1994/11/14", + "High": "73", + "Low": "72.25", + "Open": "72.75", + "Volume": "6049600" + }, + { + "Close": "73.125", + "Date": "1994/11/15", + "High": "73.875", + "Low": "72.5", + "Open": "72.875", + "Volume": "6997200" + }, + { + "Close": "72.75", + "Date": "1994/11/16", + "High": "73.125", + "Low": "72.625", + "Open": "73", + "Volume": "5089200" + }, + { + "Close": "73.125", + "Date": "1994/11/17", + "High": "73.75", + "Low": "72.75", + "Open": "73.25", + "Volume": "7262000" + }, + { + "Close": "73.25", + "Date": "1994/11/18", + "High": "73.375", + "Low": "72.75", + "Open": "73", + "Volume": "12490400" + }, + { + "Close": "72.875", + "Date": "1994/11/21", + "High": "74.125", + "Low": "72.625", + "Open": "73.25", + "Volume": "6680400" + }, + { + "Close": "69.75", + "Date": "1994/11/22", + "High": "72.875", + "Low": "69.375", + "Open": "72.75", + "Volume": "9564400" + }, + { + "Close": "70", + "Date": "1994/11/23", + "High": "70", + "Low": "68", + "Open": "69.25", + "Volume": "18755600" + }, + { + "Close": "70.75", + "Date": "1994/11/25", + "High": "70.875", + "Low": "70", + "Open": "70", + "Volume": "4382800" + }, + { + "Close": "70.625", + "Date": "1994/11/28", + "High": "71.625", + "Low": "70.25", + "Open": "70.875", + "Volume": "7978800" + }, + { + "Close": "70.625", + "Date": "1994/11/29", + "High": "71", + "Low": "70.25", + "Open": "70.625", + "Volume": "5386000" + }, + { + "Close": "70.75", + "Date": "1994/11/30", + "High": "71.25", + "Low": "70.625", + "Open": "71.125", + "Volume": "7846400" + }, + { + "Close": "69.5", + "Date": "1994/12/1", + "High": "70.75", + "Low": "69.25", + "Open": "70.625", + "Volume": "6638000" + }, + { + "Close": "71.375", + "Date": "1994/12/2", + "High": "71.375", + "Low": "68.875", + "Open": "69.25", + "Volume": "7975200" + }, + { + "Close": "71.375", + "Date": "1994/12/5", + "High": "72.375", + "Low": "71.375", + "Open": "71.625", + "Volume": "8198400" + }, + { + "Close": "71.625", + "Date": "1994/12/6", + "High": "72", + "Low": "71.25", + "Open": "71.25", + "Volume": "7715200" + }, + { + "Close": "71.25", + "Date": "1994/12/7", + "High": "71.375", + "Low": "70.625", + "Open": "70.75", + "Volume": "5262400" + }, + { + "Close": "70.125", + "Date": "1994/12/8", + "High": "71.5", + "Low": "69.75", + "Open": "71.125", + "Volume": "6871600" + }, + { + "Close": "71.5", + "Date": "1994/12/9", + "High": "71.5", + "Low": "69.5", + "Open": "69.625", + "Volume": "9892000" + }, + { + "Close": "70.625", + "Date": "1994/12/12", + "High": "71.375", + "Low": "69.625", + "Open": "71.125", + "Volume": "8822400" + }, + { + "Close": "69.75", + "Date": "1994/12/13", + "High": "71", + "Low": "69.625", + "Open": "70.75", + "Volume": "5476400" + }, + { + "Close": "70.25", + "Date": "1994/12/14", + "High": "70.625", + "Low": "69.375", + "Open": "69.5", + "Volume": "8176800" + }, + { + "Close": "70.5", + "Date": "1994/12/15", + "High": "71", + "Low": "70.125", + "Open": "70.375", + "Volume": "7541200" + }, + { + "Close": "70.125", + "Date": "1994/12/16", + "High": "70.875", + "Low": "69.875", + "Open": "70.875", + "Volume": "11776000" + }, + { + "Close": "71.625", + "Date": "1994/12/19", + "High": "71.625", + "Low": "70.5", + "Open": "70.5", + "Volume": "9688400" + }, + { + "Close": "70.75", + "Date": "1994/12/20", + "High": "71.625", + "Low": "70.75", + "Open": "71.375", + "Volume": "6907200" + }, + { + "Close": "73.625", + "Date": "1994/12/21", + "High": "73.625", + "Low": "71", + "Open": "71.125", + "Volume": "12847600" + }, + { + "Close": "73.5", + "Date": "1994/12/22", + "High": "74.625", + "Low": "73.5", + "Open": "73.625", + "Volume": "10648400" + }, + { + "Close": "73.5", + "Date": "1994/12/23", + "High": "74.25", + "Low": "73.25", + "Open": "73.625", + "Volume": "3753600" + }, + { + "Close": "74.25", + "Date": "1994/12/27", + "High": "74.5", + "Low": "73.75", + "Open": "74.125", + "Volume": "4933200" + }, + { + "Close": "73", + "Date": "1994/12/28", + "High": "74.375", + "Low": "72.5", + "Open": "74.375", + "Volume": "5422800" + }, + { + "Close": "74.375", + "Date": "1994/12/29", + "High": "74.375", + "Low": "73", + "Open": "73", + "Volume": "7704800" + }, + { + "Close": "73.5", + "Date": "1994/12/30", + "High": "74.5", + "Low": "73.125", + "Open": "74.25", + "Volume": "5780800" + }, + { + "Close": "73.75", + "Date": "1995/1/3", + "High": "73.875", + "Low": "73.375", + "Open": "73.5", + "Volume": "4671600" + }, + { + "Close": "74.375", + "Date": "1995/1/4", + "High": "74.625", + "Low": "73.25", + "Open": "73.875", + "Volume": "7978800" + }, + { + "Close": "74", + "Date": "1995/1/5", + "High": "75.25", + "Low": "73.75", + "Open": "74.375", + "Volume": "9083600" + }, + { + "Close": "75.125", + "Date": "1995/1/6", + "High": "75.75", + "Low": "74.125", + "Open": "74.25", + "Volume": "12162000" + }, + { + "Close": "75.5", + "Date": "1995/1/9", + "High": "75.875", + "Low": "74.875", + "Open": "75", + "Volume": "6852000" + }, + { + "Close": "76.625", + "Date": "1995/1/10", + "High": "77.25", + "Low": "75.625", + "Open": "76", + "Volume": "13683200" + }, + { + "Close": "76", + "Date": "1995/1/11", + "High": "77.125", + "Low": "75.25", + "Open": "77", + "Volume": "9801200" + }, + { + "Close": "76", + "Date": "1995/1/12", + "High": "76.375", + "Low": "75.5", + "Open": "75.875", + "Volume": "9103600" + }, + { + "Close": "76.375", + "Date": "1995/1/13", + "High": "76.875", + "Low": "75.75", + "Open": "76.75", + "Volume": "8121200" + }, + { + "Close": "77.5", + "Date": "1995/1/16", + "High": "78", + "Low": "76.375", + "Open": "76.375", + "Volume": "10864000" + }, + { + "Close": "77.5", + "Date": "1995/1/17", + "High": "78", + "Low": "77.125", + "Open": "77.25", + "Volume": "6385200" + }, + { + "Close": "77.25", + "Date": "1995/1/18", + "High": "77.875", + "Low": "76.625", + "Open": "77.625", + "Volume": "7370400" + }, + { + "Close": "76.5", + "Date": "1995/1/19", + "High": "77.625", + "Low": "76.375", + "Open": "77.125", + "Volume": "6855600" + }, + { + "Close": "75.375", + "Date": "1995/1/20", + "High": "76.5", + "Low": "75", + "Open": "76.375", + "Volume": "13333600" + }, + { + "Close": "74.25", + "Date": "1995/1/23", + "High": "74.5", + "Low": "72.375", + "Open": "74.5", + "Volume": "19654800" + }, + { + "Close": "74", + "Date": "1995/1/24", + "High": "74.875", + "Low": "73.5", + "Open": "74.125", + "Volume": "12706400" + }, + { + "Close": "72.375", + "Date": "1995/1/25", + "High": "73.125", + "Low": "72", + "Open": "72", + "Volume": "15232000" + }, + { + "Close": "72.375", + "Date": "1995/1/26", + "High": "73.375", + "Low": "72.25", + "Open": "72.375", + "Volume": "8627200" + }, + { + "Close": "72.5", + "Date": "1995/1/27", + "High": "73.125", + "Low": "70.625", + "Open": "72.75", + "Volume": "10868400" + }, + { + "Close": "71.75", + "Date": "1995/1/30", + "High": "73", + "Low": "71.5", + "Open": "72.75", + "Volume": "5674000" + }, + { + "Close": "72.125", + "Date": "1995/1/31", + "High": "72.875", + "Low": "70.25", + "Open": "72", + "Volume": "10969600" + }, + { + "Close": "73.625", + "Date": "1995/2/1", + "High": "73.875", + "Low": "72.25", + "Open": "72.375", + "Volume": "13168000" + }, + { + "Close": "74.375", + "Date": "1995/2/2", + "High": "74.375", + "Low": "73.5", + "Open": "73.625", + "Volume": "5834400" + }, + { + "Close": "74.625", + "Date": "1995/2/3", + "High": "75.25", + "Low": "74.5", + "Open": "74.875", + "Volume": "10251200" + }, + { + "Close": "74.375", + "Date": "1995/2/6", + "High": "74.875", + "Low": "74.125", + "Open": "74.375", + "Volume": "5408400" + }, + { + "Close": "74.25", + "Date": "1995/2/7", + "High": "74.375", + "Low": "73.875", + "Open": "74.25", + "Volume": "5802800" + }, + { + "Close": "74.25", + "Date": "1995/2/8", + "High": "74.875", + "Low": "74.125", + "Open": "74.125", + "Volume": "5985600" + }, + { + "Close": "75", + "Date": "1995/2/9", + "High": "75.25", + "Low": "74.25", + "Open": "74.25", + "Volume": "7896000" + }, + { + "Close": "75", + "Date": "1995/2/10", + "High": "75.75", + "Low": "75", + "Open": "75.125", + "Volume": "6156000" + }, + { + "Close": "74.875", + "Date": "1995/2/13", + "High": "75.375", + "Low": "74.75", + "Open": "75.125", + "Volume": "4887200" + }, + { + "Close": "75.625", + "Date": "1995/2/14", + "High": "75.625", + "Low": "74.625", + "Open": "75", + "Volume": "6785600" + }, + { + "Close": "75.625", + "Date": "1995/2/15", + "High": "75.875", + "Low": "75.125", + "Open": "75.625", + "Volume": "6506800" + }, + { + "Close": "75.5", + "Date": "1995/2/16", + "High": "76.25", + "Low": "75.5", + "Open": "75.875", + "Volume": "6809600" + }, + { + "Close": "75", + "Date": "1995/2/17", + "High": "75.75", + "Low": "74.75", + "Open": "75.75", + "Volume": "11672000" + }, + { + "Close": "74.25", + "Date": "1995/2/21", + "High": "75.125", + "Low": "74.125", + "Open": "75", + "Volume": "6228000" + }, + { + "Close": "74.25", + "Date": "1995/2/22", + "High": "74.5", + "Low": "74.125", + "Open": "74.25", + "Volume": "6864000" + }, + { + "Close": "74.25", + "Date": "1995/2/23", + "High": "75.75", + "Low": "74.125", + "Open": "74.75", + "Volume": "8826400" + }, + { + "Close": "74.875", + "Date": "1995/2/24", + "High": "75.375", + "Low": "74.25", + "Open": "74.25", + "Volume": "6254400" + }, + { + "Close": "74", + "Date": "1995/2/27", + "High": "75.375", + "Low": "73.75", + "Open": "74.625", + "Volume": "8212800" + }, + { + "Close": "75.25", + "Date": "1995/2/28", + "High": "75.25", + "Low": "74", + "Open": "74", + "Volume": "7198000" + }, + { + "Close": "75.375", + "Date": "1995/3/1", + "High": "76.375", + "Low": "75.125", + "Open": "75.125", + "Volume": "8202000" + }, + { + "Close": "77.25", + "Date": "1995/3/2", + "High": "77.375", + "Low": "75.375", + "Open": "75.375", + "Volume": "9643200" + }, + { + "Close": "79.875", + "Date": "1995/3/3", + "High": "80", + "Low": "77", + "Open": "77.125", + "Volume": "22256000" + }, + { + "Close": "80.25", + "Date": "1995/3/6", + "High": "81.25", + "Low": "79.5", + "Open": "79.5", + "Volume": "20173200" + }, + { + "Close": "79.75", + "Date": "1995/3/7", + "High": "80.875", + "Low": "79.375", + "Open": "80.375", + "Volume": "13802400" + }, + { + "Close": "79.75", + "Date": "1995/3/8", + "High": "80", + "Low": "78.5", + "Open": "79.75", + "Volume": "12133200" + }, + { + "Close": "80.625", + "Date": "1995/3/9", + "High": "81.375", + "Low": "80.375", + "Open": "80.375", + "Volume": "12513600" + }, + { + "Close": "81.125", + "Date": "1995/3/10", + "High": "81.625", + "Low": "80.375", + "Open": "80.875", + "Volume": "9492400" + }, + { + "Close": "82", + "Date": "1995/3/13", + "High": "83", + "Low": "81.5", + "Open": "81.5", + "Volume": "13964800" + }, + { + "Close": "81.5", + "Date": "1995/3/14", + "High": "82.75", + "Low": "81.5", + "Open": "82.25", + "Volume": "9067600" + }, + { + "Close": "81.75", + "Date": "1995/3/15", + "High": "82.25", + "Low": "81.25", + "Open": "81.25", + "Volume": "7084800" + }, + { + "Close": "83.5", + "Date": "1995/3/16", + "High": "83.625", + "Low": "81.625", + "Open": "81.75", + "Volume": "11382800" + }, + { + "Close": "82.625", + "Date": "1995/3/17", + "High": "83.625", + "Low": "82.625", + "Open": "83.5", + "Volume": "11869600" + }, + { + "Close": "83.5", + "Date": "1995/3/20", + "High": "84", + "Low": "82.5", + "Open": "82.75", + "Volume": "7368800" + }, + { + "Close": "82.25", + "Date": "1995/3/21", + "High": "84", + "Low": "82.125", + "Open": "83.5", + "Volume": "7956000" + }, + { + "Close": "81.625", + "Date": "1995/3/22", + "High": "82.625", + "Low": "81.25", + "Open": "82.125", + "Volume": "9788800" + }, + { + "Close": "83.375", + "Date": "1995/3/23", + "High": "83.375", + "Low": "81.5", + "Open": "81.5", + "Volume": "11056400" + }, + { + "Close": "83.625", + "Date": "1995/3/24", + "High": "84.375", + "Low": "83.5", + "Open": "83.625", + "Volume": "10318000" + }, + { + "Close": "85", + "Date": "1995/3/27", + "High": "85.125", + "Low": "83.875", + "Open": "83.875", + "Volume": "8114000" + }, + { + "Close": "84.5", + "Date": "1995/3/28", + "High": "84.875", + "Low": "84.25", + "Open": "84.875", + "Volume": "5412000" + }, + { + "Close": "83", + "Date": "1995/3/29", + "High": "84.75", + "Low": "82.5", + "Open": "84.25", + "Volume": "11885600" + }, + { + "Close": "82.375", + "Date": "1995/3/30", + "High": "83.375", + "Low": "81.75", + "Open": "83.125", + "Volume": "11828400" + }, + { + "Close": "82.125", + "Date": "1995/3/31", + "High": "83.5", + "Low": "81.375", + "Open": "82.125", + "Volume": "10472000" + }, + { + "Close": "82.875", + "Date": "1995/4/3", + "High": "83.5", + "Low": "82.25", + "Open": "82.25", + "Volume": "7576400" + }, + { + "Close": "83", + "Date": "1995/4/4", + "High": "83.625", + "Low": "82.5", + "Open": "83.125", + "Volume": "6738400" + }, + { + "Close": "84", + "Date": "1995/4/5", + "High": "84.125", + "Low": "82.875", + "Open": "82.875", + "Volume": "8033200" + }, + { + "Close": "83.875", + "Date": "1995/4/6", + "High": "84.625", + "Low": "83.625", + "Open": "84.375", + "Volume": "5946000" + }, + { + "Close": "84", + "Date": "1995/4/7", + "High": "85.125", + "Low": "83.5", + "Open": "83.75", + "Volume": "9713200" + }, + { + "Close": "86", + "Date": "1995/4/10", + "High": "86", + "Low": "84", + "Open": "84", + "Volume": "8462400" + }, + { + "Close": "86.75", + "Date": "1995/4/11", + "High": "86.875", + "Low": "85.625", + "Open": "85.875", + "Volume": "10324000" + }, + { + "Close": "87.125", + "Date": "1995/4/12", + "High": "87.625", + "Low": "86.125", + "Open": "86.5", + "Volume": "7612800" + }, + { + "Close": "86.375", + "Date": "1995/4/13", + "High": "87.375", + "Low": "86.125", + "Open": "86.875", + "Volume": "5525600" + }, + { + "Close": "87.875", + "Date": "1995/4/17", + "High": "88.5", + "Low": "86.875", + "Open": "87", + "Volume": "8758400" + }, + { + "Close": "88.25", + "Date": "1995/4/18", + "High": "88.5", + "Low": "87.125", + "Open": "88.125", + "Volume": "7875200" + }, + { + "Close": "87.125", + "Date": "1995/4/19", + "High": "88.25", + "Low": "86", + "Open": "87.875", + "Volume": "10305600" + }, + { + "Close": "89", + "Date": "1995/4/20", + "High": "90.375", + "Low": "88.625", + "Open": "89.625", + "Volume": "23990800" + }, + { + "Close": "91.625", + "Date": "1995/4/21", + "High": "92", + "Low": "89.125", + "Open": "89.375", + "Volume": "23545600" + }, + { + "Close": "93.5", + "Date": "1995/4/24", + "High": "93.875", + "Low": "91", + "Open": "91.5", + "Volume": "17275600" + }, + { + "Close": "93.625", + "Date": "1995/4/25", + "High": "93.875", + "Low": "92.875", + "Open": "93.125", + "Volume": "13385200" + }, + { + "Close": "95.25", + "Date": "1995/4/26", + "High": "95.75", + "Low": "92.875", + "Open": "93.125", + "Volume": "14798000" + }, + { + "Close": "96.875", + "Date": "1995/4/27", + "High": "96.875", + "Low": "94.625", + "Open": "94.875", + "Volume": "13900400" + }, + { + "Close": "94.625", + "Date": "1995/4/28", + "High": "96.25", + "Low": "94.25", + "Open": "96", + "Volume": "20002400" + }, + { + "Close": "92.125", + "Date": "1995/5/1", + "High": "94.25", + "Low": "91.75", + "Open": "93.875", + "Volume": "13615200" + }, + { + "Close": "92.875", + "Date": "1995/5/2", + "High": "93.375", + "Low": "91.625", + "Open": "91.625", + "Volume": "13611200" + }, + { + "Close": "94.25", + "Date": "1995/5/3", + "High": "94.625", + "Low": "93", + "Open": "93", + "Volume": "10689600" + }, + { + "Close": "93.75", + "Date": "1995/5/4", + "High": "96.125", + "Low": "93.25", + "Open": "94.75", + "Volume": "17428000" + }, + { + "Close": "93.125", + "Date": "1995/5/5", + "High": "94.625", + "Low": "92.875", + "Open": "94.25", + "Volume": "12219200" + }, + { + "Close": "93.75", + "Date": "1995/5/8", + "High": "95.25", + "Low": "92.625", + "Open": "92.75", + "Volume": "10813600" + }, + { + "Close": "93.625", + "Date": "1995/5/9", + "High": "94.375", + "Low": "93.375", + "Open": "94.125", + "Volume": "11119600" + }, + { + "Close": "93.875", + "Date": "1995/5/10", + "High": "95", + "Low": "93.875", + "Open": "93.875", + "Volume": "11563600" + }, + { + "Close": "94.25", + "Date": "1995/5/11", + "High": "95.125", + "Low": "93.25", + "Open": "93.5", + "Volume": "10339200" + }, + { + "Close": "94.375", + "Date": "1995/5/12", + "High": "95.625", + "Low": "93.75", + "Open": "93.75", + "Volume": "10657600" + }, + { + "Close": "95", + "Date": "1995/5/15", + "High": "95.375", + "Low": "94.125", + "Open": "94.5", + "Volume": "7635200" + }, + { + "Close": "94.625", + "Date": "1995/5/16", + "High": "95.875", + "Low": "94.25", + "Open": "94.25", + "Volume": "10934800" + }, + { + "Close": "94.875", + "Date": "1995/5/17", + "High": "95.625", + "Low": "94.75", + "Open": "95", + "Volume": "9618000" + }, + { + "Close": "93.125", + "Date": "1995/5/18", + "High": "96.125", + "Low": "93.125", + "Open": "94.625", + "Volume": "13725600" + }, + { + "Close": "93.375", + "Date": "1995/5/19", + "High": "93.75", + "Low": "92.25", + "Open": "92.25", + "Volume": "16259200" + }, + { + "Close": "95.25", + "Date": "1995/5/22", + "High": "95.375", + "Low": "93.5", + "Open": "93.5", + "Volume": "8920400" + }, + { + "Close": "97.25", + "Date": "1995/5/23", + "High": "97.625", + "Low": "95.5", + "Open": "95.5", + "Volume": "14118400" + }, + { + "Close": "96.125", + "Date": "1995/5/24", + "High": "97.875", + "Low": "94.5", + "Open": "97.5", + "Volume": "12646800" + }, + { + "Close": "96.75", + "Date": "1995/5/25", + "High": "97.875", + "Low": "95.875", + "Open": "96.25", + "Volume": "11550800" + }, + { + "Close": "95", + "Date": "1995/5/26", + "High": "97.5", + "Low": "94.5", + "Open": "96.625", + "Volume": "8883200" + }, + { + "Close": "92.625", + "Date": "1995/5/30", + "High": "95.75", + "Low": "91.5", + "Open": "95.625", + "Volume": "12600000" + }, + { + "Close": "93", + "Date": "1995/5/31", + "High": "93.625", + "Low": "91.875", + "Open": "92.375", + "Volume": "11002000" + }, + { + "Close": "94.25", + "Date": "1995/6/1", + "High": "95", + "Low": "93.375", + "Open": "93.5", + "Volume": "10111600" + }, + { + "Close": "93.875", + "Date": "1995/6/2", + "High": "95.375", + "Low": "93.375", + "Open": "93.625", + "Volume": "7966800" + }, + { + "Close": "91.25", + "Date": "1995/6/5", + "High": "93.5", + "Low": "90", + "Open": "91.75", + "Volume": "23404000" + }, + { + "Close": "91.375", + "Date": "1995/6/6", + "High": "92.75", + "Low": "91.375", + "Open": "92.375", + "Volume": "12009600" + }, + { + "Close": "89.875", + "Date": "1995/6/7", + "High": "91.375", + "Low": "89", + "Open": "90.75", + "Volume": "15786400" + }, + { + "Close": "89.375", + "Date": "1995/6/8", + "High": "90.75", + "Low": "88.375", + "Open": "90.125", + "Volume": "13576000" + }, + { + "Close": "89.125", + "Date": "1995/6/9", + "High": "90.25", + "Low": "88.625", + "Open": "89.625", + "Volume": "13233600" + }, + { + "Close": "90.25", + "Date": "1995/6/12", + "High": "90.75", + "Low": "89.75", + "Open": "90.5", + "Volume": "11982800" + }, + { + "Close": "91.75", + "Date": "1995/6/13", + "High": "92.25", + "Low": "90.875", + "Open": "91.375", + "Volume": "11620800" + }, + { + "Close": "93", + "Date": "1995/6/14", + "High": "93.375", + "Low": "91.875", + "Open": "91.875", + "Volume": "10250000" + }, + { + "Close": "93", + "Date": "1995/6/15", + "High": "94", + "Low": "93", + "Open": "93.625", + "Volume": "8771600" + }, + { + "Close": "92.625", + "Date": "1995/6/16", + "High": "93.625", + "Low": "92.625", + "Open": "93.125", + "Volume": "10787200" + }, + { + "Close": "93.75", + "Date": "1995/6/19", + "High": "94.625", + "Low": "93.25", + "Open": "93.375", + "Volume": "9506800" + }, + { + "Close": "97.75", + "Date": "1995/6/20", + "High": "98", + "Low": "93.875", + "Open": "93.875", + "Volume": "14275600" + }, + { + "Close": "97.125", + "Date": "1995/6/21", + "High": "98.625", + "Low": "97.125", + "Open": "98", + "Volume": "14322000" + }, + { + "Close": "97.5", + "Date": "1995/6/22", + "High": "99.125", + "Low": "97.375", + "Open": "97.375", + "Volume": "17376800" + }, + { + "Close": "98.625", + "Date": "1995/6/23", + "High": "99.375", + "Low": "97.25", + "Open": "97.5", + "Volume": "9846400" + }, + { + "Close": "98.25", + "Date": "1995/6/26", + "High": "99.25", + "Low": "98", + "Open": "98.5", + "Volume": "8720000" + }, + { + "Close": "95.375", + "Date": "1995/6/27", + "High": "98.6875", + "Low": "94.5", + "Open": "98.125", + "Volume": "13119600" + }, + { + "Close": "96.125", + "Date": "1995/6/28", + "High": "96.625", + "Low": "94.375", + "Open": "95", + "Volume": "12482400" + }, + { + "Close": "97", + "Date": "1995/6/29", + "High": "98.125", + "Low": "96.375", + "Open": "96.375", + "Volume": "9946400" + }, + { + "Close": "96", + "Date": "1995/6/30", + "High": "98.125", + "Low": "95.375", + "Open": "97.75", + "Volume": "8639200" + }, + { + "Close": "97.625", + "Date": "1995/7/3", + "High": "97.875", + "Low": "95.75", + "Open": "96.25", + "Volume": "2733600" + }, + { + "Close": "96.75", + "Date": "1995/7/5", + "High": "98.625", + "Low": "96.75", + "Open": "97.875", + "Volume": "9674400" + }, + { + "Close": "98.875", + "Date": "1995/7/6", + "High": "98.875", + "Low": "96.875", + "Open": "97.125", + "Volume": "9395200" + }, + { + "Close": "99.5", + "Date": "1995/7/7", + "High": "100.625", + "Low": "98.625", + "Open": "98.625", + "Volume": "15628400" + }, + { + "Close": "100.625", + "Date": "1995/7/10", + "High": "101.25", + "Low": "100", + "Open": "100", + "Volume": "9175200" + }, + { + "Close": "99.75", + "Date": "1995/7/11", + "High": "101", + "Low": "99.5", + "Open": "100", + "Volume": "8429600" + }, + { + "Close": "101.625", + "Date": "1995/7/12", + "High": "102", + "Low": "99.625", + "Open": "100.375", + "Volume": "11393200" + }, + { + "Close": "103.75", + "Date": "1995/7/13", + "High": "104.25", + "Low": "101.25", + "Open": "101.75", + "Volume": "13944800" + }, + { + "Close": "103.875", + "Date": "1995/7/14", + "High": "104.125", + "Low": "102.125", + "Open": "102.625", + "Volume": "10580000" + }, + { + "Close": "107.25", + "Date": "1995/7/17", + "High": "107.5", + "Low": "104", + "Open": "104.125", + "Volume": "14929600" + }, + { + "Close": "107", + "Date": "1995/7/18", + "High": "108.625", + "Low": "102.875", + "Open": "107", + "Volume": "35804400" + }, + { + "Close": "101.25", + "Date": "1995/7/19", + "High": "105.5", + "Low": "97.75", + "Open": "105.25", + "Volume": "34290800" + }, + { + "Close": "104.125", + "Date": "1995/7/20", + "High": "104.375", + "Low": "101.375", + "Open": "102", + "Volume": "20262800" + }, + { + "Close": "103.625", + "Date": "1995/7/21", + "High": "104.875", + "Low": "103.125", + "Open": "104", + "Volume": "17482400" + }, + { + "Close": "107.5", + "Date": "1995/7/24", + "High": "107.875", + "Low": "103.5", + "Open": "104.125", + "Volume": "20671600" + }, + { + "Close": "108.375", + "Date": "1995/7/25", + "High": "110.25", + "Low": "107.5", + "Open": "107.5", + "Volume": "21288000" + }, + { + "Close": "109", + "Date": "1995/7/26", + "High": "109.625", + "Low": "108.25", + "Open": "109.125", + "Volume": "14330800" + }, + { + "Close": "110.75", + "Date": "1995/7/27", + "High": "110.875", + "Low": "109.5", + "Open": "109.5", + "Volume": "12372000" + }, + { + "Close": "110.625", + "Date": "1995/7/28", + "High": "111.25", + "Low": "109.875", + "Open": "110.875", + "Volume": "9744400" + }, + { + "Close": "108.875", + "Date": "1995/7/31", + "High": "111.25", + "Low": "108.5", + "Open": "110.625", + "Volume": "10540800" + }, + { + "Close": "109.625", + "Date": "1995/8/1", + "High": "110.125", + "Low": "107.25", + "Open": "109.125", + "Volume": "12105600" + }, + { + "Close": "107.5", + "Date": "1995/8/2", + "High": "111.75", + "Low": "107", + "Open": "110.625", + "Volume": "12248400" + }, + { + "Close": "109", + "Date": "1995/8/3", + "High": "109.5", + "Low": "105.625", + "Open": "106.5", + "Volume": "13142400" + }, + { + "Close": "108.625", + "Date": "1995/8/4", + "High": "109.75", + "Low": "108.5", + "Open": "109.125", + "Volume": "5028800" + }, + { + "Close": "108.875", + "Date": "1995/8/7", + "High": "109.375", + "Low": "108.625", + "Open": "109.125", + "Volume": "5723200" + }, + { + "Close": "109.625", + "Date": "1995/8/8", + "High": "110", + "Low": "108.875", + "Open": "108.875", + "Volume": "7181200" + }, + { + "Close": "109.875", + "Date": "1995/8/9", + "High": "110.375", + "Low": "109.625", + "Open": "110", + "Volume": "7867200" + }, + { + "Close": "109.125", + "Date": "1995/8/10", + "High": "110.375", + "Low": "108.875", + "Open": "109.875", + "Volume": "7885600" + }, + { + "Close": "109.25", + "Date": "1995/8/11", + "High": "109.625", + "Low": "108.375", + "Open": "109.5", + "Volume": "9310800" + }, + { + "Close": "110.75", + "Date": "1995/8/14", + "High": "110.875", + "Low": "109.25", + "Open": "109.25", + "Volume": "6993200" + }, + { + "Close": "112", + "Date": "1995/8/15", + "High": "112.125", + "Low": "110.25", + "Open": "111", + "Volume": "10804000" + }, + { + "Close": "112.375", + "Date": "1995/8/16", + "High": "112.75", + "Low": "110.75", + "Open": "112.125", + "Volume": "11787200" + }, + { + "Close": "113.625", + "Date": "1995/8/17", + "High": "114.625", + "Low": "112.25", + "Open": "112.375", + "Volume": "12118800" + }, + { + "Close": "111.375", + "Date": "1995/8/18", + "High": "114", + "Low": "111.125", + "Open": "113.875", + "Volume": "14792400" + }, + { + "Close": "106.75", + "Date": "1995/8/21", + "High": "111.375", + "Low": "106.5", + "Open": "111.375", + "Volume": "18802800" + }, + { + "Close": "107.625", + "Date": "1995/8/22", + "High": "108.25", + "Low": "105.625", + "Open": "107", + "Volume": "22057200" + }, + { + "Close": "106.625", + "Date": "1995/8/23", + "High": "108.5", + "Low": "106.5", + "Open": "108.125", + "Volume": "12956000" + }, + { + "Close": "104.875", + "Date": "1995/8/24", + "High": "106.625", + "Low": "104.5", + "Open": "106.625", + "Volume": "15188000" + }, + { + "Close": "103.875", + "Date": "1995/8/25", + "High": "105.375", + "Low": "103.75", + "Open": "103.75", + "Volume": "11129200" + }, + { + "Close": "101.625", + "Date": "1995/8/28", + "High": "103.875", + "Low": "101.375", + "Open": "103.75", + "Volume": "16455600" + }, + { + "Close": "102.375", + "Date": "1995/8/29", + "High": "102.625", + "Low": "98.625", + "Open": "102.125", + "Volume": "24584000" + }, + { + "Close": "101.625", + "Date": "1995/8/30", + "High": "103.5", + "Low": "101.125", + "Open": "103.125", + "Volume": "12998400" + }, + { + "Close": "103.375", + "Date": "1995/8/31", + "High": "103.75", + "Low": "102", + "Open": "102.5", + "Volume": "9265600" + }, + { + "Close": "102.75", + "Date": "1995/9/1", + "High": "104.5", + "Low": "102.375", + "Open": "102.75", + "Volume": "7275600" + }, + { + "Close": "101.125", + "Date": "1995/9/5", + "High": "103", + "Low": "100.125", + "Open": "103", + "Volume": "26673200" + }, + { + "Close": "100.75", + "Date": "1995/9/6", + "High": "102.625", + "Low": "100.625", + "Open": "102", + "Volume": "16766000" + }, + { + "Close": "99.375", + "Date": "1995/9/7", + "High": "101.25", + "Low": "99", + "Open": "100.5", + "Volume": "16205200" + }, + { + "Close": "98.875", + "Date": "1995/9/8", + "High": "100", + "Low": "98.125", + "Open": "100", + "Volume": "21422000" + }, + { + "Close": "96.375", + "Date": "1995/9/11", + "High": "98.375", + "Low": "95.875", + "Open": "98.25", + "Volume": "26478000" + }, + { + "Close": "97.5", + "Date": "1995/9/12", + "High": "98.5", + "Low": "95.125", + "Open": "96.125", + "Volume": "29151200" + }, + { + "Close": "94.625", + "Date": "1995/9/13", + "High": "98.75", + "Low": "92.375", + "Open": "97.5", + "Volume": "55690400" + }, + { + "Close": "93.375", + "Date": "1995/9/14", + "High": "95.625", + "Low": "92.5", + "Open": "95.25", + "Volume": "31461600" + }, + { + "Close": "92.25", + "Date": "1995/9/15", + "High": "92.75", + "Low": "91.625", + "Open": "92.75", + "Volume": "27121600" + }, + { + "Close": "94.125", + "Date": "1995/9/18", + "High": "94.25", + "Low": "92.375", + "Open": "92.5", + "Volume": "17814800" + }, + { + "Close": "96.75", + "Date": "1995/9/19", + "High": "96.875", + "Low": "94.25", + "Open": "94.625", + "Volume": "16878800" + }, + { + "Close": "95.75", + "Date": "1995/9/20", + "High": "98.125", + "Low": "95.625", + "Open": "97.625", + "Volume": "11826800" + }, + { + "Close": "94.375", + "Date": "1995/9/21", + "High": "96.5", + "Low": "93.875", + "Open": "95.75", + "Volume": "11468000" + }, + { + "Close": "93.875", + "Date": "1995/9/22", + "High": "94.375", + "Low": "93.375", + "Open": "93.875", + "Volume": "9377200" + }, + { + "Close": "92.75", + "Date": "1995/9/25", + "High": "94.75", + "Low": "92.625", + "Open": "94", + "Volume": "11886000" + }, + { + "Close": "92.875", + "Date": "1995/9/26", + "High": "93.875", + "Low": "92.5", + "Open": "93.25", + "Volume": "11099200" + }, + { + "Close": "94.375", + "Date": "1995/9/27", + "High": "94.5", + "Low": "91.875", + "Open": "92.625", + "Volume": "18762800" + }, + { + "Close": "93.875", + "Date": "1995/9/28", + "High": "95.375", + "Low": "93.875", + "Open": "94.875", + "Volume": "11420400" + }, + { + "Close": "94.5", + "Date": "1995/9/29", + "High": "95.25", + "Low": "93.625", + "Open": "94.25", + "Volume": "10389200" + }, + { + "Close": "93.5", + "Date": "1995/10/2", + "High": "95.625", + "Low": "93.375", + "Open": "95", + "Volume": "9487600" + }, + { + "Close": "94.875", + "Date": "1995/10/3", + "High": "95.25", + "Low": "93.375", + "Open": "93.5", + "Volume": "13162400" + }, + { + "Close": "93.75", + "Date": "1995/10/4", + "High": "94.625", + "Low": "93.375", + "Open": "94.25", + "Volume": "8028000" + }, + { + "Close": "94.5", + "Date": "1995/10/5", + "High": "95", + "Low": "93.5", + "Open": "93.875", + "Volume": "9877200" + }, + { + "Close": "94.125", + "Date": "1995/10/6", + "High": "95.375", + "Low": "94.125", + "Open": "95.25", + "Volume": "10392000" + }, + { + "Close": "92", + "Date": "1995/10/9", + "High": "94.125", + "Low": "92", + "Open": "93.875", + "Volume": "12086000" + }, + { + "Close": "90.75", + "Date": "1995/10/10", + "High": "91.125", + "Low": "89.125", + "Open": "90", + "Volume": "25871200" + }, + { + "Close": "92.5", + "Date": "1995/10/11", + "High": "92.875", + "Low": "91.25", + "Open": "91.5", + "Volume": "13436000" + }, + { + "Close": "93", + "Date": "1995/10/12", + "High": "93.5", + "Low": "92.125", + "Open": "93.25", + "Volume": "9390800" + }, + { + "Close": "92.5", + "Date": "1995/10/13", + "High": "94.25", + "Low": "92.5", + "Open": "94", + "Volume": "9409600" + }, + { + "Close": "94", + "Date": "1995/10/16", + "High": "94.125", + "Low": "92.5", + "Open": "92.5", + "Volume": "10594400" + }, + { + "Close": "96.875", + "Date": "1995/10/17", + "High": "97", + "Low": "91.25", + "Open": "92.5", + "Volume": "45773600" + }, + { + "Close": "96.375", + "Date": "1995/10/18", + "High": "98.25", + "Low": "95.75", + "Open": "97.875", + "Volume": "29217600" + }, + { + "Close": "98.25", + "Date": "1995/10/19", + "High": "98.375", + "Low": "96", + "Open": "96.875", + "Volume": "18746800" + }, + { + "Close": "95.375", + "Date": "1995/10/20", + "High": "98.5", + "Low": "95.25", + "Open": "98.25", + "Volume": "17814400" + }, + { + "Close": "99", + "Date": "1995/10/23", + "High": "99", + "Low": "95.625", + "Open": "95.625", + "Volume": "16597600" + }, + { + "Close": "98", + "Date": "1995/10/24", + "High": "99.25", + "Low": "97.25", + "Open": "98.875", + "Volume": "12445600" + }, + { + "Close": "96.125", + "Date": "1995/10/25", + "High": "98.5", + "Low": "96", + "Open": "98.5", + "Volume": "10952000" + }, + { + "Close": "95.875", + "Date": "1995/10/26", + "High": "96.625", + "Low": "94.625", + "Open": "96.25", + "Volume": "13407200" + }, + { + "Close": "96.5", + "Date": "1995/10/27", + "High": "96.625", + "Low": "95.75", + "Open": "95.875", + "Volume": "9894800" + }, + { + "Close": "98.25", + "Date": "1995/10/30", + "High": "98.75", + "Low": "97.125", + "Open": "97.5", + "Volume": "12715200" + }, + { + "Close": "97.25", + "Date": "1995/10/31", + "High": "99.125", + "Low": "96.875", + "Open": "98.375", + "Volume": "11811200" + }, + { + "Close": "96.875", + "Date": "1995/11/1", + "High": "97.625", + "Low": "96.375", + "Open": "97.25", + "Volume": "8235200" + }, + { + "Close": "99.625", + "Date": "1995/11/2", + "High": "99.875", + "Low": "96.75", + "Open": "97", + "Volume": "13174400" + }, + { + "Close": "101.5", + "Date": "1995/11/3", + "High": "101.5", + "Low": "99.875", + "Open": "100", + "Volume": "12984800" + }, + { + "Close": "100.5", + "Date": "1995/11/6", + "High": "102.375", + "Low": "100", + "Open": "101.25", + "Volume": "12470000" + }, + { + "Close": "98.75", + "Date": "1995/11/7", + "High": "100.625", + "Low": "98.125", + "Open": "99.5", + "Volume": "15510800" + }, + { + "Close": "97.75", + "Date": "1995/11/8", + "High": "100.125", + "Low": "97.25", + "Open": "99.125", + "Volume": "10757600" + }, + { + "Close": "98.375", + "Date": "1995/11/9", + "High": "99.75", + "Low": "98", + "Open": "99", + "Volume": "12774000" + }, + { + "Close": "97.375", + "Date": "1995/11/10", + "High": "98.25", + "Low": "96.625", + "Open": "97.5", + "Volume": "9348400" + }, + { + "Close": "97.375", + "Date": "1995/11/13", + "High": "98", + "Low": "97", + "Open": "97.5", + "Volume": "9497200" + }, + { + "Close": "95.375", + "Date": "1995/11/14", + "High": "97.375", + "Low": "95.25", + "Open": "96.875", + "Volume": "9229600" + }, + { + "Close": "95.5", + "Date": "1995/11/15", + "High": "96.25", + "Low": "94.75", + "Open": "95.625", + "Volume": "8982400" + }, + { + "Close": "95.625", + "Date": "1995/11/16", + "High": "96.75", + "Low": "95.125", + "Open": "95.625", + "Volume": "11882000" + }, + { + "Close": "95.125", + "Date": "1995/11/17", + "High": "95.875", + "Low": "94.75", + "Open": "95.375", + "Volume": "11060400" + }, + { + "Close": "93", + "Date": "1995/11/20", + "High": "95.375", + "Low": "93", + "Open": "95", + "Volume": "10502800" + }, + { + "Close": "94.5", + "Date": "1995/11/21", + "High": "94.875", + "Low": "93", + "Open": "93.125", + "Volume": "12520800" + }, + { + "Close": "95.25", + "Date": "1995/11/22", + "High": "96.375", + "Low": "94.375", + "Open": "94.75", + "Volume": "8794000" + }, + { + "Close": "95.875", + "Date": "1995/11/24", + "High": "96.625", + "Low": "95.25", + "Open": "95.25", + "Volume": "2974400" + }, + { + "Close": "95.875", + "Date": "1995/11/27", + "High": "97.375", + "Low": "95.625", + "Open": "96.5", + "Volume": "8807200" + }, + { + "Close": "97", + "Date": "1995/11/28", + "High": "97.5", + "Low": "95.625", + "Open": "95.75", + "Volume": "11564800" + }, + { + "Close": "97.125", + "Date": "1995/11/29", + "High": "97.5", + "Low": "96.75", + "Open": "97.25", + "Volume": "11290000" + }, + { + "Close": "96.625", + "Date": "1995/11/30", + "High": "98.125", + "Low": "96.625", + "Open": "97.25", + "Volume": "10257600" + }, + { + "Close": "94.75", + "Date": "1995/12/1", + "High": "97", + "Low": "94.75", + "Open": "97", + "Volume": "10063600" + }, + { + "Close": "96.125", + "Date": "1995/12/4", + "High": "97.25", + "Low": "94.625", + "Open": "95", + "Volume": "10820400" + }, + { + "Close": "95.75", + "Date": "1995/12/5", + "High": "97.125", + "Low": "95.625", + "Open": "96.875", + "Volume": "11005600" + }, + { + "Close": "95.75", + "Date": "1995/12/6", + "High": "96.5", + "Low": "94.25", + "Open": "96.25", + "Volume": "12077600" + }, + { + "Close": "94.75", + "Date": "1995/12/7", + "High": "95.5", + "Low": "94", + "Open": "95.25", + "Volume": "10983600" + }, + { + "Close": "96.875", + "Date": "1995/12/8", + "High": "96.875", + "Low": "94.625", + "Open": "95", + "Volume": "10232800" + }, + { + "Close": "96.25", + "Date": "1995/12/11", + "High": "97.25", + "Low": "95.875", + "Open": "97.125", + "Volume": "8436800" + }, + { + "Close": "95.375", + "Date": "1995/12/12", + "High": "96.75", + "Low": "95.25", + "Open": "96.375", + "Volume": "8667200" + }, + { + "Close": "94.5", + "Date": "1995/12/13", + "High": "95.375", + "Low": "94.375", + "Open": "95.125", + "Volume": "11023600" + }, + { + "Close": "93.75", + "Date": "1995/12/14", + "High": "95.125", + "Low": "92.375", + "Open": "94.75", + "Volume": "13562000" + }, + { + "Close": "90.25", + "Date": "1995/12/15", + "High": "92", + "Low": "89.875", + "Open": "92", + "Volume": "27393600" + }, + { + "Close": "89", + "Date": "1995/12/18", + "High": "90.125", + "Low": "87.75", + "Open": "90", + "Volume": "25420800" + }, + { + "Close": "91.875", + "Date": "1995/12/19", + "High": "91.875", + "Low": "89.125", + "Open": "89.125", + "Volume": "14977600" + }, + { + "Close": "89.375", + "Date": "1995/12/20", + "High": "92", + "Low": "89.125", + "Open": "92", + "Volume": "14423200" + }, + { + "Close": "90.875", + "Date": "1995/12/21", + "High": "91.125", + "Low": "89.75", + "Open": "89.875", + "Volume": "10696000" + }, + { + "Close": "91.25", + "Date": "1995/12/22", + "High": "91.875", + "Low": "90.875", + "Open": "90.875", + "Volume": "7509600" + }, + { + "Close": "91.75", + "Date": "1995/12/26", + "High": "92.125", + "Low": "91.625", + "Open": "92", + "Volume": "3781600" + }, + { + "Close": "92", + "Date": "1995/12/27", + "High": "92", + "Low": "90.75", + "Open": "91.75", + "Volume": "6288000" + }, + { + "Close": "90.125", + "Date": "1995/12/28", + "High": "91.375", + "Low": "90", + "Open": "91.125", + "Volume": "7109600" + }, + { + "Close": "91.375", + "Date": "1995/12/29", + "High": "91.75", + "Low": "89.5", + "Open": "90.375", + "Volume": "13854000" + }, + { + "Close": "90.875", + "Date": "1996/1/2", + "High": "92.125", + "Low": "90.625", + "Open": "91.375", + "Volume": "10033600" + }, + { + "Close": "89.25", + "Date": "1996/1/3", + "High": "91.25", + "Low": "89", + "Open": "91", + "Volume": "12528000" + }, + { + "Close": "86.875", + "Date": "1996/1/4", + "High": "89.125", + "Low": "85.625", + "Open": "89.125", + "Volume": "32332800" + }, + { + "Close": "88.625", + "Date": "1996/1/5", + "High": "88.75", + "Low": "86", + "Open": "86", + "Volume": "15505600" + }, + { + "Close": "89.125", + "Date": "1996/1/8", + "High": "89.25", + "Low": "88.625", + "Open": "88.625", + "Volume": "3531600" + }, + { + "Close": "86.75", + "Date": "1996/1/9", + "High": "89.125", + "Low": "86.125", + "Open": "89.125", + "Volume": "14894000" + }, + { + "Close": "87.25", + "Date": "1996/1/10", + "High": "89.25", + "Low": "86.625", + "Open": "86.625", + "Volume": "22751600" + }, + { + "Close": "87.25", + "Date": "1996/1/11", + "High": "88.5", + "Low": "86", + "Open": "88.125", + "Volume": "18498400" + }, + { + "Close": "86.375", + "Date": "1996/1/12", + "High": "87.25", + "Low": "86.125", + "Open": "87.25", + "Volume": "10657600" + }, + { + "Close": "83.125", + "Date": "1996/1/15", + "High": "86.5", + "Low": "83.125", + "Open": "86.5", + "Volume": "14971200" + }, + { + "Close": "87", + "Date": "1996/1/16", + "High": "87.75", + "Low": "83.5", + "Open": "84.125", + "Volume": "18452000" + }, + { + "Close": "87.625", + "Date": "1996/1/17", + "High": "89.25", + "Low": "85.75", + "Open": "86.75", + "Volume": "19284800" + }, + { + "Close": "96.25", + "Date": "1996/1/18", + "High": "96.25", + "Low": "89.625", + "Open": "90", + "Volume": "39428000" + }, + { + "Close": "102", + "Date": "1996/1/19", + "High": "104.125", + "Low": "96.5", + "Open": "96.625", + "Volume": "52584000" + }, + { + "Close": "102.25", + "Date": "1996/1/22", + "High": "103.875", + "Low": "101.375", + "Open": "101.5", + "Volume": "21172000" + }, + { + "Close": "103", + "Date": "1996/1/23", + "High": "104.5", + "Low": "100.75", + "Open": "100.75", + "Volume": "19836800" + }, + { + "Close": "107", + "Date": "1996/1/24", + "High": "109", + "Low": "103.125", + "Open": "103.125", + "Volume": "31955600" + }, + { + "Close": "104.125", + "Date": "1996/1/25", + "High": "108", + "Low": "104.125", + "Open": "107.625", + "Volume": "18887200" + }, + { + "Close": "104.75", + "Date": "1996/1/26", + "High": "106.25", + "Low": "103.5", + "Open": "103.875", + "Volume": "10588400" + }, + { + "Close": "106.5", + "Date": "1996/1/29", + "High": "106.625", + "Low": "104.25", + "Open": "104.75", + "Volume": "9474400" + }, + { + "Close": "108.625", + "Date": "1996/1/30", + "High": "109", + "Low": "106.375", + "Open": "106.5", + "Volume": "18374400" + }, + { + "Close": "108.5", + "Date": "1996/1/31", + "High": "109.875", + "Low": "107.5", + "Open": "108", + "Volume": "20059200" + }, + { + "Close": "109", + "Date": "1996/2/1", + "High": "110.375", + "Low": "108.125", + "Open": "108.75", + "Volume": "16311200" + }, + { + "Close": "109.625", + "Date": "1996/2/2", + "High": "109.875", + "Low": "108.75", + "Open": "109", + "Volume": "12443600" + }, + { + "Close": "112.25", + "Date": "1996/2/5", + "High": "112.375", + "Low": "109.25", + "Open": "109.375", + "Volume": "13139600" + }, + { + "Close": "114.75", + "Date": "1996/2/6", + "High": "115.125", + "Low": "112.625", + "Open": "112.875", + "Volume": "20158400" + }, + { + "Close": "112.625", + "Date": "1996/2/7", + "High": "114.625", + "Low": "111.5", + "Open": "114", + "Volume": "16100800" + }, + { + "Close": "113.5", + "Date": "1996/2/8", + "High": "114.5", + "Low": "111.875", + "Open": "112.375", + "Volume": "12778400" + }, + { + "Close": "113.5", + "Date": "1996/2/9", + "High": "114.375", + "Low": "113", + "Open": "113.375", + "Volume": "13486000" + }, + { + "Close": "115.25", + "Date": "1996/2/12", + "High": "115.875", + "Low": "113.875", + "Open": "114.125", + "Volume": "14666400" + }, + { + "Close": "113.625", + "Date": "1996/2/13", + "High": "114.875", + "Low": "113.5", + "Open": "114", + "Volume": "13870800" + }, + { + "Close": "114.25", + "Date": "1996/2/14", + "High": "115", + "Low": "113.75", + "Open": "113.875", + "Volume": "12949600" + }, + { + "Close": "117.625", + "Date": "1996/2/15", + "High": "118.5", + "Low": "114.25", + "Open": "114.375", + "Volume": "23341200" + }, + { + "Close": "118", + "Date": "1996/2/16", + "High": "118.875", + "Low": "117.5", + "Open": "118", + "Volume": "19943600" + }, + { + "Close": "119.125", + "Date": "1996/2/20", + "High": "120.875", + "Low": "116.75", + "Open": "116.75", + "Volume": "21288800" + }, + { + "Close": "120.25", + "Date": "1996/2/21", + "High": "120.625", + "Low": "118.625", + "Open": "119", + "Volume": "16389200" + }, + { + "Close": "124.125", + "Date": "1996/2/22", + "High": "125.625", + "Low": "121.25", + "Open": "121.75", + "Volume": "21423200" + }, + { + "Close": "125.625", + "Date": "1996/2/23", + "High": "126.125", + "Low": "124", + "Open": "125", + "Volume": "16504800" + }, + { + "Close": "124.875", + "Date": "1996/2/26", + "High": "125.5", + "Low": "123.875", + "Open": "123.875", + "Volume": "11530000" + }, + { + "Close": "128.75", + "Date": "1996/2/27", + "High": "128.875", + "Low": "124.5", + "Open": "125.125", + "Volume": "18451600" + }, + { + "Close": "127.375", + "Date": "1996/2/28", + "High": "128.875", + "Low": "127", + "Open": "127.625", + "Volume": "17548000" + }, + { + "Close": "122.625", + "Date": "1996/2/29", + "High": "127.375", + "Low": "122", + "Open": "125", + "Volume": "29171600" + }, + { + "Close": "118.125", + "Date": "1996/3/1", + "High": "121.75", + "Low": "117", + "Open": "121.625", + "Volume": "32179600" + }, + { + "Close": "116.125", + "Date": "1996/3/4", + "High": "121.25", + "Low": "115.25", + "Open": "118.75", + "Volume": "17288400" + }, + { + "Close": "119", + "Date": "1996/3/5", + "High": "119.5", + "Low": "116.125", + "Open": "117.125", + "Volume": "14176800" + }, + { + "Close": "117", + "Date": "1996/3/6", + "High": "119.875", + "Low": "116.375", + "Open": "119.75", + "Volume": "10936800" + }, + { + "Close": "117.125", + "Date": "1996/3/7", + "High": "117.5", + "Low": "115.375", + "Open": "117", + "Volume": "9881600" + }, + { + "Close": "114.25", + "Date": "1996/3/8", + "High": "116.875", + "Low": "112.25", + "Open": "115.5", + "Volume": "21520400" + }, + { + "Close": "117.25", + "Date": "1996/3/11", + "High": "117.875", + "Low": "113.875", + "Open": "113.875", + "Volume": "15744000" + }, + { + "Close": "114.25", + "Date": "1996/3/12", + "High": "116", + "Low": "113.625", + "Open": "115.625", + "Volume": "16806400" + }, + { + "Close": "115.875", + "Date": "1996/3/13", + "High": "116.625", + "Low": "114.5", + "Open": "114.5", + "Volume": "11243200" + }, + { + "Close": "116.875", + "Date": "1996/3/14", + "High": "118.75", + "Low": "116.125", + "Open": "116.5", + "Volume": "11489200" + }, + { + "Close": "119.875", + "Date": "1996/3/15", + "High": "120", + "Low": "115.75", + "Open": "116.875", + "Volume": "14086000" + }, + { + "Close": "124.625", + "Date": "1996/3/18", + "High": "125.125", + "Low": "120.5", + "Open": "120.625", + "Volume": "15021600" + }, + { + "Close": "121.75", + "Date": "1996/3/19", + "High": "125.5", + "Low": "121.5", + "Open": "124.75", + "Volume": "11192000" + }, + { + "Close": "117", + "Date": "1996/3/20", + "High": "120.875", + "Low": "114.25", + "Open": "120.875", + "Volume": "30271600" + }, + { + "Close": "114.875", + "Date": "1996/3/21", + "High": "117.875", + "Low": "114.125", + "Open": "117.5", + "Volume": "15115200" + }, + { + "Close": "114.25", + "Date": "1996/3/22", + "High": "115.75", + "Low": "114.25", + "Open": "115", + "Volume": "8949600" + }, + { + "Close": "108.75", + "Date": "1996/3/25", + "High": "115.125", + "Low": "108.375", + "Open": "114.875", + "Volume": "18889600" + }, + { + "Close": "110.75", + "Date": "1996/3/26", + "High": "112", + "Low": "107.625", + "Open": "108.375", + "Volume": "18235600" + }, + { + "Close": "111.25", + "Date": "1996/3/27", + "High": "113.75", + "Low": "110.25", + "Open": "111.125", + "Volume": "14479200" + }, + { + "Close": "109.75", + "Date": "1996/3/28", + "High": "112.375", + "Low": "109.5", + "Open": "111.875", + "Volume": "12186400" + }, + { + "Close": "111.25", + "Date": "1996/3/29", + "High": "113.75", + "Low": "110.375", + "Open": "110.375", + "Volume": "11726400" + }, + { + "Close": "110.375", + "Date": "1996/4/1", + "High": "112.75", + "Low": "110", + "Open": "112.125", + "Volume": "9518000" + }, + { + "Close": "117.625", + "Date": "1996/4/2", + "High": "118.125", + "Low": "110.5", + "Open": "111", + "Volume": "21628800" + }, + { + "Close": "119.75", + "Date": "1996/4/3", + "High": "120.5", + "Low": "116.125", + "Open": "117.5", + "Volume": "16599600" + }, + { + "Close": "117.75", + "Date": "1996/4/4", + "High": "119.875", + "Low": "117.25", + "Open": "119.875", + "Volume": "10010000" + }, + { + "Close": "119.375", + "Date": "1996/4/8", + "High": "119.375", + "Low": "114.5", + "Open": "115.625", + "Volume": "15990800" + }, + { + "Close": "117.875", + "Date": "1996/4/9", + "High": "120.125", + "Low": "117.5", + "Open": "119.75", + "Volume": "7857600" + }, + { + "Close": "116", + "Date": "1996/4/10", + "High": "120.875", + "Low": "115.125", + "Open": "117.75", + "Volume": "12752400" + }, + { + "Close": "117.5", + "Date": "1996/4/11", + "High": "118.375", + "Low": "114.75", + "Open": "116.375", + "Volume": "15079200" + }, + { + "Close": "111.5", + "Date": "1996/4/12", + "High": "115.625", + "Low": "110.125", + "Open": "115.25", + "Volume": "31044000" + }, + { + "Close": "114.125", + "Date": "1996/4/15", + "High": "114.375", + "Low": "111.5", + "Open": "112.625", + "Volume": "9177200" + }, + { + "Close": "115.5", + "Date": "1996/4/16", + "High": "116.375", + "Low": "114.625", + "Open": "115.125", + "Volume": "9754000" + }, + { + "Close": "105.25", + "Date": "1996/4/17", + "High": "120.125", + "Low": "103.375", + "Open": "116.75", + "Volume": "65196400" + }, + { + "Close": "105.5", + "Date": "1996/4/18", + "High": "107.25", + "Low": "103.625", + "Open": "105.625", + "Volume": "41512000" + }, + { + "Close": "105.375", + "Date": "1996/4/19", + "High": "107.125", + "Low": "104.625", + "Open": "105.75", + "Volume": "19583200" + }, + { + "Close": "107.25", + "Date": "1996/4/22", + "High": "107.625", + "Low": "105.625", + "Open": "106.875", + "Volume": "13255200" + }, + { + "Close": "107", + "Date": "1996/4/23", + "High": "107.75", + "Low": "106.75", + "Open": "107.5", + "Volume": "9878000" + }, + { + "Close": "106.75", + "Date": "1996/4/24", + "High": "107.625", + "Low": "105.625", + "Open": "107.625", + "Volume": "12109200" + }, + { + "Close": "108.25", + "Date": "1996/4/25", + "High": "108.5", + "Low": "106.625", + "Open": "107", + "Volume": "17942000" + }, + { + "Close": "107.75", + "Date": "1996/4/26", + "High": "108.875", + "Low": "107.625", + "Open": "108.5", + "Volume": "9127200" + }, + { + "Close": "108.625", + "Date": "1996/4/29", + "High": "108.75", + "Low": "107.375", + "Open": "107.75", + "Volume": "10749600" + }, + { + "Close": "107.75", + "Date": "1996/4/30", + "High": "110.25", + "Low": "107.5", + "Open": "110", + "Volume": "10656000" + }, + { + "Close": "107.875", + "Date": "1996/5/1", + "High": "108.5", + "Low": "107.625", + "Open": "107.75", + "Volume": "8389600" + }, + { + "Close": "107.875", + "Date": "1996/5/2", + "High": "109.375", + "Low": "107.375", + "Open": "108", + "Volume": "14062000" + }, + { + "Close": "108.125", + "Date": "1996/5/3", + "High": "109", + "Low": "107.75", + "Open": "108.25", + "Volume": "8015200" + }, + { + "Close": "107", + "Date": "1996/5/6", + "High": "108.5", + "Low": "106.375", + "Open": "108.5", + "Volume": "11648400" + }, + { + "Close": "105.875", + "Date": "1996/5/7", + "High": "107.25", + "Low": "105.625", + "Open": "107", + "Volume": "9534800" + }, + { + "Close": "105.875", + "Date": "1996/5/8", + "High": "106", + "Low": "103.625", + "Open": "105", + "Volume": "14396000" + }, + { + "Close": "107", + "Date": "1996/5/9", + "High": "107.75", + "Low": "105.75", + "Open": "105.75", + "Volume": "9534400" + }, + { + "Close": "106.375", + "Date": "1996/5/10", + "High": "108.375", + "Low": "106.125", + "Open": "107.375", + "Volume": "8357600" + }, + { + "Close": "107.625", + "Date": "1996/5/13", + "High": "108.5", + "Low": "105.875", + "Open": "106.375", + "Volume": "9171600" + }, + { + "Close": "108.625", + "Date": "1996/5/14", + "High": "108.875", + "Low": "107.5", + "Open": "108.25", + "Volume": "12483200" + }, + { + "Close": "109", + "Date": "1996/5/15", + "High": "109.875", + "Low": "108.5", + "Open": "109", + "Volume": "10958000" + }, + { + "Close": "108.625", + "Date": "1996/5/16", + "High": "109.25", + "Low": "107.625", + "Open": "108", + "Volume": "10866800" + }, + { + "Close": "110.875", + "Date": "1996/5/17", + "High": "111.625", + "Low": "109", + "Open": "109", + "Volume": "15415200" + }, + { + "Close": "112.125", + "Date": "1996/5/20", + "High": "112.5", + "Low": "111", + "Open": "112", + "Volume": "9642800" + }, + { + "Close": "111", + "Date": "1996/5/21", + "High": "112.125", + "Low": "110.75", + "Open": "111.875", + "Volume": "8607600" + }, + { + "Close": "110.375", + "Date": "1996/5/22", + "High": "111", + "Low": "109.75", + "Open": "110.75", + "Volume": "8957200" + }, + { + "Close": "109.25", + "Date": "1996/5/23", + "High": "110.5", + "Low": "109.25", + "Open": "109.875", + "Volume": "10414800" + }, + { + "Close": "108.75", + "Date": "1996/5/24", + "High": "109.875", + "Low": "108", + "Open": "109.5", + "Volume": "5612000" + }, + { + "Close": "108.25", + "Date": "1996/5/28", + "High": "109.375", + "Low": "107.875", + "Open": "109.25", + "Volume": "6894000" + }, + { + "Close": "106.875", + "Date": "1996/5/29", + "High": "108.375", + "Low": "105.625", + "Open": "107.75", + "Volume": "13044000" + }, + { + "Close": "107.25", + "Date": "1996/5/30", + "High": "107.625", + "Low": "106.125", + "Open": "106.875", + "Volume": "10471200" + }, + { + "Close": "106.75", + "Date": "1996/5/31", + "High": "108.25", + "Low": "106.625", + "Open": "107.625", + "Volume": "9004800" + }, + { + "Close": "105.375", + "Date": "1996/6/3", + "High": "106.5", + "Low": "105", + "Open": "106.375", + "Volume": "6958000" + }, + { + "Close": "105.875", + "Date": "1996/6/4", + "High": "106.625", + "Low": "105.375", + "Open": "105.375", + "Volume": "7952000" + }, + { + "Close": "104.875", + "Date": "1996/6/5", + "High": "106.375", + "Low": "104.75", + "Open": "106", + "Volume": "7151600" + }, + { + "Close": "101.25", + "Date": "1996/6/6", + "High": "104.875", + "Low": "101", + "Open": "104.875", + "Volume": "23910800" + }, + { + "Close": "101.75", + "Date": "1996/6/7", + "High": "102", + "Low": "96.125", + "Open": "96.5", + "Volume": "29511200" + }, + { + "Close": "102.625", + "Date": "1996/6/10", + "High": "103.25", + "Low": "101.375", + "Open": "102", + "Volume": "12062000" + }, + { + "Close": "103.125", + "Date": "1996/6/11", + "High": "104.375", + "Low": "102.375", + "Open": "103.25", + "Volume": "10794800" + }, + { + "Close": "103", + "Date": "1996/6/12", + "High": "103.875", + "Low": "102.75", + "Open": "103.625", + "Volume": "8544400" + }, + { + "Close": "103.25", + "Date": "1996/6/13", + "High": "104.125", + "Low": "101.75", + "Open": "103", + "Volume": "8532000" + }, + { + "Close": "101.625", + "Date": "1996/6/14", + "High": "104.25", + "Low": "101.625", + "Open": "103.375", + "Volume": "10849200" + }, + { + "Close": "102.5", + "Date": "1996/6/17", + "High": "102.75", + "Low": "100.875", + "Open": "101.875", + "Volume": "7633600" + }, + { + "Close": "101.25", + "Date": "1996/6/18", + "High": "102.5", + "Low": "101.25", + "Open": "102", + "Volume": "7657600" + }, + { + "Close": "102.125", + "Date": "1996/6/19", + "High": "102.625", + "Low": "101.5", + "Open": "101.75", + "Volume": "5718000" + }, + { + "Close": "100.75", + "Date": "1996/6/20", + "High": "102.25", + "Low": "99.375", + "Open": "102.25", + "Volume": "16558400" + }, + { + "Close": "98.625", + "Date": "1996/6/21", + "High": "101.75", + "Low": "98.25", + "Open": "100.75", + "Volume": "16896400" + }, + { + "Close": "99.625", + "Date": "1996/6/24", + "High": "100.125", + "Low": "98.5", + "Open": "99.625", + "Volume": "9883200" + }, + { + "Close": "99.75", + "Date": "1996/6/25", + "High": "99.75", + "Low": "98.875", + "Open": "99.375", + "Volume": "8885200" + }, + { + "Close": "98.625", + "Date": "1996/6/26", + "High": "100.125", + "Low": "98.5", + "Open": "99.75", + "Volume": "10174800" + }, + { + "Close": "98.875", + "Date": "1996/6/27", + "High": "99.625", + "Low": "97.625", + "Open": "98.375", + "Volume": "13294800" + }, + { + "Close": "99", + "Date": "1996/6/28", + "High": "99.875", + "Low": "98.875", + "Open": "99.125", + "Volume": "9376400" + }, + { + "Close": "101.5", + "Date": "1996/7/1", + "High": "102.25", + "Low": "99.125", + "Open": "99.25", + "Volume": "9710000" + }, + { + "Close": "100", + "Date": "1996/7/2", + "High": "101.25", + "Low": "99.875", + "Open": "101", + "Volume": "8096400" + }, + { + "Close": "98.5", + "Date": "1996/7/3", + "High": "100.125", + "Low": "98.125", + "Open": "99.75", + "Volume": "9724000" + }, + { + "Close": "97.875", + "Date": "1996/7/5", + "High": "99.25", + "Low": "97.75", + "Open": "97.875", + "Volume": "6669600" + }, + { + "Close": "98.375", + "Date": "1996/7/8", + "High": "99.25", + "Low": "98.125", + "Open": "98.125", + "Volume": "7375600" + }, + { + "Close": "99", + "Date": "1996/7/9", + "High": "100.25", + "Low": "98.75", + "Open": "98.75", + "Volume": "7920800" + }, + { + "Close": "98.875", + "Date": "1996/7/10", + "High": "99.5", + "Low": "97.75", + "Open": "98.75", + "Volume": "11404800" + }, + { + "Close": "96", + "Date": "1996/7/11", + "High": "97.625", + "Low": "94.125", + "Open": "97.625", + "Volume": "23328800" + }, + { + "Close": "95.3125", + "Date": "1996/7/12", + "High": "96", + "Low": "94.625", + "Open": "95.625", + "Volume": "12897200" + }, + { + "Close": "90.875", + "Date": "1996/7/15", + "High": "94.875", + "Low": "89.75", + "Open": "94.5", + "Volume": "16318400" + }, + { + "Close": "95.75", + "Date": "1996/7/16", + "High": "95.75", + "Low": "89.75", + "Open": "92.25", + "Volume": "24828400" + }, + { + "Close": "94.125", + "Date": "1996/7/17", + "High": "97.875", + "Low": "94", + "Open": "97.875", + "Volume": "15158000" + }, + { + "Close": "94.25", + "Date": "1996/7/18", + "High": "95.625", + "Low": "93.125", + "Open": "94.25", + "Volume": "10685600" + }, + { + "Close": "93.75", + "Date": "1996/7/19", + "High": "95.25", + "Low": "93.5", + "Open": "94.5", + "Volume": "8460400" + }, + { + "Close": "92.5", + "Date": "1996/7/22", + "High": "93.375", + "Low": "91.875", + "Open": "93.375", + "Volume": "7123200" + }, + { + "Close": "90.25", + "Date": "1996/7/23", + "High": "93.25", + "Low": "90", + "Open": "92.5", + "Volume": "12460000" + }, + { + "Close": "91.75", + "Date": "1996/7/24", + "High": "92.625", + "Low": "89.125", + "Open": "89.625", + "Volume": "14734400" + }, + { + "Close": "103.625", + "Date": "1996/7/25", + "High": "103.75", + "Low": "95", + "Open": "96", + "Volume": "36059600" + }, + { + "Close": "103.875", + "Date": "1996/7/26", + "High": "104.125", + "Low": "101.625", + "Open": "103.125", + "Volume": "15961600" + }, + { + "Close": "104.75", + "Date": "1996/7/29", + "High": "105.5", + "Low": "103.375", + "Open": "103.5", + "Volume": "13352800" + }, + { + "Close": "107.375", + "Date": "1996/7/30", + "High": "108", + "Low": "103.75", + "Open": "105.25", + "Volume": "15971200" + }, + { + "Close": "107.5", + "Date": "1996/7/31", + "High": "108.875", + "Low": "107", + "Open": "107.125", + "Volume": "14021200" + }, + { + "Close": "107.25", + "Date": "1996/8/1", + "High": "109", + "Low": "107.25", + "Open": "108", + "Volume": "12482400" + }, + { + "Close": "108.875", + "Date": "1996/8/2", + "High": "109.375", + "Low": "107.75", + "Open": "108.375", + "Volume": "9063200" + }, + { + "Close": "109.25", + "Date": "1996/8/5", + "High": "109.375", + "Low": "108", + "Open": "108", + "Volume": "8604400" + }, + { + "Close": "109.625", + "Date": "1996/8/6", + "High": "110.125", + "Low": "108.25", + "Open": "109.25", + "Volume": "14385600" + }, + { + "Close": "112.625", + "Date": "1996/8/7", + "High": "112.875", + "Low": "109.75", + "Open": "110", + "Volume": "12268000" + }, + { + "Close": "113.5", + "Date": "1996/8/8", + "High": "113.875", + "Low": "111.5", + "Open": "111.625", + "Volume": "11762400" + }, + { + "Close": "112.375", + "Date": "1996/8/9", + "High": "113.75", + "Low": "112.125", + "Open": "113", + "Volume": "6987600" + }, + { + "Close": "112.125", + "Date": "1996/8/12", + "High": "113.25", + "Low": "111.625", + "Open": "112", + "Volume": "7727600" + }, + { + "Close": "109.375", + "Date": "1996/8/13", + "High": "112.5", + "Low": "109.125", + "Open": "111.625", + "Volume": "11935200" + }, + { + "Close": "111.25", + "Date": "1996/8/14", + "High": "111.5", + "Low": "109.375", + "Open": "109.375", + "Volume": "10326000" + }, + { + "Close": "110.875", + "Date": "1996/8/15", + "High": "111.625", + "Low": "110.75", + "Open": "111.625", + "Volume": "4626800" + }, + { + "Close": "110", + "Date": "1996/8/16", + "High": "111.25", + "Low": "109.875", + "Open": "111", + "Volume": "6046800" + }, + { + "Close": "110", + "Date": "1996/8/19", + "High": "110.375", + "Low": "109.5", + "Open": "109.875", + "Volume": "7054000" + }, + { + "Close": "110.5", + "Date": "1996/8/20", + "High": "110.75", + "Low": "110", + "Open": "110.125", + "Volume": "4538800" + }, + { + "Close": "112.25", + "Date": "1996/8/21", + "High": "112.75", + "Low": "110.125", + "Open": "110.5", + "Volume": "7064400" + }, + { + "Close": "112.625", + "Date": "1996/8/22", + "High": "113.875", + "Low": "112.375", + "Open": "112.75", + "Volume": "8249200" + }, + { + "Close": "113", + "Date": "1996/8/23", + "High": "113.625", + "Low": "112", + "Open": "112.125", + "Volume": "6173600" + }, + { + "Close": "112.5", + "Date": "1996/8/26", + "High": "113.125", + "Low": "112.25", + "Open": "113", + "Volume": "3654800" + }, + { + "Close": "111.75", + "Date": "1996/8/27", + "High": "112.75", + "Low": "111.25", + "Open": "112.625", + "Volume": "4819600" + }, + { + "Close": "115", + "Date": "1996/8/28", + "High": "115.75", + "Low": "113.875", + "Open": "114", + "Volume": "14829600" + }, + { + "Close": "115.125", + "Date": "1996/8/29", + "High": "115.5", + "Low": "114.625", + "Open": "115.125", + "Volume": "9182400" + }, + { + "Close": "114.375", + "Date": "1996/8/30", + "High": "115", + "Low": "113.625", + "Open": "114.625", + "Volume": "6151600" + }, + { + "Close": "115.25", + "Date": "1996/9/3", + "High": "115.375", + "Low": "112.5625", + "Open": "113.25", + "Volume": "8830400" + }, + { + "Close": "114.625", + "Date": "1996/9/4", + "High": "115.625", + "Low": "114.5", + "Open": "115", + "Volume": "5480800" + }, + { + "Close": "113.125", + "Date": "1996/9/5", + "High": "114.5", + "Low": "113", + "Open": "114", + "Volume": "7194400" + }, + { + "Close": "115.5", + "Date": "1996/9/6", + "High": "115.875", + "Low": "113.5", + "Open": "113.5", + "Volume": "9638000" + }, + { + "Close": "117.625", + "Date": "1996/9/9", + "High": "117.75", + "Low": "115.875", + "Open": "116", + "Volume": "10269600" + }, + { + "Close": "118.125", + "Date": "1996/9/10", + "High": "119.375", + "Low": "116.5", + "Open": "117.625", + "Volume": "16051200" + }, + { + "Close": "118", + "Date": "1996/9/11", + "High": "118.25", + "Low": "116.75", + "Open": "116.75", + "Volume": "8755200" + }, + { + "Close": "117.25", + "Date": "1996/9/12", + "High": "118.25", + "Low": "117.125", + "Open": "118", + "Volume": "8674800" + }, + { + "Close": "122.125", + "Date": "1996/9/13", + "High": "122.875", + "Low": "118.125", + "Open": "118.125", + "Volume": "22036400" + }, + { + "Close": "122.75", + "Date": "1996/9/16", + "High": "123.375", + "Low": "121.75", + "Open": "122.125", + "Volume": "10653200" + }, + { + "Close": "123.625", + "Date": "1996/9/17", + "High": "123.625", + "Low": "121.5", + "Open": "123", + "Volume": "13198400" + }, + { + "Close": "124.5", + "Date": "1996/9/18", + "High": "125.25", + "Low": "123", + "Open": "124.375", + "Volume": "14094000" + }, + { + "Close": "123.5", + "Date": "1996/9/19", + "High": "125.125", + "Low": "123", + "Open": "124.25", + "Volume": "8213200" + }, + { + "Close": "123", + "Date": "1996/9/20", + "High": "124.875", + "Low": "122.875", + "Open": "123.625", + "Volume": "12242000" + }, + { + "Close": "124.25", + "Date": "1996/9/23", + "High": "124.75", + "Low": "122.125", + "Open": "122.25", + "Volume": "6765600" + }, + { + "Close": "124.125", + "Date": "1996/9/24", + "High": "126.875", + "Low": "124", + "Open": "124.25", + "Volume": "14984000" + }, + { + "Close": "126.5", + "Date": "1996/9/25", + "High": "126.875", + "Low": "124.5", + "Open": "124.5", + "Volume": "10773600" + }, + { + "Close": "124.375", + "Date": "1996/9/26", + "High": "127.875", + "Low": "124.125", + "Open": "126.25", + "Volume": "12704000" + }, + { + "Close": "124.75", + "Date": "1996/9/27", + "High": "125.5", + "Low": "124", + "Open": "124.75", + "Volume": "5248800" + }, + { + "Close": "124.5", + "Date": "1996/9/30", + "High": "127.125", + "Low": "124.125", + "Open": "124.875", + "Volume": "7457600" + }, + { + "Close": "123.75", + "Date": "1996/10/1", + "High": "125.25", + "Low": "123.125", + "Open": "124", + "Volume": "9786000" + }, + { + "Close": "125.875", + "Date": "1996/10/2", + "High": "125.875", + "Low": "124", + "Open": "124.25", + "Volume": "8052800" + }, + { + "Close": "125", + "Date": "1996/10/3", + "High": "126.25", + "Low": "124.625", + "Open": "125.75", + "Volume": "7380400" + }, + { + "Close": "126.625", + "Date": "1996/10/4", + "High": "127.125", + "Low": "125.625", + "Open": "125.875", + "Volume": "9209200" + }, + { + "Close": "127.875", + "Date": "1996/10/7", + "High": "128", + "Low": "126.875", + "Open": "126.875", + "Volume": "7341600" + }, + { + "Close": "128.375", + "Date": "1996/10/8", + "High": "129.5", + "Low": "127.625", + "Open": "128", + "Volume": "12589600" + }, + { + "Close": "126.25", + "Date": "1996/10/9", + "High": "129.375", + "Low": "126.125", + "Open": "129", + "Volume": "9609600" + }, + { + "Close": "127.75", + "Date": "1996/10/10", + "High": "128", + "Low": "125.5", + "Open": "125.5", + "Volume": "8994000" + }, + { + "Close": "129.875", + "Date": "1996/10/11", + "High": "130.125", + "Low": "128.25", + "Open": "128.5", + "Volume": "11433200" + }, + { + "Close": "130", + "Date": "1996/10/14", + "High": "130", + "Low": "129.125", + "Open": "129.875", + "Volume": "5603600" + }, + { + "Close": "129.5", + "Date": "1996/10/15", + "High": "131.25", + "Low": "128.625", + "Open": "130.75", + "Volume": "11455600" + }, + { + "Close": "127.625", + "Date": "1996/10/16", + "High": "129.5", + "Low": "127.375", + "Open": "129.5", + "Volume": "7502800" + }, + { + "Close": "125.625", + "Date": "1996/10/17", + "High": "129.125", + "Low": "125.25", + "Open": "128.75", + "Volume": "8541600" + }, + { + "Close": "129.375", + "Date": "1996/10/18", + "High": "129.5", + "Low": "124", + "Open": "125.5", + "Volume": "13894800" + }, + { + "Close": "130.125", + "Date": "1996/10/21", + "High": "135.375", + "Low": "126.75", + "Open": "128", + "Volume": "33337200" + }, + { + "Close": "127", + "Date": "1996/10/22", + "High": "130.75", + "Low": "126.25", + "Open": "129.625", + "Volume": "11997200" + }, + { + "Close": "129.25", + "Date": "1996/10/23", + "High": "129.875", + "Low": "126.125", + "Open": "126.5", + "Volume": "12034000" + }, + { + "Close": "127.375", + "Date": "1996/10/24", + "High": "129.75", + "Low": "127.375", + "Open": "129.5", + "Volume": "7174000" + }, + { + "Close": "126.5", + "Date": "1996/10/25", + "High": "128", + "Low": "126.375", + "Open": "126.375", + "Volume": "6501600" + }, + { + "Close": "127.375", + "Date": "1996/10/28", + "High": "128.125", + "Low": "126.5", + "Open": "126.625", + "Volume": "7390000" + }, + { + "Close": "125.625", + "Date": "1996/10/29", + "High": "127.75", + "Low": "125.125", + "Open": "127.5", + "Volume": "10130000" + }, + { + "Close": "126.375", + "Date": "1996/10/30", + "High": "127.5", + "Low": "125.75", + "Open": "125.75", + "Volume": "8330000" + }, + { + "Close": "129", + "Date": "1996/10/31", + "High": "129.125", + "Low": "125.875", + "Open": "126.5", + "Volume": "8525200" + }, + { + "Close": "127.5", + "Date": "1996/11/1", + "High": "129.625", + "Low": "127.125", + "Open": "128.875", + "Volume": "8269200" + }, + { + "Close": "128.75", + "Date": "1996/11/4", + "High": "129.375", + "Low": "127.375", + "Open": "127.375", + "Volume": "6109200" + }, + { + "Close": "130.25", + "Date": "1996/11/5", + "High": "131.5", + "Low": "129.25", + "Open": "129.75", + "Volume": "11716400" + }, + { + "Close": "133.375", + "Date": "1996/11/6", + "High": "133.875", + "Low": "130.25", + "Open": "130.625", + "Volume": "11545600" + }, + { + "Close": "133.75", + "Date": "1996/11/7", + "High": "135.125", + "Low": "132.75", + "Open": "133.125", + "Volume": "13926400" + }, + { + "Close": "134.375", + "Date": "1996/11/8", + "High": "134.5", + "Low": "132.875", + "Open": "133.375", + "Volume": "6277600" + }, + { + "Close": "134.5", + "Date": "1996/11/11", + "High": "134.875", + "Low": "134", + "Open": "134.375", + "Volume": "5716800" + }, + { + "Close": "133.25", + "Date": "1996/11/12", + "High": "135.75", + "Low": "133", + "Open": "135", + "Volume": "10896400" + }, + { + "Close": "134.75", + "Date": "1996/11/13", + "High": "135.875", + "Low": "133.25", + "Open": "133.5", + "Volume": "9569200" + }, + { + "Close": "136.875", + "Date": "1996/11/14", + "High": "137.625", + "Low": "134.625", + "Open": "134.625", + "Volume": "11098000" + }, + { + "Close": "145", + "Date": "1996/11/15", + "High": "145.5", + "Low": "137.375", + "Open": "137.625", + "Volume": "31215200" + }, + { + "Close": "146.75", + "Date": "1996/11/18", + "High": "150", + "Low": "143", + "Open": "144.75", + "Volume": "23108400" + }, + { + "Close": "154.125", + "Date": "1996/11/19", + "High": "154.875", + "Low": "146.5", + "Open": "146.875", + "Volume": "24118400" + }, + { + "Close": "152.625", + "Date": "1996/11/20", + "High": "159", + "Low": "152.375", + "Open": "153.375", + "Volume": "32946800" + }, + { + "Close": "154.125", + "Date": "1996/11/21", + "High": "154.875", + "Low": "152.5", + "Open": "153.125", + "Volume": "18604400" + }, + { + "Close": "158.5", + "Date": "1996/11/22", + "High": "158.875", + "Low": "154.125", + "Open": "154.125", + "Volume": "16330000" + }, + { + "Close": "157.625", + "Date": "1996/11/25", + "High": "158.5", + "Low": "156.125", + "Open": "158.125", + "Volume": "11332000" + }, + { + "Close": "158", + "Date": "1996/11/26", + "High": "160.75", + "Low": "157", + "Open": "157.5", + "Volume": "22061600" + }, + { + "Close": "158.125", + "Date": "1996/11/27", + "High": "160.25", + "Low": "157.75", + "Open": "158.25", + "Volume": "11198800" + }, + { + "Close": "159.375", + "Date": "1996/11/29", + "High": "159.625", + "Low": "158.125", + "Open": "158.125", + "Volume": "3725200" + }, + { + "Close": "163", + "Date": "1996/12/2", + "High": "163.5", + "Low": "159.625", + "Open": "159.625", + "Volume": "13264000" + }, + { + "Close": "162.625", + "Date": "1996/12/3", + "High": "166", + "Low": "162.625", + "Open": "163.625", + "Volume": "18711200" + }, + { + "Close": "162", + "Date": "1996/12/4", + "High": "164", + "Low": "159.125", + "Open": "162.875", + "Volume": "17749200" + }, + { + "Close": "158.5", + "Date": "1996/12/5", + "High": "162.625", + "Low": "158.375", + "Open": "161.375", + "Volume": "12145200" + }, + { + "Close": "155.625", + "Date": "1996/12/6", + "High": "158", + "Low": "153.375", + "Open": "154", + "Volume": "24141600" + }, + { + "Close": "160", + "Date": "1996/12/9", + "High": "160.125", + "Low": "156.25", + "Open": "156.625", + "Volume": "11079600" + }, + { + "Close": "157.75", + "Date": "1996/12/10", + "High": "161.875", + "Low": "157.75", + "Open": "161.5", + "Volume": "12374000" + }, + { + "Close": "156.125", + "Date": "1996/12/11", + "High": "158.625", + "Low": "153.75", + "Open": "155.25", + "Volume": "23424400" + }, + { + "Close": "151.625", + "Date": "1996/12/12", + "High": "158.5", + "Low": "151.5", + "Open": "158.125", + "Volume": "14420400" + }, + { + "Close": "152.875", + "Date": "1996/12/13", + "High": "154.875", + "Low": "152", + "Open": "152.25", + "Volume": "15562400" + }, + { + "Close": "148.625", + "Date": "1996/12/16", + "High": "153.25", + "Low": "147.25", + "Open": "153", + "Volume": "14377600" + }, + { + "Close": "151.875", + "Date": "1996/12/17", + "High": "153.625", + "Low": "147.375", + "Open": "148.375", + "Volume": "16082400" + }, + { + "Close": "158.625", + "Date": "1996/12/18", + "High": "159", + "Low": "152.375", + "Open": "152.5", + "Volume": "14443200" + }, + { + "Close": "158.125", + "Date": "1996/12/19", + "High": "159.75", + "Low": "157.25", + "Open": "159.75", + "Volume": "13614000" + }, + { + "Close": "154.625", + "Date": "1996/12/20", + "High": "158.375", + "Low": "154.125", + "Open": "158.125", + "Volume": "16724800" + }, + { + "Close": "154.25", + "Date": "1996/12/23", + "High": "155.375", + "Low": "152.75", + "Open": "154", + "Volume": "8732800" + }, + { + "Close": "155.75", + "Date": "1996/12/24", + "High": "156", + "Low": "154.125", + "Open": "154.125", + "Volume": "2660000" + }, + { + "Close": "155.75", + "Date": "1996/12/26", + "High": "158.375", + "Low": "155.125", + "Open": "157.375", + "Volume": "4527200" + }, + { + "Close": "155.125", + "Date": "1996/12/27", + "High": "155.625", + "Low": "153.5", + "Open": "155.625", + "Volume": "5049200" + }, + { + "Close": "153.625", + "Date": "1996/12/30", + "High": "155.5", + "Low": "153.625", + "Open": "155.25", + "Volume": "4168000" + }, + { + "Close": "151.5", + "Date": "1996/12/31", + "High": "155.375", + "Low": "150.875", + "Open": "153.75", + "Volume": "7049600" + }, + { + "Close": "153.25", + "Date": "1997/1/2", + "High": "154.375", + "Low": "150.25", + "Open": "153.75", + "Volume": "16790000" + }, + { + "Close": "159.125", + "Date": "1997/1/3", + "High": "159.125", + "Low": "154.875", + "Open": "155", + "Volume": "12930400" + }, + { + "Close": "161.25", + "Date": "1997/1/6", + "High": "163.375", + "Low": "158.5", + "Open": "159.375", + "Volume": "19244400" + }, + { + "Close": "163.375", + "Date": "1997/1/7", + "High": "163.75", + "Low": "159.375", + "Open": "160.875", + "Volume": "10541200" + }, + { + "Close": "159.875", + "Date": "1997/1/8", + "High": "164.25", + "Low": "159.125", + "Open": "164.125", + "Volume": "11697600" + }, + { + "Close": "161.875", + "Date": "1997/1/9", + "High": "162", + "Low": "158.375", + "Open": "159.75", + "Volume": "12626800" + }, + { + "Close": "163", + "Date": "1997/1/10", + "High": "164", + "Low": "160.125", + "Open": "160.5", + "Volume": "17500800" + }, + { + "Close": "163.875", + "Date": "1997/1/13", + "High": "166.25", + "Low": "162.75", + "Open": "163", + "Volume": "15650800" + }, + { + "Close": "167.015594", + "Date": "1997/1/14", + "High": "167.625", + "Low": "164.5", + "Open": "165", + "Volume": "11786400" + }, + { + "Close": "164.625", + "Date": "1997/1/15", + "High": "168.375", + "Low": "163.375", + "Open": "166.375", + "Volume": "17712800" + }, + { + "Close": "165.5", + "Date": "1997/1/16", + "High": "166.75", + "Low": "163.25", + "Open": "164.75", + "Volume": "13896000" + }, + { + "Close": "165.25", + "Date": "1997/1/17", + "High": "165.75", + "Low": "163.875", + "Open": "165.125", + "Volume": "8868800" + }, + { + "Close": "167", + "Date": "1997/1/20", + "High": "167.625", + "Low": "164.5", + "Open": "164.875", + "Volume": "10706000" + }, + { + "Close": "168", + "Date": "1997/1/21", + "High": "170.125", + "Low": "166.375", + "Open": "166.375", + "Volume": "14993200" + }, + { + "Close": "158", + "Date": "1997/1/22", + "High": "160", + "Low": "155", + "Open": "159", + "Volume": "49184800" + }, + { + "Close": "151.75", + "Date": "1997/1/23", + "High": "160.25", + "Low": "150.625", + "Open": "158.875", + "Volume": "33802400" + }, + { + "Close": "150.5", + "Date": "1997/1/24", + "High": "154", + "Low": "149", + "Open": "151.875", + "Volume": "32776800" + }, + { + "Close": "145.75", + "Date": "1997/1/27", + "High": "151.75", + "Low": "145", + "Open": "151.375", + "Volume": "23704400" + }, + { + "Close": "150.75", + "Date": "1997/1/28", + "High": "154.25", + "Low": "148.625", + "Open": "149.875", + "Volume": "32306000" + }, + { + "Close": "156.375", + "Date": "1997/1/29", + "High": "156.75", + "Low": "152.375", + "Open": "153.5", + "Volume": "18664400" + }, + { + "Close": "157.25", + "Date": "1997/1/30", + "High": "158.25", + "Low": "155.75", + "Open": "157.75", + "Volume": "18296000" + }, + { + "Close": "156.875", + "Date": "1997/1/31", + "High": "157.875", + "Low": "156.125", + "Open": "157.625", + "Volume": "11565600" + }, + { + "Close": "154.875", + "Date": "1997/2/3", + "High": "157.375", + "Low": "154.5", + "Open": "157.375", + "Volume": "10599200" + }, + { + "Close": "153.625", + "Date": "1997/2/4", + "High": "154.75", + "Low": "150.75", + "Open": "154.75", + "Volume": "13544800" + }, + { + "Close": "148.75", + "Date": "1997/2/5", + "High": "153.625", + "Low": "145.5", + "Open": "153.625", + "Volume": "22077600" + }, + { + "Close": "146", + "Date": "1997/2/6", + "High": "149.75", + "Low": "145.5", + "Open": "149", + "Volume": "20778400" + }, + { + "Close": "148.75", + "Date": "1997/2/7", + "High": "150", + "Low": "145.875", + "Open": "148.5", + "Volume": "19807200" + }, + { + "Close": "142.75", + "Date": "1997/2/10", + "High": "148.75", + "Low": "142", + "Open": "148.75", + "Volume": "21562800" + }, + { + "Close": "145.25", + "Date": "1997/2/11", + "High": "145.25", + "Low": "141.125", + "Open": "143.375", + "Volume": "21540400" + }, + { + "Close": "145", + "Date": "1997/2/12", + "High": "146.625", + "Low": "143", + "Open": "144", + "Volume": "18515200" + }, + { + "Close": "146.375", + "Date": "1997/2/13", + "High": "148.125", + "Low": "145.125", + "Open": "145.125", + "Volume": "15851600" + }, + { + "Close": "145", + "Date": "1997/2/14", + "High": "147.75", + "Low": "144", + "Open": "146.375", + "Volume": "13698800" + }, + { + "Close": "145.25", + "Date": "1997/2/18", + "High": "145.5", + "Low": "143.125", + "Open": "145.5", + "Volume": "10740800" + }, + { + "Close": "143.625", + "Date": "1997/2/19", + "High": "145.875", + "Low": "143", + "Open": "145.25", + "Volume": "13449200" + }, + { + "Close": "141.25", + "Date": "1997/2/20", + "High": "143.5", + "Low": "140.25", + "Open": "143.125", + "Volume": "14332000" + }, + { + "Close": "137.625", + "Date": "1997/2/21", + "High": "140.875", + "Low": "137.125", + "Open": "140.75", + "Volume": "25234000" + }, + { + "Close": "143.875", + "Date": "1997/2/24", + "High": "144", + "Low": "137.5", + "Open": "137.625", + "Volume": "17130800" + }, + { + "Close": "146.5", + "Date": "1997/2/25", + "High": "148", + "Low": "144.125", + "Open": "144.375", + "Volume": "16793600" + }, + { + "Close": "146.875", + "Date": "1997/2/26", + "High": "147.5", + "Low": "144", + "Open": "147", + "Volume": "14681600" + }, + { + "Close": "143", + "Date": "1997/2/27", + "High": "146.875", + "Low": "143", + "Open": "146.875", + "Volume": "7088800" + }, + { + "Close": "143.75", + "Date": "1997/2/28", + "High": "145.75", + "Low": "140.625", + "Open": "143.125", + "Volume": "12262400" + }, + { + "Close": "145.125", + "Date": "1997/3/3", + "High": "146.75", + "Low": "143.625", + "Open": "143.75", + "Volume": "13215600" + }, + { + "Close": "144.875", + "Date": "1997/3/4", + "High": "146.75", + "Low": "142.5", + "Open": "145.625", + "Volume": "12252800" + }, + { + "Close": "145.5", + "Date": "1997/3/5", + "High": "146.5", + "Low": "144.375", + "Open": "145.875", + "Volume": "8004800" + }, + { + "Close": "146.625", + "Date": "1997/3/6", + "High": "149", + "Low": "144.625", + "Open": "145.625", + "Volume": "14781600" + }, + { + "Close": "144.75", + "Date": "1997/3/7", + "High": "147.625", + "Low": "144.125", + "Open": "147.25", + "Volume": "10627200" + }, + { + "Close": "146.125", + "Date": "1997/3/10", + "High": "147", + "Low": "144.375", + "Open": "144.75", + "Volume": "8171200" + }, + { + "Close": "146", + "Date": "1997/3/11", + "High": "149.75", + "Low": "146", + "Open": "146.375", + "Volume": "13422400" + }, + { + "Close": "144.875", + "Date": "1997/3/12", + "High": "147.25", + "Low": "144.125", + "Open": "146", + "Volume": "11308400" + }, + { + "Close": "142.875", + "Date": "1997/3/13", + "High": "146.25", + "Low": "142.25", + "Open": "144.75", + "Volume": "12151200" + }, + { + "Close": "143.625", + "Date": "1997/3/14", + "High": "144.375", + "Low": "142.125", + "Open": "143.625", + "Volume": "8024800" + }, + { + "Close": "139.5", + "Date": "1997/3/17", + "High": "143.125", + "Low": "137.375", + "Open": "142.75", + "Volume": "20377600" + }, + { + "Close": "139.375", + "Date": "1997/3/18", + "High": "140.75", + "Low": "137.875", + "Open": "139.875", + "Volume": "14544400" + }, + { + "Close": "137.875", + "Date": "1997/3/19", + "High": "138.75", + "Low": "135.875", + "Open": "138.625", + "Volume": "16477600" + }, + { + "Close": "136.875", + "Date": "1997/3/20", + "High": "139.75", + "Low": "136.5", + "Open": "138", + "Volume": "14904800" + }, + { + "Close": "132.5", + "Date": "1997/3/21", + "High": "137.125", + "Low": "132.125", + "Open": "136.875", + "Volume": "26149200" + }, + { + "Close": "136.75", + "Date": "1997/3/24", + "High": "136.875", + "Low": "130", + "Open": "132.625", + "Volume": "18016800" + }, + { + "Close": "135.875", + "Date": "1997/3/25", + "High": "138.375", + "Low": "134.75", + "Open": "136.875", + "Volume": "13837200" + }, + { + "Close": "140.25", + "Date": "1997/3/26", + "High": "141.125", + "Low": "135.5", + "Open": "136.5", + "Volume": "14059600" + }, + { + "Close": "137", + "Date": "1997/3/27", + "High": "141.625", + "Low": "136.125", + "Open": "140.5", + "Volume": "12832000" + }, + { + "Close": "137.25", + "Date": "1997/3/31", + "High": "139.5", + "Low": "134.375", + "Open": "137.25", + "Volume": "15508000" + }, + { + "Close": "136.75", + "Date": "1997/4/1", + "High": "137.75", + "Low": "135.625", + "Open": "137", + "Volume": "11717600" + }, + { + "Close": "133.75", + "Date": "1997/4/2", + "High": "137.375", + "Low": "133.25", + "Open": "136.875", + "Volume": "14152000" + }, + { + "Close": "131.125", + "Date": "1997/4/3", + "High": "132.25", + "Low": "128.875", + "Open": "132", + "Volume": "21538000" + }, + { + "Close": "129.25", + "Date": "1997/4/4", + "High": "131.125", + "Low": "127.125", + "Open": "127.25", + "Volume": "25006400" + }, + { + "Close": "132.5", + "Date": "1997/4/7", + "High": "133.5", + "Low": "130.5", + "Open": "130.75", + "Volume": "10670400" + }, + { + "Close": "136.625", + "Date": "1997/4/8", + "High": "136.875", + "Low": "132.25", + "Open": "132.25", + "Volume": "10832000" + }, + { + "Close": "133.125", + "Date": "1997/4/9", + "High": "138", + "Low": "133", + "Open": "138", + "Volume": "13783600" + }, + { + "Close": "133", + "Date": "1997/4/10", + "High": "134.875", + "Low": "132.875", + "Open": "133.75", + "Volume": "9932400" + }, + { + "Close": "133.375", + "Date": "1997/4/11", + "High": "134.75", + "Low": "131.375", + "Open": "132.25", + "Volume": "16554400" + }, + { + "Close": "136.5", + "Date": "1997/4/14", + "High": "136.875", + "Low": "133.25", + "Open": "134.5", + "Volume": "10537600" + }, + { + "Close": "137.875", + "Date": "1997/4/15", + "High": "139", + "Low": "134.375", + "Open": "138.625", + "Volume": "15727600" + }, + { + "Close": "137.5", + "Date": "1997/4/16", + "High": "138.375", + "Low": "135.75", + "Open": "137.375", + "Volume": "7381200" + }, + { + "Close": "137.75", + "Date": "1997/4/17", + "High": "139.75", + "Low": "136.75", + "Open": "137.375", + "Volume": "10620400" + }, + { + "Close": "139.75", + "Date": "1997/4/18", + "High": "140.125", + "Low": "137.75", + "Open": "138", + "Volume": "9372800" + }, + { + "Close": "137.375", + "Date": "1997/4/21", + "High": "141.25", + "Low": "136.625", + "Open": "139.625", + "Volume": "9426800" + }, + { + "Close": "140", + "Date": "1997/4/22", + "High": "140.125", + "Low": "134.75", + "Open": "137.25", + "Volume": "12088800" + }, + { + "Close": "142.375", + "Date": "1997/4/23", + "High": "143.75", + "Low": "139", + "Open": "140", + "Volume": "15668400" + }, + { + "Close": "153.625", + "Date": "1997/4/24", + "High": "157", + "Low": "150.5", + "Open": "150.5", + "Volume": "42636400" + }, + { + "Close": "150.75", + "Date": "1997/4/25", + "High": "152.875", + "Low": "150.625", + "Open": "152.25", + "Volume": "12020000" + }, + { + "Close": "150.375", + "Date": "1997/4/28", + "High": "151.75", + "Low": "149.125", + "Open": "149.625", + "Volume": "9984000" + }, + { + "Close": "158.375", + "Date": "1997/4/29", + "High": "159", + "Low": "152", + "Open": "152.375", + "Volume": "18500000" + }, + { + "Close": "160.5", + "Date": "1997/4/30", + "High": "161.125", + "Low": "157.25", + "Open": "157.875", + "Volume": "18313600" + }, + { + "Close": "161.375", + "Date": "1997/5/1", + "High": "161.625", + "Low": "159.375", + "Open": "160.5", + "Volume": "11973200" + }, + { + "Close": "162.125", + "Date": "1997/5/2", + "High": "162.875", + "Low": "159.875", + "Open": "161", + "Volume": "12131600" + }, + { + "Close": "166.125", + "Date": "1997/5/5", + "High": "166.25", + "Low": "162.625", + "Open": "162.875", + "Volume": "12416400" + }, + { + "Close": "165.5", + "Date": "1997/5/6", + "High": "167.375", + "Low": "164.625", + "Open": "165.875", + "Volume": "13189200" + }, + { + "Close": "162.125", + "Date": "1997/5/7", + "High": "166.875", + "Low": "162.125", + "Open": "164.375", + "Volume": "11362000" + }, + { + "Close": "167.375", + "Date": "1997/5/8", + "High": "169.25", + "Low": "163.5", + "Open": "164", + "Volume": "19169200" + }, + { + "Close": "167.5", + "Date": "1997/5/9", + "High": "169.25", + "Low": "166.625", + "Open": "168.75", + "Volume": "11747600" + }, + { + "Close": "173.5", + "Date": "1997/5/12", + "High": "173.5", + "Low": "168.125", + "Open": "168.25", + "Volume": "14980400" + }, + { + "Close": "173.625", + "Date": "1997/5/13", + "High": "177.125", + "Low": "173.375", + "Open": "174.75", + "Volume": "22649200" + }, + { + "Close": "173.875", + "Date": "1997/5/14", + "High": "175", + "Low": "171.875", + "Open": "174.25", + "Volume": "13792400" + }, + { + "Close": "173.875", + "Date": "1997/5/15", + "High": "175.625", + "Low": "173.125", + "Open": "174.125", + "Volume": "10944400" + }, + { + "Close": "170", + "Date": "1997/5/16", + "High": "173.75", + "Low": "169.625", + "Open": "173", + "Volume": "14097200" + }, + { + "Close": "168.75", + "Date": "1997/5/19", + "High": "170.375", + "Low": "166.875", + "Open": "169.875", + "Volume": "9694800" + }, + { + "Close": "173.75", + "Date": "1997/5/20", + "High": "175.5", + "Low": "168.375", + "Open": "168.5", + "Volume": "12530400" + }, + { + "Close": "175.125", + "Date": "1997/5/21", + "High": "177.375", + "Low": "174.375", + "Open": "174.75", + "Volume": "12681200" + }, + { + "Close": "172.5", + "Date": "1997/5/22", + "High": "176", + "Low": "172.5", + "Open": "175.125", + "Volume": "7229600" + }, + { + "Close": "173.375", + "Date": "1997/5/23", + "High": "174.875", + "Low": "173.125", + "Open": "173.375", + "Volume": "6916000" + }, + { + "Close": "179.25", + "Date": "1997/5/27", + "High": "179.25", + "Low": "174", + "Open": "174", + "Volume": "12950800" + }, + { + "Close": "90.125", + "Date": "1997/5/28", + "High": "91.875", + "Low": "88.5", + "Open": "90.5", + "Volume": "17898800" + }, + { + "Close": "87.75", + "Date": "1997/5/29", + "High": "90", + "Low": "87.5", + "Open": "90", + "Volume": "11548400" + }, + { + "Close": "86.5", + "Date": "1997/5/30", + "High": "88.25", + "Low": "84.5", + "Open": "85", + "Volume": "13492800" + }, + { + "Close": "87.125", + "Date": "1997/6/2", + "High": "87.875", + "Low": "86.625", + "Open": "87.75", + "Volume": "6608600" + }, + { + "Close": "84.375", + "Date": "1997/6/3", + "High": "86.625", + "Low": "84.125", + "Open": "86.375", + "Volume": "9827800" + }, + { + "Close": "83.375", + "Date": "1997/6/4", + "High": "85.625", + "Low": "81.75", + "Open": "85", + "Volume": "9134400" + }, + { + "Close": "82.875", + "Date": "1997/6/5", + "High": "84.875", + "Low": "82.125", + "Open": "84", + "Volume": "7334000" + }, + { + "Close": "85.625", + "Date": "1997/6/6", + "High": "86", + "Low": "82.625", + "Open": "83.5", + "Volume": "9164800" + }, + { + "Close": "86.875", + "Date": "1997/6/9", + "High": "87.625", + "Low": "85.625", + "Open": "86", + "Volume": "7235000" + }, + { + "Close": "86.25", + "Date": "1997/6/10", + "High": "87.875", + "Low": "85.5", + "Open": "87.125", + "Volume": "7624400" + }, + { + "Close": "87.125", + "Date": "1997/6/11", + "High": "87.375", + "Low": "86.125", + "Open": "86.25", + "Volume": "6257200" + }, + { + "Close": "88.125", + "Date": "1997/6/12", + "High": "88.375", + "Low": "85.5", + "Open": "86.25", + "Volume": "7590600" + }, + { + "Close": "89", + "Date": "1997/6/13", + "High": "89.75", + "Low": "88.125", + "Open": "88.25", + "Volume": "8521800" + }, + { + "Close": "89.25", + "Date": "1997/6/16", + "High": "90", + "Low": "88.625", + "Open": "88.75", + "Volume": "5338000" + }, + { + "Close": "89.875", + "Date": "1997/6/17", + "High": "90.75", + "Low": "89", + "Open": "89.75", + "Volume": "7949800" + }, + { + "Close": "89", + "Date": "1997/6/18", + "High": "89.5", + "Low": "88.25", + "Open": "89.375", + "Volume": "5808800" + }, + { + "Close": "89.625", + "Date": "1997/6/19", + "High": "90.75", + "Low": "89.125", + "Open": "89.125", + "Volume": "6061000" + }, + { + "Close": "89.875", + "Date": "1997/6/20", + "High": "91.9375", + "Low": "89.75", + "Open": "89.875", + "Volume": "13644200" + }, + { + "Close": "87.75", + "Date": "1997/6/23", + "High": "91.375", + "Low": "87.625", + "Open": "89.875", + "Volume": "9279000" + }, + { + "Close": "91.8125", + "Date": "1997/6/24", + "High": "92.25", + "Low": "89.5", + "Open": "89.75", + "Volume": "10665800" + }, + { + "Close": "91.875", + "Date": "1997/6/25", + "High": "93.75", + "Low": "91.375", + "Open": "91.875", + "Volume": "9595000" + }, + { + "Close": "90.625", + "Date": "1997/6/26", + "High": "92.9375", + "Low": "90.25", + "Open": "91.8125", + "Volume": "8155600" + }, + { + "Close": "91.25", + "Date": "1997/6/27", + "High": "92", + "Low": "91.1875", + "Open": "91.25", + "Volume": "4741200" + }, + { + "Close": "90.25", + "Date": "1997/6/30", + "High": "92.5", + "Low": "90.125", + "Open": "92.25", + "Volume": "6787800" + }, + { + "Close": "91.8125", + "Date": "1997/7/1", + "High": "92.25", + "Low": "90.125", + "Open": "90.25", + "Volume": "5251600" + }, + { + "Close": "93.4375", + "Date": "1997/7/2", + "High": "93.625", + "Low": "91.625", + "Open": "91.625", + "Volume": "5357800" + }, + { + "Close": "94.8125", + "Date": "1997/7/3", + "High": "95.125", + "Low": "94.3125", + "Open": "94.875", + "Volume": "6352200" + }, + { + "Close": "94.5", + "Date": "1997/7/7", + "High": "95.5", + "Low": "94", + "Open": "95", + "Volume": "6450600" + }, + { + "Close": "95.75", + "Date": "1997/7/8", + "High": "95.75", + "Low": "94.5", + "Open": "94.5", + "Volume": "5139800" + }, + { + "Close": "96.1875", + "Date": "1997/7/9", + "High": "96.6875", + "Low": "95.3125", + "Open": "96", + "Volume": "8863800" + }, + { + "Close": "95.75", + "Date": "1997/7/10", + "High": "96.1875", + "Low": "94.0625", + "Open": "94.6875", + "Volume": "6395000" + }, + { + "Close": "95.75", + "Date": "1997/7/11", + "High": "97.375", + "Low": "95.625", + "Open": "95.8125", + "Volume": "6886200" + }, + { + "Close": "95.25", + "Date": "1997/7/14", + "High": "96.4375", + "Low": "94", + "Open": "95.625", + "Volume": "6448800" + }, + { + "Close": "96", + "Date": "1997/7/15", + "High": "96.25", + "Low": "93.375", + "Open": "94.875", + "Volume": "7480600" + }, + { + "Close": "97.625", + "Date": "1997/7/16", + "High": "98", + "Low": "95.375", + "Open": "95.75", + "Volume": "10772000" + }, + { + "Close": "99.625", + "Date": "1997/7/17", + "High": "101.75", + "Low": "97.125", + "Open": "97.8125", + "Volume": "15775200" + }, + { + "Close": "104.5", + "Date": "1997/7/18", + "High": "105.25", + "Low": "100", + "Open": "100", + "Volume": "23174200" + }, + { + "Close": "103.75", + "Date": "1997/7/21", + "High": "106.3125", + "Low": "102.1875", + "Open": "105.25", + "Volume": "16409200" + }, + { + "Close": "103", + "Date": "1997/7/22", + "High": "103.5", + "Low": "99.375", + "Open": "100.5", + "Volume": "18413800" + }, + { + "Close": "105.125", + "Date": "1997/7/23", + "High": "107", + "Low": "103.1875", + "Open": "104.375", + "Volume": "10994000" + }, + { + "Close": "107.8125", + "Date": "1997/7/24", + "High": "108.4375", + "Low": "104.5", + "Open": "105.625", + "Volume": "10204400" + }, + { + "Close": "107", + "Date": "1997/7/25", + "High": "108.4375", + "Low": "105.625", + "Open": "107.9375", + "Volume": "7330000" + }, + { + "Close": "105", + "Date": "1997/7/28", + "High": "106.875", + "Low": "104.8125", + "Open": "106.5", + "Volume": "6502400" + }, + { + "Close": "102.875", + "Date": "1997/7/29", + "High": "104.625", + "Low": "102.75", + "Open": "104.5", + "Volume": "8638600" + }, + { + "Close": "106", + "Date": "1997/7/30", + "High": "106", + "Low": "102.875", + "Open": "102.875", + "Volume": "8703000" + }, + { + "Close": "105.75", + "Date": "1997/7/31", + "High": "107", + "Low": "105", + "Open": "106.125", + "Volume": "6884200" + }, + { + "Close": "104.75", + "Date": "1997/8/1", + "High": "105.9375", + "Low": "103.3125", + "Open": "105.5", + "Volume": "8003600" + }, + { + "Close": "106.25", + "Date": "1997/8/4", + "High": "106.5", + "Low": "104.3125", + "Open": "104.5625", + "Volume": "6082800" + }, + { + "Close": "106.5", + "Date": "1997/8/5", + "High": "107.9375", + "Low": "106.5", + "Open": "106.5", + "Volume": "5373000" + }, + { + "Close": "107.875", + "Date": "1997/8/6", + "High": "109.4375", + "Low": "105.8125", + "Open": "106.4375", + "Volume": "8324200" + }, + { + "Close": "107.375", + "Date": "1997/8/7", + "High": "109.25", + "Low": "106.875", + "Open": "108.5", + "Volume": "6473800" + }, + { + "Close": "105.25", + "Date": "1997/8/8", + "High": "107.125", + "Low": "104", + "Open": "106.3125", + "Volume": "7673400" + }, + { + "Close": "103", + "Date": "1997/8/11", + "High": "105.3125", + "Low": "103", + "Open": "104.75", + "Volume": "6773000" + }, + { + "Close": "103.4375", + "Date": "1997/8/12", + "High": "105.625", + "Low": "103", + "Open": "103.375", + "Volume": "7009600" + }, + { + "Close": "104.375", + "Date": "1997/8/13", + "High": "106", + "Low": "102.75", + "Open": "105.8125", + "Volume": "10260000" + }, + { + "Close": "103.625", + "Date": "1997/8/14", + "High": "105.125", + "Low": "102.625", + "Open": "104.5625", + "Volume": "6767000" + }, + { + "Close": "99.9375", + "Date": "1997/8/15", + "High": "104.5", + "Low": "99.875", + "Open": "103.3125", + "Volume": "9205200" + }, + { + "Close": "104", + "Date": "1997/8/18", + "High": "104.125", + "Low": "99.6875", + "Open": "101", + "Volume": "9949400" + }, + { + "Close": "107.9375", + "Date": "1997/8/19", + "High": "108", + "Low": "104.25", + "Open": "104.75", + "Volume": "9582800" + }, + { + "Close": "108", + "Date": "1997/8/20", + "High": "108.4375", + "Low": "106.125", + "Open": "107.625", + "Volume": "9093800" + }, + { + "Close": "105.75", + "Date": "1997/8/21", + "High": "107.9375", + "Low": "105.25", + "Open": "107.5", + "Volume": "6517600" + }, + { + "Close": "106.375", + "Date": "1997/8/22", + "High": "106.625", + "Low": "102.4375", + "Open": "102.5", + "Volume": "8856600" + }, + { + "Close": "105", + "Date": "1997/8/25", + "High": "107", + "Low": "104.5", + "Open": "106.375", + "Volume": "4979600" + }, + { + "Close": "103.3125", + "Date": "1997/8/26", + "High": "104.375", + "Low": "103.0625", + "Open": "103.375", + "Volume": "5977000" + }, + { + "Close": "103.875", + "Date": "1997/8/27", + "High": "104.8125", + "Low": "102.5", + "Open": "103.1875", + "Volume": "5547000" + }, + { + "Close": "101.125", + "Date": "1997/8/28", + "High": "103.875", + "Low": "101", + "Open": "102.75", + "Volume": "5700000" + }, + { + "Close": "101.375", + "Date": "1997/8/29", + "High": "102.875", + "Low": "100.468697", + "Open": "100.5625", + "Volume": "7512000" + }, + { + "Close": "104.0625", + "Date": "1997/9/2", + "High": "104.3125", + "Low": "101.25", + "Open": "101.375", + "Volume": "9086600" + }, + { + "Close": "103.5625", + "Date": "1997/9/3", + "High": "105.125", + "Low": "103.5", + "Open": "103.8125", + "Volume": "7020600" + }, + { + "Close": "103.75", + "Date": "1997/9/4", + "High": "104.5625", + "Low": "103", + "Open": "103.5625", + "Volume": "5027400" + }, + { + "Close": "103.625", + "Date": "1997/9/5", + "High": "105.25", + "Low": "103.5625", + "Open": "104.9375", + "Volume": "5366400" + }, + { + "Close": "102.875", + "Date": "1997/9/8", + "High": "104.3125", + "Low": "102.625", + "Open": "103.9375", + "Volume": "5166400" + }, + { + "Close": "100", + "Date": "1997/9/9", + "High": "104", + "Low": "100", + "Open": "103", + "Volume": "11532200" + }, + { + "Close": "97", + "Date": "1997/9/10", + "High": "100.0625", + "Low": "96.125", + "Open": "100", + "Volume": "17162800" + }, + { + "Close": "98", + "Date": "1997/9/11", + "High": "98.375", + "Low": "96.5", + "Open": "97", + "Volume": "11754600" + }, + { + "Close": "97.75", + "Date": "1997/9/12", + "High": "98", + "Low": "96.9375", + "Open": "97.9375", + "Volume": "6588400" + }, + { + "Close": "96.25", + "Date": "1997/9/15", + "High": "99.1875", + "Low": "96.125", + "Open": "98.125", + "Volume": "5345600" + }, + { + "Close": "99.625", + "Date": "1997/9/16", + "High": "100.5", + "Low": "96.375", + "Open": "97.25", + "Volume": "9599000" + }, + { + "Close": "99.625", + "Date": "1997/9/17", + "High": "101.25", + "Low": "99", + "Open": "100.25", + "Volume": "6978800" + }, + { + "Close": "98.75", + "Date": "1997/9/18", + "High": "100.25", + "Low": "98.75", + "Open": "100.125", + "Volume": "7457000" + }, + { + "Close": "99.25", + "Date": "1997/9/19", + "High": "99.625", + "Low": "98.3125", + "Open": "98.9375", + "Volume": "6892400" + }, + { + "Close": "103.875", + "Date": "1997/9/22", + "High": "105.125", + "Low": "102", + "Open": "102", + "Volume": "13878400" + }, + { + "Close": "103.25", + "Date": "1997/9/23", + "High": "105", + "Low": "102.75", + "Open": "104.0625", + "Volume": "8288400" + }, + { + "Close": "101.5625", + "Date": "1997/9/24", + "High": "104.4375", + "Low": "101.4375", + "Open": "103.875", + "Volume": "6121400" + }, + { + "Close": "101.625", + "Date": "1997/9/25", + "High": "103", + "Low": "101.1875", + "Open": "101.6875", + "Volume": "4924000" + }, + { + "Close": "102.625", + "Date": "1997/9/26", + "High": "103.1875", + "Low": "101.9375", + "Open": "102.8125", + "Volume": "4256800" + }, + { + "Close": "105", + "Date": "1997/9/29", + "High": "105.125", + "Low": "102", + "Open": "102.375", + "Volume": "5949200" + }, + { + "Close": "106", + "Date": "1997/9/30", + "High": "107.4375", + "Low": "103.625", + "Open": "104.75", + "Volume": "12472400" + }, + { + "Close": "103.5", + "Date": "1997/10/1", + "High": "106.4375", + "Low": "103.1875", + "Open": "106.125", + "Volume": "7569200" + }, + { + "Close": "104.5625", + "Date": "1997/10/2", + "High": "104.5625", + "Low": "103", + "Open": "103.8125", + "Volume": "4485400" + }, + { + "Close": "104.3125", + "Date": "1997/10/3", + "High": "107.25", + "Low": "103.5", + "Open": "106.875", + "Volume": "8193600" + }, + { + "Close": "104.8125", + "Date": "1997/10/6", + "High": "105.25", + "Low": "104.375", + "Open": "105.0625", + "Volume": "4900800" + }, + { + "Close": "106.8125", + "Date": "1997/10/7", + "High": "107.125", + "Low": "105.9375", + "Open": "106.5", + "Volume": "8043000" + }, + { + "Close": "105.25", + "Date": "1997/10/8", + "High": "106.875", + "Low": "104.5", + "Open": "106.8125", + "Volume": "8195000" + }, + { + "Close": "104.625", + "Date": "1997/10/9", + "High": "105.8125", + "Low": "104.1875", + "Open": "104.3125", + "Volume": "4524000" + }, + { + "Close": "104.9375", + "Date": "1997/10/10", + "High": "105.375", + "Low": "104.125", + "Open": "104.375", + "Volume": "3287000" + }, + { + "Close": "104.5", + "Date": "1997/10/13", + "High": "105.5", + "Low": "104.0625", + "Open": "105.5", + "Volume": "1944200" + }, + { + "Close": "103.3125", + "Date": "1997/10/14", + "High": "104.125", + "Low": "102.0625", + "Open": "104.0625", + "Volume": "5266600" + }, + { + "Close": "101.6875", + "Date": "1997/10/15", + "High": "102.875", + "Low": "101.375", + "Open": "102.125", + "Volume": "5498400" + }, + { + "Close": "99.875", + "Date": "1997/10/16", + "High": "102.6875", + "Low": "99.125", + "Open": "102.375", + "Volume": "6745200" + }, + { + "Close": "95.4375", + "Date": "1997/10/17", + "High": "98.875", + "Low": "95.25", + "Open": "98.125", + "Volume": "14452400" + }, + { + "Close": "97.5", + "Date": "1997/10/20", + "High": "97.75", + "Low": "94.5", + "Open": "95.8125", + "Volume": "11458600" + }, + { + "Close": "105.1875", + "Date": "1997/10/21", + "High": "105.375", + "Low": "101", + "Open": "101.625", + "Volume": "17485200" + }, + { + "Close": "105.125", + "Date": "1997/10/22", + "High": "105.9375", + "Low": "104.25", + "Open": "105.25", + "Volume": "8678200" + }, + { + "Close": "100.375", + "Date": "1997/10/23", + "High": "103.875", + "Low": "100.0625", + "Open": "102", + "Volume": "13857800" + }, + { + "Close": "98", + "Date": "1997/10/24", + "High": "102.8125", + "Low": "96.875", + "Open": "102.25", + "Volume": "18452200" + }, + { + "Close": "90", + "Date": "1997/10/27", + "High": "98.625", + "Low": "89.875", + "Open": "97.25", + "Volume": "14280400" + }, + { + "Close": "99.375", + "Date": "1997/10/28", + "High": "99.9375", + "Low": "88.625", + "Open": "89", + "Volume": "25117200" + }, + { + "Close": "98.25", + "Date": "1997/10/29", + "High": "102.25", + "Low": "97.875", + "Open": "100", + "Volume": "17167600" + }, + { + "Close": "95.8125", + "Date": "1997/10/30", + "High": "99.375", + "Low": "95.5625", + "Open": "96.5", + "Volume": "12780800" + }, + { + "Close": "98.5", + "Date": "1997/10/31", + "High": "99.1875", + "Low": "96.5625", + "Open": "98.375", + "Volume": "7909200" + }, + { + "Close": "101.625", + "Date": "1997/11/3", + "High": "102.1875", + "Low": "99.125", + "Open": "99.125", + "Volume": "8669200" + }, + { + "Close": "101.9375", + "Date": "1997/11/4", + "High": "102.75", + "Low": "100.9375", + "Open": "101.125", + "Volume": "6986400" + }, + { + "Close": "102.75", + "Date": "1997/11/5", + "High": "103.9375", + "Low": "101.5625", + "Open": "102.5", + "Volume": "6508000" + }, + { + "Close": "101.0625", + "Date": "1997/11/6", + "High": "103.1875", + "Low": "101.0625", + "Open": "102.625", + "Volume": "6152200" + }, + { + "Close": "99.5", + "Date": "1997/11/7", + "High": "100.4375", + "Low": "98.25", + "Open": "99", + "Volume": "9054200" + }, + { + "Close": "97.6875", + "Date": "1997/11/10", + "High": "100.8125", + "Low": "97.625", + "Open": "100.75", + "Volume": "7520200" + }, + { + "Close": "99", + "Date": "1997/11/11", + "High": "100", + "Low": "97.9375", + "Open": "98.125", + "Volume": "5628000" + }, + { + "Close": "96.625", + "Date": "1997/11/12", + "High": "99.5", + "Low": "96.5", + "Open": "98.375", + "Volume": "8222200" + }, + { + "Close": "99.125", + "Date": "1997/11/13", + "High": "99.375", + "Low": "95.25", + "Open": "97.5", + "Volume": "10340200" + }, + { + "Close": "101.5", + "Date": "1997/11/14", + "High": "102.0625", + "Low": "99.125", + "Open": "99.9375", + "Volume": "9638800" + }, + { + "Close": "103.5", + "Date": "1997/11/17", + "High": "104.875", + "Low": "102.875", + "Open": "103", + "Volume": "8990000" + }, + { + "Close": "102.125", + "Date": "1997/11/18", + "High": "104.375", + "Low": "102", + "Open": "103.6875", + "Volume": "6368800" + }, + { + "Close": "103.0625", + "Date": "1997/11/19", + "High": "103.9375", + "Low": "101.75", + "Open": "102", + "Volume": "7349000" + }, + { + "Close": "104.75", + "Date": "1997/11/20", + "High": "105", + "Low": "103.25", + "Open": "104.0625", + "Volume": "6708200" + }, + { + "Close": "105.5625", + "Date": "1997/11/21", + "High": "106.375", + "Low": "105", + "Open": "105.25", + "Volume": "9496400" + }, + { + "Close": "103.125", + "Date": "1997/11/24", + "High": "105.75", + "Low": "103", + "Open": "104.9375", + "Volume": "6802400" + }, + { + "Close": "107.375", + "Date": "1997/11/25", + "High": "107.5", + "Low": "103.875", + "Open": "104.125", + "Volume": "10226600" + }, + { + "Close": "109.75", + "Date": "1997/11/26", + "High": "109.875", + "Low": "107.375", + "Open": "107.5", + "Volume": "9843800" + }, + { + "Close": "109.5", + "Date": "1997/11/28", + "High": "109.9375", + "Low": "109.125", + "Open": "109.125", + "Volume": "2965400" + }, + { + "Close": "112.5625", + "Date": "1997/12/1", + "High": "113.3125", + "Low": "109.875", + "Open": "110", + "Volume": "11629400" + }, + { + "Close": "110.75", + "Date": "1997/12/2", + "High": "112.1875", + "Low": "110.5625", + "Open": "112.125", + "Volume": "7056000" + }, + { + "Close": "110.375", + "Date": "1997/12/3", + "High": "111.625", + "Low": "109", + "Open": "110.5", + "Volume": "9819600" + }, + { + "Close": "109.25", + "Date": "1997/12/4", + "High": "111.3125", + "Low": "108.875", + "Open": "110.625", + "Volume": "7182200" + }, + { + "Close": "112.25", + "Date": "1997/12/5", + "High": "112.875", + "Low": "109", + "Open": "109.5", + "Volume": "6931000" + }, + { + "Close": "112.875", + "Date": "1997/12/8", + "High": "113.5", + "Low": "111.75", + "Open": "112.875", + "Volume": "6174400" + }, + { + "Close": "110.375", + "Date": "1997/12/9", + "High": "112.25", + "Low": "110", + "Open": "111.5", + "Volume": "7252000" + }, + { + "Close": "106.5", + "Date": "1997/12/10", + "High": "109.625", + "Low": "105.4375", + "Open": "109.4375", + "Volume": "11480400" + }, + { + "Close": "101.625", + "Date": "1997/12/11", + "High": "103.9375", + "Low": "101.375", + "Open": "103", + "Volume": "14799600" + }, + { + "Close": "100.375", + "Date": "1997/12/12", + "High": "103.4375", + "Low": "96.375", + "Open": "103", + "Volume": "16173400" + }, + { + "Close": "100.875", + "Date": "1997/12/15", + "High": "101.9375", + "Low": "97", + "Open": "101.5", + "Volume": "11693800" + }, + { + "Close": "103.75", + "Date": "1997/12/16", + "High": "105.25", + "Low": "101.125", + "Open": "101.125", + "Volume": "9175600" + }, + { + "Close": "102", + "Date": "1997/12/17", + "High": "105.5", + "Low": "101.875", + "Open": "105", + "Volume": "8819600" + }, + { + "Close": "100", + "Date": "1997/12/18", + "High": "102.9375", + "Low": "99", + "Open": "102.1875", + "Volume": "10335600" + }, + { + "Close": "102.125", + "Date": "1997/12/19", + "High": "102.9375", + "Low": "97", + "Open": "99.25", + "Volume": "13633400" + }, + { + "Close": "102.5625", + "Date": "1997/12/22", + "High": "104.75", + "Low": "100.875", + "Open": "104.75", + "Volume": "7745800" + }, + { + "Close": "98.625", + "Date": "1997/12/23", + "High": "104.125", + "Low": "98.625", + "Open": "102.4375", + "Volume": "5899200" + }, + { + "Close": "99.125", + "Date": "1997/12/24", + "High": "100.8125", + "Low": "99", + "Open": "100.125", + "Volume": "4120000" + }, + { + "Close": "101.6875", + "Date": "1997/12/26", + "High": "101.75", + "Low": "99.25", + "Open": "99.375", + "Volume": "2138200" + }, + { + "Close": "102.75", + "Date": "1997/12/29", + "High": "103.6875", + "Low": "102.75", + "Open": "102.875", + "Volume": "4614600" + }, + { + "Close": "103.125", + "Date": "1997/12/30", + "High": "105.5", + "Low": "102.9375", + "Open": "103.6875", + "Volume": "7116000" + }, + { + "Close": "104.625", + "Date": "1997/12/31", + "High": "105.1875", + "Low": "103.1875", + "Open": "104", + "Volume": "5473000" + }, + { + "Close": "105.625", + "Date": "1998/1/2", + "High": "105.75", + "Low": "104.0625", + "Open": "104.5", + "Volume": "5270000" + }, + { + "Close": "106.4375", + "Date": "1998/1/5", + "High": "106.8125", + "Low": "105", + "Open": "105.5625", + "Volume": "10034000" + }, + { + "Close": "105.25", + "Date": "1998/1/6", + "High": "107.1875", + "Low": "105.0625", + "Open": "105.375", + "Volume": "7111200" + }, + { + "Close": "104.25", + "Date": "1998/1/7", + "High": "105", + "Low": "102.625", + "Open": "105", + "Volume": "8616400" + }, + { + "Close": "104.1875", + "Date": "1998/1/8", + "High": "105.5", + "Low": "102.9375", + "Open": "103.5", + "Volume": "8118800" + }, + { + "Close": "100.0625", + "Date": "1998/1/9", + "High": "104.875", + "Low": "99.375", + "Open": "104.3125", + "Volume": "14365600" + }, + { + "Close": "100.125", + "Date": "1998/1/12", + "High": "101.125", + "Low": "97.5", + "Open": "98.25", + "Volume": "12821400" + }, + { + "Close": "102.125", + "Date": "1998/1/13", + "High": "102.4375", + "Low": "100.3125", + "Open": "100.5625", + "Volume": "6829000" + }, + { + "Close": "102.625", + "Date": "1998/1/14", + "High": "104", + "Low": "101.25", + "Open": "103.5", + "Volume": "8550800" + }, + { + "Close": "103.4375", + "Date": "1998/1/15", + "High": "104.9375", + "Low": "102.375", + "Open": "103.1875", + "Volume": "12643400" + }, + { + "Close": "105", + "Date": "1998/1/16", + "High": "105.1875", + "Low": "104.5", + "Open": "104.875", + "Volume": "8378200" + }, + { + "Close": "108.375", + "Date": "1998/1/20", + "High": "108.375", + "Low": "104.6875", + "Open": "105.1875", + "Volume": "9941200" + }, + { + "Close": "100.125", + "Date": "1998/1/21", + "High": "102", + "Low": "99.625", + "Open": "100.25", + "Volume": "27815600" + }, + { + "Close": "99.375", + "Date": "1998/1/22", + "High": "100.625", + "Low": "98.5", + "Open": "99.8125", + "Volume": "13167000" + }, + { + "Close": "99.1875", + "Date": "1998/1/23", + "High": "100", + "Low": "98.9375", + "Open": "99.8125", + "Volume": "7823000" + }, + { + "Close": "98.125", + "Date": "1998/1/26", + "High": "99.9375", + "Low": "98", + "Open": "99.25", + "Volume": "5615800" + }, + { + "Close": "96.5", + "Date": "1998/1/27", + "High": "97.875", + "Low": "95.625", + "Open": "96.75", + "Volume": "14039400" + }, + { + "Close": "97", + "Date": "1998/1/28", + "High": "98", + "Low": "96.5", + "Open": "97.125", + "Volume": "10384800" + }, + { + "Close": "98.1875", + "Date": "1998/1/29", + "High": "99.3125", + "Low": "97", + "Open": "97", + "Volume": "8827200" + }, + { + "Close": "98.75", + "Date": "1998/1/30", + "High": "99.5625", + "Low": "98", + "Open": "98.3125", + "Volume": "5800200" + }, + { + "Close": "100.5625", + "Date": "1998/2/2", + "High": "101.25", + "Low": "100", + "Open": "100", + "Volume": "6875400" + }, + { + "Close": "99.375", + "Date": "1998/2/3", + "High": "100.25", + "Low": "98.6875", + "Open": "100.125", + "Volume": "7171200" + }, + { + "Close": "98.3125", + "Date": "1998/2/4", + "High": "99.8125", + "Low": "98.0625", + "Open": "99.125", + "Volume": "8568600" + }, + { + "Close": "99.5625", + "Date": "1998/2/5", + "High": "99.5625", + "Low": "98.375", + "Open": "99.125", + "Volume": "7553400" + }, + { + "Close": "98", + "Date": "1998/2/6", + "High": "99.625", + "Low": "97.75", + "Open": "99.125", + "Volume": "8165000" + }, + { + "Close": "98", + "Date": "1998/2/9", + "High": "99.625", + "Low": "98", + "Open": "98.125", + "Volume": "6896800" + }, + { + "Close": "100.875", + "Date": "1998/2/10", + "High": "102.4375", + "Low": "97.5", + "Open": "98.0625", + "Volume": "16328600" + }, + { + "Close": "102.6875", + "Date": "1998/2/11", + "High": "103.25", + "Low": "101.5", + "Open": "101.625", + "Volume": "8415000" + }, + { + "Close": "102.875", + "Date": "1998/2/12", + "High": "103.25", + "Low": "101.5625", + "Open": "101.875", + "Volume": "7253600" + }, + { + "Close": "102.375", + "Date": "1998/2/13", + "High": "103.625", + "Low": "102.375", + "Open": "102.6875", + "Volume": "4488200" + }, + { + "Close": "102", + "Date": "1998/2/17", + "High": "103.6875", + "Low": "101.5", + "Open": "103.0625", + "Volume": "7663600" + }, + { + "Close": "102.75", + "Date": "1998/2/18", + "High": "103.625", + "Low": "101.3125", + "Open": "102", + "Volume": "6504600" + }, + { + "Close": "102.75", + "Date": "1998/2/19", + "High": "104.625", + "Low": "102.75", + "Open": "103", + "Volume": "8553400" + }, + { + "Close": "102.625", + "Date": "1998/2/20", + "High": "103.4375", + "Low": "101.5625", + "Open": "103", + "Volume": "7501600" + }, + { + "Close": "102.875", + "Date": "1998/2/23", + "High": "103.9375", + "Low": "102.8125", + "Open": "103.4375", + "Volume": "5252000" + }, + { + "Close": "102.5", + "Date": "1998/2/24", + "High": "102.875", + "Low": "101.75", + "Open": "102.625", + "Volume": "5144800" + }, + { + "Close": "105.25", + "Date": "1998/2/25", + "High": "105.25", + "Low": "102.5", + "Open": "102.5625", + "Volume": "7696200" + }, + { + "Close": "105.5", + "Date": "1998/2/26", + "High": "105.875", + "Low": "104.3125", + "Open": "104.75", + "Volume": "6429600" + }, + { + "Close": "104.4375", + "Date": "1998/2/27", + "High": "105.625", + "Low": "103.875", + "Open": "104.8125", + "Volume": "5890400" + }, + { + "Close": "101.9375", + "Date": "1998/3/2", + "High": "104.5625", + "Low": "100", + "Open": "104.1875", + "Volume": "6980400" + }, + { + "Close": "102.125", + "Date": "1998/3/3", + "High": "102.5", + "Low": "99.8125", + "Open": "100", + "Volume": "7940400" + }, + { + "Close": "99", + "Date": "1998/3/4", + "High": "103.3125", + "Low": "99", + "Open": "102", + "Volume": "6014000" + }, + { + "Close": "98.9375", + "Date": "1998/3/5", + "High": "100.375", + "Low": "98.3125", + "Open": "100.1875", + "Volume": "10724000" + }, + { + "Close": "98.125", + "Date": "1998/3/6", + "High": "99.8125", + "Low": "98.125", + "Open": "99.125", + "Volume": "10410200" + }, + { + "Close": "96.125", + "Date": "1998/3/9", + "High": "98.25", + "Low": "95.875", + "Open": "97.125", + "Volume": "12928400" + }, + { + "Close": "97.5", + "Date": "1998/3/10", + "High": "98.1875", + "Low": "96.6875", + "Open": "97.375", + "Volume": "8334200" + }, + { + "Close": "99.125", + "Date": "1998/3/11", + "High": "99.875", + "Low": "97.4375", + "Open": "97.875", + "Volume": "6806800" + }, + { + "Close": "100.25", + "Date": "1998/3/12", + "High": "100.625", + "Low": "98.1875", + "Open": "99.1875", + "Volume": "5903400" + }, + { + "Close": "99.625", + "Date": "1998/3/13", + "High": "101.125", + "Low": "99", + "Open": "100.875", + "Volume": "5850600" + }, + { + "Close": "101.25", + "Date": "1998/3/16", + "High": "101.375", + "Low": "99.25", + "Open": "99.6875", + "Volume": "6842400" + }, + { + "Close": "100.875", + "Date": "1998/3/17", + "High": "101.8125", + "Low": "99.5625", + "Open": "101.3125", + "Volume": "7170200" + }, + { + "Close": "101.5625", + "Date": "1998/3/18", + "High": "102.3125", + "Low": "100.5625", + "Open": "100.625", + "Volume": "7189400" + }, + { + "Close": "102.875", + "Date": "1998/3/19", + "High": "103", + "Low": "101.4375", + "Open": "101.6875", + "Volume": "5170000" + }, + { + "Close": "102.0625", + "Date": "1998/3/20", + "High": "103.25", + "Low": "101.4375", + "Open": "103", + "Volume": "8215600" + }, + { + "Close": "101.375", + "Date": "1998/3/23", + "High": "103.375", + "Low": "101.375", + "Open": "101.5625", + "Volume": "6193600" + }, + { + "Close": "103.5", + "Date": "1998/3/24", + "High": "103.6875", + "Low": "102.125", + "Open": "102.25", + "Volume": "4807400" + }, + { + "Close": "106", + "Date": "1998/3/25", + "High": "106.6875", + "Low": "104.875", + "Open": "105", + "Volume": "13490400" + }, + { + "Close": "105.0625", + "Date": "1998/3/26", + "High": "106.625", + "Low": "105", + "Open": "105.875", + "Volume": "5713400" + }, + { + "Close": "104.375", + "Date": "1998/3/27", + "High": "105.5", + "Low": "103.875", + "Open": "105.25", + "Volume": "5661400" + }, + { + "Close": "103.25", + "Date": "1998/3/30", + "High": "104.875", + "Low": "102.5", + "Open": "104.125", + "Volume": "3827400" + }, + { + "Close": "103.875", + "Date": "1998/3/31", + "High": "104.9375", + "Low": "103.375", + "Open": "104", + "Volume": "5077000" + }, + { + "Close": "104.4375", + "Date": "1998/4/1", + "High": "104.875", + "Low": "103.3125", + "Open": "103.875", + "Volume": "5279600" + }, + { + "Close": "105.8125", + "Date": "1998/4/2", + "High": "106.6875", + "Low": "104", + "Open": "104.3125", + "Volume": "7202600" + }, + { + "Close": "104.6875", + "Date": "1998/4/3", + "High": "106.375", + "Low": "103.9375", + "Open": "105.625", + "Volume": "6212400" + }, + { + "Close": "106", + "Date": "1998/4/6", + "High": "106.5", + "Low": "105", + "Open": "106.25", + "Volume": "7358600" + }, + { + "Close": "104.6875", + "Date": "1998/4/7", + "High": "105.8125", + "Low": "103.5625", + "Open": "105.75", + "Volume": "5446400" + }, + { + "Close": "104.5", + "Date": "1998/4/8", + "High": "105.625", + "Low": "103.75", + "Open": "104.75", + "Volume": "5387200" + }, + { + "Close": "106.375", + "Date": "1998/4/9", + "High": "106.5", + "Low": "105.3125", + "Open": "105.625", + "Volume": "6060000" + }, + { + "Close": "104.1875", + "Date": "1998/4/13", + "High": "107.8125", + "Low": "104.1875", + "Open": "106.5625", + "Volume": "8170000" + }, + { + "Close": "106.25", + "Date": "1998/4/14", + "High": "106.25", + "Low": "104.625", + "Open": "105", + "Volume": "4771000" + }, + { + "Close": "109.75", + "Date": "1998/4/15", + "High": "109.8125", + "Low": "106.5", + "Open": "107", + "Volume": "9104200" + }, + { + "Close": "107.8125", + "Date": "1998/4/16", + "High": "110", + "Low": "107.625", + "Open": "109.375", + "Volume": "6761200" + }, + { + "Close": "107.75", + "Date": "1998/4/17", + "High": "107.9375", + "Low": "106.5", + "Open": "107.4375", + "Volume": "6308000" + }, + { + "Close": "111.1875", + "Date": "1998/4/20", + "High": "111.25", + "Low": "107.1875", + "Open": "107.9375", + "Volume": "9848600" + }, + { + "Close": "118", + "Date": "1998/4/21", + "High": "118.5", + "Low": "113.625", + "Open": "114", + "Volume": "24603200" + }, + { + "Close": "114.75", + "Date": "1998/4/22", + "High": "120", + "Low": "114.625", + "Open": "118", + "Volume": "13093600" + }, + { + "Close": "117.5", + "Date": "1998/4/23", + "High": "117.625", + "Low": "114.125", + "Open": "114.5", + "Volume": "9557600" + }, + { + "Close": "117.375", + "Date": "1998/4/24", + "High": "117.9375", + "Low": "116.25", + "Open": "116.75", + "Volume": "7912400" + }, + { + "Close": "115.3125", + "Date": "1998/4/27", + "High": "116.625", + "Low": "114.375", + "Open": "116.25", + "Volume": "8595000" + }, + { + "Close": "115.6875", + "Date": "1998/4/28", + "High": "118.5", + "Low": "115.3125", + "Open": "116.125", + "Volume": "10374200" + }, + { + "Close": "115.5625", + "Date": "1998/4/29", + "High": "116.875", + "Low": "114.625", + "Open": "115.6875", + "Volume": "6807800" + }, + { + "Close": "115.875", + "Date": "1998/4/30", + "High": "117.4375", + "Low": "115.5", + "Open": "116.0625", + "Volume": "7115000" + }, + { + "Close": "116.875", + "Date": "1998/5/1", + "High": "117.375", + "Low": "115.5", + "Open": "115.9375", + "Volume": "4953000" + }, + { + "Close": "116.625", + "Date": "1998/5/4", + "High": "118.875", + "Low": "116.625", + "Open": "117.125", + "Volume": "5313000" + }, + { + "Close": "117.8125", + "Date": "1998/5/5", + "High": "118.25", + "Low": "116.6875", + "Open": "116.6875", + "Volume": "5393200" + }, + { + "Close": "117.25", + "Date": "1998/5/6", + "High": "118.9375", + "Low": "117.25", + "Open": "118", + "Volume": "6365000" + }, + { + "Close": "117.125", + "Date": "1998/5/7", + "High": "117.75", + "Low": "116.125", + "Open": "117.5", + "Volume": "5308800" + }, + { + "Close": "120", + "Date": "1998/5/8", + "High": "120", + "Low": "116.875", + "Open": "116.9375", + "Volume": "7766800" + }, + { + "Close": "119.3125", + "Date": "1998/5/11", + "High": "122.75", + "Low": "118.3125", + "Open": "120.1875", + "Volume": "9542800" + }, + { + "Close": "119.625", + "Date": "1998/5/12", + "High": "120", + "Low": "117.3125", + "Open": "118.25", + "Volume": "7547600" + }, + { + "Close": "121.875", + "Date": "1998/5/13", + "High": "122.25", + "Low": "120.125", + "Open": "120.25", + "Volume": "7926600" + }, + { + "Close": "125.8125", + "Date": "1998/5/14", + "High": "129.3125", + "Low": "122.875", + "Open": "123.375", + "Volume": "21057200" + }, + { + "Close": "124.9375", + "Date": "1998/5/15", + "High": "127.75", + "Low": "124.125", + "Open": "125.625", + "Volume": "11197800" + }, + { + "Close": "124.625", + "Date": "1998/5/18", + "High": "125.75", + "Low": "123.4375", + "Open": "124.75", + "Volume": "7051000" + }, + { + "Close": "125", + "Date": "1998/5/19", + "High": "127", + "Low": "124.75", + "Open": "125.625", + "Volume": "7796000" + }, + { + "Close": "123.5", + "Date": "1998/5/20", + "High": "125.8125", + "Low": "122.5625", + "Open": "125.25", + "Volume": "6028200" + }, + { + "Close": "123.625", + "Date": "1998/5/21", + "High": "124.1875", + "Low": "121.9375", + "Open": "123.5", + "Volume": "5835400" + }, + { + "Close": "121.9375", + "Date": "1998/5/22", + "High": "123.625", + "Low": "121.125", + "Open": "123.625", + "Volume": "3997000" + }, + { + "Close": "121", + "Date": "1998/5/26", + "High": "123", + "Low": "120.8125", + "Open": "122.375", + "Volume": "6951400" + }, + { + "Close": "120.25", + "Date": "1998/5/27", + "High": "121.5", + "Low": "118.5625", + "Open": "119.3125", + "Volume": "10038400" + }, + { + "Close": "120.0625", + "Date": "1998/5/28", + "High": "121.625", + "Low": "119.8125", + "Open": "120.25", + "Volume": "5944400" + }, + { + "Close": "117.5", + "Date": "1998/5/29", + "High": "120.9375", + "Low": "117.375", + "Open": "120.5625", + "Volume": "5710800" + }, + { + "Close": "117.1875", + "Date": "1998/6/1", + "High": "118.3125", + "Low": "114.625", + "Open": "117.375", + "Volume": "7307400" + }, + { + "Close": "115.5625", + "Date": "1998/6/2", + "High": "117.6875", + "Low": "114.8125", + "Open": "117.1875", + "Volume": "7782600" + }, + { + "Close": "113.875", + "Date": "1998/6/3", + "High": "116.625", + "Low": "113.875", + "Open": "116", + "Volume": "5881800" + }, + { + "Close": "116.0625", + "Date": "1998/6/4", + "High": "116.1875", + "Low": "114.25", + "Open": "114.25", + "Volume": "6066600" + }, + { + "Close": "118.875", + "Date": "1998/6/5", + "High": "119", + "Low": "116.5625", + "Open": "116.75", + "Volume": "8245400" + }, + { + "Close": "118.8125", + "Date": "1998/6/8", + "High": "120", + "Low": "118.375", + "Open": "118.75", + "Volume": "3750000" + }, + { + "Close": "119.25", + "Date": "1998/6/9", + "High": "119.5625", + "Low": "117.8125", + "Open": "119", + "Volume": "3742200" + }, + { + "Close": "117.25", + "Date": "1998/6/10", + "High": "119.625", + "Low": "116.875", + "Open": "118.75", + "Volume": "6562200" + }, + { + "Close": "116", + "Date": "1998/6/11", + "High": "118.0625", + "Low": "115.75", + "Open": "117.5", + "Volume": "5357200" + }, + { + "Close": "116.25", + "Date": "1998/6/12", + "High": "116.8125", + "Low": "114", + "Open": "115.875", + "Volume": "8041400" + }, + { + "Close": "112.25", + "Date": "1998/6/15", + "High": "115.4375", + "Low": "112.125", + "Open": "114.625", + "Volume": "8407400" + }, + { + "Close": "110", + "Date": "1998/6/16", + "High": "111.875", + "Low": "107.125", + "Open": "111.875", + "Volume": "17628200" + }, + { + "Close": "111", + "Date": "1998/6/17", + "High": "112.1875", + "Low": "110.0625", + "Open": "111", + "Volume": "11245200" + }, + { + "Close": "108.8125", + "Date": "1998/6/18", + "High": "109.125", + "Low": "107.625", + "Open": "109", + "Volume": "8481400" + }, + { + "Close": "106.125", + "Date": "1998/6/19", + "High": "109.25", + "Low": "106", + "Open": "108.75", + "Volume": "9768000" + }, + { + "Close": "108.125", + "Date": "1998/6/22", + "High": "109.5", + "Low": "106.1875", + "Open": "106.25", + "Volume": "8553800" + }, + { + "Close": "111.75", + "Date": "1998/6/23", + "High": "112.3125", + "Low": "109.9375", + "Open": "110", + "Volume": "8078400" + }, + { + "Close": "112", + "Date": "1998/6/24", + "High": "112.125", + "Low": "110.0625", + "Open": "111.875", + "Volume": "6060000" + }, + { + "Close": "112.4375", + "Date": "1998/6/25", + "High": "114.6875", + "Low": "112", + "Open": "112.5", + "Volume": "6375600" + }, + { + "Close": "113", + "Date": "1998/6/26", + "High": "113.4375", + "Low": "112.3125", + "Open": "112.375", + "Volume": "3272800" + }, + { + "Close": "114.125", + "Date": "1998/6/29", + "High": "114.8125", + "Low": "113.5625", + "Open": "114.125", + "Volume": "4369200" + }, + { + "Close": "114.8125", + "Date": "1998/6/30", + "High": "116.3125", + "Low": "113.5", + "Open": "114.125", + "Volume": "8712000" + }, + { + "Close": "116.75", + "Date": "1998/7/1", + "High": "116.9375", + "Low": "115.5", + "Open": "116", + "Volume": "6332800" + }, + { + "Close": "115.1875", + "Date": "1998/7/2", + "High": "116.625", + "Low": "114.5", + "Open": "116.5625", + "Volume": "6439600" + }, + { + "Close": "113.6875", + "Date": "1998/7/6", + "High": "115.0625", + "Low": "113.3125", + "Open": "115", + "Volume": "6398400" + }, + { + "Close": "113.875", + "Date": "1998/7/7", + "High": "114.5", + "Low": "112.75", + "Open": "113.625", + "Volume": "4549800" + }, + { + "Close": "115", + "Date": "1998/7/8", + "High": "115.5625", + "Low": "113.625", + "Open": "113.75", + "Volume": "4516400" + }, + { + "Close": "117.0625", + "Date": "1998/7/9", + "High": "118.5", + "Low": "114.625", + "Open": "114.75", + "Volume": "6379000" + }, + { + "Close": "118.5", + "Date": "1998/7/10", + "High": "119.25", + "Low": "117.375", + "Open": "118.25", + "Volume": "6140200" + }, + { + "Close": "119.375", + "Date": "1998/7/13", + "High": "120", + "Low": "118.25", + "Open": "118.5", + "Volume": "4679600" + }, + { + "Close": "119.625", + "Date": "1998/7/14", + "High": "120.625", + "Low": "119", + "Open": "119.75", + "Volume": "4537200" + }, + { + "Close": "117", + "Date": "1998/7/15", + "High": "120", + "Low": "117", + "Open": "119.25", + "Volume": "5115600" + }, + { + "Close": "118.375", + "Date": "1998/7/16", + "High": "118.9375", + "Low": "116", + "Open": "117.125", + "Volume": "4360200" + }, + { + "Close": "120.1875", + "Date": "1998/7/17", + "High": "120.375", + "Low": "118.5", + "Open": "118.5625", + "Volume": "6336800" + }, + { + "Close": "122", + "Date": "1998/7/20", + "High": "123", + "Low": "120.3125", + "Open": "121", + "Volume": "8978400" + }, + { + "Close": "128.125", + "Date": "1998/7/21", + "High": "131", + "Low": "127.75", + "Open": "128.25", + "Volume": "24617200" + }, + { + "Close": "127.4375", + "Date": "1998/7/22", + "High": "128.4375", + "Low": "124.5", + "Open": "126", + "Volume": "12101800" + }, + { + "Close": "123.875", + "Date": "1998/7/23", + "High": "129", + "Low": "123.6875", + "Open": "127.1875", + "Volume": "8306200" + }, + { + "Close": "124.25", + "Date": "1998/7/24", + "High": "125.9375", + "Low": "122.5", + "Open": "125.875", + "Volume": "5749200" + }, + { + "Close": "125.5", + "Date": "1998/7/27", + "High": "125.75", + "Low": "122.25", + "Open": "123.75", + "Volume": "7345400" + }, + { + "Close": "125.4375", + "Date": "1998/7/28", + "High": "126.9375", + "Low": "124.1875", + "Open": "126.25", + "Volume": "8490600" + }, + { + "Close": "127.875", + "Date": "1998/7/29", + "High": "128.4375", + "Low": "127.0625", + "Open": "127.9375", + "Volume": "8039600" + }, + { + "Close": "133.375", + "Date": "1998/7/30", + "High": "133.75", + "Low": "128.4375", + "Open": "128.625", + "Volume": "10953400" + }, + { + "Close": "132.5", + "Date": "1998/7/31", + "High": "138.125", + "Low": "132.25", + "Open": "133.25", + "Volume": "13188000" + }, + { + "Close": "132.75", + "Date": "1998/8/3", + "High": "134.875", + "Low": "132.3125", + "Open": "134", + "Volume": "8355800" + }, + { + "Close": "126.8125", + "Date": "1998/8/4", + "High": "134.25", + "Low": "126.8125", + "Open": "134", + "Volume": "13377800" + }, + { + "Close": "128.75", + "Date": "1998/8/5", + "High": "129.25", + "Low": "124", + "Open": "127", + "Volume": "13107200" + }, + { + "Close": "129.75", + "Date": "1998/8/6", + "High": "130.9375", + "Low": "127.375", + "Open": "127.8125", + "Volume": "8202600" + }, + { + "Close": "129.125", + "Date": "1998/8/7", + "High": "134.25", + "Low": "129.125", + "Open": "131.75", + "Volume": "11530600" + }, + { + "Close": "129.875", + "Date": "1998/8/10", + "High": "130.125", + "Low": "128.75", + "Open": "128.875", + "Volume": "6055400" + }, + { + "Close": "128.5", + "Date": "1998/8/11", + "High": "128.5", + "Low": "125.3125", + "Open": "126.125", + "Volume": "10229400" + }, + { + "Close": "128", + "Date": "1998/8/12", + "High": "129.5625", + "Low": "127.5625", + "Open": "128.75", + "Volume": "7364600" + }, + { + "Close": "126.1875", + "Date": "1998/8/13", + "High": "128.375", + "Low": "126", + "Open": "127.5625", + "Volume": "6053600" + }, + { + "Close": "125.375", + "Date": "1998/8/14", + "High": "127.375", + "Low": "124", + "Open": "126.625", + "Volume": "6295800" + }, + { + "Close": "125.125", + "Date": "1998/8/17", + "High": "126", + "Low": "124.25", + "Open": "125.125", + "Volume": "6355000" + }, + { + "Close": "128.875", + "Date": "1998/8/18", + "High": "129.5", + "Low": "127", + "Open": "127", + "Volume": "7583800" + }, + { + "Close": "129.9375", + "Date": "1998/8/19", + "High": "131", + "Low": "129.0625", + "Open": "129.5", + "Volume": "7142200" + }, + { + "Close": "128.0625", + "Date": "1998/8/20", + "High": "130.0625", + "Low": "127.5", + "Open": "129.5", + "Volume": "6080600" + }, + { + "Close": "127.875", + "Date": "1998/8/21", + "High": "128", + "Low": "124.5", + "Open": "127.5", + "Volume": "8440800" + }, + { + "Close": "128.5625", + "Date": "1998/8/24", + "High": "128.6875", + "Low": "127.3125", + "Open": "128", + "Volume": "5770800" + }, + { + "Close": "128.4375", + "Date": "1998/8/25", + "High": "130.875", + "Low": "127.625", + "Open": "129.125", + "Volume": "5264400" + }, + { + "Close": "130.875", + "Date": "1998/8/26", + "High": "131.75", + "Low": "127", + "Open": "127.25", + "Volume": "8823400" + }, + { + "Close": "125.25", + "Date": "1998/8/27", + "High": "128.75", + "Low": "124.8125", + "Open": "128.75", + "Volume": "14693800" + }, + { + "Close": "122.5625", + "Date": "1998/8/28", + "High": "125.8125", + "Low": "120.8125", + "Open": "125.25", + "Volume": "11605200" + }, + { + "Close": "112.625", + "Date": "1998/8/31", + "High": "123.375", + "Low": "112.625", + "Open": "123", + "Volume": "14972600" + }, + { + "Close": "117.9375", + "Date": "1998/9/1", + "High": "118.9375", + "Low": "110.75", + "Open": "113", + "Volume": "16799400" + }, + { + "Close": "120.5", + "Date": "1998/9/2", + "High": "123.75", + "Low": "119.875", + "Open": "121", + "Volume": "11255600" + }, + { + "Close": "121.75", + "Date": "1998/9/3", + "High": "122.6875", + "Low": "118.0625", + "Open": "118.75", + "Volume": "9646200" + }, + { + "Close": "119.375", + "Date": "1998/9/4", + "High": "122.875", + "Low": "115.3125", + "Open": "122.5", + "Volume": "8245800" + }, + { + "Close": "125.9375", + "Date": "1998/9/8", + "High": "125.9375", + "Low": "122.1875", + "Open": "124.9375", + "Volume": "9285000" + }, + { + "Close": "123.5", + "Date": "1998/9/9", + "High": "127.4375", + "Low": "123.375", + "Open": "125.75", + "Volume": "9989400" + }, + { + "Close": "122.5", + "Date": "1998/9/10", + "High": "122.5", + "Low": "118.1875", + "Open": "122.125", + "Volume": "11159600" + }, + { + "Close": "126.5625", + "Date": "1998/9/11", + "High": "126.5625", + "Low": "120.625", + "Open": "121.375", + "Volume": "9930200" + }, + { + "Close": "129.125", + "Date": "1998/9/14", + "High": "129.9375", + "Low": "127.625", + "Open": "128", + "Volume": "9114200" + }, + { + "Close": "130", + "Date": "1998/9/15", + "High": "130.6875", + "Low": "128.5", + "Open": "129", + "Volume": "6493600" + }, + { + "Close": "130.5", + "Date": "1998/9/16", + "High": "130.9375", + "Low": "128.1875", + "Open": "130", + "Volume": "6638800" + }, + { + "Close": "126.75", + "Date": "1998/9/17", + "High": "128.25", + "Low": "126.1875", + "Open": "127.5", + "Volume": "8840400" + }, + { + "Close": "124.6875", + "Date": "1998/9/18", + "High": "127.25", + "Low": "124.25", + "Open": "126.75", + "Volume": "9212400" + }, + { + "Close": "128.1875", + "Date": "1998/9/21", + "High": "128.625", + "Low": "120", + "Open": "120.125", + "Volume": "8713200" + }, + { + "Close": "127.75", + "Date": "1998/9/22", + "High": "130.625", + "Low": "127.6875", + "Open": "129.375", + "Volume": "8591200" + }, + { + "Close": "132.0625", + "Date": "1998/9/23", + "High": "133", + "Low": "128.5", + "Open": "128.75", + "Volume": "8660800" + }, + { + "Close": "130.5625", + "Date": "1998/9/24", + "High": "134.9375", + "Low": "130.25", + "Open": "131.5625", + "Volume": "8400400" + }, + { + "Close": "133.5", + "Date": "1998/9/25", + "High": "133.6875", + "Low": "129.8125", + "Open": "130", + "Volume": "7306200" + }, + { + "Close": "133.625", + "Date": "1998/9/28", + "High": "136.1875", + "Low": "132.1875", + "Open": "134.5", + "Volume": "7640800" + }, + { + "Close": "131.4375", + "Date": "1998/9/29", + "High": "134.125", + "Low": "130", + "Open": "133.75", + "Volume": "7089800" + }, + { + "Close": "128.5", + "Date": "1998/9/30", + "High": "131.5", + "Low": "127.625", + "Open": "130.75", + "Volume": "8299400" + }, + { + "Close": "125.375", + "Date": "1998/10/1", + "High": "126.4375", + "Low": "123.375", + "Open": "125.0625", + "Volume": "12537400" + }, + { + "Close": "124.8125", + "Date": "1998/10/2", + "High": "125.25", + "Low": "118.9375", + "Open": "124.125", + "Volume": "14605200" + }, + { + "Close": "120.25", + "Date": "1998/10/5", + "High": "123.75", + "Low": "117.3125", + "Open": "123.75", + "Volume": "13442000" + }, + { + "Close": "119.25", + "Date": "1998/10/6", + "High": "124", + "Low": "118.75", + "Open": "124", + "Volume": "14367400" + }, + { + "Close": "120.75", + "Date": "1998/10/7", + "High": "122.875", + "Low": "118.125", + "Open": "119.5", + "Volume": "13164800" + }, + { + "Close": "123.5", + "Date": "1998/10/8", + "High": "123.5", + "Low": "116.8125", + "Open": "120.75", + "Volume": "18312600" + }, + { + "Close": "127.3125", + "Date": "1998/10/9", + "High": "127.9375", + "Low": "122.5", + "Open": "124.4375", + "Volume": "11683200" + }, + { + "Close": "130.875", + "Date": "1998/10/12", + "High": "132.875", + "Low": "129.5625", + "Open": "130.125", + "Volume": "10805000" + }, + { + "Close": "128.1875", + "Date": "1998/10/13", + "High": "130.5", + "Low": "126.5625", + "Open": "130.5", + "Volume": "9393600" + }, + { + "Close": "130.5", + "Date": "1998/10/14", + "High": "132", + "Low": "127.1875", + "Open": "127.75", + "Volume": "9591800" + }, + { + "Close": "136.5", + "Date": "1998/10/15", + "High": "138.75", + "Low": "129.75", + "Open": "130", + "Volume": "13065400" + }, + { + "Close": "135.9375", + "Date": "1998/10/16", + "High": "137.5", + "Low": "134.8125", + "Open": "137", + "Volume": "10338200" + }, + { + "Close": "139.375", + "Date": "1998/10/19", + "High": "139.8125", + "Low": "135", + "Open": "135", + "Volume": "8809400" + }, + { + "Close": "137.875", + "Date": "1998/10/20", + "High": "142.4375", + "Low": "136.5", + "Open": "140.625", + "Volume": "11327000" + }, + { + "Close": "142.6875", + "Date": "1998/10/21", + "High": "143.6875", + "Low": "139", + "Open": "140.125", + "Volume": "17015800" + }, + { + "Close": "141.8125", + "Date": "1998/10/22", + "High": "143.5", + "Low": "139.625", + "Open": "140", + "Volume": "9495800" + }, + { + "Close": "141.5625", + "Date": "1998/10/23", + "High": "143.4375", + "Low": "141.1875", + "Open": "141.5", + "Volume": "6291000" + }, + { + "Close": "143.0625", + "Date": "1998/10/26", + "High": "144.4375", + "Low": "140.0625", + "Open": "141.3125", + "Volume": "7354600" + }, + { + "Close": "144.375", + "Date": "1998/10/27", + "High": "146.8125", + "Low": "143.0625", + "Open": "145", + "Volume": "11417200" + }, + { + "Close": "146.1875", + "Date": "1998/10/28", + "High": "146.875", + "Low": "143.8125", + "Open": "144.625", + "Volume": "7269800" + }, + { + "Close": "148.75", + "Date": "1998/10/29", + "High": "149.5", + "Low": "147", + "Open": "148", + "Volume": "10156000" + }, + { + "Close": "148.5", + "Date": "1998/10/30", + "High": "149.8125", + "Low": "147.5", + "Open": "149.5", + "Volume": "7846200" + }, + { + "Close": "148.375", + "Date": "1998/11/2", + "High": "149.6875", + "Low": "147.3125", + "Open": "148.4375", + "Volume": "6965400" + }, + { + "Close": "147.375", + "Date": "1998/11/3", + "High": "149.9375", + "Low": "147.1875", + "Open": "148.5", + "Volume": "6913000" + }, + { + "Close": "147.875", + "Date": "1998/11/4", + "High": "149.75", + "Low": "145.75", + "Open": "148.875", + "Volume": "8192600" + }, + { + "Close": "149", + "Date": "1998/11/5", + "High": "149.5625", + "Low": "146.8125", + "Open": "147.6875", + "Volume": "6586000" + }, + { + "Close": "149.9375", + "Date": "1998/11/6", + "High": "150.9375", + "Low": "147.5", + "Open": "148.875", + "Volume": "7138000" + }, + { + "Close": "151.375", + "Date": "1998/11/9", + "High": "152.1875", + "Low": "149.9375", + "Open": "150.75", + "Volume": "7577400" + }, + { + "Close": "156", + "Date": "1998/11/10", + "High": "156.75", + "Low": "150.6875", + "Open": "150.875", + "Volume": "8743000" + }, + { + "Close": "157.125", + "Date": "1998/11/11", + "High": "158.875", + "Low": "156.5", + "Open": "157", + "Volume": "10218200" + }, + { + "Close": "157.875", + "Date": "1998/11/12", + "High": "159.875", + "Low": "156.625", + "Open": "156.6875", + "Volume": "8667800" + }, + { + "Close": "157.4375", + "Date": "1998/11/13", + "High": "157.5", + "Low": "155.75", + "Open": "157", + "Volume": "5995200" + }, + { + "Close": "159.375", + "Date": "1998/11/16", + "High": "159.6875", + "Low": "158.0625", + "Open": "158.625", + "Volume": "6842000" + }, + { + "Close": "158", + "Date": "1998/11/17", + "High": "161.375", + "Low": "158", + "Open": "159.375", + "Volume": "8733400" + }, + { + "Close": "159", + "Date": "1998/11/18", + "High": "159.625", + "Low": "157.625", + "Open": "158.0625", + "Volume": "5845600" + }, + { + "Close": "158.5625", + "Date": "1998/11/19", + "High": "159.875", + "Low": "158.125", + "Open": "159.5", + "Volume": "6328800" + }, + { + "Close": "160.125", + "Date": "1998/11/20", + "High": "160.125", + "Low": "158.5", + "Open": "158.875", + "Volume": "6387800" + }, + { + "Close": "166.5625", + "Date": "1998/11/23", + "High": "167", + "Low": "160.5625", + "Open": "161", + "Volume": "7754000" + }, + { + "Close": "165.25", + "Date": "1998/11/24", + "High": "167.1875", + "Low": "165", + "Open": "165.5", + "Volume": "6641800" + }, + { + "Close": "166.75", + "Date": "1998/11/25", + "High": "166.9375", + "Low": "164.375", + "Open": "165.125", + "Volume": "3937400" + }, + { + "Close": "170", + "Date": "1998/11/27", + "High": "170.1875", + "Low": "166.625", + "Open": "166.625", + "Volume": "2674000" + }, + { + "Close": "165.125", + "Date": "1998/11/30", + "High": "170.5625", + "Low": "164.875", + "Open": "169.75", + "Volume": "5533400" + }, + { + "Close": "169.875", + "Date": "1998/12/1", + "High": "170", + "Low": "163.5", + "Open": "163.5", + "Volume": "7276600" + }, + { + "Close": "167.4375", + "Date": "1998/12/2", + "High": "169.25", + "Low": "164.75", + "Open": "168.9375", + "Volume": "6153600" + }, + { + "Close": "163.5", + "Date": "1998/12/3", + "High": "169.375", + "Low": "163", + "Open": "168.25", + "Volume": "6459400" + }, + { + "Close": "164.25", + "Date": "1998/12/4", + "High": "165.375", + "Low": "162.25", + "Open": "164.625", + "Volume": "6800200" + }, + { + "Close": "167.1875", + "Date": "1998/12/7", + "High": "168.1875", + "Low": "164.25", + "Open": "164.4375", + "Volume": "5303800" + }, + { + "Close": "168.1875", + "Date": "1998/12/8", + "High": "169.875", + "Low": "165.0625", + "Open": "168.1875", + "Volume": "7429200" + }, + { + "Close": "169.4375", + "Date": "1998/12/9", + "High": "169.9375", + "Low": "167.375", + "Open": "168.0625", + "Volume": "4680600" + }, + { + "Close": "165", + "Date": "1998/12/10", + "High": "170", + "Low": "163.75", + "Open": "169.3125", + "Volume": "7374600" + }, + { + "Close": "168", + "Date": "1998/12/11", + "High": "168.4375", + "Low": "163.25", + "Open": "164", + "Volume": "6984200" + }, + { + "Close": "162.875", + "Date": "1998/12/14", + "High": "167", + "Low": "162.75", + "Open": "166.5", + "Volume": "7547400" + }, + { + "Close": "165", + "Date": "1998/12/15", + "High": "165.8125", + "Low": "162.5", + "Open": "163.5", + "Volume": "7771600" + }, + { + "Close": "164.375", + "Date": "1998/12/16", + "High": "166.875", + "Low": "164.3125", + "Open": "166.875", + "Volume": "5652800" + }, + { + "Close": "166.0625", + "Date": "1998/12/17", + "High": "169.625", + "Low": "165.0625", + "Open": "165.4375", + "Volume": "8763200" + }, + { + "Close": "171.5625", + "Date": "1998/12/18", + "High": "172.1875", + "Low": "166.625", + "Open": "166.625", + "Volume": "9816800" + }, + { + "Close": "176.375", + "Date": "1998/12/21", + "High": "178.9375", + "Low": "171.5625", + "Open": "171.5625", + "Volume": "7478600" + }, + { + "Close": "182.25", + "Date": "1998/12/22", + "High": "183", + "Low": "175.25", + "Open": "177.5", + "Volume": "8704600" + }, + { + "Close": "185", + "Date": "1998/12/23", + "High": "185.375", + "Low": "181.125", + "Open": "182.6875", + "Volume": "7070000" + }, + { + "Close": "187.9375", + "Date": "1998/12/24", + "High": "187.9375", + "Low": "184.0625", + "Open": "184.75", + "Volume": "3049800" + }, + { + "Close": "189.25", + "Date": "1998/12/28", + "High": "189.9375", + "Low": "186", + "Open": "186.5", + "Volume": "5269200" + }, + { + "Close": "187.125", + "Date": "1998/12/29", + "High": "188.9375", + "Low": "187", + "Open": "188.625", + "Volume": "3762200" + }, + { + "Close": "186.75", + "Date": "1998/12/30", + "High": "188.625", + "Low": "186.3125", + "Open": "186.875", + "Volume": "4813200" + }, + { + "Close": "184.375", + "Date": "1998/12/31", + "High": "187.1875", + "Low": "183.5", + "Open": "186.75", + "Volume": "3864800" + }, + { + "Close": "183", + "Date": "1999/1/4", + "High": "186.5", + "Low": "181.5", + "Open": "185", + "Volume": "8149600" + }, + { + "Close": "189.625", + "Date": "1999/1/5", + "High": "189.875", + "Low": "182.8125", + "Open": "183", + "Volume": "9907600" + }, + { + "Close": "188.75", + "Date": "1999/1/6", + "High": "192.75", + "Low": "188.5", + "Open": "190.3125", + "Volume": "9539600" + }, + { + "Close": "190.1875", + "Date": "1999/1/7", + "High": "192.375", + "Low": "187", + "Open": "187.9375", + "Volume": "8306800" + }, + { + "Close": "187.5625", + "Date": "1999/1/8", + "High": "192", + "Low": "185.625", + "Open": "191", + "Volume": "9176800" + }, + { + "Close": "189.25", + "Date": "1999/1/11", + "High": "189.4375", + "Low": "187", + "Open": "189", + "Volume": "7261600" + }, + { + "Close": "185.0625", + "Date": "1999/1/12", + "High": "190", + "Low": "184", + "Open": "190", + "Volume": "6763600" + }, + { + "Close": "185.5", + "Date": "1999/1/13", + "High": "187.4375", + "Low": "179.5", + "Open": "183", + "Volume": "9905400" + }, + { + "Close": "180.625", + "Date": "1999/1/14", + "High": "184.9375", + "Low": "178.875", + "Open": "183.625", + "Volume": "9000000" + }, + { + "Close": "184.9375", + "Date": "1999/1/15", + "High": "185.5", + "Low": "181.25", + "Open": "182.25", + "Volume": "6789600" + }, + { + "Close": "192.25", + "Date": "1999/1/19", + "High": "192.5", + "Low": "185.5", + "Open": "187.75", + "Volume": "8398600" + }, + { + "Close": "194.5", + "Date": "1999/1/20", + "High": "199.25", + "Low": "192.625", + "Open": "195", + "Volume": "12634600" + }, + { + "Close": "197", + "Date": "1999/1/21", + "High": "198.25", + "Low": "192.0625", + "Open": "197.625", + "Volume": "20404600" + }, + { + "Close": "179.75", + "Date": "1999/1/22", + "High": "185.5", + "Low": "177.625", + "Open": "184", + "Volume": "38085000" + }, + { + "Close": "182", + "Date": "1999/1/25", + "High": "182.625", + "Low": "173.5", + "Open": "182.25", + "Volume": "23375400" + }, + { + "Close": "185.625", + "Date": "1999/1/26", + "High": "186.5", + "Low": "181.875", + "Open": "183.75", + "Volume": "19097000" + }, + { + "Close": "178.3125", + "Date": "1999/1/27", + "High": "186.8125", + "Low": "177.8125", + "Open": "186.8125", + "Volume": "17833200" + }, + { + "Close": "178.6875", + "Date": "1999/1/28", + "High": "181.3125", + "Low": "177.5625", + "Open": "179.5", + "Volume": "11941200" + }, + { + "Close": "183.25", + "Date": "1999/1/29", + "High": "183.9375", + "Low": "178.5", + "Open": "178.6875", + "Volume": "10115800" + }, + { + "Close": "179.75", + "Date": "1999/2/1", + "High": "184.5", + "Low": "179.5", + "Open": "184.5", + "Volume": "7407200" + }, + { + "Close": "176.75", + "Date": "1999/2/2", + "High": "180.6875", + "Low": "175", + "Open": "179.5625", + "Volume": "11727200" + }, + { + "Close": "175.25", + "Date": "1999/2/3", + "High": "177", + "Low": "173.0625", + "Open": "175.875", + "Volume": "11196600" + }, + { + "Close": "169.5625", + "Date": "1999/2/4", + "High": "176.5", + "Low": "169.25", + "Open": "175.1875", + "Volume": "11615200" + }, + { + "Close": "166", + "Date": "1999/2/5", + "High": "171", + "Low": "164.5625", + "Open": "170.4375", + "Volume": "16957600" + }, + { + "Close": "167", + "Date": "1999/2/8", + "High": "168.875", + "Low": "163.125", + "Open": "167", + "Volume": "11986600" + }, + { + "Close": "162.75", + "Date": "1999/2/9", + "High": "169.5", + "Low": "161.75", + "Open": "167", + "Volume": "10811200" + }, + { + "Close": "168.875", + "Date": "1999/2/10", + "High": "168.875", + "Low": "162.5", + "Open": "162.5", + "Volume": "10853400" + }, + { + "Close": "178.5", + "Date": "1999/2/11", + "High": "178.8125", + "Low": "168.125", + "Open": "170.25", + "Volume": "12564800" + }, + { + "Close": "172.75", + "Date": "1999/2/12", + "High": "176.25", + "Low": "171.1875", + "Open": "176.25", + "Volume": "11666200" + }, + { + "Close": "172.5", + "Date": "1999/2/16", + "High": "178.25", + "Low": "171.9375", + "Open": "175", + "Volume": "9019800" + }, + { + "Close": "170.5", + "Date": "1999/2/17", + "High": "174.3125", + "Low": "168.8125", + "Open": "170.5", + "Volume": "8977000" + }, + { + "Close": "174.25", + "Date": "1999/2/18", + "High": "174.5", + "Low": "170.1875", + "Open": "172", + "Volume": "8687800" + }, + { + "Close": "171.625", + "Date": "1999/2/19", + "High": "174.75", + "Low": "171", + "Open": "174.375", + "Volume": "7393200" + }, + { + "Close": "177.9375", + "Date": "1999/2/22", + "High": "177.9375", + "Low": "171.0625", + "Open": "172.25", + "Volume": "9200200" + }, + { + "Close": "176.9375", + "Date": "1999/2/23", + "High": "180", + "Low": "175.75", + "Open": "178", + "Volume": "9109200" + }, + { + "Close": "173.75", + "Date": "1999/2/24", + "High": "179.6875", + "Low": "173.125", + "Open": "177.25", + "Volume": "8637400" + }, + { + "Close": "173.625", + "Date": "1999/2/25", + "High": "173.9375", + "Low": "169.3125", + "Open": "172", + "Volume": "10469600" + }, + { + "Close": "169.75", + "Date": "1999/2/26", + "High": "171.875", + "Low": "166.5", + "Open": "171", + "Volume": "14798000" + }, + { + "Close": "168.375", + "Date": "1999/3/1", + "High": "169.5", + "Low": "165.125", + "Open": "169.5", + "Volume": "9590800" + }, + { + "Close": "167.75", + "Date": "1999/3/2", + "High": "170.9375", + "Low": "166.875", + "Open": "170.5", + "Volume": "8743600" + }, + { + "Close": "166.75", + "Date": "1999/3/3", + "High": "168.9375", + "Low": "165.0625", + "Open": "168.5", + "Volume": "7743000" + }, + { + "Close": "171", + "Date": "1999/3/4", + "High": "177", + "Low": "170.125", + "Open": "173.5", + "Volume": "21501000" + }, + { + "Close": "178.375", + "Date": "1999/3/5", + "High": "178.9375", + "Low": "173.75", + "Open": "173.875", + "Volume": "11606200" + }, + { + "Close": "178.875", + "Date": "1999/3/8", + "High": "180", + "Low": "177.0625", + "Open": "178.625", + "Volume": "7559800" + }, + { + "Close": "182.1875", + "Date": "1999/3/9", + "High": "184.875", + "Low": "178.5625", + "Open": "179.875", + "Volume": "10019000" + }, + { + "Close": "181.5", + "Date": "1999/3/10", + "High": "182.875", + "Low": "180.25", + "Open": "181.625", + "Volume": "7009800" + }, + { + "Close": "182.875", + "Date": "1999/3/11", + "High": "185.9375", + "Low": "181.5", + "Open": "182.375", + "Volume": "8591200" + }, + { + "Close": "178", + "Date": "1999/3/12", + "High": "183.4375", + "Low": "178", + "Open": "182.6875", + "Volume": "9683200" + }, + { + "Close": "182", + "Date": "1999/3/15", + "High": "182.3125", + "Low": "177.125", + "Open": "179.1875", + "Volume": "7902800" + }, + { + "Close": "181", + "Date": "1999/3/16", + "High": "183.5", + "Low": "180.1875", + "Open": "182", + "Volume": "6606000" + }, + { + "Close": "178.0625", + "Date": "1999/3/17", + "High": "180", + "Low": "178", + "Open": "179.5", + "Volume": "6915400" + }, + { + "Close": "177.625", + "Date": "1999/3/18", + "High": "177.75", + "Low": "172.9375", + "Open": "177.5", + "Volume": "14505000" + }, + { + "Close": "168.5625", + "Date": "1999/3/19", + "High": "178", + "Low": "168", + "Open": "176.625", + "Volume": "19496800" + }, + { + "Close": "167", + "Date": "1999/3/22", + "High": "170.5", + "Low": "166.625", + "Open": "168.6875", + "Volume": "11896600" + }, + { + "Close": "165.375", + "Date": "1999/3/23", + "High": "167.625", + "Low": "164", + "Open": "167", + "Volume": "10015000" + }, + { + "Close": "169.5", + "Date": "1999/3/24", + "High": "170.5", + "Low": "166.5", + "Open": "168", + "Volume": "11821000" + }, + { + "Close": "171.3125", + "Date": "1999/3/25", + "High": "173.25", + "Low": "169.5", + "Open": "172", + "Volume": "9828800" + }, + { + "Close": "172.375", + "Date": "1999/3/26", + "High": "175.875", + "Low": "170.5625", + "Open": "171.0625", + "Volume": "8266400" + }, + { + "Close": "177.875", + "Date": "1999/3/29", + "High": "178.75", + "Low": "174.375", + "Open": "175", + "Volume": "8098200" + }, + { + "Close": "178.5625", + "Date": "1999/3/30", + "High": "181.25", + "Low": "176.875", + "Open": "177", + "Volume": "7466800" + }, + { + "Close": "177.25", + "Date": "1999/3/31", + "High": "181.5", + "Low": "176.5", + "Open": "180", + "Volume": "5835200" + }, + { + "Close": "177", + "Date": "1999/4/1", + "High": "177.6875", + "Low": "174.6875", + "Open": "177.3125", + "Volume": "5310800" + }, + { + "Close": "183.9375", + "Date": "1999/4/5", + "High": "183.9375", + "Low": "178.5625", + "Open": "179", + "Volume": "9238400" + }, + { + "Close": "183", + "Date": "1999/4/6", + "High": "186.75", + "Low": "182.1875", + "Open": "183.125", + "Volume": "8742800" + }, + { + "Close": "186.5", + "Date": "1999/4/7", + "High": "187.625", + "Low": "179.0625", + "Open": "184", + "Volume": "11662000" + }, + { + "Close": "187", + "Date": "1999/4/8", + "High": "188.0625", + "Low": "182.3125", + "Open": "186", + "Volume": "8531000" + }, + { + "Close": "186.3125", + "Date": "1999/4/9", + "High": "188.0625", + "Low": "184", + "Open": "185.625", + "Volume": "6111800" + }, + { + "Close": "183.4375", + "Date": "1999/4/12", + "High": "183.625", + "Low": "181.0625", + "Open": "183.5", + "Volume": "8979800" + }, + { + "Close": "180", + "Date": "1999/4/13", + "High": "184", + "Low": "179.9375", + "Open": "184", + "Volume": "6846400" + }, + { + "Close": "179.375", + "Date": "1999/4/14", + "High": "183.875", + "Low": "177.625", + "Open": "182.75", + "Volume": "7261000" + }, + { + "Close": "177.75", + "Date": "1999/4/15", + "High": "179.5", + "Low": "173.5", + "Open": "179.5", + "Volume": "8330400" + }, + { + "Close": "170.375", + "Date": "1999/4/16", + "High": "177.5", + "Low": "170.125", + "Open": "177.5", + "Volume": "11928800" + }, + { + "Close": "166.75", + "Date": "1999/4/19", + "High": "172.3125", + "Low": "164.0625", + "Open": "170.875", + "Volume": "15383600" + }, + { + "Close": "169.75", + "Date": "1999/4/20", + "High": "169.75", + "Low": "163", + "Open": "167", + "Volume": "14716000" + }, + { + "Close": "171.875", + "Date": "1999/4/21", + "High": "171.875", + "Low": "165.125", + "Open": "169.75", + "Volume": "13161600" + }, + { + "Close": "194.5", + "Date": "1999/4/22", + "High": "198.75", + "Low": "192.6875", + "Open": "197.25", + "Volume": "39169800" + }, + { + "Close": "199.75", + "Date": "1999/4/23", + "High": "206.5625", + "Low": "192.9375", + "Open": "193.375", + "Volume": "20751000" + }, + { + "Close": "209.875", + "Date": "1999/4/26", + "High": "210.75", + "Low": "202.3125", + "Open": "204.75", + "Volume": "18666000" + }, + { + "Close": "212", + "Date": "1999/4/27", + "High": "215.25", + "Low": "208.5", + "Open": "212", + "Volume": "20929200" + }, + { + "Close": "205", + "Date": "1999/4/28", + "High": "210.5", + "Low": "203.5", + "Open": "209.25", + "Volume": "11341800" + }, + { + "Close": "204.8125", + "Date": "1999/4/29", + "High": "209", + "Low": "203.4375", + "Open": "205", + "Volume": "11279200" + }, + { + "Close": "209.1875", + "Date": "1999/4/30", + "High": "211", + "Low": "203.4375", + "Open": "208.5", + "Volume": "9031000" + }, + { + "Close": "212.25", + "Date": "1999/5/3", + "High": "212.25", + "Low": "206.3125", + "Open": "208", + "Volume": "9032200" + }, + { + "Close": "212", + "Date": "1999/5/4", + "High": "215.875", + "Low": "211.375", + "Open": "212.25", + "Volume": "11132400" + }, + { + "Close": "212.125", + "Date": "1999/5/5", + "High": "212.5", + "Low": "207.3125", + "Open": "212.125", + "Volume": "8472400" + }, + { + "Close": "209.25", + "Date": "1999/5/6", + "High": "214", + "Low": "208", + "Open": "211.875", + "Volume": "8339600" + }, + { + "Close": "217.25", + "Date": "1999/5/7", + "High": "217.5", + "Low": "211.0625", + "Open": "211.25", + "Volume": "9986800" + }, + { + "Close": "218.625", + "Date": "1999/5/10", + "High": "221.875", + "Low": "217.0625", + "Open": "217.25", + "Volume": "9548400" + }, + { + "Close": "221", + "Date": "1999/5/11", + "High": "221.875", + "Low": "217.5", + "Open": "220.5", + "Volume": "8372800" + }, + { + "Close": "225.5", + "Date": "1999/5/12", + "High": "228.4375", + "Low": "215.5", + "Open": "221.125", + "Volume": "12066800" + }, + { + "Close": "246", + "Date": "1999/5/13", + "High": "246", + "Low": "234", + "Open": "234", + "Volume": "24331400" + }, + { + "Close": "239.25", + "Date": "1999/5/14", + "High": "243.5", + "Low": "236", + "Open": "241.5", + "Volume": "18073800" + }, + { + "Close": "237.5", + "Date": "1999/5/17", + "High": "239.625", + "Low": "232", + "Open": "236", + "Volume": "11560400" + }, + { + "Close": "238.5", + "Date": "1999/5/18", + "High": "240.625", + "Low": "237", + "Open": "238.25", + "Volume": "8633800" + }, + { + "Close": "235.875", + "Date": "1999/5/19", + "High": "238.75", + "Low": "233.0625", + "Open": "238.25", + "Volume": "7791600" + }, + { + "Close": "232.875", + "Date": "1999/5/20", + "High": "236.375", + "Low": "232.5", + "Open": "235.625", + "Volume": "6441800" + }, + { + "Close": "230.375", + "Date": "1999/5/21", + "High": "233.375", + "Low": "229.1875", + "Open": "232.75", + "Volume": "6899800" + }, + { + "Close": "223.75", + "Date": "1999/5/24", + "High": "230.6875", + "Low": "221.75", + "Open": "230.3125", + "Volume": "8598200" + }, + { + "Close": "221.1875", + "Date": "1999/5/25", + "High": "226", + "Low": "221", + "Open": "222.5", + "Volume": "9405000" + }, + { + "Close": "236.25", + "Date": "1999/5/26", + "High": "236.625", + "Low": "221.4375", + "Open": "223", + "Volume": "16628000" + }, + { + "Close": "116", + "Date": "1999/5/27", + "High": "116.875", + "Low": "112.625", + "Open": "116.6875", + "Volume": "10552500" + }, + { + "Close": "116", + "Date": "1999/5/28", + "High": "116.75", + "Low": "114.1875", + "Open": "116", + "Volume": "6379500" + }, + { + "Close": "112", + "Date": "1999/6/1", + "High": "113.875", + "Low": "111.1875", + "Open": "113.625", + "Volume": "7158500" + }, + { + "Close": "113.75", + "Date": "1999/6/2", + "High": "114.625", + "Low": "109.4375", + "Open": "111.75", + "Volume": "7005000" + }, + { + "Close": "112.9375", + "Date": "1999/6/3", + "High": "115.3125", + "Low": "111.5625", + "Open": "114.5625", + "Volume": "5112600" + }, + { + "Close": "116", + "Date": "1999/6/4", + "High": "116", + "Low": "112.4375", + "Open": "113.625", + "Volume": "5258800" + }, + { + "Close": "120.5", + "Date": "1999/6/7", + "High": "121.6875", + "Low": "117.5", + "Open": "118.125", + "Volume": "6663900" + }, + { + "Close": "116.625", + "Date": "1999/6/8", + "High": "119.875", + "Low": "116.0625", + "Open": "119.875", + "Volume": "7395400" + }, + { + "Close": "117", + "Date": "1999/6/9", + "High": "120.875", + "Low": "116.5625", + "Open": "116.625", + "Volume": "5569600" + }, + { + "Close": "115.25", + "Date": "1999/6/10", + "High": "116.75", + "Low": "113.3125", + "Open": "115.875", + "Volume": "4851500" + }, + { + "Close": "114.3125", + "Date": "1999/6/11", + "High": "116.5", + "Low": "112.5625", + "Open": "115.0625", + "Volume": "4295200" + }, + { + "Close": "115.5", + "Date": "1999/6/14", + "High": "116", + "Low": "114", + "Open": "115.875", + "Volume": "4896700" + }, + { + "Close": "115.875", + "Date": "1999/6/15", + "High": "118.3125", + "Low": "114.75", + "Open": "117.5", + "Volume": "4884900" + }, + { + "Close": "120.6875", + "Date": "1999/6/16", + "High": "121.5", + "Low": "118.875", + "Open": "119.875", + "Volume": "6963100" + }, + { + "Close": "120.1875", + "Date": "1999/6/17", + "High": "122", + "Low": "119", + "Open": "119.25", + "Volume": "4675900" + }, + { + "Close": "120.75", + "Date": "1999/6/18", + "High": "121.4375", + "Low": "119.75", + "Open": "120.1875", + "Volume": "9159600" + }, + { + "Close": "124.75", + "Date": "1999/6/21", + "High": "125.75", + "Low": "122.625", + "Open": "122.875", + "Volume": "6466300" + }, + { + "Close": "123.375", + "Date": "1999/6/22", + "High": "127.75", + "Low": "123", + "Open": "123.875", + "Volume": "6791300" + }, + { + "Close": "122.9375", + "Date": "1999/6/23", + "High": "124.1875", + "Low": "121.75", + "Open": "122.25", + "Volume": "4418800" + }, + { + "Close": "122.5625", + "Date": "1999/6/24", + "High": "124.4375", + "Low": "121.5625", + "Open": "123.125", + "Volume": "5231200" + }, + { + "Close": "123.125", + "Date": "1999/6/25", + "High": "125.75", + "Low": "123.125", + "Open": "123.3125", + "Volume": "4563600" + }, + { + "Close": "122.5625", + "Date": "1999/6/28", + "High": "124.6875", + "Low": "122.1875", + "Open": "124", + "Volume": "6233300" + }, + { + "Close": "124.625", + "Date": "1999/6/29", + "High": "125.3125", + "Low": "122.75", + "Open": "123", + "Volume": "5223800" + }, + { + "Close": "129.25", + "Date": "1999/6/30", + "High": "132", + "Low": "124.375", + "Open": "124.8125", + "Volume": "8257300" + }, + { + "Close": "131", + "Date": "1999/7/1", + "High": "131.3125", + "Low": "128", + "Open": "130", + "Volume": "5911600" + }, + { + "Close": "132.25", + "Date": "1999/7/2", + "High": "132.25", + "Low": "129.5", + "Open": "130.875", + "Volume": "3543600" + }, + { + "Close": "131", + "Date": "1999/7/6", + "High": "133.875", + "Low": "130.8125", + "Open": "132.5", + "Volume": "5709300" + }, + { + "Close": "132.8125", + "Date": "1999/7/7", + "High": "133.5", + "Low": "130.625", + "Open": "131", + "Volume": "6648900" + }, + { + "Close": "134", + "Date": "1999/7/8", + "High": "135.5", + "Low": "132.125", + "Open": "132.5", + "Volume": "6092900" + }, + { + "Close": "137.375", + "Date": "1999/7/9", + "High": "137.4375", + "Low": "133.875", + "Open": "134", + "Volume": "4795900" + }, + { + "Close": "137.8125", + "Date": "1999/7/12", + "High": "138.6875", + "Low": "135.375", + "Open": "137.4375", + "Volume": "5046900" + }, + { + "Close": "137.875", + "Date": "1999/7/13", + "High": "139.1875", + "Low": "135.75", + "Open": "135.75", + "Volume": "5645700" + }, + { + "Close": "137.25", + "Date": "1999/7/14", + "High": "138.5", + "Low": "136.1875", + "Open": "138.3125", + "Volume": "4724000" + }, + { + "Close": "136.3125", + "Date": "1999/7/15", + "High": "138.125", + "Low": "134.5", + "Open": "138", + "Volume": "5583600" + }, + { + "Close": "136.25", + "Date": "1999/7/16", + "High": "137.5", + "Low": "135.375", + "Open": "136.375", + "Volume": "5123100" + }, + { + "Close": "134.625", + "Date": "1999/7/19", + "High": "138.875", + "Low": "133.6875", + "Open": "136.5", + "Volume": "7626500" + }, + { + "Close": "128.25", + "Date": "1999/7/20", + "High": "132.125", + "Low": "126.0625", + "Open": "132", + "Volume": "14307400" + }, + { + "Close": "129", + "Date": "1999/7/21", + "High": "129.75", + "Low": "126.875", + "Open": "127.5", + "Volume": "8792300" + }, + { + "Close": "123.875", + "Date": "1999/7/22", + "High": "128.5", + "Low": "123.5", + "Open": "127.625", + "Volume": "8869100" + }, + { + "Close": "124.8125", + "Date": "1999/7/23", + "High": "125.4375", + "Low": "122.625", + "Open": "124", + "Volume": "6964200" + }, + { + "Close": "123", + "Date": "1999/7/26", + "High": "125.125", + "Low": "122.75", + "Open": "123.625", + "Volume": "5519900" + }, + { + "Close": "126.25", + "Date": "1999/7/27", + "High": "126.5", + "Low": "123.5625", + "Open": "125", + "Volume": "6513500" + }, + { + "Close": "128.375", + "Date": "1999/7/28", + "High": "128.6875", + "Low": "125.8125", + "Open": "126.375", + "Volume": "5287600" + }, + { + "Close": "125.375", + "Date": "1999/7/29", + "High": "126.625", + "Low": "124.625", + "Open": "126.25", + "Volume": "5707500" + }, + { + "Close": "125.6875", + "Date": "1999/7/30", + "High": "126.6875", + "Low": "124.375", + "Open": "125.9375", + "Volume": "4324900" + }, + { + "Close": "122.25", + "Date": "1999/8/2", + "High": "126", + "Low": "121.8125", + "Open": "124", + "Volume": "4565100" + }, + { + "Close": "119.375", + "Date": "1999/8/3", + "High": "123.125", + "Low": "118.1875", + "Open": "122.75", + "Volume": "6855900" + }, + { + "Close": "118.5", + "Date": "1999/8/4", + "High": "121.875", + "Low": "118.0625", + "Open": "120", + "Volume": "5754800" + }, + { + "Close": "123.1875", + "Date": "1999/8/5", + "High": "124", + "Low": "117.5625", + "Open": "120", + "Volume": "7364500" + }, + { + "Close": "123.5", + "Date": "1999/8/6", + "High": "127", + "Low": "121", + "Open": "122", + "Volume": "6142600" + }, + { + "Close": "122.1875", + "Date": "1999/8/9", + "High": "124.4375", + "Low": "121.125", + "Open": "123.625", + "Volume": "4048100" + }, + { + "Close": "119.3125", + "Date": "1999/8/10", + "High": "122.5", + "Low": "118.9375", + "Open": "121.5", + "Volume": "5846200" + }, + { + "Close": "123.3125", + "Date": "1999/8/11", + "High": "123.75", + "Low": "119.8125", + "Open": "120.125", + "Volume": "5543000" + }, + { + "Close": "121.125", + "Date": "1999/8/12", + "High": "123.8125", + "Low": "121", + "Open": "123.75", + "Volume": "5027800" + }, + { + "Close": "123.375", + "Date": "1999/8/13", + "High": "124.5", + "Low": "122", + "Open": "122.75", + "Volume": "4400400" + }, + { + "Close": "127.375", + "Date": "1999/8/16", + "High": "127.875", + "Low": "124.5", + "Open": "125", + "Volume": "4889000" + }, + { + "Close": "128.5", + "Date": "1999/8/17", + "High": "128.5625", + "Low": "126.5625", + "Open": "128.5", + "Volume": "5136400" + }, + { + "Close": "123.875", + "Date": "1999/8/18", + "High": "129.625", + "Low": "123.5", + "Open": "128.375", + "Volume": "6607000" + }, + { + "Close": "122.9375", + "Date": "1999/8/19", + "High": "124.875", + "Low": "121.25", + "Open": "123.875", + "Volume": "7583300" + }, + { + "Close": "121.75", + "Date": "1999/8/20", + "High": "124.375", + "Low": "121.0625", + "Open": "124.375", + "Volume": "5962000" + }, + { + "Close": "124.4375", + "Date": "1999/8/23", + "High": "124.875", + "Low": "122.3125", + "Open": "122.75", + "Volume": "6043500" + }, + { + "Close": "122", + "Date": "1999/8/24", + "High": "123.625", + "Low": "121", + "Open": "123.375", + "Volume": "8442100" + }, + { + "Close": "122.375", + "Date": "1999/8/25", + "High": "124.0625", + "Low": "120.875", + "Open": "122", + "Volume": "6463000" + }, + { + "Close": "122.9375", + "Date": "1999/8/26", + "High": "125.875", + "Low": "122.0625", + "Open": "122.625", + "Volume": "6245300" + }, + { + "Close": "124", + "Date": "1999/8/27", + "High": "125.1875", + "Low": "122.75", + "Open": "125", + "Volume": "4354600" + }, + { + "Close": "123.1875", + "Date": "1999/8/30", + "High": "125.625", + "Low": "122.6875", + "Open": "124.25", + "Volume": "4773000" + }, + { + "Close": "124.5625", + "Date": "1999/8/31", + "High": "126", + "Low": "122.875", + "Open": "124.375", + "Volume": "6214400" + }, + { + "Close": "127.25", + "Date": "1999/9/1", + "High": "128.5", + "Low": "125.5", + "Open": "125.625", + "Volume": "6264400" + }, + { + "Close": "125.875", + "Date": "1999/9/2", + "High": "126.75", + "Low": "124.25", + "Open": "126.5", + "Volume": "5583100" + }, + { + "Close": "128.859299", + "Date": "1999/9/3", + "High": "129.75", + "Low": "128", + "Open": "128.375", + "Volume": "5282900" + }, + { + "Close": "132", + "Date": "1999/9/7", + "High": "132.6875", + "Low": "128.375", + "Open": "128.875", + "Volume": "7552900" + }, + { + "Close": "130.75", + "Date": "1999/9/8", + "High": "133.9375", + "Low": "130.6875", + "Open": "131.5", + "Volume": "7206100" + }, + { + "Close": "134.75", + "Date": "1999/9/9", + "High": "136.5", + "Low": "131.625", + "Open": "132.5", + "Volume": "8423100" + }, + { + "Close": "135", + "Date": "1999/9/10", + "High": "137.6875", + "Low": "134.375", + "Open": "137.5", + "Volume": "5089300" + }, + { + "Close": "132.375", + "Date": "1999/9/13", + "High": "135.5625", + "Low": "132", + "Open": "134.625", + "Volume": "4442300" + }, + { + "Close": "133.3125", + "Date": "1999/9/14", + "High": "133.5625", + "Low": "131.9375", + "Open": "132", + "Volume": "4590700" + }, + { + "Close": "131.9375", + "Date": "1999/9/15", + "High": "135", + "Low": "131.9375", + "Open": "134", + "Volume": "5655400" + }, + { + "Close": "130", + "Date": "1999/9/16", + "High": "132.375", + "Low": "129.5625", + "Open": "132", + "Volume": "6092600" + }, + { + "Close": "125.375", + "Date": "1999/9/17", + "High": "131.4375", + "Low": "123.75", + "Open": "131.375", + "Volume": "14857800" + }, + { + "Close": "130.125", + "Date": "1999/9/20", + "High": "130.875", + "Low": "126", + "Open": "126.5", + "Volume": "7543000" + }, + { + "Close": "127.125", + "Date": "1999/9/21", + "High": "129.625", + "Low": "126.25", + "Open": "128.75", + "Volume": "6983600" + }, + { + "Close": "125.1875", + "Date": "1999/9/22", + "High": "127.25", + "Low": "124.375", + "Open": "127.1875", + "Volume": "8091900" + }, + { + "Close": "122", + "Date": "1999/9/23", + "High": "127.8125", + "Low": "121.4375", + "Open": "127.5", + "Volume": "7590000" + }, + { + "Close": "125", + "Date": "1999/9/24", + "High": "125", + "Low": "120.4375", + "Open": "120.5", + "Volume": "7450800" + }, + { + "Close": "123", + "Date": "1999/9/27", + "High": "126.8125", + "Low": "121.375", + "Open": "126.625", + "Volume": "7075100" + }, + { + "Close": "123.5", + "Date": "1999/9/28", + "High": "124.75", + "Low": "121.6875", + "Open": "123", + "Volume": "7103400" + }, + { + "Close": "120.0625", + "Date": "1999/9/29", + "High": "122.8125", + "Low": "120", + "Open": "122.0625", + "Volume": "8775600" + }, + { + "Close": "121", + "Date": "1999/9/30", + "High": "122.25", + "Low": "119.625", + "Open": "121", + "Volume": "6642500" + }, + { + "Close": "117.75", + "Date": "1999/10/1", + "High": "121.0625", + "Low": "115.5", + "Open": "121", + "Volume": "10558900" + }, + { + "Close": "119.875", + "Date": "1999/10/4", + "High": "120", + "Low": "116.75", + "Open": "118", + "Volume": "7042000" + }, + { + "Close": "122", + "Date": "1999/10/5", + "High": "123.25", + "Low": "119.0625", + "Open": "122", + "Volume": "6435700" + }, + { + "Close": "119.1875", + "Date": "1999/10/6", + "High": "122.75", + "Low": "119.0625", + "Open": "122.25", + "Volume": "8054900" + }, + { + "Close": "116.375", + "Date": "1999/10/7", + "High": "119.1875", + "Low": "115.0625", + "Open": "119.125", + "Volume": "14240000" + }, + { + "Close": "113.5", + "Date": "1999/10/8", + "High": "115.0625", + "Low": "111.0625", + "Open": "115", + "Volume": "17867900" + }, + { + "Close": "114.25", + "Date": "1999/10/11", + "High": "116.6875", + "Low": "113.125", + "Open": "113.5", + "Volume": "7827100" + }, + { + "Close": "110", + "Date": "1999/10/12", + "High": "114.875", + "Low": "110", + "Open": "114", + "Volume": "8274900" + }, + { + "Close": "105.0625", + "Date": "1999/10/13", + "High": "110.875", + "Low": "105", + "Open": "110.8125", + "Volume": "15015000" + }, + { + "Close": "107", + "Date": "1999/10/14", + "High": "107.25", + "Low": "104.6875", + "Open": "106.5", + "Volume": "14178500" + }, + { + "Close": "107.875", + "Date": "1999/10/15", + "High": "108.875", + "Low": "103.875", + "Open": "106.4375", + "Volume": "13920700" + }, + { + "Close": "107", + "Date": "1999/10/18", + "High": "109", + "Low": "104.6875", + "Open": "108", + "Volume": "9678300" + }, + { + "Close": "107.125", + "Date": "1999/10/19", + "High": "108.5", + "Low": "105.4375", + "Open": "107", + "Volume": "9184700" + }, + { + "Close": "107", + "Date": "1999/10/20", + "High": "113.0625", + "Low": "107", + "Open": "108.625", + "Volume": "11376700" + }, + { + "Close": "91", + "Date": "1999/10/21", + "High": "93", + "Low": "89", + "Open": "93", + "Volume": "69444700" + }, + { + "Close": "93.9375", + "Date": "1999/10/22", + "High": "94.625", + "Low": "92.5", + "Open": "93.75", + "Volume": "26668700" + }, + { + "Close": "93.875", + "Date": "1999/10/25", + "High": "95.125", + "Low": "92.125", + "Open": "94.25", + "Volume": "13765400" + }, + { + "Close": "95.5", + "Date": "1999/10/26", + "High": "96", + "Low": "94.625", + "Open": "94.875", + "Volume": "11367400" + }, + { + "Close": "93", + "Date": "1999/10/27", + "High": "95.5625", + "Low": "92.8125", + "Open": "95.5", + "Volume": "9871400" + }, + { + "Close": "94.9375", + "Date": "1999/10/28", + "High": "95.3125", + "Low": "94.25", + "Open": "94.5", + "Volume": "9446700" + }, + { + "Close": "98.25", + "Date": "1999/10/29", + "High": "99", + "Low": "96.25", + "Open": "97", + "Volume": "11078500" + }, + { + "Close": "96.75", + "Date": "1999/11/1", + "High": "98.8125", + "Low": "96.375", + "Open": "98.5", + "Volume": "9551800" + }, + { + "Close": "94.8125", + "Date": "1999/11/2", + "High": "96.8125", + "Low": "93.6875", + "Open": "96.75", + "Volume": "11105400" + }, + { + "Close": "94.375", + "Date": "1999/11/3", + "High": "95.9375", + "Low": "93.5", + "Open": "95.875", + "Volume": "10369100" + }, + { + "Close": "91.5625", + "Date": "1999/11/4", + "High": "94.4375", + "Low": "90", + "Open": "94.4375", + "Volume": "16697600" + }, + { + "Close": "90.25", + "Date": "1999/11/5", + "High": "92.9375", + "Low": "90.1875", + "Open": "92.75", + "Volume": "13737600" + }, + { + "Close": "93.9375", + "Date": "1999/11/8", + "High": "93.9375", + "Low": "90.5", + "Open": "90.5", + "Volume": "8522300" + }, + { + "Close": "93.625", + "Date": "1999/11/9", + "High": "95.5", + "Low": "92.125", + "Open": "95.0625", + "Volume": "9551200" + }, + { + "Close": "97", + "Date": "1999/11/10", + "High": "97.0625", + "Low": "94.125", + "Open": "94.625", + "Volume": "8680300" + }, + { + "Close": "95", + "Date": "1999/11/11", + "High": "97.5", + "Low": "94.875", + "Open": "97.5", + "Volume": "7147500" + }, + { + "Close": "95.875", + "Date": "1999/11/12", + "High": "96.25", + "Low": "93", + "Open": "96", + "Volume": "9668400" + }, + { + "Close": "94.0625", + "Date": "1999/11/15", + "High": "96.375", + "Low": "93.875", + "Open": "96", + "Volume": "6259400" + }, + { + "Close": "94.625", + "Date": "1999/11/16", + "High": "95", + "Low": "93", + "Open": "94.625", + "Volume": "8537400" + }, + { + "Close": "93.75", + "Date": "1999/11/17", + "High": "94.875", + "Low": "92.625", + "Open": "94.875", + "Volume": "8355100" + }, + { + "Close": "98", + "Date": "1999/11/18", + "High": "98.25", + "Low": "93.5625", + "Open": "94", + "Volume": "18720500" + }, + { + "Close": "103.9375", + "Date": "1999/11/19", + "High": "105.125", + "Low": "98.375", + "Open": "99", + "Volume": "19678400" + }, + { + "Close": "107.875", + "Date": "1999/11/22", + "High": "108.4375", + "Low": "104.4375", + "Open": "105.5", + "Volume": "13681600" + }, + { + "Close": "106.0625", + "Date": "1999/11/23", + "High": "109.875", + "Low": "106", + "Open": "108.8125", + "Volume": "10665200" + }, + { + "Close": "104.5", + "Date": "1999/11/24", + "High": "105", + "Low": "101.8125", + "Open": "105", + "Volume": "9710400" + }, + { + "Close": "105", + "Date": "1999/11/26", + "High": "106", + "Low": "104.125", + "Open": "105.9375", + "Volume": "3108400" + }, + { + "Close": "104.1875", + "Date": "1999/11/29", + "High": "104.9375", + "Low": "103.375", + "Open": "104.9375", + "Volume": "5677700" + }, + { + "Close": "103.0625", + "Date": "1999/11/30", + "High": "104.5", + "Low": "102.125", + "Open": "103.6875", + "Volume": "5758700" + }, + { + "Close": "103.421799", + "Date": "1999/12/1", + "High": "104.4375", + "Low": "102.25", + "Open": "102.5625", + "Volume": "5336400" + }, + { + "Close": "105.265602", + "Date": "1999/12/2", + "High": "106.3125", + "Low": "103.375", + "Open": "103.4375", + "Volume": "6216900" + }, + { + "Close": "111.875", + "Date": "1999/12/3", + "High": "112.875", + "Low": "107.9375", + "Open": "109.8125", + "Volume": "14680300" + }, + { + "Close": "116", + "Date": "1999/12/6", + "High": "116.5", + "Low": "112.5", + "Open": "113", + "Volume": "9928300" + }, + { + "Close": "116.625", + "Date": "1999/12/7", + "High": "119.1875", + "Low": "115.4375", + "Open": "117", + "Volume": "11326100" + }, + { + "Close": "118.281197", + "Date": "1999/12/8", + "High": "121", + "Low": "115.5", + "Open": "116.25", + "Volume": "8139800" + }, + { + "Close": "113.375", + "Date": "1999/12/9", + "High": "122.125", + "Low": "112.25", + "Open": "120.5", + "Volume": "16643000" + }, + { + "Close": "109", + "Date": "1999/12/10", + "High": "111.9375", + "Low": "107.5625", + "Open": "111.625", + "Volume": "12588800" + }, + { + "Close": "109.703102", + "Date": "1999/12/13", + "High": "112.75", + "Low": "106.5625", + "Open": "108.125", + "Volume": "7135200" + }, + { + "Close": "109.25", + "Date": "1999/12/14", + "High": "110.1875", + "Low": "106.875", + "Open": "110.1875", + "Volume": "7437900" + }, + { + "Close": "107", + "Date": "1999/12/15", + "High": "107.9375", + "Low": "104.5", + "Open": "107.75", + "Volume": "9437900" + }, + { + "Close": "109.1875", + "Date": "1999/12/16", + "High": "109.6875", + "Low": "105.75", + "Open": "108", + "Volume": "7122300" + }, + { + "Close": "110", + "Date": "1999/12/17", + "High": "111.0625", + "Low": "108.625", + "Open": "110.6875", + "Volume": "7676800" + }, + { + "Close": "109.203102", + "Date": "1999/12/20", + "High": "110.4375", + "Low": "107.75", + "Open": "109.0625", + "Volume": "4836300" + }, + { + "Close": "110.125", + "Date": "1999/12/21", + "High": "110.125", + "Low": "108.0625", + "Open": "108.5", + "Volume": "4773500" + }, + { + "Close": "108", + "Date": "1999/12/22", + "High": "110.3125", + "Low": "108", + "Open": "109.875", + "Volume": "4005600" + }, + { + "Close": "108.625", + "Date": "1999/12/23", + "High": "110.4375", + "Low": "108.1875", + "Open": "109.125", + "Volume": "4528700" + }, + { + "Close": "109.75", + "Date": "1999/12/27", + "High": "110", + "Low": "108.125", + "Open": "109.6875", + "Volume": "3740700" + }, + { + "Close": "109.8125", + "Date": "1999/12/28", + "High": "110.75", + "Low": "109.0625", + "Open": "109.5625", + "Volume": "4083100" + }, + { + "Close": "109", + "Date": "1999/12/29", + "High": "110.5", + "Low": "108.75", + "Open": "110.4375", + "Volume": "2683300" + }, + { + "Close": "108.75", + "Date": "1999/12/30", + "High": "110.5", + "Low": "108.5625", + "Open": "109.6875", + "Volume": "3435100" + }, + { + "Close": "107.875", + "Date": "1999/12/31", + "High": "109.5", + "Low": "106.625", + "Open": "109.1875", + "Volume": "2870300" + }, + { + "Close": "116", + "Date": "2000/1/3", + "High": "116", + "Low": "111.875", + "Open": "112.4375", + "Volume": "10347700" + }, + { + "Close": "112.0625", + "Date": "2000/1/4", + "High": "114.5", + "Low": "110.875", + "Open": "114", + "Volume": "8227800" + }, + { + "Close": "116", + "Date": "2000/1/5", + "High": "119.75", + "Low": "112.125", + "Open": "112.9375", + "Volume": "12733200" + }, + { + "Close": "114", + "Date": "2000/1/6", + "High": "118.9375", + "Low": "113.5", + "Open": "118", + "Volume": "7971900" + }, + { + "Close": "113.5", + "Date": "2000/1/7", + "High": "117.9375", + "Low": "110.625", + "Open": "117.25", + "Volume": "11856700" + }, + { + "Close": "118", + "Date": "2000/1/10", + "High": "119.375", + "Low": "115.375", + "Open": "117.25", + "Volume": "8540500" + }, + { + "Close": "119", + "Date": "2000/1/11", + "High": "121.125", + "Low": "116.625", + "Open": "117.875", + "Volume": "7873300" + }, + { + "Close": "119.5", + "Date": "2000/1/12", + "High": "122", + "Low": "118.25", + "Open": "119.625", + "Volume": "6803800" + }, + { + "Close": "118.25", + "Date": "2000/1/13", + "High": "121", + "Low": "115.75", + "Open": "119.9375", + "Volume": "8489700" + }, + { + "Close": "119.625", + "Date": "2000/1/14", + "High": "123.3125", + "Low": "117.5", + "Open": "120.9375", + "Volume": "10956600" + }, + { + "Close": "115.75", + "Date": "2000/1/18", + "High": "119.75", + "Low": "115", + "Open": "119.6875", + "Volume": "7643900" + }, + { + "Close": "119.5", + "Date": "2000/1/19", + "High": "122", + "Low": "112.6875", + "Open": "115.5625", + "Volume": "8634500" + }, + { + "Close": "119", + "Date": "2000/1/20", + "High": "124.75", + "Low": "119", + "Open": "123", + "Volume": "17783400" + }, + { + "Close": "121.5", + "Date": "2000/1/21", + "High": "123", + "Low": "119.9375", + "Open": "121.875", + "Volume": "7868700" + }, + { + "Close": "121.5", + "Date": "2000/1/24", + "High": "122.875", + "Low": "116.5625", + "Open": "121.875", + "Volume": "6499200" + }, + { + "Close": "119.125", + "Date": "2000/1/25", + "High": "119.5", + "Low": "116", + "Open": "116.75", + "Volume": "6936900" + }, + { + "Close": "116.75", + "Date": "2000/1/26", + "High": "119.9375", + "Low": "116", + "Open": "119.0625", + "Volume": "4895100" + }, + { + "Close": "113.5", + "Date": "2000/1/27", + "High": "118.4375", + "Low": "111.625", + "Open": "118", + "Volume": "8324600" + }, + { + "Close": "111.5625", + "Date": "2000/1/28", + "High": "114.1875", + "Low": "110.0625", + "Open": "112.75", + "Volume": "6669400" + }, + { + "Close": "112.25", + "Date": "2000/1/31", + "High": "112.8125", + "Low": "109.625", + "Open": "111.375", + "Volume": "6202700" + }, + { + "Close": "110", + "Date": "2000/2/1", + "High": "113.4375", + "Low": "109.125", + "Open": "112.375", + "Volume": "7304700" + }, + { + "Close": "113.5", + "Date": "2000/2/2", + "High": "115.8125", + "Low": "110.375", + "Open": "112", + "Volume": "7707700" + }, + { + "Close": "117.125", + "Date": "2000/2/3", + "High": "117.5", + "Low": "114.0625", + "Open": "115", + "Volume": "6213800" + }, + { + "Close": "115.625", + "Date": "2000/2/4", + "High": "118.4375", + "Low": "114.8125", + "Open": "118.1875", + "Volume": "5405300" + }, + { + "Close": "114.125", + "Date": "2000/2/7", + "High": "116.875", + "Low": "113.125", + "Open": "116", + "Volume": "5779500" + }, + { + "Close": "118.8125", + "Date": "2000/2/8", + "High": "119", + "Low": "116.1875", + "Open": "116.9375", + "Volume": "5464300" + }, + { + "Close": "117.375", + "Date": "2000/2/9", + "High": "119.75", + "Low": "117", + "Open": "119", + "Volume": "5374700" + }, + { + "Close": "119.125", + "Date": "2000/2/10", + "High": "119.125", + "Low": "116.875", + "Open": "117.6875", + "Volume": "4446600" + }, + { + "Close": "115.375", + "Date": "2000/2/11", + "High": "119.4375", + "Low": "114.5625", + "Open": "119.0625", + "Volume": "5749400" + }, + { + "Close": "116.0625", + "Date": "2000/2/14", + "High": "116.375", + "Low": "114.5", + "Open": "116", + "Volume": "4544000" + }, + { + "Close": "117.125", + "Date": "2000/2/15", + "High": "117.4375", + "Low": "113.875", + "Open": "115.875", + "Volume": "5177500" + }, + { + "Close": "115.75", + "Date": "2000/2/16", + "High": "117.3125", + "Low": "115.25", + "Open": "116.5", + "Volume": "3966900" + }, + { + "Close": "116.75", + "Date": "2000/2/17", + "High": "118.875", + "Low": "115.75", + "Open": "116.5", + "Volume": "5237500" + }, + { + "Close": "112.5", + "Date": "2000/2/18", + "High": "115.9375", + "Low": "111.5", + "Open": "115.25", + "Volume": "7673400" + }, + { + "Close": "111", + "Date": "2000/2/22", + "High": "113.4375", + "Low": "108.75", + "Open": "112", + "Volume": "7654800" + }, + { + "Close": "108.75", + "Date": "2000/2/23", + "High": "110.5", + "Low": "108.5", + "Open": "110.5", + "Volume": "7435300" + }, + { + "Close": "110.5", + "Date": "2000/2/24", + "High": "111", + "Low": "108.1875", + "Open": "108.8125", + "Volume": "9112000" + }, + { + "Close": "108", + "Date": "2000/2/25", + "High": "109.875", + "Low": "104.9375", + "Open": "109.875", + "Volume": "10312200" + }, + { + "Close": "104.5", + "Date": "2000/2/28", + "High": "106.5", + "Low": "103.9375", + "Open": "104.625", + "Volume": "8479900" + }, + { + "Close": "102.75", + "Date": "2000/2/29", + "High": "105.5625", + "Low": "100.9375", + "Open": "105.5625", + "Volume": "10484900" + }, + { + "Close": "100.25", + "Date": "2000/3/1", + "High": "105.5", + "Low": "100.0625", + "Open": "102", + "Volume": "10807800" + }, + { + "Close": "103.125", + "Date": "2000/3/2", + "High": "105.4375", + "Low": "99.5", + "Open": "100.5", + "Volume": "11192900" + }, + { + "Close": "108", + "Date": "2000/3/3", + "High": "110", + "Low": "106.0625", + "Open": "107.25", + "Volume": "10162800" + }, + { + "Close": "103.0625", + "Date": "2000/3/6", + "High": "111", + "Low": "101", + "Open": "109.9375", + "Volume": "10747400" + }, + { + "Close": "103", + "Date": "2000/3/7", + "High": "107", + "Low": "101.6875", + "Open": "106", + "Volume": "10035100" + }, + { + "Close": "106.25", + "Date": "2000/3/8", + "High": "106.875", + "Low": "102.75", + "Open": "103", + "Volume": "8376400" + }, + { + "Close": "108", + "Date": "2000/3/9", + "High": "108", + "Low": "104.125", + "Open": "106.5", + "Volume": "6334100" + }, + { + "Close": "105.25", + "Date": "2000/3/10", + "High": "109", + "Low": "105", + "Open": "107.625", + "Volume": "7093200" + }, + { + "Close": "107.6875", + "Date": "2000/3/13", + "High": "109", + "Low": "102.5", + "Open": "104", + "Volume": "7871000" + }, + { + "Close": "108.625", + "Date": "2000/3/14", + "High": "110", + "Low": "107.375", + "Open": "107.75", + "Volume": "7973700" + }, + { + "Close": "107", + "Date": "2000/3/15", + "High": "108.25", + "Low": "106.125", + "Open": "107.5", + "Volume": "5665900" + }, + { + "Close": "109", + "Date": "2000/3/16", + "High": "109.8125", + "Low": "107.875", + "Open": "109", + "Volume": "6622500" + }, + { + "Close": "110", + "Date": "2000/3/17", + "High": "111.6875", + "Low": "107.6875", + "Open": "108.25", + "Volume": "8857300" + }, + { + "Close": "112.75", + "Date": "2000/3/20", + "High": "113.375", + "Low": "109.9375", + "Open": "110", + "Volume": "6563500" + }, + { + "Close": "113.5", + "Date": "2000/3/21", + "High": "114.6875", + "Low": "111.9375", + "Open": "112.8125", + "Volume": "6771600" + }, + { + "Close": "114.25", + "Date": "2000/3/22", + "High": "115.375", + "Low": "113.875", + "Open": "114.5", + "Volume": "6137800" + }, + { + "Close": "115.25", + "Date": "2000/3/23", + "High": "115.875", + "Low": "111.625", + "Open": "115.875", + "Volume": "6492400" + }, + { + "Close": "120.625", + "Date": "2000/3/24", + "High": "122.25", + "Low": "115.0625", + "Open": "115.375", + "Volume": "12125600" + }, + { + "Close": "126.875", + "Date": "2000/3/27", + "High": "128.25", + "Low": "124.625", + "Open": "125", + "Volume": "11862900" + }, + { + "Close": "122.5", + "Date": "2000/3/28", + "High": "127", + "Low": "122.0625", + "Open": "125.75", + "Volume": "8149600" + }, + { + "Close": "119", + "Date": "2000/3/29", + "High": "122.4375", + "Low": "118.5", + "Open": "122.3125", + "Volume": "7312300" + }, + { + "Close": "122.75", + "Date": "2000/3/30", + "High": "123", + "Low": "118.6875", + "Open": "118.875", + "Volume": "9158000" + }, + { + "Close": "118.375", + "Date": "2000/3/31", + "High": "123.75", + "Low": "117.0625", + "Open": "122.625", + "Volume": "8015200" + }, + { + "Close": "122", + "Date": "2000/4/3", + "High": "122.375", + "Low": "119.4375", + "Open": "120", + "Volume": "7715600" + }, + { + "Close": "121.1875", + "Date": "2000/4/4", + "High": "126.9375", + "Low": "115.0625", + "Open": "121.5", + "Volume": "16667200" + }, + { + "Close": "125", + "Date": "2000/4/5", + "High": "125.75", + "Low": "119.75", + "Open": "120.5", + "Volume": "8693500" + }, + { + "Close": "122.75", + "Date": "2000/4/6", + "High": "128", + "Low": "122.625", + "Open": "123.5", + "Volume": "8887400" + }, + { + "Close": "123.125", + "Date": "2000/4/7", + "High": "125.6875", + "Low": "121.5", + "Open": "123.5", + "Volume": "5380300" + }, + { + "Close": "122.125", + "Date": "2000/4/10", + "High": "125.375", + "Low": "121.5625", + "Open": "124.75", + "Volume": "5507300" + }, + { + "Close": "119.375", + "Date": "2000/4/11", + "High": "121.625", + "Low": "117.8125", + "Open": "121.625", + "Volume": "7738700" + }, + { + "Close": "113.75", + "Date": "2000/4/12", + "High": "119.625", + "Low": "111.6875", + "Open": "119.625", + "Volume": "8885200" + }, + { + "Close": "110.625", + "Date": "2000/4/13", + "High": "114.3125", + "Low": "110", + "Open": "112.5", + "Volume": "8236400" + }, + { + "Close": "105", + "Date": "2000/4/14", + "High": "112.75", + "Low": "102.875", + "Open": "109.8125", + "Volume": "11782000" + }, + { + "Close": "111.875", + "Date": "2000/4/17", + "High": "112.25", + "Low": "103.3125", + "Open": "103.875", + "Volume": "9969500" + }, + { + "Close": "111.5", + "Date": "2000/4/18", + "High": "115.125", + "Low": "110.0625", + "Open": "112.25", + "Volume": "8205500" + }, + { + "Close": "105", + "Date": "2000/4/19", + "High": "109.75", + "Low": "102.8125", + "Open": "109.75", + "Volume": "14674500" + }, + { + "Close": "104", + "Date": "2000/4/20", + "High": "105.25", + "Low": "102.0625", + "Open": "105", + "Volume": "10633300" + }, + { + "Close": "106.5", + "Date": "2000/4/24", + "High": "107.1875", + "Low": "101.25", + "Open": "102", + "Volume": "8523100" + }, + { + "Close": "112.5", + "Date": "2000/4/25", + "High": "113", + "Low": "106.4375", + "Open": "106.5", + "Volume": "9576400" + }, + { + "Close": "110.5", + "Date": "2000/4/26", + "High": "113.9375", + "Low": "109", + "Open": "112.5", + "Volume": "6182800" + }, + { + "Close": "110.625", + "Date": "2000/4/27", + "High": "113.125", + "Low": "108.6875", + "Open": "109.5", + "Volume": "6317500" + }, + { + "Close": "111.5", + "Date": "2000/4/28", + "High": "112.6875", + "Low": "110.125", + "Open": "112", + "Volume": "4888600" + }, + { + "Close": "112", + "Date": "2000/5/1", + "High": "113.1875", + "Low": "110.4375", + "Open": "112.5", + "Volume": "4196100" + }, + { + "Close": "111.375", + "Date": "2000/5/2", + "High": "113.625", + "Low": "110.6875", + "Open": "111", + "Volume": "4085000" + }, + { + "Close": "108.125", + "Date": "2000/5/3", + "High": "111.125", + "Low": "106.5625", + "Open": "110.5", + "Volume": "5543800" + }, + { + "Close": "107.625", + "Date": "2000/5/4", + "High": "109.1875", + "Low": "107.1875", + "Open": "109.125", + "Volume": "3631300" + }, + { + "Close": "107.875", + "Date": "2000/5/5", + "High": "109.625", + "Low": "106.5", + "Open": "106.625", + "Volume": "4695100" + }, + { + "Close": "109.75", + "Date": "2000/5/8", + "High": "110.375", + "Low": "107.625", + "Open": "108.0625", + "Volume": "4826900" + }, + { + "Close": "109", + "Date": "2000/5/9", + "High": "110.625", + "Low": "108.25", + "Open": "110.5", + "Volume": "4864900" + }, + { + "Close": "103", + "Date": "2000/5/10", + "High": "105.6875", + "Low": "102.0625", + "Open": "105.5", + "Volume": "10012700" + }, + { + "Close": "104.4375", + "Date": "2000/5/11", + "High": "107.5", + "Low": "103.1875", + "Open": "104", + "Volume": "8106200" + }, + { + "Close": "104.4375", + "Date": "2000/5/12", + "High": "105.75", + "Low": "103.25", + "Open": "103.75", + "Volume": "5599700" + }, + { + "Close": "104.1875", + "Date": "2000/5/15", + "High": "104.875", + "Low": "102", + "Open": "104", + "Volume": "5907800" + }, + { + "Close": "109", + "Date": "2000/5/16", + "High": "109.25", + "Low": "105", + "Open": "105.125", + "Volume": "7265800" + }, + { + "Close": "107.875", + "Date": "2000/5/17", + "High": "108.875", + "Low": "106.125", + "Open": "107.5", + "Volume": "5524500" + }, + { + "Close": "106.0625", + "Date": "2000/5/18", + "High": "107.3125", + "Low": "104.6875", + "Open": "106.125", + "Volume": "4577200" + }, + { + "Close": "106.4375", + "Date": "2000/5/19", + "High": "107.5", + "Low": "105", + "Open": "106.0625", + "Volume": "6419200" + }, + { + "Close": "109.25", + "Date": "2000/5/22", + "High": "109.25", + "Low": "103.4375", + "Open": "106", + "Volume": "6769400" + }, + { + "Close": "107.375", + "Date": "2000/5/23", + "High": "110", + "Low": "107.125", + "Open": "109", + "Volume": "5978900" + }, + { + "Close": "109.625", + "Date": "2000/5/24", + "High": "110", + "Low": "104.1875", + "Open": "106.5", + "Volume": "8184200" + }, + { + "Close": "106.5", + "Date": "2000/5/25", + "High": "112.25", + "Low": "106.375", + "Open": "110.5", + "Volume": "5967600" + }, + { + "Close": "106.9375", + "Date": "2000/5/26", + "High": "107.1875", + "Low": "104.5625", + "Open": "105.5", + "Volume": "4296900" + }, + { + "Close": "110.9375", + "Date": "2000/5/30", + "High": "111", + "Low": "107.6875", + "Open": "107.75", + "Volume": "3617500" + }, + { + "Close": "107.3125", + "Date": "2000/5/31", + "High": "110.75", + "Low": "107.1875", + "Open": "110.5", + "Volume": "3732500" + }, + { + "Close": "106", + "Date": "2000/6/1", + "High": "108.9375", + "Low": "105.5", + "Open": "107.5625", + "Volume": "5712500" + }, + { + "Close": "108.8125", + "Date": "2000/6/2", + "High": "109.75", + "Low": "107.625", + "Open": "109", + "Volume": "5473300" + }, + { + "Close": "112.8125", + "Date": "2000/6/5", + "High": "114.1875", + "Low": "108.4375", + "Open": "108.4375", + "Volume": "7281400" + }, + { + "Close": "112.375", + "Date": "2000/6/6", + "High": "114.625", + "Low": "111.25", + "Open": "112.25", + "Volume": "5369400" + }, + { + "Close": "121", + "Date": "2000/6/7", + "High": "121.75", + "Low": "111.5", + "Open": "112.5", + "Volume": "11115500" + }, + { + "Close": "119.75", + "Date": "2000/6/8", + "High": "122.3125", + "Low": "117.5", + "Open": "119.375", + "Volume": "9325600" + }, + { + "Close": "119.6875", + "Date": "2000/6/9", + "High": "120.75", + "Low": "118.875", + "Open": "119.875", + "Volume": "4739100" + }, + { + "Close": "118.843697", + "Date": "2000/6/12", + "High": "120.4375", + "Low": "118.843697", + "Open": "119.125", + "Volume": "3640300" + }, + { + "Close": "119.3125", + "Date": "2000/6/13", + "High": "119.9375", + "Low": "116.75", + "Open": "118.875", + "Volume": "4008600" + }, + { + "Close": "116", + "Date": "2000/6/14", + "High": "120", + "Low": "115.5", + "Open": "118.875", + "Volume": "5282600" + }, + { + "Close": "116.8125", + "Date": "2000/6/15", + "High": "119", + "Low": "115.875", + "Open": "116", + "Volume": "5386300" + }, + { + "Close": "113.25", + "Date": "2000/6/16", + "High": "117.6875", + "Low": "113.25", + "Open": "116.3125", + "Volume": "8046200" + }, + { + "Close": "120.375", + "Date": "2000/6/19", + "High": "120.375", + "Low": "113.25", + "Open": "113.5", + "Volume": "6059200" + }, + { + "Close": "116.375", + "Date": "2000/6/20", + "High": "120.6875", + "Low": "115.375", + "Open": "120", + "Volume": "7103800" + }, + { + "Close": "114.5", + "Date": "2000/6/21", + "High": "115.9375", + "Low": "113.5", + "Open": "115.5625", + "Volume": "6487000" + }, + { + "Close": "111.8125", + "Date": "2000/6/22", + "High": "114.3125", + "Low": "111.25", + "Open": "114.125", + "Volume": "4853100" + }, + { + "Close": "111.875", + "Date": "2000/6/23", + "High": "113.625", + "Low": "110.8125", + "Open": "113.5", + "Volume": "3360900" + }, + { + "Close": "114.406197", + "Date": "2000/6/26", + "High": "115.75", + "Low": "112.875", + "Open": "113", + "Volume": "3625900" + }, + { + "Close": "109.75", + "Date": "2000/6/27", + "High": "112.8125", + "Low": "108.75", + "Open": "111.625", + "Volume": "6607900" + }, + { + "Close": "113.781197", + "Date": "2000/6/28", + "High": "115.1875", + "Low": "109.875", + "Open": "110", + "Volume": "6436600" + }, + { + "Close": "114", + "Date": "2000/6/29", + "High": "114.375", + "Low": "110.0625", + "Open": "111.75", + "Volume": "7688500" + }, + { + "Close": "109.5625", + "Date": "2000/6/30", + "High": "113.1875", + "Low": "108.625", + "Open": "112.6875", + "Volume": "8612600" + }, + { + "Close": "109.5", + "Date": "2000/7/3", + "High": "109.875", + "Low": "108.3125", + "Open": "108.75", + "Volume": "2304400" + }, + { + "Close": "105", + "Date": "2000/7/5", + "High": "105.625", + "Low": "101.125", + "Open": "105.625", + "Volume": "14339600" + }, + { + "Close": "101.25", + "Date": "2000/7/6", + "High": "105.125", + "Low": "100", + "Open": "105", + "Volume": "12932700" + }, + { + "Close": "105.0625", + "Date": "2000/7/7", + "High": "105.0625", + "Low": "101.625", + "Open": "102.6875", + "Volume": "9031700" + }, + { + "Close": "103.3125", + "Date": "2000/7/10", + "High": "104.9375", + "Low": "102.875", + "Open": "104.6875", + "Volume": "4212200" + }, + { + "Close": "102", + "Date": "2000/7/11", + "High": "104", + "Low": "101", + "Open": "103.25", + "Volume": "5619800" + }, + { + "Close": "104.625", + "Date": "2000/7/12", + "High": "105.875", + "Low": "102.625", + "Open": "103.1875", + "Volume": "5550500" + }, + { + "Close": "104", + "Date": "2000/7/13", + "High": "105.9375", + "Low": "102", + "Open": "105.4375", + "Volume": "5669700" + }, + { + "Close": "103.9375", + "Date": "2000/7/14", + "High": "104.875", + "Low": "103.125", + "Open": "103.75", + "Volume": "4020000" + }, + { + "Close": "105.5", + "Date": "2000/7/17", + "High": "107.875", + "Low": "104.1875", + "Open": "104.4375", + "Volume": "6632700" + }, + { + "Close": "103.3125", + "Date": "2000/7/18", + "High": "104.8125", + "Low": "102.625", + "Open": "104.125", + "Volume": "6452700" + }, + { + "Close": "108.75", + "Date": "2000/7/19", + "High": "109.5", + "Low": "101", + "Open": "102.375", + "Volume": "7781400" + }, + { + "Close": "117.25", + "Date": "2000/7/20", + "High": "117.8125", + "Low": "111.75", + "Open": "112", + "Volume": "23048400" + }, + { + "Close": "114.75", + "Date": "2000/7/21", + "High": "117", + "Low": "113.75", + "Open": "117", + "Volume": "8966400" + }, + { + "Close": "112.5", + "Date": "2000/7/24", + "High": "115.625", + "Low": "111.625", + "Open": "114.125", + "Volume": "6814400" + }, + { + "Close": "112", + "Date": "2000/7/25", + "High": "113.375", + "Low": "110.25", + "Open": "113.25", + "Volume": "5566900" + }, + { + "Close": "109.875", + "Date": "2000/7/26", + "High": "112.375", + "Low": "108.875", + "Open": "111", + "Volume": "6670400" + }, + { + "Close": "110.3125", + "Date": "2000/7/27", + "High": "111.5", + "Low": "109.3125", + "Open": "109.875", + "Volume": "4047400" + }, + { + "Close": "111.8125", + "Date": "2000/7/28", + "High": "112.5", + "Low": "108.875", + "Open": "111.125", + "Volume": "5355600" + }, + { + "Close": "112.25", + "Date": "2000/7/31", + "High": "113.6875", + "Low": "110.0625", + "Open": "110.5", + "Volume": "5113500" + }, + { + "Close": "110.5", + "Date": "2000/8/1", + "High": "112.4375", + "Low": "110.25", + "Open": "112", + "Volume": "2996500" + }, + { + "Close": "114.25", + "Date": "2000/8/2", + "High": "114.875", + "Low": "110.75", + "Open": "111", + "Volume": "5877900" + }, + { + "Close": "116", + "Date": "2000/8/3", + "High": "116.5", + "Low": "112.3125", + "Open": "113", + "Volume": "5567400" + }, + { + "Close": "115.875", + "Date": "2000/8/4", + "High": "116.5", + "Low": "114.3125", + "Open": "116", + "Volume": "4460500" + }, + { + "Close": "116.3125", + "Date": "2000/8/7", + "High": "119", + "Low": "115.8125", + "Open": "116.625", + "Volume": "5910700" + }, + { + "Close": "118.875", + "Date": "2000/8/8", + "High": "119.625", + "Low": "115.5625", + "Open": "115.6875", + "Volume": "5736700" + }, + { + "Close": "118.75", + "Date": "2000/8/9", + "High": "120.8125", + "Low": "118.75", + "Open": "119", + "Volume": "6585400" + }, + { + "Close": "119.75", + "Date": "2000/8/10", + "High": "120.25", + "Low": "117.875", + "Open": "118.75", + "Volume": "5484100" + }, + { + "Close": "120.625", + "Date": "2000/8/11", + "High": "121.8125", + "Low": "119.1875", + "Open": "119.75", + "Volume": "6142400" + }, + { + "Close": "123.25", + "Date": "2000/8/14", + "High": "123.6875", + "Low": "119.3125", + "Open": "120", + "Volume": "4949400" + }, + { + "Close": "122", + "Date": "2000/8/15", + "High": "122.625", + "Low": "120.75", + "Open": "122.0625", + "Volume": "4378100" + }, + { + "Close": "122.375", + "Date": "2000/8/16", + "High": "122.9375", + "Low": "119.5", + "Open": "121.0625", + "Volume": "5946000" + }, + { + "Close": "122.5", + "Date": "2000/8/17", + "High": "122.8125", + "Low": "119.5", + "Open": "119.75", + "Volume": "4338400" + }, + { + "Close": "120.4375", + "Date": "2000/8/18", + "High": "123.375", + "Low": "120.125", + "Open": "122.375", + "Volume": "4127500" + }, + { + "Close": "121.4375", + "Date": "2000/8/21", + "High": "122.1875", + "Low": "120.0625", + "Open": "121.0625", + "Volume": "3234200" + }, + { + "Close": "121.375", + "Date": "2000/8/22", + "High": "122.1875", + "Low": "121", + "Open": "121.1875", + "Volume": "2769400" + }, + { + "Close": "123.25", + "Date": "2000/8/23", + "High": "123.75", + "Low": "119.875", + "Open": "120.3125", + "Volume": "4251200" + }, + { + "Close": "124.8125", + "Date": "2000/8/24", + "High": "125.4375", + "Low": "122.6875", + "Open": "123", + "Volume": "5988300" + }, + { + "Close": "129", + "Date": "2000/8/25", + "High": "129.875", + "Low": "124.25", + "Open": "124.3125", + "Volume": "8279000" + }, + { + "Close": "131.5", + "Date": "2000/8/28", + "High": "133.1875", + "Low": "129.75", + "Open": "129.875", + "Volume": "8536600" + }, + { + "Close": "132.875", + "Date": "2000/8/29", + "High": "134.25", + "Low": "131", + "Open": "131.5", + "Volume": "6040000" + }, + { + "Close": "130.3125", + "Date": "2000/8/30", + "High": "131.5", + "Low": "129.5625", + "Open": "130.75", + "Volume": "4928800" + }, + { + "Close": "132.015594", + "Date": "2000/8/31", + "High": "134.1875", + "Low": "131.625", + "Open": "131.875", + "Volume": "5469500" + }, + { + "Close": "133.625", + "Date": "2000/9/1", + "High": "134.9375", + "Low": "132.625", + "Open": "133.0625", + "Volume": "5776300" + }, + { + "Close": "131.1875", + "Date": "2000/9/5", + "High": "133.3125", + "Low": "130.8125", + "Open": "132.8125", + "Volume": "4112100" + }, + { + "Close": "131.4375", + "Date": "2000/9/6", + "High": "134.875", + "Low": "130.375", + "Open": "130.875", + "Volume": "6473000" + }, + { + "Close": "133.375", + "Date": "2000/9/7", + "High": "134.5", + "Low": "131.875", + "Open": "131.875", + "Volume": "4622800" + }, + { + "Close": "129.5", + "Date": "2000/9/8", + "High": "132.9375", + "Low": "129.375", + "Open": "132.5", + "Volume": "4993700" + }, + { + "Close": "124.5", + "Date": "2000/9/11", + "High": "128.25", + "Low": "123.625", + "Open": "127.875", + "Volume": "7617700" + }, + { + "Close": "125", + "Date": "2000/9/12", + "High": "126.875", + "Low": "124.0625", + "Open": "124.8125", + "Volume": "5001700" + }, + { + "Close": "127.6875", + "Date": "2000/9/13", + "High": "128.8125", + "Low": "122.75", + "Open": "123.125", + "Volume": "5473600" + }, + { + "Close": "126.875", + "Date": "2000/9/14", + "High": "129.1875", + "Low": "126.3125", + "Open": "128", + "Volume": "4425500" + }, + { + "Close": "125", + "Date": "2000/9/15", + "High": "127.25", + "Low": "124.75", + "Open": "126.8125", + "Volume": "5481700" + }, + { + "Close": "123.25", + "Date": "2000/9/18", + "High": "126", + "Low": "123.0625", + "Open": "125.25", + "Volume": "3932800" + }, + { + "Close": "124.9375", + "Date": "2000/9/19", + "High": "126.25", + "Low": "122.5625", + "Open": "122.75", + "Volume": "3341000" + }, + { + "Close": "124.75", + "Date": "2000/9/20", + "High": "126.5625", + "Low": "123.5", + "Open": "124.6875", + "Volume": "4623400" + }, + { + "Close": "121.5", + "Date": "2000/9/21", + "High": "126.6875", + "Low": "120", + "Open": "124.1875", + "Volume": "4302200" + }, + { + "Close": "123.875", + "Date": "2000/9/22", + "High": "124.3125", + "Low": "121.3125", + "Open": "123", + "Volume": "5930100" + }, + { + "Close": "123", + "Date": "2000/9/25", + "High": "126.625", + "Low": "121", + "Open": "124.5", + "Volume": "4291000" + }, + { + "Close": "119.125", + "Date": "2000/9/26", + "High": "121.875", + "Low": "118.375", + "Open": "120", + "Volume": "6217200" + }, + { + "Close": "118", + "Date": "2000/9/27", + "High": "120.3125", + "Low": "115.5", + "Open": "120.0625", + "Volume": "5948900" + }, + { + "Close": "115.25", + "Date": "2000/9/28", + "High": "118.875", + "Low": "115", + "Open": "117.375", + "Volume": "5309100" + }, + { + "Close": "112.625", + "Date": "2000/9/29", + "High": "116.9375", + "Low": "110.25", + "Open": "115.5", + "Volume": "9594600" + }, + { + "Close": "117.8125", + "Date": "2000/10/2", + "High": "119.625", + "Low": "112.625", + "Open": "112.625", + "Volume": "8872200" + }, + { + "Close": "110.5625", + "Date": "2000/10/3", + "High": "119.375", + "Low": "110", + "Open": "118.875", + "Volume": "11744200" + }, + { + "Close": "114.375", + "Date": "2000/10/4", + "High": "114.875", + "Low": "108.5625", + "Open": "110.375", + "Volume": "11668900" + }, + { + "Close": "113.1875", + "Date": "2000/10/5", + "High": "114.5625", + "Low": "111.5625", + "Open": "113.8125", + "Volume": "5547000" + }, + { + "Close": "116", + "Date": "2000/10/6", + "High": "116.125", + "Low": "112.75", + "Open": "114", + "Volume": "6108400" + }, + { + "Close": "117.9375", + "Date": "2000/10/9", + "High": "119.375", + "Low": "114.3125", + "Open": "115.9375", + "Volume": "4898000" + }, + { + "Close": "114.875", + "Date": "2000/10/10", + "High": "117.125", + "Low": "112.4375", + "Open": "116.625", + "Volume": "5614200" + }, + { + "Close": "112", + "Date": "2000/10/11", + "High": "112.9375", + "Low": "107.5", + "Open": "111.875", + "Volume": "8775800" + }, + { + "Close": "103.125", + "Date": "2000/10/12", + "High": "114.375", + "Low": "103.125", + "Open": "114.25", + "Volume": "9704900" + }, + { + "Close": "109.0625", + "Date": "2000/10/13", + "High": "110.4375", + "Low": "104.1875", + "Open": "104.1875", + "Volume": "9092600" + }, + { + "Close": "111.125", + "Date": "2000/10/16", + "High": "113.125", + "Low": "108.5625", + "Open": "111.5", + "Volume": "7710400" + }, + { + "Close": "113", + "Date": "2000/10/17", + "High": "113.875", + "Low": "108.5625", + "Open": "111.9375", + "Volume": "8882500" + }, + { + "Close": "95.4375", + "Date": "2000/10/18", + "High": "99.125", + "Low": "90.25", + "Open": "96.75", + "Volume": "29777800" + }, + { + "Close": "96.4375", + "Date": "2000/10/19", + "High": "98.5", + "Low": "92.6875", + "Open": "98", + "Volume": "17966900" + }, + { + "Close": "94.75", + "Date": "2000/10/20", + "High": "96.25", + "Low": "94.1875", + "Open": "95.125", + "Volume": "9369200" + }, + { + "Close": "92.875", + "Date": "2000/10/23", + "High": "95", + "Low": "91.0625", + "Open": "94.75", + "Volume": "9338600" + }, + { + "Close": "91.4375", + "Date": "2000/10/24", + "High": "94.375", + "Low": "90.1875", + "Open": "93", + "Volume": "8826200" + }, + { + "Close": "87.5625", + "Date": "2000/10/25", + "High": "90.9375", + "Low": "86.9375", + "Open": "90.5", + "Volume": "14058500" + }, + { + "Close": "92.75", + "Date": "2000/10/26", + "High": "92.875", + "Low": "87.625", + "Open": "88", + "Volume": "10135700" + }, + { + "Close": "93.6875", + "Date": "2000/10/27", + "High": "93.6875", + "Low": "91", + "Open": "93", + "Volume": "6431400" + }, + { + "Close": "93.3125", + "Date": "2000/10/30", + "High": "93.75", + "Low": "90.3125", + "Open": "93.5", + "Volume": "8084000" + }, + { + "Close": "98.5", + "Date": "2000/10/31", + "High": "99.125", + "Low": "93.75", + "Open": "93.75", + "Volume": "10902600" + }, + { + "Close": "98.5625", + "Date": "2000/11/1", + "High": "99.875", + "Low": "97.25", + "Open": "98.4375", + "Volume": "7466200" + }, + { + "Close": "101.9375", + "Date": "2000/11/2", + "High": "102.3125", + "Low": "98.5", + "Open": "99", + "Volume": "7445100" + }, + { + "Close": "100.125", + "Date": "2000/11/3", + "High": "102.625", + "Low": "99.375", + "Open": "102.5", + "Volume": "5848500" + }, + { + "Close": "100.3125", + "Date": "2000/11/6", + "High": "102.375", + "Low": "99.4375", + "Open": "99.875", + "Volume": "4448500" + }, + { + "Close": "102.3125", + "Date": "2000/11/7", + "High": "103.5", + "Low": "100.6875", + "Open": "101.125", + "Volume": "5420600" + }, + { + "Close": "100", + "Date": "2000/11/8", + "High": "103.75", + "Low": "99.25", + "Open": "103.625", + "Volume": "6990800" + }, + { + "Close": "99.4375", + "Date": "2000/11/9", + "High": "100", + "Low": "95.6875", + "Open": "96.75", + "Volume": "9047900" + }, + { + "Close": "93", + "Date": "2000/11/10", + "High": "98.375", + "Low": "93", + "Open": "98", + "Volume": "6807900" + }, + { + "Close": "97.4375", + "Date": "2000/11/13", + "High": "99.4375", + "Low": "91.625", + "Open": "91.8125", + "Volume": "8684900" + }, + { + "Close": "99.5", + "Date": "2000/11/14", + "High": "99.875", + "Low": "98.5", + "Open": "99.25", + "Volume": "5150900" + }, + { + "Close": "99.375", + "Date": "2000/11/15", + "High": "100.0625", + "Low": "97.625", + "Open": "99.5", + "Volume": "4160300" + }, + { + "Close": "98.25", + "Date": "2000/11/16", + "High": "99.6875", + "Low": "98.25", + "Open": "99.25", + "Volume": "3739700" + }, + { + "Close": "101.9375", + "Date": "2000/11/17", + "High": "102.5", + "Low": "98.25", + "Open": "98.3125", + "Volume": "7717400" + }, + { + "Close": "103.25", + "Date": "2000/11/20", + "High": "103.25", + "Low": "100.875", + "Open": "101.5", + "Volume": "7426600" + }, + { + "Close": "98.5", + "Date": "2000/11/21", + "High": "104.375", + "Low": "98.5", + "Open": "103.25", + "Volume": "7180700" + }, + { + "Close": "98.5", + "Date": "2000/11/22", + "High": "100.8125", + "Low": "98.3125", + "Open": "98.5", + "Volume": "5537100" + }, + { + "Close": "99.9375", + "Date": "2000/11/24", + "High": "101.75", + "Low": "99.25", + "Open": "99.375", + "Volume": "2497500" + }, + { + "Close": "98.4375", + "Date": "2000/11/27", + "High": "102", + "Low": "98.4375", + "Open": "100.4375", + "Volume": "3866200" + }, + { + "Close": "97.875", + "Date": "2000/11/28", + "High": "100.75", + "Low": "97.375", + "Open": "98.75", + "Volume": "4799100" + }, + { + "Close": "99.8125", + "Date": "2000/11/29", + "High": "99.9375", + "Low": "96.6875", + "Open": "97.75", + "Volume": "5524600" + }, + { + "Close": "93.5", + "Date": "2000/11/30", + "High": "98", + "Low": "92.25", + "Open": "98", + "Volume": "10651400" + }, + { + "Close": "95.625", + "Date": "2000/12/1", + "High": "99.3125", + "Low": "94.375", + "Open": "94.4375", + "Volume": "7525100" + }, + { + "Close": "98.375", + "Date": "2000/12/4", + "High": "99.1875", + "Low": "95.75", + "Open": "96", + "Volume": "5566800" + }, + { + "Close": "103.375", + "Date": "2000/12/5", + "High": "104.75", + "Low": "99.625", + "Open": "100.4375", + "Volume": "7804200" + }, + { + "Close": "96.75", + "Date": "2000/12/6", + "High": "101.8125", + "Low": "94.8125", + "Open": "101.75", + "Volume": "10096900" + }, + { + "Close": "93.125", + "Date": "2000/12/7", + "High": "95.9375", + "Low": "93.125", + "Open": "95.0625", + "Volume": "7922000" + }, + { + "Close": "97", + "Date": "2000/12/8", + "High": "99", + "Low": "95.75", + "Open": "98", + "Volume": "6140600" + }, + { + "Close": "95", + "Date": "2000/12/11", + "High": "98.25", + "Low": "93.75", + "Open": "96.5", + "Volume": "6185600" + }, + { + "Close": "93.875", + "Date": "2000/12/12", + "High": "96.125", + "Low": "92.5", + "Open": "95.25", + "Volume": "7913300" + }, + { + "Close": "91.25", + "Date": "2000/12/13", + "High": "96.625", + "Low": "90.6875", + "Open": "94.875", + "Volume": "6992600" + }, + { + "Close": "92.4375", + "Date": "2000/12/14", + "High": "93.6875", + "Low": "91.8125", + "Open": "92", + "Volume": "6131400" + }, + { + "Close": "87.8125", + "Date": "2000/12/15", + "High": "90.6875", + "Low": "87.3125", + "Open": "90", + "Volume": "14254500" + }, + { + "Close": "90.5", + "Date": "2000/12/18", + "High": "90.5", + "Low": "88.375", + "Open": "88.375", + "Volume": "7693800" + }, + { + "Close": "90.125", + "Date": "2000/12/19", + "High": "94.4375", + "Low": "89.8125", + "Open": "90.1875", + "Volume": "7705300" + }, + { + "Close": "86", + "Date": "2000/12/20", + "High": "88", + "Low": "84.8125", + "Open": "85.875", + "Volume": "12579400" + }, + { + "Close": "81.5625", + "Date": "2000/12/21", + "High": "87.9375", + "Low": "80.0625", + "Open": "85.5", + "Volume": "12725500" + }, + { + "Close": "89", + "Date": "2000/12/22", + "High": "89.375", + "Low": "84.5", + "Open": "84.5", + "Volume": "9514000" + }, + { + "Close": "84.8125", + "Date": "2000/12/26", + "High": "89.5625", + "Low": "84.25", + "Open": "89", + "Volume": "6052300" + }, + { + "Close": "84.6875", + "Date": "2000/12/27", + "High": "88.125", + "Low": "83.5625", + "Open": "84.75", + "Volume": "8245100" + }, + { + "Close": "85.25", + "Date": "2000/12/28", + "High": "88.1875", + "Low": "82.125", + "Open": "83.5", + "Volume": "9798600" + }, + { + "Close": "85", + "Date": "2000/12/29", + "High": "86.9375", + "Low": "84.25", + "Open": "86.9375", + "Volume": "6943700" + }, + { + "Close": "84.8125", + "Date": "2001/1/2", + "High": "87.5", + "Low": "84.125", + "Open": "84.5", + "Volume": "8007200" + }, + { + "Close": "94.625", + "Date": "2001/1/3", + "High": "95", + "Low": "83.75", + "Open": "83.75", + "Volume": "12769900" + }, + { + "Close": "93.1875", + "Date": "2001/1/4", + "High": "99.75", + "Low": "92.6875", + "Open": "94.75", + "Volume": "15420500" + }, + { + "Close": "94", + "Date": "2001/1/5", + "High": "94.6875", + "Low": "91", + "Open": "93.9375", + "Volume": "8043200" + }, + { + "Close": "93.5625", + "Date": "2001/1/8", + "High": "93.9375", + "Low": "91.5625", + "Open": "93.5", + "Volume": "6064800" + }, + { + "Close": "92.5625", + "Date": "2001/1/9", + "High": "95.75", + "Low": "91.4375", + "Open": "94.4375", + "Volume": "7547100" + }, + { + "Close": "93.4375", + "Date": "2001/1/10", + "High": "94.9375", + "Low": "91.6875", + "Open": "92.5", + "Volume": "7656100" + }, + { + "Close": "93.6875", + "Date": "2001/1/11", + "High": "94.25", + "Low": "91.25", + "Open": "92.9375", + "Volume": "9635000" + }, + { + "Close": "93.8125", + "Date": "2001/1/12", + "High": "96.4375", + "Low": "92.375", + "Open": "93.6875", + "Volume": "6448000" + }, + { + "Close": "92.75", + "Date": "2001/1/16", + "High": "94", + "Low": "91.8125", + "Open": "93.75", + "Volume": "5671900" + }, + { + "Close": "96.6875", + "Date": "2001/1/17", + "High": "97.75", + "Low": "94.3125", + "Open": "95.375", + "Volume": "9727000" + }, + { + "Close": "108.3125", + "Date": "2001/1/18", + "High": "110", + "Low": "103.5", + "Open": "104.375", + "Volume": "25244900" + }, + { + "Close": "111.25", + "Date": "2001/1/19", + "High": "113.9375", + "Low": "107.25", + "Open": "107.5", + "Volume": "14762200" + }, + { + "Close": "108.5625", + "Date": "2001/1/22", + "High": "109.9375", + "Low": "108.1875", + "Open": "109.5", + "Volume": "9618500" + }, + { + "Close": "109.0625", + "Date": "2001/1/23", + "High": "109.9375", + "Low": "107.625", + "Open": "109.5625", + "Volume": "9826900" + }, + { + "Close": "110.4375", + "Date": "2001/1/24", + "High": "111.4375", + "Low": "108.9375", + "Open": "109.0625", + "Volume": "6760900" + }, + { + "Close": "110.75", + "Date": "2001/1/25", + "High": "111.125", + "Low": "109.4375", + "Open": "110.125", + "Volume": "4982100" + }, + { + "Close": "114.1875", + "Date": "2001/1/26", + "High": "115.25", + "Low": "109.1875", + "Open": "109.625", + "Volume": "9095200" + }, + { + "Close": "114.980003", + "Date": "2001/1/29", + "High": "115.5", + "Low": "112.470001", + "Open": "112.5", + "Volume": "5125000" + }, + { + "Close": "116.610001", + "Date": "2001/1/30", + "High": "116.75", + "Low": "113.400002", + "Open": "115", + "Volume": "8242000" + }, + { + "Close": "112", + "Date": "2001/1/31", + "High": "116.75", + "Low": "112", + "Open": "115.75", + "Volume": "8314200" + }, + { + "Close": "114.050003", + "Date": "2001/2/1", + "High": "114.339996", + "Low": "111.199997", + "Open": "112.400002", + "Volume": "5580800" + }, + { + "Close": "110.269997", + "Date": "2001/2/2", + "High": "113.989998", + "Low": "109.599998", + "Open": "112.75", + "Volume": "5428400" + }, + { + "Close": "112.220001", + "Date": "2001/2/5", + "High": "112.599998", + "Low": "109.300003", + "Open": "109.400002", + "Volume": "5113700" + }, + { + "Close": "114.190002", + "Date": "2001/2/6", + "High": "115.690002", + "Low": "111.199997", + "Open": "112.230003", + "Volume": "7526400" + }, + { + "Close": "116.910004", + "Date": "2001/2/7", + "High": "117.599998", + "Low": "112.669998", + "Open": "113.400002", + "Volume": "9006900" + }, + { + "Close": "114.099998", + "Date": "2001/2/8", + "High": "118.199997", + "Low": "114.029999", + "Open": "116.910004", + "Volume": "8380800" + }, + { + "Close": "112", + "Date": "2001/2/9", + "High": "114.989998", + "Low": "111", + "Open": "114.029999", + "Volume": "6318800" + }, + { + "Close": "114.900002", + "Date": "2001/2/12", + "High": "115.720001", + "Low": "110.300003", + "Open": "110.550003", + "Volume": "6729300" + }, + { + "Close": "113.75", + "Date": "2001/2/13", + "High": "117.379997", + "Low": "113.07", + "Open": "114.150002", + "Volume": "7193200" + }, + { + "Close": "115.099998", + "Date": "2001/2/14", + "High": "116.169998", + "Low": "112.5", + "Open": "113.75", + "Volume": "7032900" + }, + { + "Close": "116.779999", + "Date": "2001/2/15", + "High": "118.639999", + "Low": "116.379997", + "Open": "116.800003", + "Volume": "8098700" + }, + { + "Close": "115", + "Date": "2001/2/16", + "High": "115.75", + "Low": "113.940002", + "Open": "114.550003", + "Volume": "7073000" + }, + { + "Close": "111.5", + "Date": "2001/2/20", + "High": "115.599998", + "Low": "110.779999", + "Open": "114.550003", + "Volume": "6748300" + }, + { + "Close": "107.510002", + "Date": "2001/2/21", + "High": "111.5", + "Low": "107.290001", + "Open": "109.550003", + "Volume": "9156900" + }, + { + "Close": "108.900002", + "Date": "2001/2/22", + "High": "110.900002", + "Low": "103.379997", + "Open": "106.5", + "Volume": "11709000" + }, + { + "Close": "104", + "Date": "2001/2/23", + "High": "107.5", + "Low": "100.25", + "Open": "107.5", + "Volume": "15276600" + }, + { + "Close": "105.300003", + "Date": "2001/2/26", + "High": "105.800003", + "Low": "101.830002", + "Open": "105.800003", + "Volume": "8344100" + }, + { + "Close": "102.589996", + "Date": "2001/2/27", + "High": "106.870003", + "Low": "102.559998", + "Open": "104.900002", + "Volume": "9787900" + }, + { + "Close": "99.900002", + "Date": "2001/2/28", + "High": "103.540001", + "Low": "99.099998", + "Open": "102.949997", + "Volume": "11933200" + }, + { + "Close": "106.050003", + "Date": "2001/3/1", + "High": "106.400002", + "Low": "97.5", + "Open": "99.300003", + "Volume": "15102000" + }, + { + "Close": "102.300003", + "Date": "2001/3/2", + "High": "107.650002", + "Low": "100.940002", + "Open": "104", + "Volume": "14745500" + }, + { + "Close": "104.910004", + "Date": "2001/3/5", + "High": "105.599998", + "Low": "102.639999", + "Open": "102.809998", + "Volume": "6743900" + }, + { + "Close": "106", + "Date": "2001/3/6", + "High": "108.400002", + "Low": "105.25", + "Open": "106.25", + "Volume": "8120000" + }, + { + "Close": "107.550003", + "Date": "2001/3/7", + "High": "108.25", + "Low": "105.660004", + "Open": "107.449997", + "Volume": "7788900" + }, + { + "Close": "106.470001", + "Date": "2001/3/8", + "High": "107.339996", + "Low": "105.370003", + "Open": "107.169998", + "Volume": "6793600" + }, + { + "Close": "99.290001", + "Date": "2001/3/9", + "High": "105.010002", + "Low": "97.900002", + "Open": "105", + "Volume": "16688100" + }, + { + "Close": "95.489998", + "Date": "2001/3/12", + "High": "98.400002", + "Low": "95.019997", + "Open": "97.900002", + "Volume": "14494800" + }, + { + "Close": "98.389999", + "Date": "2001/3/13", + "High": "98.440002", + "Low": "94.199997", + "Open": "95.099998", + "Volume": "12127900" + }, + { + "Close": "94.959999", + "Date": "2001/3/14", + "High": "98.900002", + "Low": "93.339996", + "Open": "95.400002", + "Volume": "14246600" + }, + { + "Close": "95.559998", + "Date": "2001/3/15", + "High": "97.870003", + "Low": "95.169998", + "Open": "96", + "Volume": "8420000" + }, + { + "Close": "90.099998", + "Date": "2001/3/16", + "High": "93.900002", + "Low": "88.199997", + "Open": "93.900002", + "Volume": "20029400" + }, + { + "Close": "92.599998", + "Date": "2001/3/19", + "High": "92.800003", + "Low": "89.199997", + "Open": "91", + "Volume": "10235500" + }, + { + "Close": "88.300003", + "Date": "2001/3/20", + "High": "92.029999", + "Low": "88.099998", + "Open": "91.599998", + "Volume": "10101100" + }, + { + "Close": "89.080002", + "Date": "2001/3/21", + "High": "91.599998", + "Low": "87.75", + "Open": "88.449997", + "Volume": "11013000" + }, + { + "Close": "89.099998", + "Date": "2001/3/22", + "High": "91", + "Low": "87.650002", + "Open": "89.120003", + "Volume": "13328200" + }, + { + "Close": "93.510002", + "Date": "2001/3/23", + "High": "94.989998", + "Low": "90.290001", + "Open": "93.5", + "Volume": "12233600" + }, + { + "Close": "95.400002", + "Date": "2001/3/26", + "High": "95.660004", + "Low": "93.75", + "Open": "95.25", + "Volume": "8581200" + }, + { + "Close": "99.5", + "Date": "2001/3/27", + "High": "100", + "Low": "93.970001", + "Open": "94", + "Volume": "11851200" + }, + { + "Close": "94.410004", + "Date": "2001/3/28", + "High": "98.449997", + "Low": "94.25", + "Open": "97.900002", + "Volume": "11890500" + }, + { + "Close": "95.040001", + "Date": "2001/3/29", + "High": "97.07", + "Low": "94.260002", + "Open": "94.459999", + "Volume": "10553700" + }, + { + "Close": "96.18", + "Date": "2001/3/30", + "High": "97.559998", + "Low": "95.139999", + "Open": "96.5", + "Volume": "9461300" + }, + { + "Close": "94.660004", + "Date": "2001/4/2", + "High": "98.099998", + "Low": "93.580002", + "Open": "97.449997", + "Volume": "8787000" + }, + { + "Close": "90.389999", + "Date": "2001/4/3", + "High": "94.650002", + "Low": "90.099998", + "Open": "94.599998", + "Volume": "13330000" + }, + { + "Close": "92", + "Date": "2001/4/4", + "High": "94.050003", + "Low": "90.050003", + "Open": "90.449997", + "Volume": "13515600" + }, + { + "Close": "98.209999", + "Date": "2001/4/5", + "High": "100", + "Low": "95.529999", + "Open": "95.800003", + "Volume": "12506100" + }, + { + "Close": "97.949997", + "Date": "2001/4/6", + "High": "100", + "Low": "96.400002", + "Open": "98", + "Volume": "13424200" + }, + { + "Close": "96", + "Date": "2001/4/9", + "High": "98.739998", + "Low": "93.800003", + "Open": "98.5", + "Volume": "9486600" + }, + { + "Close": "99.050003", + "Date": "2001/4/10", + "High": "99.900002", + "Low": "96.559998", + "Open": "97", + "Volume": "10499400" + }, + { + "Close": "97.43", + "Date": "2001/4/11", + "High": "101.940002", + "Low": "95.800003", + "Open": "101.5", + "Volume": "11498400" + }, + { + "Close": "96.199997", + "Date": "2001/4/12", + "High": "97.5", + "Low": "95.150002", + "Open": "96.400002", + "Volume": "9390100" + }, + { + "Close": "96.75", + "Date": "2001/4/16", + "High": "99.889999", + "Low": "95.199997", + "Open": "96.199997", + "Volume": "9188500" + }, + { + "Close": "99.699997", + "Date": "2001/4/17", + "High": "99.879997", + "Low": "97", + "Open": "97", + "Volume": "9957300" + }, + { + "Close": "106.5", + "Date": "2001/4/18", + "High": "110", + "Low": "102.300003", + "Open": "103", + "Volume": "19814300" + }, + { + "Close": "114.470001", + "Date": "2001/4/19", + "High": "115.900002", + "Low": "110.449997", + "Open": "112", + "Volume": "25822400" + }, + { + "Close": "114.830002", + "Date": "2001/4/20", + "High": "116.400002", + "Low": "113.75", + "Open": "114.349998", + "Volume": "12759100" + }, + { + "Close": "112", + "Date": "2001/4/23", + "High": "114.050003", + "Low": "111.68", + "Open": "114.010002", + "Volume": "8537500" + }, + { + "Close": "112.669998", + "Date": "2001/4/24", + "High": "114.75", + "Low": "112.300003", + "Open": "113.400002", + "Volume": "8742000" + }, + { + "Close": "114.849998", + "Date": "2001/4/25", + "High": "114.849998", + "Low": "111.989998", + "Open": "112", + "Volume": "6858500" + }, + { + "Close": "113.739998", + "Date": "2001/4/26", + "High": "116.699997", + "Low": "113.68", + "Open": "114.949997", + "Volume": "7346100" + }, + { + "Close": "116.199997", + "Date": "2001/4/27", + "High": "116.900002", + "Low": "114.550003", + "Open": "116.800003", + "Volume": "7390600" + }, + { + "Close": "115.139999", + "Date": "2001/4/30", + "High": "118.050003", + "Low": "114.720001", + "Open": "116.400002", + "Volume": "7357200" + }, + { + "Close": "118.510002", + "Date": "2001/5/1", + "High": "118.650002", + "Low": "114.900002", + "Open": "115.849998", + "Volume": "7790800" + }, + { + "Close": "115.400002", + "Date": "2001/5/2", + "High": "118.949997", + "Low": "113.739998", + "Open": "118.300003", + "Volume": "9706200" + }, + { + "Close": "113.699997", + "Date": "2001/5/3", + "High": "115.099998", + "Low": "112.349998", + "Open": "114.599998", + "Volume": "6578000" + }, + { + "Close": "115.860001", + "Date": "2001/5/4", + "High": "115.860001", + "Low": "111.199997", + "Open": "112", + "Volume": "8681400" + }, + { + "Close": "115.900002", + "Date": "2001/5/7", + "High": "117.25", + "Low": "115", + "Open": "116.199997", + "Volume": "6088600" + }, + { + "Close": "117.699997", + "Date": "2001/5/8", + "High": "117.75", + "Low": "115.5", + "Open": "117.25", + "Volume": "7605800" + }, + { + "Close": "116.980003", + "Date": "2001/5/9", + "High": "118.18", + "Low": "115.300003", + "Open": "116.199997", + "Volume": "7680200" + }, + { + "Close": "115.199997", + "Date": "2001/5/10", + "High": "118.900002", + "Low": "115.199997", + "Open": "118.5", + "Volume": "7993900" + }, + { + "Close": "111.809998", + "Date": "2001/5/11", + "High": "114.150002", + "Low": "110.959999", + "Open": "113.75", + "Volume": "8390200" + }, + { + "Close": "112.559998", + "Date": "2001/5/14", + "High": "113.18", + "Low": "111", + "Open": "111.199997", + "Volume": "5254800" + }, + { + "Close": "113.580002", + "Date": "2001/5/15", + "High": "114.150002", + "Low": "112.5", + "Open": "113.5", + "Volume": "5873400" + }, + { + "Close": "115.800003", + "Date": "2001/5/16", + "High": "115.800003", + "Low": "112.199997", + "Open": "112.5", + "Volume": "7796700" + }, + { + "Close": "115.07", + "Date": "2001/5/17", + "High": "117.089996", + "Low": "115.050003", + "Open": "115.800003", + "Volume": "6887700" + }, + { + "Close": "117.440002", + "Date": "2001/5/18", + "High": "117.68", + "Low": "114.900002", + "Open": "115.07", + "Volume": "6714900" + }, + { + "Close": "119.040001", + "Date": "2001/5/21", + "High": "119.900002", + "Low": "117.550003", + "Open": "117.949997", + "Volume": "8409400" + }, + { + "Close": "118.010002", + "Date": "2001/5/22", + "High": "119.699997", + "Low": "117.25", + "Open": "119.699997", + "Volume": "6005300" + }, + { + "Close": "117.400002", + "Date": "2001/5/23", + "High": "118.949997", + "Low": "117.099998", + "Open": "117.800003", + "Volume": "6402600" + }, + { + "Close": "119.599998", + "Date": "2001/5/24", + "High": "119.599998", + "Low": "117.5", + "Open": "117.5", + "Volume": "7726400" + }, + { + "Close": "117.800003", + "Date": "2001/5/25", + "High": "119.900002", + "Low": "117.760002", + "Open": "119.519997", + "Volume": "5629100" + }, + { + "Close": "115.269997", + "Date": "2001/5/29", + "High": "117.589996", + "Low": "115.080002", + "Open": "117.349998", + "Volume": "5818000" + }, + { + "Close": "112.650002", + "Date": "2001/5/30", + "High": "114.099998", + "Low": "112", + "Open": "114", + "Volume": "9598700" + }, + { + "Close": "111.800003", + "Date": "2001/5/31", + "High": "113.860001", + "Low": "111.639999", + "Open": "112.650002", + "Volume": "6724100" + }, + { + "Close": "112.889999", + "Date": "2001/6/1", + "High": "113.599998", + "Low": "111.900002", + "Open": "112.5", + "Volume": "5138900" + }, + { + "Close": "113.639999", + "Date": "2001/6/4", + "High": "114.75", + "Low": "112.849998", + "Open": "113.25", + "Volume": "3812200" + }, + { + "Close": "116.970001", + "Date": "2001/6/5", + "High": "117.599998", + "Low": "113.559998", + "Open": "113.639999", + "Volume": "6154400" + }, + { + "Close": "117.5", + "Date": "2001/6/6", + "High": "119", + "Low": "116.5", + "Open": "117.599998", + "Volume": "9624200" + }, + { + "Close": "117.25", + "Date": "2001/6/7", + "High": "118.25", + "Low": "117", + "Open": "117", + "Volume": "6423700" + }, + { + "Close": "116.099998", + "Date": "2001/6/8", + "High": "117.5", + "Low": "115.599998", + "Open": "117.5", + "Volume": "3099100" + }, + { + "Close": "117.360001", + "Date": "2001/6/11", + "High": "118.139999", + "Low": "116.099998", + "Open": "116.300003", + "Volume": "6542700" + }, + { + "Close": "117.25", + "Date": "2001/6/12", + "High": "117.800003", + "Low": "115.550003", + "Open": "116.75", + "Volume": "7301500" + }, + { + "Close": "116.540001", + "Date": "2001/6/13", + "High": "118.470001", + "Low": "116.529999", + "Open": "117.25", + "Volume": "5703200" + }, + { + "Close": "115.75", + "Date": "2001/6/14", + "High": "116.080002", + "Low": "113.989998", + "Open": "115.599998", + "Volume": "7502500" + }, + { + "Close": "113.599998", + "Date": "2001/6/15", + "High": "115.449997", + "Low": "113.379997", + "Open": "115.099998", + "Volume": "12470100" + }, + { + "Close": "114.269997", + "Date": "2001/6/18", + "High": "115.440002", + "Low": "113.309998", + "Open": "113.980003", + "Volume": "5182800" + }, + { + "Close": "114.839996", + "Date": "2001/6/19", + "High": "117.25", + "Low": "114.559998", + "Open": "116.260002", + "Volume": "6152800" + }, + { + "Close": "113.089996", + "Date": "2001/6/20", + "High": "114.989998", + "Low": "111.760002", + "Open": "113.5", + "Volume": "8828300" + }, + { + "Close": "112.599998", + "Date": "2001/6/21", + "High": "114.699997", + "Low": "111.360001", + "Open": "112.150002", + "Volume": "8155800" + }, + { + "Close": "112.870003", + "Date": "2001/6/22", + "High": "114.43", + "Low": "112.5", + "Open": "112.599998", + "Volume": "5607200" + }, + { + "Close": "112.650002", + "Date": "2001/6/25", + "High": "114.900002", + "Low": "111.779999", + "Open": "113.75", + "Volume": "5675900" + }, + { + "Close": "113.040001", + "Date": "2001/6/26", + "High": "114.050003", + "Low": "111.099998", + "Open": "111.25", + "Volume": "7081900" + }, + { + "Close": "113.519997", + "Date": "2001/6/27", + "High": "114.18", + "Low": "112.449997", + "Open": "113.099998", + "Volume": "4814100" + }, + { + "Close": "115.099998", + "Date": "2001/6/28", + "High": "116.949997", + "Low": "113.75", + "Open": "113.800003", + "Volume": "8181000" + }, + { + "Close": "113.5", + "Date": "2001/6/29", + "High": "116.650002", + "Low": "113", + "Open": "115.599998", + "Volume": "9477400" + }, + { + "Close": "114.349998", + "Date": "2001/7/2", + "High": "115.400002", + "Low": "112.959999", + "Open": "113.5", + "Volume": "5913100" + }, + { + "Close": "112.980003", + "Date": "2001/7/3", + "High": "114.190002", + "Low": "112.760002", + "Open": "114.099998", + "Volume": "3325800" + }, + { + "Close": "112.099998", + "Date": "2001/7/5", + "High": "113.260002", + "Low": "111.790001", + "Open": "112.599998", + "Volume": "4419000" + }, + { + "Close": "106.5", + "Date": "2001/7/6", + "High": "110.900002", + "Low": "105.809998", + "Open": "110.900002", + "Volume": "11704600" + }, + { + "Close": "104.720001", + "Date": "2001/7/9", + "High": "106.949997", + "Low": "103.650002", + "Open": "106.5", + "Volume": "9312600" + }, + { + "Close": "101.959999", + "Date": "2001/7/10", + "High": "105.400002", + "Low": "101.599998", + "Open": "104.730003", + "Volume": "10266600" + }, + { + "Close": "103.849998", + "Date": "2001/7/11", + "High": "104.129997", + "Low": "101.559998", + "Open": "101.599998", + "Volume": "8895400" + }, + { + "Close": "107.25", + "Date": "2001/7/12", + "High": "107.800003", + "Low": "105.620003", + "Open": "105.900002", + "Volume": "8766400" + }, + { + "Close": "108.529999", + "Date": "2001/7/13", + "High": "109.300003", + "Low": "106.110001", + "Open": "106.150002", + "Volume": "7841800" + }, + { + "Close": "107.82", + "Date": "2001/7/16", + "High": "109.379997", + "Low": "107.279999", + "Open": "108.529999", + "Volume": "5330100" + }, + { + "Close": "108.529999", + "Date": "2001/7/17", + "High": "108.580002", + "Low": "104.75", + "Open": "106.099998", + "Volume": "8662400" + }, + { + "Close": "104.279999", + "Date": "2001/7/18", + "High": "107.599998", + "Low": "103.199997", + "Open": "106.099998", + "Volume": "11670300" + }, + { + "Close": "104", + "Date": "2001/7/19", + "High": "106", + "Low": "103.099998", + "Open": "105.599998", + "Volume": "13644500" + }, + { + "Close": "105.699997", + "Date": "2001/7/20", + "High": "105.699997", + "Low": "103.029999", + "Open": "103.400002", + "Volume": "8991700" + }, + { + "Close": "105.849998", + "Date": "2001/7/23", + "High": "106.949997", + "Low": "105.300003", + "Open": "105.699997", + "Volume": "6315700" + }, + { + "Close": "104.510002", + "Date": "2001/7/24", + "High": "106.150002", + "Low": "103.790001", + "Open": "104.849998", + "Volume": "7299800" + }, + { + "Close": "104.889999", + "Date": "2001/7/25", + "High": "105.699997", + "Low": "102.730003", + "Open": "104.5", + "Volume": "6247600" + }, + { + "Close": "106", + "Date": "2001/7/26", + "High": "106", + "Low": "102.93", + "Open": "104.75", + "Volume": "8428700" + }, + { + "Close": "104.699997", + "Date": "2001/7/27", + "High": "105.949997", + "Low": "104.110001", + "Open": "104.75", + "Volume": "4346500" + }, + { + "Close": "105.849998", + "Date": "2001/7/30", + "High": "106.25", + "Low": "104.760002", + "Open": "104.900002", + "Volume": "4030800" + }, + { + "Close": "105.209999", + "Date": "2001/7/31", + "High": "107", + "Low": "105.150002", + "Open": "105.900002", + "Volume": "5603000" + }, + { + "Close": "107.059998", + "Date": "2001/8/1", + "High": "108.5", + "Low": "105.309998", + "Open": "105.349998", + "Volume": "6036100" + }, + { + "Close": "108.800003", + "Date": "2001/8/2", + "High": "109.470001", + "Low": "107.209999", + "Open": "108.5", + "Volume": "5675100" + }, + { + "Close": "108.18", + "Date": "2001/8/3", + "High": "110.089996", + "Low": "107.099998", + "Open": "107.800003", + "Volume": "3704100" + }, + { + "Close": "106.510002", + "Date": "2001/8/6", + "High": "107.370003", + "Low": "105.790001", + "Open": "107.25", + "Volume": "4176800" + }, + { + "Close": "106.25", + "Date": "2001/8/7", + "High": "107.370003", + "Low": "105.260002", + "Open": "105.800003", + "Volume": "4029300" + }, + { + "Close": "104.190002", + "Date": "2001/8/8", + "High": "106.099998", + "Low": "104.099998", + "Open": "105", + "Volume": "6398000" + }, + { + "Close": "104.080002", + "Date": "2001/8/9", + "High": "104.540001", + "Low": "102.699997", + "Open": "103.699997", + "Volume": "6763200" + }, + { + "Close": "104.949997", + "Date": "2001/8/10", + "High": "104.949997", + "Low": "102.809998", + "Open": "103.849998", + "Volume": "5254800" + }, + { + "Close": "105.860001", + "Date": "2001/8/13", + "High": "106.639999", + "Low": "104.650002", + "Open": "105", + "Volume": "6024400" + }, + { + "Close": "106.199997", + "Date": "2001/8/14", + "High": "106.849998", + "Low": "105.400002", + "Open": "106.5", + "Volume": "5730200" + }, + { + "Close": "105.010002", + "Date": "2001/8/15", + "High": "106.589996", + "Low": "105.010002", + "Open": "106.349998", + "Volume": "4712900" + }, + { + "Close": "105.75", + "Date": "2001/8/16", + "High": "106.019997", + "Low": "103.660004", + "Open": "104.199997", + "Volume": "6215200" + }, + { + "Close": "104.589996", + "Date": "2001/8/17", + "High": "105.489998", + "Low": "103.900002", + "Open": "105.489998", + "Volume": "7006200" + }, + { + "Close": "104.099998", + "Date": "2001/8/20", + "High": "105", + "Low": "102.800003", + "Open": "104.68", + "Volume": "5612700" + }, + { + "Close": "101.889999", + "Date": "2001/8/21", + "High": "104.970001", + "Low": "101.400002", + "Open": "103.849998", + "Volume": "6515900" + }, + { + "Close": "103.959999", + "Date": "2001/8/22", + "High": "104.040001", + "Low": "101.760002", + "Open": "102.5", + "Volume": "8029000" + }, + { + "Close": "103", + "Date": "2001/8/23", + "High": "104.699997", + "Low": "103", + "Open": "104", + "Volume": "5474300" + }, + { + "Close": "106.989998", + "Date": "2001/8/24", + "High": "107.800003", + "Low": "103.410004", + "Open": "103.949997", + "Volume": "7711900" + }, + { + "Close": "106.860001", + "Date": "2001/8/27", + "High": "108.199997", + "Low": "106.639999", + "Open": "106.989998", + "Volume": "4540900" + }, + { + "Close": "104.949997", + "Date": "2001/8/28", + "High": "107.169998", + "Low": "104.870003", + "Open": "106.900002", + "Volume": "5808100" + }, + { + "Close": "104.129997", + "Date": "2001/8/29", + "High": "105.900002", + "Low": "103.82", + "Open": "105.75", + "Volume": "4840300" + }, + { + "Close": "100.360001", + "Date": "2001/8/30", + "High": "103.400002", + "Low": "98.860001", + "Open": "102.75", + "Volume": "15015500" + }, + { + "Close": "99.949997", + "Date": "2001/8/31", + "High": "101.360001", + "Low": "99.239998", + "Open": "101", + "Volume": "8126600" + }, + { + "Close": "101.489998", + "Date": "2001/9/4", + "High": "103.129997", + "Low": "99.290001", + "Open": "100.150002", + "Volume": "9891800" + }, + { + "Close": "100.349998", + "Date": "2001/9/5", + "High": "102.830002", + "Low": "99.610001", + "Open": "101.5", + "Volume": "11880700" + }, + { + "Close": "98", + "Date": "2001/9/6", + "High": "100.68", + "Low": "97.650002", + "Open": "100.68", + "Volume": "9043100" + }, + { + "Close": "96.589996", + "Date": "2001/9/7", + "High": "98.150002", + "Low": "96", + "Open": "97.900002", + "Volume": "10507000" + }, + { + "Close": "96.470001", + "Date": "2001/9/10", + "High": "97.400002", + "Low": "95.589996", + "Open": "96", + "Volume": "10311500" + }, + { + "Close": "93.339996", + "Date": "2001/9/17", + "High": "95.860001", + "Low": "92.550003", + "Open": "93.900002", + "Volume": "15132800" + }, + { + "Close": "96.400002", + "Date": "2001/9/18", + "High": "96.75", + "Low": "93.68", + "Open": "94", + "Volume": "12305000" + }, + { + "Close": "96", + "Date": "2001/9/19", + "High": "96.849998", + "Low": "92.449997", + "Open": "96.400002", + "Volume": "14883500" + }, + { + "Close": "93.400002", + "Date": "2001/9/20", + "High": "95.75", + "Low": "92.849998", + "Open": "94.099998", + "Volume": "15182900" + }, + { + "Close": "90.5", + "Date": "2001/9/21", + "High": "93.5", + "Low": "89.5", + "Open": "90.599998", + "Volume": "18364700" + }, + { + "Close": "94.800003", + "Date": "2001/9/24", + "High": "95.540001", + "Low": "91.800003", + "Open": "91.800003", + "Volume": "11201800" + }, + { + "Close": "94.449997", + "Date": "2001/9/25", + "High": "96", + "Low": "93.410004", + "Open": "94.099998", + "Volume": "12575100" + }, + { + "Close": "91.300003", + "Date": "2001/9/26", + "High": "94.449997", + "Low": "90.300003", + "Open": "94.449997", + "Volume": "13783100" + }, + { + "Close": "90", + "Date": "2001/9/27", + "High": "91.5", + "Low": "87.489998", + "Open": "91.300003", + "Volume": "13172300" + }, + { + "Close": "91.720001", + "Date": "2001/9/28", + "High": "92.709999", + "Low": "89.900002", + "Open": "90.199997", + "Volume": "11077200" + }, + { + "Close": "92.709999", + "Date": "2001/10/1", + "High": "93.480003", + "Low": "91.339996", + "Open": "91.720001", + "Volume": "8676200" + }, + { + "Close": "93.769997", + "Date": "2001/10/2", + "High": "93.900002", + "Low": "92.099998", + "Open": "92.300003", + "Volume": "7221200" + }, + { + "Close": "96.949997", + "Date": "2001/10/3", + "High": "97.620003", + "Low": "92.400002", + "Open": "92.900002", + "Volume": "11117000" + }, + { + "Close": "97.309998", + "Date": "2001/10/4", + "High": "98.879997", + "Low": "96.800003", + "Open": "97.150002", + "Volume": "9785100" + }, + { + "Close": "98.019997", + "Date": "2001/10/5", + "High": "98.449997", + "Low": "95.370003", + "Open": "96.650002", + "Volume": "9708200" + }, + { + "Close": "98.5", + "Date": "2001/10/8", + "High": "99", + "Low": "96.75", + "Open": "98.029999", + "Volume": "7093400" + }, + { + "Close": "97.139999", + "Date": "2001/10/9", + "High": "98.5", + "Low": "96.760002", + "Open": "98.5", + "Volume": "7525300" + }, + { + "Close": "97.25", + "Date": "2001/10/10", + "High": "97.300003", + "Low": "94.900002", + "Open": "95", + "Volume": "10636900" + }, + { + "Close": "99.400002", + "Date": "2001/10/11", + "High": "99.400002", + "Low": "96.5", + "Open": "97.699997", + "Volume": "11501600" + }, + { + "Close": "100.839996", + "Date": "2001/10/12", + "High": "101", + "Low": "98", + "Open": "98.699997", + "Volume": "11501200" + }, + { + "Close": "102", + "Date": "2001/10/15", + "High": "102.760002", + "Low": "99.849998", + "Open": "99.849998", + "Volume": "10204200" + }, + { + "Close": "101.849998", + "Date": "2001/10/16", + "High": "103", + "Low": "99.660004", + "Open": "101.870003", + "Volume": "11946000" + }, + { + "Close": "102.900002", + "Date": "2001/10/17", + "High": "106.699997", + "Low": "102.900002", + "Open": "106.300003", + "Volume": "18920500" + }, + { + "Close": "101.260002", + "Date": "2001/10/18", + "High": "103.75", + "Low": "100.779999", + "Open": "103.050003", + "Volume": "10694900" + }, + { + "Close": "102.650002", + "Date": "2001/10/19", + "High": "102.739998", + "Low": "100.07", + "Open": "101.650002", + "Volume": "11771900" + }, + { + "Close": "105.25", + "Date": "2001/10/22", + "High": "105.779999", + "Low": "101.900002", + "Open": "102.650002", + "Volume": "7623900" + }, + { + "Close": "105.809998", + "Date": "2001/10/23", + "High": "106.690002", + "Low": "104.550003", + "Open": "105.75", + "Volume": "7429300" + }, + { + "Close": "108.57", + "Date": "2001/10/24", + "High": "108.75", + "Low": "106.089996", + "Open": "106.5", + "Volume": "8293200" + }, + { + "Close": "110.660004", + "Date": "2001/10/25", + "High": "110.849998", + "Low": "106.75", + "Open": "108.050003", + "Volume": "9683400" + }, + { + "Close": "111.160004", + "Date": "2001/10/26", + "High": "112.099998", + "Low": "109.620003", + "Open": "110", + "Volume": "10142500" + }, + { + "Close": "108.620003", + "Date": "2001/10/29", + "High": "110.699997", + "Low": "108.620003", + "Open": "110.5", + "Volume": "7072800" + }, + { + "Close": "108.650002", + "Date": "2001/10/30", + "High": "109.75", + "Low": "107.760002", + "Open": "107.800003", + "Volume": "8625100" + }, + { + "Close": "108.07", + "Date": "2001/10/31", + "High": "111.120003", + "Low": "108.07", + "Open": "109.599998", + "Volume": "7177700" + }, + { + "Close": "109.889999", + "Date": "2001/11/1", + "High": "110.169998", + "Low": "106.900002", + "Open": "107.25", + "Volume": "8024000" + }, + { + "Close": "109.5", + "Date": "2001/11/2", + "High": "110.300003", + "Low": "108.769997", + "Open": "109.150002", + "Volume": "6216900" + }, + { + "Close": "109.970001", + "Date": "2001/11/5", + "High": "110.589996", + "Low": "109.080002", + "Open": "109.949997", + "Volume": "5708500" + }, + { + "Close": "113.610001", + "Date": "2001/11/6", + "High": "114.800003", + "Low": "109", + "Open": "109.599998", + "Volume": "8509700" + }, + { + "Close": "113.849998", + "Date": "2001/11/7", + "High": "115.199997", + "Low": "113.029999", + "Open": "113.050003", + "Volume": "10129700" + }, + { + "Close": "113.809998", + "Date": "2001/11/8", + "High": "115.559998", + "Low": "113.610001", + "Open": "113.959999", + "Volume": "7991200" + }, + { + "Close": "114.080002", + "Date": "2001/11/9", + "High": "114.900002", + "Low": "113.099998", + "Open": "113.099998", + "Volume": "5045900" + }, + { + "Close": "114.860001", + "Date": "2001/11/12", + "High": "114.900002", + "Low": "112.050003", + "Open": "113", + "Volume": "5608400" + }, + { + "Close": "116.699997", + "Date": "2001/11/13", + "High": "117", + "Low": "115.699997", + "Open": "115.699997", + "Volume": "9216700" + }, + { + "Close": "114.349998", + "Date": "2001/11/14", + "High": "116.849998", + "Low": "113.330002", + "Open": "116.699997", + "Volume": "8091700" + }, + { + "Close": "114.75", + "Date": "2001/11/15", + "High": "116.330002", + "Low": "113.839996", + "Open": "114.099998", + "Volume": "7013800" + }, + { + "Close": "114.5", + "Date": "2001/11/16", + "High": "115", + "Low": "112.550003", + "Open": "115", + "Volume": "6661500" + }, + { + "Close": "115", + "Date": "2001/11/19", + "High": "115.800003", + "Low": "113.769997", + "Open": "114.699997", + "Volume": "4931300" + }, + { + "Close": "115.440002", + "Date": "2001/11/20", + "High": "116.800003", + "Low": "114.25", + "Open": "114.349998", + "Volume": "6452200" + }, + { + "Close": "114.339996", + "Date": "2001/11/21", + "High": "115.25", + "Low": "113.050003", + "Open": "114.949997", + "Volume": "4184700" + }, + { + "Close": "115.349998", + "Date": "2001/11/23", + "High": "115.370003", + "Low": "113.720001", + "Open": "114.290001", + "Volume": "1714000" + }, + { + "Close": "116.330002", + "Date": "2001/11/26", + "High": "116.400002", + "Low": "115.199997", + "Open": "115.900002", + "Volume": "4854300" + }, + { + "Close": "114.199997", + "Date": "2001/11/27", + "High": "116.300003", + "Low": "114.07", + "Open": "116.25", + "Volume": "6894100" + }, + { + "Close": "112.150002", + "Date": "2001/11/28", + "High": "114.379997", + "Low": "112.099998", + "Open": "114.099998", + "Volume": "6161200" + }, + { + "Close": "114.43", + "Date": "2001/11/29", + "High": "114.550003", + "Low": "111.809998", + "Open": "112.900002", + "Volume": "6128700" + }, + { + "Close": "115.589996", + "Date": "2001/11/30", + "High": "115.940002", + "Low": "113.800003", + "Open": "114.43", + "Volume": "5597800" + }, + { + "Close": "114.129997", + "Date": "2001/12/3", + "High": "114.849998", + "Low": "113.209999", + "Open": "114.800003", + "Volume": "5785800" + }, + { + "Close": "116.639999", + "Date": "2001/12/4", + "High": "116.720001", + "Low": "113.379997", + "Open": "114.300003", + "Volume": "6585900" + }, + { + "Close": "121.400002", + "Date": "2001/12/5", + "High": "121.980003", + "Low": "116.650002", + "Open": "116.849998", + "Volume": "14646200" + }, + { + "Close": "120.139999", + "Date": "2001/12/6", + "High": "121.699997", + "Low": "119.800003", + "Open": "120.5", + "Volume": "11225700" + }, + { + "Close": "120.400002", + "Date": "2001/12/7", + "High": "121", + "Low": "118.75", + "Open": "119.5", + "Volume": "6889200" + }, + { + "Close": "119.660004", + "Date": "2001/12/10", + "High": "121", + "Low": "119.410004", + "Open": "120", + "Volume": "5570900" + }, + { + "Close": "121.5", + "Date": "2001/12/11", + "High": "122.739998", + "Low": "119.800003", + "Open": "120.400002", + "Volume": "7793200" + }, + { + "Close": "123.199997", + "Date": "2001/12/12", + "High": "123.209999", + "Low": "120.059998", + "Open": "121.120003", + "Volume": "7977900" + }, + { + "Close": "120.25", + "Date": "2001/12/13", + "High": "122.300003", + "Low": "120.120003", + "Open": "121.550003", + "Volume": "8061000" + }, + { + "Close": "121.099998", + "Date": "2001/12/14", + "High": "121.480003", + "Low": "119.410004", + "Open": "120.800003", + "Volume": "7036000" + }, + { + "Close": "121.339996", + "Date": "2001/12/17", + "High": "122.139999", + "Low": "120.150002", + "Open": "120.150002", + "Volume": "6205100" + }, + { + "Close": "122.199997", + "Date": "2001/12/18", + "High": "122.970001", + "Low": "121.349998", + "Open": "121.510002", + "Volume": "5596200" + }, + { + "Close": "123.889999", + "Date": "2001/12/19", + "High": "124.699997", + "Low": "121.010002", + "Open": "121.900002", + "Volume": "8053900" + }, + { + "Close": "122.699997", + "Date": "2001/12/20", + "High": "124", + "Low": "122.150002", + "Open": "123.889999", + "Volume": "6344800" + }, + { + "Close": "122", + "Date": "2001/12/21", + "High": "123.5", + "Low": "121.709999", + "Open": "122.699997", + "Volume": "8659100" + }, + { + "Close": "121.449997", + "Date": "2001/12/24", + "High": "122.480003", + "Low": "121.099998", + "Open": "122.050003", + "Volume": "1654400" + }, + { + "Close": "122.400002", + "Date": "2001/12/26", + "High": "123.699997", + "Low": "121.809998", + "Open": "122", + "Volume": "3755700" + }, + { + "Close": "123.5", + "Date": "2001/12/27", + "High": "123.93", + "Low": "122.639999", + "Open": "122.75", + "Volume": "3826200" + }, + { + "Close": "122.900002", + "Date": "2001/12/28", + "High": "123.879997", + "Low": "122.349998", + "Open": "123.5", + "Volume": "4213900" + }, + { + "Close": "120.959999", + "Date": "2001/12/31", + "High": "123.239998", + "Low": "120.949997", + "Open": "122.75", + "Volume": "3512700" + }, + { + "Close": "121.5", + "Date": "2002/1/2", + "High": "121.5", + "Low": "119.800003", + "Open": "120.599998", + "Volume": "6862800" + }, + { + "Close": "123.660004", + "Date": "2002/1/3", + "High": "124.220001", + "Low": "120.25", + "Open": "121.5", + "Volume": "8621700" + }, + { + "Close": "125.599998", + "Date": "2002/1/4", + "High": "125.599998", + "Low": "123.980003", + "Open": "124.050003", + "Volume": "8405200" + }, + { + "Close": "124.050003", + "Date": "2002/1/7", + "High": "126.190002", + "Low": "123.699997", + "Open": "125", + "Volume": "5939600" + }, + { + "Close": "124.699997", + "Date": "2002/1/8", + "High": "125.199997", + "Low": "123.730003", + "Open": "124.25", + "Volume": "5311800" + }, + { + "Close": "124.489998", + "Date": "2002/1/9", + "High": "126.389999", + "Low": "124.150002", + "Open": "124.699997", + "Volume": "6839900" + }, + { + "Close": "122.139999", + "Date": "2002/1/10", + "High": "124", + "Low": "121.419998", + "Open": "123.75", + "Volume": "8926300" + }, + { + "Close": "120.309998", + "Date": "2002/1/11", + "High": "122.18", + "Low": "120.279999", + "Open": "121.5", + "Volume": "4797800" + }, + { + "Close": "118.050003", + "Date": "2002/1/14", + "High": "120.089996", + "Low": "117.099998", + "Open": "120", + "Volume": "10026700" + }, + { + "Close": "118.849998", + "Date": "2002/1/15", + "High": "119.699997", + "Low": "117.720001", + "Open": "118.050003", + "Volume": "5647900" + }, + { + "Close": "117.400002", + "Date": "2002/1/16", + "High": "118.75", + "Low": "117.25", + "Open": "118", + "Volume": "5366300" + }, + { + "Close": "119.900002", + "Date": "2002/1/17", + "High": "120.550003", + "Low": "117.260002", + "Open": "119.849998", + "Volume": "11153700" + }, + { + "Close": "114.25", + "Date": "2002/1/18", + "High": "114.900002", + "Low": "112.809998", + "Open": "114.25", + "Volume": "18440200" + }, + { + "Close": "110.5", + "Date": "2002/1/22", + "High": "114.260002", + "Low": "110.330002", + "Open": "114.25", + "Volume": "10130400" + }, + { + "Close": "107.900002", + "Date": "2002/1/23", + "High": "111.25", + "Low": "107", + "Open": "110.800003", + "Volume": "12556700" + }, + { + "Close": "108.720001", + "Date": "2002/1/24", + "High": "109.730003", + "Low": "107.07", + "Open": "108.800003", + "Volume": "8581500" + }, + { + "Close": "109.279999", + "Date": "2002/1/25", + "High": "110.690002", + "Low": "108.099998", + "Open": "108.5", + "Volume": "6761800" + }, + { + "Close": "108.150002", + "Date": "2002/1/28", + "High": "110.209999", + "Low": "107.059998", + "Open": "109.5", + "Volume": "7092900" + }, + { + "Close": "103", + "Date": "2002/1/29", + "High": "108.559998", + "Low": "102.410004", + "Open": "108.150002", + "Volume": "14509400" + }, + { + "Close": "105.550003", + "Date": "2002/1/30", + "High": "105.75", + "Low": "101", + "Open": "104.25", + "Volume": "17713300" + }, + { + "Close": "107.889999", + "Date": "2002/1/31", + "High": "107.980003", + "Low": "104.459999", + "Open": "106.400002", + "Volume": "9877000" + }, + { + "Close": "108", + "Date": "2002/2/1", + "High": "109.300003", + "Low": "106.639999", + "Open": "107.639999", + "Volume": "6799500" + }, + { + "Close": "106.800003", + "Date": "2002/2/4", + "High": "108", + "Low": "105.989998", + "Open": "108", + "Volume": "6601900" + }, + { + "Close": "106.300003", + "Date": "2002/2/5", + "High": "108.5", + "Low": "106", + "Open": "106.25", + "Volume": "6737700" + }, + { + "Close": "106.629997", + "Date": "2002/2/6", + "High": "107.82", + "Low": "105.330002", + "Open": "106.699997", + "Volume": "6669800" + }, + { + "Close": "103.910004", + "Date": "2002/2/7", + "High": "107", + "Low": "103.860001", + "Open": "106.639999", + "Volume": "7253800" + }, + { + "Close": "104.989998", + "Date": "2002/2/8", + "High": "105.720001", + "Low": "102.610001", + "Open": "103", + "Volume": "8339400" + }, + { + "Close": "107.379997", + "Date": "2002/2/11", + "High": "107.690002", + "Low": "104.510002", + "Open": "105", + "Volume": "6271900" + }, + { + "Close": "106.57", + "Date": "2002/2/12", + "High": "107.889999", + "Low": "106.059998", + "Open": "106.75", + "Volume": "4559800" + }, + { + "Close": "108.07", + "Date": "2002/2/13", + "High": "108.480003", + "Low": "106.120003", + "Open": "106.699997", + "Volume": "5086900" + }, + { + "Close": "107.889999", + "Date": "2002/2/14", + "High": "109.150002", + "Low": "107.199997", + "Open": "109", + "Volume": "5816300" + }, + { + "Close": "102.889999", + "Date": "2002/2/15", + "High": "104.800003", + "Low": "101.699997", + "Open": "104.800003", + "Volume": "18204600" + }, + { + "Close": "101.300003", + "Date": "2002/2/19", + "High": "101.800003", + "Low": "98.860001", + "Open": "101.5", + "Volume": "13395900" + }, + { + "Close": "99.309998", + "Date": "2002/2/20", + "High": "100", + "Low": "97", + "Open": "99.540001", + "Volume": "14525200" + }, + { + "Close": "96.379997", + "Date": "2002/2/21", + "High": "99.699997", + "Low": "96.010002", + "Open": "98.75", + "Volume": "10131700" + }, + { + "Close": "98.449997", + "Date": "2002/2/22", + "High": "99.199997", + "Low": "95.760002", + "Open": "96.379997", + "Volume": "10471600" + }, + { + "Close": "98.300003", + "Date": "2002/2/25", + "High": "99.25", + "Low": "97.120003", + "Open": "98.449997", + "Volume": "9902800" + }, + { + "Close": "97.150002", + "Date": "2002/2/26", + "High": "99.190002", + "Low": "95.989998", + "Open": "99", + "Volume": "11634500" + }, + { + "Close": "97.830002", + "Date": "2002/2/27", + "High": "100.309998", + "Low": "96.699997", + "Open": "98.099998", + "Volume": "11978700" + }, + { + "Close": "98.120003", + "Date": "2002/2/28", + "High": "99.599998", + "Low": "97.82", + "Open": "98.489998", + "Volume": "7939000" + }, + { + "Close": "103.019997", + "Date": "2002/3/1", + "High": "103.099998", + "Low": "98.5", + "Open": "98.599998", + "Volume": "10492900" + }, + { + "Close": "105.900002", + "Date": "2002/3/4", + "High": "106.529999", + "Low": "103.129997", + "Open": "103.349998", + "Volume": "10767700" + }, + { + "Close": "105.669998", + "Date": "2002/3/5", + "High": "106.5", + "Low": "104.160004", + "Open": "104.25", + "Volume": "7562100" + }, + { + "Close": "106.300003", + "Date": "2002/3/6", + "High": "107.089996", + "Low": "104.75", + "Open": "105.150002", + "Volume": "7687400" + }, + { + "Close": "103.709999", + "Date": "2002/3/7", + "High": "107.5", + "Low": "103.239998", + "Open": "107.300003", + "Volume": "10971900" + }, + { + "Close": "105.089996", + "Date": "2002/3/8", + "High": "107.339996", + "Low": "104.82", + "Open": "104.82", + "Volume": "10726400" + }, + { + "Close": "105.239998", + "Date": "2002/3/11", + "High": "105.970001", + "Low": "103.599998", + "Open": "104.349998", + "Volume": "8639100" + }, + { + "Close": "108.5", + "Date": "2002/3/12", + "High": "108.849998", + "Low": "105.510002", + "Open": "105.519997", + "Volume": "11059300" + }, + { + "Close": "107.18", + "Date": "2002/3/13", + "High": "108.650002", + "Low": "106.699997", + "Open": "108.300003", + "Volume": "6409200" + }, + { + "Close": "106.599998", + "Date": "2002/3/14", + "High": "107.949997", + "Low": "106.589996", + "Open": "107.019997", + "Volume": "5335500" + }, + { + "Close": "106.790001", + "Date": "2002/3/15", + "High": "107.449997", + "Low": "105.589996", + "Open": "106.550003", + "Volume": "10864100" + }, + { + "Close": "106.349998", + "Date": "2002/3/18", + "High": "108.639999", + "Low": "106.230003", + "Open": "107.099998", + "Volume": "5301200" + }, + { + "Close": "107.489998", + "Date": "2002/3/19", + "High": "108.050003", + "Low": "106.489998", + "Open": "106.849998", + "Volume": "4614800" + }, + { + "Close": "105.5", + "Date": "2002/3/20", + "High": "106.900002", + "Low": "105.489998", + "Open": "106.900002", + "Volume": "4844100" + }, + { + "Close": "106.779999", + "Date": "2002/3/21", + "High": "106.779999", + "Low": "104.699997", + "Open": "105.699997", + "Volume": "5113100" + }, + { + "Close": "105.599998", + "Date": "2002/3/22", + "High": "106.699997", + "Low": "105.07", + "Open": "106.5", + "Volume": "5507900" + }, + { + "Close": "103.559998", + "Date": "2002/3/25", + "High": "106.660004", + "Low": "103.5", + "Open": "105.800003", + "Volume": "6277900" + }, + { + "Close": "102.900002", + "Date": "2002/3/26", + "High": "105.699997", + "Low": "102.300003", + "Open": "103.57", + "Volume": "8144000" + }, + { + "Close": "103.389999", + "Date": "2002/3/27", + "High": "103.790001", + "Low": "102.5", + "Open": "103.75", + "Volume": "5602400" + }, + { + "Close": "104", + "Date": "2002/3/28", + "High": "105.139999", + "Low": "103.389999", + "Open": "103.550003", + "Volume": "5347500" + }, + { + "Close": "102.860001", + "Date": "2002/4/1", + "High": "104", + "Low": "102.400002", + "Open": "104", + "Volume": "5587000" + }, + { + "Close": "100.949997", + "Date": "2002/4/2", + "High": "102.010002", + "Low": "100.510002", + "Open": "102", + "Volume": "7382200" + }, + { + "Close": "99.959999", + "Date": "2002/4/3", + "High": "101.5", + "Low": "98.900002", + "Open": "101.400002", + "Volume": "7649100" + }, + { + "Close": "100.839996", + "Date": "2002/4/4", + "High": "101.139999", + "Low": "99.5", + "Open": "99.959999", + "Volume": "5928500" + }, + { + "Close": "97.25", + "Date": "2002/4/5", + "High": "101.25", + "Low": "97.25", + "Open": "100.839996", + "Volume": "9801800" + }, + { + "Close": "87.410004", + "Date": "2002/4/8", + "High": "88.589996", + "Low": "85.349998", + "Open": "87.5", + "Volume": "41207300" + }, + { + "Close": "87.739998", + "Date": "2002/4/9", + "High": "88.519997", + "Low": "87.099998", + "Open": "88.5", + "Volume": "17383600" + }, + { + "Close": "89.010002", + "Date": "2002/4/10", + "High": "89.949997", + "Low": "88.199997", + "Open": "88.449997", + "Volume": "13143900" + }, + { + "Close": "84.190002", + "Date": "2002/4/11", + "High": "88.510002", + "Low": "83.339996", + "Open": "88.050003", + "Volume": "23343700" + }, + { + "Close": "85.599998", + "Date": "2002/4/12", + "High": "87.959999", + "Low": "84.400002", + "Open": "87.559998", + "Volume": "15819300" + }, + { + "Close": "85.349998", + "Date": "2002/4/15", + "High": "86.599998", + "Low": "84.699997", + "Open": "86.5", + "Volume": "8871600" + }, + { + "Close": "86.199997", + "Date": "2002/4/16", + "High": "86.849998", + "Low": "85.580002", + "Open": "86.349998", + "Volume": "7933100" + }, + { + "Close": "84.809998", + "Date": "2002/4/17", + "High": "87.199997", + "Low": "84", + "Open": "87.050003", + "Volume": "11019500" + }, + { + "Close": "88.949997", + "Date": "2002/4/18", + "High": "89.099998", + "Low": "86.900002", + "Open": "86.970001", + "Volume": "14763500" + }, + { + "Close": "89", + "Date": "2002/4/19", + "High": "90.029999", + "Low": "87.599998", + "Open": "89.900002", + "Volume": "9273200" + }, + { + "Close": "87.93", + "Date": "2002/4/22", + "High": "88.949997", + "Low": "87.360001", + "Open": "88.949997", + "Volume": "6757700" + }, + { + "Close": "87.330002", + "Date": "2002/4/23", + "High": "89.080002", + "Low": "87.239998", + "Open": "88.349998", + "Volume": "5144100" + }, + { + "Close": "86.5", + "Date": "2002/4/24", + "High": "88.25", + "Low": "86.269997", + "Open": "88.199997", + "Volume": "6520500" + }, + { + "Close": "86.709999", + "Date": "2002/4/25", + "High": "86.919998", + "Low": "85.769997", + "Open": "86.050003", + "Volume": "6870000" + }, + { + "Close": "84.709999", + "Date": "2002/4/26", + "High": "86.959999", + "Low": "84.699997", + "Open": "86.699997", + "Volume": "6684200" + }, + { + "Close": "83.889999", + "Date": "2002/4/29", + "High": "85.099998", + "Low": "83.550003", + "Open": "84.709999", + "Volume": "6535600" + }, + { + "Close": "83.760002", + "Date": "2002/4/30", + "High": "85.230003", + "Low": "83.529999", + "Open": "83.910004", + "Volume": "8883900" + }, + { + "Close": "84.300003", + "Date": "2002/5/1", + "High": "84.650002", + "Low": "81.669998", + "Open": "83.849998", + "Volume": "12203800" + }, + { + "Close": "83.860001", + "Date": "2002/5/2", + "High": "84.800003", + "Low": "83.129997", + "Open": "83.75", + "Volume": "6582900" + }, + { + "Close": "81.779999", + "Date": "2002/5/3", + "High": "83.5", + "Low": "81.110001", + "Open": "83.099998", + "Volume": "8656300" + }, + { + "Close": "76", + "Date": "2002/5/6", + "High": "81.870003", + "Low": "76", + "Open": "81.699997", + "Volume": "13648400" + }, + { + "Close": "76.5", + "Date": "2002/5/7", + "High": "77.5", + "Low": "75.919998", + "Open": "76.889999", + "Volume": "17418700" + }, + { + "Close": "82.449997", + "Date": "2002/5/8", + "High": "82.800003", + "Low": "78.199997", + "Open": "78.199997", + "Volume": "12779700" + }, + { + "Close": "79.93", + "Date": "2002/5/9", + "High": "83", + "Low": "79", + "Open": "81.900002", + "Volume": "10130100" + }, + { + "Close": "79.68", + "Date": "2002/5/10", + "High": "80.5", + "Low": "79.25", + "Open": "79.949997", + "Volume": "7386300" + }, + { + "Close": "82.190002", + "Date": "2002/5/13", + "High": "82.290001", + "Low": "79.5", + "Open": "80.25", + "Volume": "6527600" + }, + { + "Close": "85.480003", + "Date": "2002/5/14", + "High": "85.480003", + "Low": "82.190002", + "Open": "84.5", + "Volume": "9624700" + }, + { + "Close": "84.5", + "Date": "2002/5/15", + "High": "86.489998", + "Low": "84.050003", + "Open": "84.599998", + "Volume": "8552300" + }, + { + "Close": "85.449997", + "Date": "2002/5/16", + "High": "86", + "Low": "83.400002", + "Open": "84.199997", + "Volume": "6768300" + }, + { + "Close": "85.690002", + "Date": "2002/5/17", + "High": "86.400002", + "Low": "85", + "Open": "86.25", + "Volume": "5874800" + }, + { + "Close": "84.449997", + "Date": "2002/5/20", + "High": "85.459999", + "Low": "83.93", + "Open": "85.449997", + "Volume": "4530300" + }, + { + "Close": "83.449997", + "Date": "2002/5/21", + "High": "85", + "Low": "83.300003", + "Open": "84.410004", + "Volume": "4454000" + }, + { + "Close": "84", + "Date": "2002/5/22", + "High": "84.389999", + "Low": "82.739998", + "Open": "83.760002", + "Volume": "5040700" + }, + { + "Close": "84.349998", + "Date": "2002/5/23", + "High": "85.050003", + "Low": "82.519997", + "Open": "84.25", + "Volume": "6865600" + }, + { + "Close": "83.099998", + "Date": "2002/5/24", + "High": "83.75", + "Low": "82.620003", + "Open": "83.650002", + "Volume": "4122000" + }, + { + "Close": "82.080002", + "Date": "2002/5/28", + "High": "83.110001", + "Low": "81.690002", + "Open": "82.800003", + "Volume": "4552100" + }, + { + "Close": "81.599998", + "Date": "2002/5/29", + "High": "82", + "Low": "81", + "Open": "81.5", + "Volume": "4519500" + }, + { + "Close": "82.25", + "Date": "2002/5/30", + "High": "82.25", + "Low": "80.220001", + "Open": "80.599998", + "Volume": "7374100" + }, + { + "Close": "80.449997", + "Date": "2002/5/31", + "High": "82.050003", + "Low": "80.400002", + "Open": "82.050003", + "Volume": "5126200" + }, + { + "Close": "78.110001", + "Date": "2002/6/3", + "High": "80.910004", + "Low": "78", + "Open": "80.75", + "Volume": "8383600" + }, + { + "Close": "79.309998", + "Date": "2002/6/4", + "High": "79.650002", + "Low": "77.599998", + "Open": "78.110001", + "Volume": "7273200" + }, + { + "Close": "80.550003", + "Date": "2002/6/5", + "High": "80.709999", + "Low": "79.110001", + "Open": "79.650002", + "Volume": "7172100" + }, + { + "Close": "79.660004", + "Date": "2002/6/6", + "High": "80.949997", + "Low": "78.889999", + "Open": "80.550003", + "Volume": "5540600" + }, + { + "Close": "78.300003", + "Date": "2002/6/7", + "High": "78.849998", + "Low": "77", + "Open": "78.480003", + "Volume": "9309400" + }, + { + "Close": "76.800003", + "Date": "2002/6/10", + "High": "78.800003", + "Low": "76.599998", + "Open": "77.75", + "Volume": "7075800" + }, + { + "Close": "75.489998", + "Date": "2002/6/11", + "High": "78.25", + "Low": "75.199997", + "Open": "77.849998", + "Volume": "7953400" + }, + { + "Close": "74.650002", + "Date": "2002/6/12", + "High": "75.949997", + "Low": "73.25", + "Open": "75.400002", + "Volume": "13296100" + }, + { + "Close": "75.599998", + "Date": "2002/6/13", + "High": "77.400002", + "Low": "75.300003", + "Open": "75.449997", + "Volume": "8909600" + }, + { + "Close": "76.169998", + "Date": "2002/6/14", + "High": "76.769997", + "Low": "73.25", + "Open": "74.199997", + "Volume": "8592000" + }, + { + "Close": "77.139999", + "Date": "2002/6/17", + "High": "77.75", + "Low": "75.160004", + "Open": "76.18", + "Volume": "7775800" + }, + { + "Close": "75.940002", + "Date": "2002/6/18", + "High": "76.900002", + "Low": "75.470001", + "Open": "75.599998", + "Volume": "7242000" + }, + { + "Close": "73.349998", + "Date": "2002/6/19", + "High": "75.199997", + "Low": "73.25", + "Open": "74.199997", + "Volume": "9455400" + }, + { + "Close": "71.580002", + "Date": "2002/6/20", + "High": "74.089996", + "Low": "71.43", + "Open": "74", + "Volume": "11116900" + }, + { + "Close": "68.75", + "Date": "2002/6/21", + "High": "70.989998", + "Low": "68.190002", + "Open": "70", + "Volume": "15542600" + }, + { + "Close": "69.699997", + "Date": "2002/6/24", + "High": "71.489998", + "Low": "67.25", + "Open": "67.25", + "Volume": "14687700" + }, + { + "Close": "68.599998", + "Date": "2002/6/25", + "High": "71.449997", + "Low": "68.410004", + "Open": "70.300003", + "Volume": "8554800" + }, + { + "Close": "70.050003", + "Date": "2002/6/26", + "High": "70.589996", + "Low": "66.099998", + "Open": "66.099998", + "Volume": "11544000" + }, + { + "Close": "71.900002", + "Date": "2002/6/27", + "High": "72.150002", + "Low": "69.099998", + "Open": "71.199997", + "Volume": "10610100" + }, + { + "Close": "72", + "Date": "2002/6/28", + "High": "73.620003", + "Low": "71.25", + "Open": "71.349998", + "Volume": "10945600" + }, + { + "Close": "67.599998", + "Date": "2002/7/1", + "High": "72.410004", + "Low": "67.160004", + "Open": "72.010002", + "Volume": "12055900" + }, + { + "Close": "68.580002", + "Date": "2002/7/2", + "High": "69.400002", + "Low": "67.699997", + "Open": "67.849998", + "Volume": "12012900" + }, + { + "Close": "70.510002", + "Date": "2002/7/3", + "High": "70.709999", + "Low": "67.870003", + "Open": "67.949997", + "Volume": "8469900" + }, + { + "Close": "73.5", + "Date": "2002/7/5", + "High": "73.900002", + "Low": "72", + "Open": "72.449997", + "Volume": "5243000" + }, + { + "Close": "71.300003", + "Date": "2002/7/8", + "High": "73.480003", + "Low": "71.029999", + "Open": "73", + "Volume": "9488100" + }, + { + "Close": "69.669998", + "Date": "2002/7/9", + "High": "72.25", + "Low": "69.449997", + "Open": "71.400002", + "Volume": "11165600" + }, + { + "Close": "68.760002", + "Date": "2002/7/10", + "High": "71.25", + "Low": "68.529999", + "Open": "70.599998", + "Volume": "10073400" + }, + { + "Close": "69.410004", + "Date": "2002/7/11", + "High": "69.75", + "Low": "67.550003", + "Open": "68", + "Volume": "11026400" + }, + { + "Close": "69.209999", + "Date": "2002/7/12", + "High": "71.739998", + "Low": "68.800003", + "Open": "70", + "Volume": "8572200" + }, + { + "Close": "71", + "Date": "2002/7/15", + "High": "71", + "Low": "66.599998", + "Open": "68.400002", + "Volume": "10420900" + }, + { + "Close": "69.010002", + "Date": "2002/7/16", + "High": "71.389999", + "Low": "68.480003", + "Open": "69.510002", + "Volume": "10486800" + }, + { + "Close": "70.690002", + "Date": "2002/7/17", + "High": "71.599998", + "Low": "69.620003", + "Open": "71", + "Volume": "11537300" + }, + { + "Close": "72.050003", + "Date": "2002/7/18", + "High": "74.199997", + "Low": "70", + "Open": "70.5", + "Volume": "15310800" + }, + { + "Close": "72", + "Date": "2002/7/19", + "High": "72.699997", + "Low": "70", + "Open": "70.959999", + "Volume": "11612900" + }, + { + "Close": "68.5", + "Date": "2002/7/22", + "High": "72.190002", + "Low": "68.309998", + "Open": "71.25", + "Volume": "14866900" + }, + { + "Close": "67.050003", + "Date": "2002/7/23", + "High": "70", + "Low": "66.660004", + "Open": "68.25", + "Volume": "12766700" + }, + { + "Close": "69.540001", + "Date": "2002/7/24", + "High": "70", + "Low": "65.699997", + "Open": "66", + "Volume": "13804500" + }, + { + "Close": "69.349998", + "Date": "2002/7/25", + "High": "70", + "Low": "67.300003", + "Open": "68.900002", + "Volume": "10989800" + }, + { + "Close": "66.400002", + "Date": "2002/7/26", + "High": "69.470001", + "Low": "65.760002", + "Open": "68.75", + "Volume": "11576400" + }, + { + "Close": "71.18", + "Date": "2002/7/29", + "High": "71.400002", + "Low": "68", + "Open": "70.370003", + "Volume": "11919300" + }, + { + "Close": "71.790001", + "Date": "2002/7/30", + "High": "72.699997", + "Low": "70.019997", + "Open": "70.5", + "Volume": "10138600" + }, + { + "Close": "70.400002", + "Date": "2002/7/31", + "High": "71.599998", + "Low": "69.110001", + "Open": "70.75", + "Volume": "12718600" + }, + { + "Close": "68.25", + "Date": "2002/8/1", + "High": "70.699997", + "Low": "67.220001", + "Open": "70.400002", + "Volume": "8832000" + }, + { + "Close": "67.879997", + "Date": "2002/8/2", + "High": "68.230003", + "Low": "67.120003", + "Open": "68.209999", + "Volume": "6915000" + }, + { + "Close": "65.989998", + "Date": "2002/8/5", + "High": "68.349998", + "Low": "65.849998", + "Open": "67.940002", + "Volume": "7126900" + }, + { + "Close": "67.900002", + "Date": "2002/8/6", + "High": "69.419998", + "Low": "66.610001", + "Open": "67", + "Volume": "8370800" + }, + { + "Close": "69.169998", + "Date": "2002/8/7", + "High": "69.900002", + "Low": "66.800003", + "Open": "69", + "Volume": "8037300" + }, + { + "Close": "71.610001", + "Date": "2002/8/8", + "High": "72.050003", + "Low": "68.349998", + "Open": "69.199997", + "Volume": "8420500" + }, + { + "Close": "71.830002", + "Date": "2002/8/9", + "High": "74.300003", + "Low": "70.400002", + "Open": "70.610001", + "Volume": "6940900" + }, + { + "Close": "71.769997", + "Date": "2002/8/12", + "High": "72.639999", + "Low": "70.610001", + "Open": "71.050003", + "Volume": "5263300" + }, + { + "Close": "71.900002", + "Date": "2002/8/13", + "High": "73.800003", + "Low": "71.190002", + "Open": "71.550003", + "Volume": "8014700" + }, + { + "Close": "74.919998", + "Date": "2002/8/14", + "High": "75.019997", + "Low": "71.349998", + "Open": "71.949997", + "Volume": "8353000" + }, + { + "Close": "76.5", + "Date": "2002/8/15", + "High": "76.709999", + "Low": "74.599998", + "Open": "75.400002", + "Volume": "9267300" + }, + { + "Close": "79.349998", + "Date": "2002/8/16", + "High": "79.980003", + "Low": "75.980003", + "Open": "76.5", + "Volume": "11645800" + }, + { + "Close": "82.489998", + "Date": "2002/8/19", + "High": "82.849998", + "Low": "79.010002", + "Open": "79.349998", + "Volume": "10803900" + }, + { + "Close": "81.269997", + "Date": "2002/8/20", + "High": "82", + "Low": "80.18", + "Open": "81.559998", + "Volume": "7671000" + }, + { + "Close": "81", + "Date": "2002/8/21", + "High": "82.330002", + "Low": "79.550003", + "Open": "81.900002", + "Volume": "7768600" + }, + { + "Close": "81.989998", + "Date": "2002/8/22", + "High": "82.449997", + "Low": "80.199997", + "Open": "80.949997", + "Volume": "5446600" + }, + { + "Close": "80.400002", + "Date": "2002/8/23", + "High": "81.480003", + "Low": "79.349998", + "Open": "81.199997", + "Volume": "5908900" + }, + { + "Close": "79.419998", + "Date": "2002/8/26", + "High": "80.889999", + "Low": "77.800003", + "Open": "80.400002", + "Volume": "6997800" + }, + { + "Close": "77.959999", + "Date": "2002/8/27", + "High": "80.440002", + "Low": "77.300003", + "Open": "80.400002", + "Volume": "7087800" + }, + { + "Close": "76.059998", + "Date": "2002/8/28", + "High": "77.010002", + "Low": "75.669998", + "Open": "76", + "Volume": "6590300" + }, + { + "Close": "76.620003", + "Date": "2002/8/29", + "High": "77.349998", + "Low": "75.150002", + "Open": "75.599998", + "Volume": "5857400" + }, + { + "Close": "75.379997", + "Date": "2002/8/30", + "High": "76.349998", + "Low": "75.099998", + "Open": "75.550003", + "Volume": "5002500" + }, + { + "Close": "72.349998", + "Date": "2002/9/3", + "High": "75", + "Low": "72.300003", + "Open": "74.199997", + "Volume": "6849400" + }, + { + "Close": "73.730003", + "Date": "2002/9/4", + "High": "73.989998", + "Low": "71.599998", + "Open": "72.349998", + "Volume": "6264600" + }, + { + "Close": "72.18", + "Date": "2002/9/5", + "High": "72.849998", + "Low": "71.5", + "Open": "72.739998", + "Volume": "6467700" + }, + { + "Close": "73.199997", + "Date": "2002/9/6", + "High": "73.989998", + "Low": "73.07", + "Open": "73.75", + "Volume": "4586500" + }, + { + "Close": "74.5", + "Date": "2002/9/9", + "High": "74.980003", + "Low": "71.849998", + "Open": "72.449997", + "Volume": "5785000" + }, + { + "Close": "75.599998", + "Date": "2002/9/10", + "High": "75.599998", + "Low": "73.849998", + "Open": "74.599998", + "Volume": "5538300" + }, + { + "Close": "74.199997", + "Date": "2002/9/11", + "High": "77.5", + "Low": "74.059998", + "Open": "76.400002", + "Volume": "5394400" + }, + { + "Close": "71.870003", + "Date": "2002/9/12", + "High": "74.050003", + "Low": "71.639999", + "Open": "74.050003", + "Volume": "6707400" + }, + { + "Close": "72.5", + "Date": "2002/9/13", + "High": "72.879997", + "Low": "71.309998", + "Open": "71.5", + "Volume": "5949600" + }, + { + "Close": "72.32", + "Date": "2002/9/16", + "High": "72.720001", + "Low": "71.230003", + "Open": "72", + "Volume": "4595200" + }, + { + "Close": "71.75", + "Date": "2002/9/17", + "High": "73.449997", + "Low": "71.349998", + "Open": "73", + "Volume": "6195100" + }, + { + "Close": "69.550003", + "Date": "2002/9/18", + "High": "70.900002", + "Low": "68.860001", + "Open": "70.650002", + "Volume": "12712700" + }, + { + "Close": "64.800003", + "Date": "2002/9/19", + "High": "66.480003", + "Low": "64.650002", + "Open": "64.800003", + "Volume": "22034900" + }, + { + "Close": "63.919998", + "Date": "2002/9/20", + "High": "65.400002", + "Low": "63.900002", + "Open": "65.400002", + "Volume": "14195200" + }, + { + "Close": "63.369999", + "Date": "2002/9/23", + "High": "63.75", + "Low": "62.369999", + "Open": "63.75", + "Volume": "8377100" + }, + { + "Close": "59.75", + "Date": "2002/9/24", + "High": "63.299999", + "Low": "59.549999", + "Open": "61.080002", + "Volume": "16710100" + }, + { + "Close": "63.009998", + "Date": "2002/9/25", + "High": "63.77", + "Low": "60.990002", + "Open": "61.200001", + "Volume": "13119200" + }, + { + "Close": "62.02", + "Date": "2002/9/26", + "High": "64.879997", + "Low": "61.330002", + "Open": "64.199997", + "Volume": "12368800" + }, + { + "Close": "60.360001", + "Date": "2002/9/27", + "High": "63.490002", + "Low": "60.310001", + "Open": "61.43", + "Volume": "8793100" + }, + { + "Close": "58.310001", + "Date": "2002/9/30", + "High": "59.889999", + "Low": "57.990002", + "Open": "59.549999", + "Volume": "13020100" + }, + { + "Close": "61.169998", + "Date": "2002/10/1", + "High": "61.98", + "Low": "58.990002", + "Open": "59.200001", + "Volume": "11642800" + }, + { + "Close": "59.630001", + "Date": "2002/10/2", + "High": "62", + "Low": "58.349998", + "Open": "61.18", + "Volume": "10653300" + }, + { + "Close": "60", + "Date": "2002/10/3", + "High": "61.16", + "Low": "58.950001", + "Open": "60.299999", + "Volume": "11001100" + }, + { + "Close": "56.599998", + "Date": "2002/10/4", + "High": "59.509998", + "Low": "55.77", + "Open": "59.5", + "Volume": "14551900" + }, + { + "Close": "56.860001", + "Date": "2002/10/7", + "High": "58.5", + "Low": "56.599998", + "Open": "56.599998", + "Volume": "9641600" + }, + { + "Close": "57.049999", + "Date": "2002/10/8", + "High": "58.09", + "Low": "54.799999", + "Open": "57.779999", + "Volume": "14744500" + }, + { + "Close": "55.07", + "Date": "2002/10/9", + "High": "56.700001", + "Low": "54.810001", + "Open": "56.049999", + "Volume": "12156000" + }, + { + "Close": "57.580002", + "Date": "2002/10/10", + "High": "58.48", + "Low": "54.009998", + "Open": "54.650002", + "Volume": "12670600" + }, + { + "Close": "63.919998", + "Date": "2002/10/11", + "High": "63.919998", + "Low": "61.5", + "Open": "62", + "Volume": "17853800" + }, + { + "Close": "63.419998", + "Date": "2002/10/14", + "High": "63.799999", + "Low": "61.540001", + "Open": "61.540001", + "Volume": "7925300" + }, + { + "Close": "68.480003", + "Date": "2002/10/15", + "High": "68.480003", + "Low": "66.580002", + "Open": "67.75", + "Volume": "14600200" + }, + { + "Close": "64.900002", + "Date": "2002/10/16", + "High": "67", + "Low": "64.239998", + "Open": "66.599998", + "Volume": "15900200" + }, + { + "Close": "72.199997", + "Date": "2002/10/17", + "High": "73", + "Low": "71.230003", + "Open": "72.800003", + "Volume": "21344600" + }, + { + "Close": "74.25", + "Date": "2002/10/18", + "High": "74.25", + "Low": "70.260002", + "Open": "71.730003", + "Volume": "12482900" + }, + { + "Close": "75.550003", + "Date": "2002/10/21", + "High": "75.900002", + "Low": "72.940002", + "Open": "73.650002", + "Volume": "10875700" + }, + { + "Close": "74.489998", + "Date": "2002/10/22", + "High": "75.68", + "Low": "73.620003", + "Open": "74.5", + "Volume": "10371500" + }, + { + "Close": "74.599998", + "Date": "2002/10/23", + "High": "74.970001", + "Low": "72.459999", + "Open": "74.400002", + "Volume": "12441900" + }, + { + "Close": "72.099998", + "Date": "2002/10/24", + "High": "75.550003", + "Low": "71.75", + "Open": "75.5", + "Volume": "10524000" + }, + { + "Close": "74.559998", + "Date": "2002/10/25", + "High": "74.620003", + "Low": "72.160004", + "Open": "72.5", + "Volume": "7514200" + }, + { + "Close": "76.559998", + "Date": "2002/10/28", + "High": "77.5", + "Low": "74.559998", + "Open": "75.150002", + "Volume": "12544900" + }, + { + "Close": "76.739998", + "Date": "2002/10/29", + "High": "77.050003", + "Low": "74.199997", + "Open": "76.559998", + "Volume": "11455200" + }, + { + "Close": "78.669998", + "Date": "2002/10/30", + "High": "79.400002", + "Low": "76.019997", + "Open": "77", + "Volume": "12865800" + }, + { + "Close": "78.940002", + "Date": "2002/10/31", + "High": "79.790001", + "Low": "78.5", + "Open": "78.669998", + "Volume": "9864300" + }, + { + "Close": "80.400002", + "Date": "2002/11/1", + "High": "80.5", + "Low": "78.32", + "Open": "78.900002", + "Volume": "9395200" + }, + { + "Close": "82.5", + "Date": "2002/11/4", + "High": "83.809998", + "Low": "81.699997", + "Open": "81.989998", + "Volume": "12006000" + }, + { + "Close": "81.68", + "Date": "2002/11/5", + "High": "82.010002", + "Low": "80.470001", + "Open": "81.75", + "Volume": "10466700" + }, + { + "Close": "81.540001", + "Date": "2002/11/6", + "High": "81.879997", + "Low": "80.050003", + "Open": "80.800003", + "Volume": "10480800" + }, + { + "Close": "78.949997", + "Date": "2002/11/7", + "High": "80", + "Low": "78.32", + "Open": "80", + "Volume": "11036800" + }, + { + "Close": "77.589996", + "Date": "2002/11/8", + "High": "79.290001", + "Low": "77.199997", + "Open": "78.5", + "Volume": "8119600" + }, + { + "Close": "77.290001", + "Date": "2002/11/11", + "High": "78.360001", + "Low": "76.699997", + "Open": "77.589996", + "Volume": "7386400" + }, + { + "Close": "79.150002", + "Date": "2002/11/12", + "High": "79.900002", + "Low": "77.300003", + "Open": "77.5", + "Volume": "9027700" + }, + { + "Close": "79.349998", + "Date": "2002/11/13", + "High": "80.330002", + "Low": "77.980003", + "Open": "79.5", + "Volume": "11984700" + }, + { + "Close": "80.720001", + "Date": "2002/11/14", + "High": "80.989998", + "Low": "79.400002", + "Open": "80.379997", + "Volume": "9662800" + }, + { + "Close": "80.010002", + "Date": "2002/11/15", + "High": "80.400002", + "Low": "79.010002", + "Open": "80.379997", + "Volume": "11367800" + }, + { + "Close": "79.18", + "Date": "2002/11/18", + "High": "80.989998", + "Low": "79.080002", + "Open": "80.800003", + "Volume": "7321300" + }, + { + "Close": "78.370003", + "Date": "2002/11/19", + "High": "79.449997", + "Low": "77.839996", + "Open": "78.239998", + "Volume": "6918400" + }, + { + "Close": "81.610001", + "Date": "2002/11/20", + "High": "81.709999", + "Low": "77.900002", + "Open": "77.949997", + "Volume": "9070900" + }, + { + "Close": "84.900002", + "Date": "2002/11/21", + "High": "84.919998", + "Low": "82.050003", + "Open": "82.050003", + "Volume": "12737200" + }, + { + "Close": "84.43", + "Date": "2002/11/22", + "High": "85.169998", + "Low": "83.800003", + "Open": "83.949997", + "Volume": "9053300" + }, + { + "Close": "86.199997", + "Date": "2002/11/25", + "High": "86.25", + "Low": "83.519997", + "Open": "84.629997", + "Volume": "8651200" + }, + { + "Close": "85.059998", + "Date": "2002/11/26", + "High": "86.150002", + "Low": "84.389999", + "Open": "86.150002", + "Volume": "8560800" + }, + { + "Close": "87.699997", + "Date": "2002/11/27", + "High": "88.110001", + "Low": "85.849998", + "Open": "85.900002", + "Volume": "8209800" + }, + { + "Close": "86.919998", + "Date": "2002/11/29", + "High": "88.050003", + "Low": "86.760002", + "Open": "87.709999", + "Volume": "2980700" + }, + { + "Close": "87.300003", + "Date": "2002/12/2", + "High": "89.459999", + "Low": "86.300003", + "Open": "88.599998", + "Volume": "9694200" + }, + { + "Close": "85.209999", + "Date": "2002/12/3", + "High": "87.029999", + "Low": "85.150002", + "Open": "86.720001", + "Volume": "7027800" + }, + { + "Close": "83.690002", + "Date": "2002/12/4", + "High": "84.860001", + "Low": "82.82", + "Open": "83.410004", + "Volume": "10053500" + }, + { + "Close": "83.059998", + "Date": "2002/12/5", + "High": "84.980003", + "Low": "82.599998", + "Open": "84.900002", + "Volume": "6900000" + }, + { + "Close": "82.32", + "Date": "2002/12/6", + "High": "82.75", + "Low": "81.07", + "Open": "81.5", + "Volume": "7594800" + }, + { + "Close": "79.589996", + "Date": "2002/12/9", + "High": "81.330002", + "Low": "79.5", + "Open": "81", + "Volume": "8841900" + }, + { + "Close": "80.800003", + "Date": "2002/12/10", + "High": "81", + "Low": "78.599998", + "Open": "78.599998", + "Volume": "6869800" + }, + { + "Close": "81.440002", + "Date": "2002/12/11", + "High": "82.480003", + "Low": "79.989998", + "Open": "80.800003", + "Volume": "6661000" + }, + { + "Close": "80.169998", + "Date": "2002/12/12", + "High": "81.690002", + "Low": "79.699997", + "Open": "81.25", + "Volume": "7208700" + }, + { + "Close": "80", + "Date": "2002/12/13", + "High": "80", + "Low": "78.269997", + "Open": "79.25", + "Volume": "7773800" + }, + { + "Close": "81.620003", + "Date": "2002/12/16", + "High": "81.790001", + "Low": "79.050003", + "Open": "79.599998", + "Volume": "8483500" + }, + { + "Close": "80.309998", + "Date": "2002/12/17", + "High": "81.769997", + "Low": "80.029999", + "Open": "80.599998", + "Volume": "6167100" + }, + { + "Close": "79.129997", + "Date": "2002/12/18", + "High": "79.690002", + "Low": "78.239998", + "Open": "79.25", + "Volume": "6514900" + }, + { + "Close": "78.660004", + "Date": "2002/12/19", + "High": "80.339996", + "Low": "78.349998", + "Open": "78.599998", + "Volume": "7319900" + }, + { + "Close": "79.790001", + "Date": "2002/12/20", + "High": "80", + "Low": "78.879997", + "Open": "79.400002", + "Volume": "8053800" + }, + { + "Close": "80.260002", + "Date": "2002/12/23", + "High": "81.5", + "Low": "79.440002", + "Open": "79.75", + "Volume": "5922200" + }, + { + "Close": "79.760002", + "Date": "2002/12/24", + "High": "81", + "Low": "79.760002", + "Open": "80.199997", + "Volume": "2420200" + }, + { + "Close": "78.5", + "Date": "2002/12/26", + "High": "80.699997", + "Low": "78.260002", + "Open": "79.809998", + "Volume": "5784300" + }, + { + "Close": "77.360001", + "Date": "2002/12/27", + "High": "79.18", + "Low": "76.610001", + "Open": "78.5", + "Volume": "6334100" + }, + { + "Close": "76.25", + "Date": "2002/12/30", + "High": "77.43", + "Low": "75.599998", + "Open": "77", + "Volume": "8066600" + }, + { + "Close": "77.5", + "Date": "2002/12/31", + "High": "78.459999", + "Low": "77.099998", + "Open": "77.099998", + "Volume": "7871400" + }, + { + "Close": "80.57", + "Date": "2003/1/2", + "High": "80.57", + "Low": "78.190002", + "Open": "78.800003", + "Volume": "7864500" + }, + { + "Close": "81.650002", + "Date": "2003/1/3", + "High": "81.650002", + "Low": "80.209999", + "Open": "80.699997", + "Volume": "5962300" + }, + { + "Close": "83.589996", + "Date": "2003/1/6", + "High": "84.800003", + "Low": "81.809998", + "Open": "81.900002", + "Volume": "7921300" + }, + { + "Close": "86", + "Date": "2003/1/7", + "High": "86.18", + "Low": "83.75", + "Open": "83.949997", + "Volume": "11906900" + }, + { + "Close": "84.190002", + "Date": "2003/1/8", + "High": "85.690002", + "Low": "84.07", + "Open": "85.550003", + "Volume": "9508800" + }, + { + "Close": "87", + "Date": "2003/1/9", + "High": "87.019997", + "Low": "84.75", + "Open": "84.75", + "Volume": "10711600" + }, + { + "Close": "87.68", + "Date": "2003/1/10", + "High": "88.040001", + "Low": "85.699997", + "Open": "85.849998", + "Volume": "9955400" + }, + { + "Close": "87.510002", + "Date": "2003/1/13", + "High": "88.949997", + "Low": "87.349998", + "Open": "88.309998", + "Volume": "10499000" + }, + { + "Close": "88.580002", + "Date": "2003/1/14", + "High": "88.589996", + "Low": "87.220001", + "Open": "87.230003", + "Volume": "7569100" + }, + { + "Close": "87.589996", + "Date": "2003/1/15", + "High": "88.650002", + "Low": "86.949997", + "Open": "88.580002", + "Volume": "8146600" + }, + { + "Close": "86.050003", + "Date": "2003/1/16", + "High": "87.709999", + "Low": "85.379997", + "Open": "87.400002", + "Volume": "9904300" + }, + { + "Close": "81.300003", + "Date": "2003/1/17", + "High": "83.739998", + "Low": "81.18", + "Open": "83.739998", + "Volume": "17331200" + }, + { + "Close": "80.540001", + "Date": "2003/1/21", + "High": "81.849998", + "Low": "80.5", + "Open": "81.300003", + "Volume": "8926900" + }, + { + "Close": "79.699997", + "Date": "2003/1/22", + "High": "80.769997", + "Low": "79.389999", + "Open": "80", + "Volume": "9432400" + }, + { + "Close": "81.050003", + "Date": "2003/1/23", + "High": "81.360001", + "Low": "79.800003", + "Open": "80.150002", + "Volume": "8371400" + }, + { + "Close": "78.989998", + "Date": "2003/1/24", + "High": "81.5", + "Low": "78.82", + "Open": "80.599998", + "Volume": "7748000" + }, + { + "Close": "78.419998", + "Date": "2003/1/27", + "High": "79.5", + "Low": "77.610001", + "Open": "77.989998", + "Volume": "9307800" + }, + { + "Close": "80.110001", + "Date": "2003/1/28", + "High": "80.470001", + "Low": "78.360001", + "Open": "78.5", + "Volume": "8017400" + }, + { + "Close": "80.32", + "Date": "2003/1/29", + "High": "80.699997", + "Low": "78.57", + "Open": "79.5", + "Volume": "7755000" + }, + { + "Close": "78.300003", + "Date": "2003/1/30", + "High": "81.300003", + "Low": "78.300003", + "Open": "81.300003", + "Volume": "7349500" + }, + { + "Close": "78.199997", + "Date": "2003/1/31", + "High": "78.339996", + "Low": "77.019997", + "Open": "77.699997", + "Volume": "9744100" + }, + { + "Close": "78.18", + "Date": "2003/2/3", + "High": "78.870003", + "Low": "77.75", + "Open": "78.199997", + "Volume": "6683500" + }, + { + "Close": "77.089996", + "Date": "2003/2/4", + "High": "78.18", + "Low": "76.25", + "Open": "78.18", + "Volume": "7216200" + }, + { + "Close": "77.260002", + "Date": "2003/2/5", + "High": "78.900002", + "Low": "76.870003", + "Open": "77.849998", + "Volume": "7427200" + }, + { + "Close": "77.510002", + "Date": "2003/2/6", + "High": "78.199997", + "Low": "76.510002", + "Open": "77.110001", + "Volume": "7755200" + }, + { + "Close": "77.099998", + "Date": "2003/2/7", + "High": "78.150002", + "Low": "76.610001", + "Open": "77.970001", + "Volume": "8296400" + }, + { + "Close": "77.910004", + "Date": "2003/2/10", + "High": "78.019997", + "Low": "76.449997", + "Open": "77.099998", + "Volume": "7949100" + }, + { + "Close": "77.389999", + "Date": "2003/2/11", + "High": "78.970001", + "Low": "77.309998", + "Open": "78.300003", + "Volume": "8598200" + }, + { + "Close": "76.5", + "Date": "2003/2/12", + "High": "78.089996", + "Low": "76.5", + "Open": "77.5", + "Volume": "5609200" + }, + { + "Close": "75.860001", + "Date": "2003/2/13", + "High": "76.349998", + "Low": "74.309998", + "Open": "76.099998", + "Volume": "11218400" + }, + { + "Close": "77.449997", + "Date": "2003/2/14", + "High": "77.449997", + "Low": "75.349998", + "Open": "76.400002", + "Volume": "8299500" + }, + { + "Close": "79.330002", + "Date": "2003/2/18", + "High": "79.5", + "Low": "77.910004", + "Open": "78.019997", + "Volume": "7791200" + }, + { + "Close": "79.510002", + "Date": "2003/2/19", + "High": "79.699997", + "Low": "78.82", + "Open": "79.080002", + "Volume": "5440300" + }, + { + "Close": "79.150002", + "Date": "2003/2/20", + "High": "80.050003", + "Low": "78.709999", + "Open": "79.57", + "Volume": "6285100" + }, + { + "Close": "79.949997", + "Date": "2003/2/21", + "High": "80", + "Low": "78.160004", + "Open": "79.489998", + "Volume": "7453900" + }, + { + "Close": "78.559998", + "Date": "2003/2/24", + "High": "79.989998", + "Low": "78.559998", + "Open": "79.699997", + "Volume": "6874700" + }, + { + "Close": "79.07", + "Date": "2003/2/25", + "High": "79.370003", + "Low": "76.900002", + "Open": "77.900002", + "Volume": "7675900" + }, + { + "Close": "77.400002", + "Date": "2003/2/26", + "High": "79.050003", + "Low": "77.300003", + "Open": "78.449997", + "Volume": "8587000" + }, + { + "Close": "77.279999", + "Date": "2003/2/27", + "High": "78.589996", + "Low": "76.75", + "Open": "77.900002", + "Volume": "9926500" + }, + { + "Close": "77.949997", + "Date": "2003/2/28", + "High": "78.470001", + "Low": "77", + "Open": "77", + "Volume": "6585200" + }, + { + "Close": "77.330002", + "Date": "2003/3/3", + "High": "79", + "Low": "77.120003", + "Open": "78.900002", + "Volume": "6618300" + }, + { + "Close": "76.699997", + "Date": "2003/3/4", + "High": "77.75", + "Low": "76.529999", + "Open": "77.599998", + "Volume": "5672200" + }, + { + "Close": "77.730003", + "Date": "2003/3/5", + "High": "77.730003", + "Low": "76.25", + "Open": "76.699997", + "Volume": "6658000" + }, + { + "Close": "77.07", + "Date": "2003/3/6", + "High": "77.779999", + "Low": "76.699997", + "Open": "77", + "Volume": "5876300" + }, + { + "Close": "77.900002", + "Date": "2003/3/7", + "High": "77.989998", + "Low": "75.709999", + "Open": "75.709999", + "Volume": "8129200" + }, + { + "Close": "75.699997", + "Date": "2003/3/10", + "High": "77.449997", + "Low": "75.5", + "Open": "77.449997", + "Volume": "6641300" + }, + { + "Close": "75.349998", + "Date": "2003/3/11", + "High": "76.330002", + "Low": "75.199997", + "Open": "75.82", + "Volume": "8119200" + }, + { + "Close": "75.18", + "Date": "2003/3/12", + "High": "75.629997", + "Low": "73.169998", + "Open": "75.25", + "Volume": "12773700" + }, + { + "Close": "78.449997", + "Date": "2003/3/13", + "High": "78.68", + "Low": "75.309998", + "Open": "75.989998", + "Volume": "10452500" + }, + { + "Close": "79", + "Date": "2003/3/14", + "High": "79.480003", + "Low": "78.110001", + "Open": "78.449997", + "Volume": "10117700" + }, + { + "Close": "82.459999", + "Date": "2003/3/17", + "High": "82.669998", + "Low": "77.839996", + "Open": "78", + "Volume": "15193000" + }, + { + "Close": "82.470001", + "Date": "2003/3/18", + "High": "83.5", + "Low": "81.489998", + "Open": "82.459999", + "Volume": "10795400" + }, + { + "Close": "82", + "Date": "2003/3/19", + "High": "82.5", + "Low": "81.080002", + "Open": "82.089996", + "Volume": "10473100" + }, + { + "Close": "82.199997", + "Date": "2003/3/20", + "High": "82.489998", + "Low": "80.639999", + "Open": "81.709999", + "Volume": "9046400" + }, + { + "Close": "84.900002", + "Date": "2003/3/21", + "High": "84.900002", + "Low": "82.760002", + "Open": "82.760002", + "Volume": "12625400" + }, + { + "Close": "82.25", + "Date": "2003/3/24", + "High": "83.349998", + "Low": "82.230003", + "Open": "82.459999", + "Volume": "9352600" + }, + { + "Close": "83.449997", + "Date": "2003/3/25", + "High": "84", + "Low": "81.739998", + "Open": "82", + "Volume": "8777100" + }, + { + "Close": "81.550003", + "Date": "2003/3/26", + "High": "83.25", + "Low": "81.18", + "Open": "83", + "Volume": "10531600" + }, + { + "Close": "81.449997", + "Date": "2003/3/27", + "High": "82.330002", + "Low": "80.510002", + "Open": "80.75", + "Volume": "7265800" + }, + { + "Close": "80.849998", + "Date": "2003/3/28", + "High": "81.989998", + "Low": "80.5", + "Open": "81.050003", + "Volume": "6649200" + }, + { + "Close": "78.43", + "Date": "2003/3/31", + "High": "79.610001", + "Low": "78.309998", + "Open": "79.260002", + "Volume": "10169200" + }, + { + "Close": "78.730003", + "Date": "2003/4/1", + "High": "79.559998", + "Low": "78.120003", + "Open": "78.5", + "Volume": "7861400" + }, + { + "Close": "81.459999", + "Date": "2003/4/2", + "High": "81.970001", + "Low": "79.900002", + "Open": "79.900002", + "Volume": "9700100" + }, + { + "Close": "81.910004", + "Date": "2003/4/3", + "High": "83.480003", + "Low": "81.709999", + "Open": "82.32", + "Volume": "9623600" + }, + { + "Close": "80.790001", + "Date": "2003/4/4", + "High": "82.550003", + "Low": "80.040001", + "Open": "82.349998", + "Volume": "8985000" + }, + { + "Close": "80.470001", + "Date": "2003/4/7", + "High": "82.900002", + "Low": "80.25", + "Open": "82.599998", + "Volume": "8881400" + }, + { + "Close": "80.07", + "Date": "2003/4/8", + "High": "80.699997", + "Low": "78.470001", + "Open": "80.620003", + "Volume": "8057600" + }, + { + "Close": "78.709999", + "Date": "2003/4/9", + "High": "80.739998", + "Low": "78.629997", + "Open": "79.699997", + "Volume": "8543200" + }, + { + "Close": "79.010002", + "Date": "2003/4/10", + "High": "79.25", + "Low": "78.129997", + "Open": "79.099998", + "Volume": "6880100" + }, + { + "Close": "78.75", + "Date": "2003/4/11", + "High": "81.290001", + "Low": "78.449997", + "Open": "80.099998", + "Volume": "7573500" + }, + { + "Close": "80.07", + "Date": "2003/4/14", + "High": "80.07", + "Low": "78.160004", + "Open": "78.5", + "Volume": "9006000" + }, + { + "Close": "82.790001", + "Date": "2003/4/15", + "High": "82.849998", + "Low": "79.709999", + "Open": "80.07", + "Volume": "13613500" + }, + { + "Close": "82.879997", + "Date": "2003/4/16", + "High": "84.400002", + "Low": "82.739998", + "Open": "83.379997", + "Volume": "10790700" + }, + { + "Close": "84.260002", + "Date": "2003/4/17", + "High": "84.400002", + "Low": "81.889999", + "Open": "81.889999", + "Volume": "8802100" + }, + { + "Close": "83.360001", + "Date": "2003/4/21", + "High": "84.510002", + "Low": "83.099998", + "Open": "84.400002", + "Volume": "6703400" + }, + { + "Close": "85.629997", + "Date": "2003/4/22", + "High": "86.059998", + "Low": "82.599998", + "Open": "83.360001", + "Volume": "9542600" + }, + { + "Close": "85.75", + "Date": "2003/4/23", + "High": "85.970001", + "Low": "84.959999", + "Open": "85.239998", + "Volume": "7084500" + }, + { + "Close": "85.199997", + "Date": "2003/4/24", + "High": "85.699997", + "Low": "84.629997", + "Open": "84.650002", + "Volume": "5943500" + }, + { + "Close": "83.879997", + "Date": "2003/4/25", + "High": "85.279999", + "Low": "83.860001", + "Open": "85.209999", + "Volume": "6790700" + }, + { + "Close": "85.120003", + "Date": "2003/4/28", + "High": "85.5", + "Low": "83.620003", + "Open": "84.050003", + "Volume": "6363600" + }, + { + "Close": "85.660004", + "Date": "2003/4/29", + "High": "86.489998", + "Low": "84.970001", + "Open": "85.339996", + "Volume": "8682900" + }, + { + "Close": "84.900002", + "Date": "2003/4/30", + "High": "85.669998", + "Low": "84.68", + "Open": "85.660004", + "Volume": "8444900" + }, + { + "Close": "85.889999", + "Date": "2003/5/1", + "High": "86.230003", + "Low": "84.470001", + "Open": "85.300003", + "Volume": "7485700" + }, + { + "Close": "87.57", + "Date": "2003/5/2", + "High": "87.57", + "Low": "84.449997", + "Open": "84.449997", + "Volume": "8381900" + }, + { + "Close": "86.519997", + "Date": "2003/5/5", + "High": "88", + "Low": "86.519997", + "Open": "87.199997", + "Volume": "7632500" + }, + { + "Close": "87.510002", + "Date": "2003/5/6", + "High": "88.339996", + "Low": "86", + "Open": "86.300003", + "Volume": "7459600" + }, + { + "Close": "86.68", + "Date": "2003/5/7", + "High": "87.809998", + "Low": "86.5", + "Open": "86.949997", + "Volume": "6754600" + }, + { + "Close": "86.050003", + "Date": "2003/5/8", + "High": "86.779999", + "Low": "85.75", + "Open": "86.370003", + "Volume": "7188200" + }, + { + "Close": "87.550003", + "Date": "2003/5/9", + "High": "87.699997", + "Low": "86.400002", + "Open": "86.900002", + "Volume": "6222600" + }, + { + "Close": "89", + "Date": "2003/5/12", + "High": "89.260002", + "Low": "87.099998", + "Open": "87.550003", + "Volume": "8445700" + }, + { + "Close": "89.980003", + "Date": "2003/5/13", + "High": "90.099998", + "Low": "88.559998", + "Open": "88.779999", + "Volume": "8668300" + }, + { + "Close": "88.699997", + "Date": "2003/5/14", + "High": "90.400002", + "Low": "88.300003", + "Open": "90", + "Volume": "7752200" + }, + { + "Close": "89.900002", + "Date": "2003/5/15", + "High": "89.959999", + "Low": "89", + "Open": "89.5", + "Volume": "7102900" + }, + { + "Close": "88.989998", + "Date": "2003/5/16", + "High": "89.889999", + "Low": "88.949997", + "Open": "89.669998", + "Volume": "6831600" + }, + { + "Close": "86.449997", + "Date": "2003/5/19", + "High": "88.470001", + "Low": "86.410004", + "Open": "88.050003", + "Volume": "7298400" + }, + { + "Close": "85.769997", + "Date": "2003/5/20", + "High": "87.239998", + "Low": "84.889999", + "Open": "86.580002", + "Volume": "7331900" + }, + { + "Close": "86.18", + "Date": "2003/5/21", + "High": "86.18", + "Low": "85.080002", + "Open": "85.769997", + "Volume": "6741000" + }, + { + "Close": "86.080002", + "Date": "2003/5/22", + "High": "86.800003", + "Low": "85.800003", + "Open": "86.25", + "Volume": "6277300" + }, + { + "Close": "85.260002", + "Date": "2003/5/23", + "High": "85.949997", + "Low": "85.099998", + "Open": "85.75", + "Volume": "5187200" + }, + { + "Close": "87.690002", + "Date": "2003/5/27", + "High": "87.900002", + "Low": "84.510002", + "Open": "84.510002", + "Volume": "7163400" + }, + { + "Close": "87.57", + "Date": "2003/5/28", + "High": "88.699997", + "Low": "87.400002", + "Open": "87.599998", + "Volume": "6539900" + }, + { + "Close": "87.360001", + "Date": "2003/5/29", + "High": "88.589996", + "Low": "87.199997", + "Open": "87.57", + "Volume": "6898900" + }, + { + "Close": "88.040001", + "Date": "2003/5/30", + "High": "88.68", + "Low": "87.449997", + "Open": "87.449997", + "Volume": "6184200" + }, + { + "Close": "87.330002", + "Date": "2003/6/2", + "High": "89.080002", + "Low": "87.25", + "Open": "89", + "Volume": "7697200" + }, + { + "Close": "83.82", + "Date": "2003/6/3", + "High": "85.239998", + "Low": "83.239998", + "Open": "84.32", + "Volume": "21106600" + }, + { + "Close": "84.25", + "Date": "2003/6/4", + "High": "84.959999", + "Low": "83.830002", + "Open": "84", + "Volume": "10734400" + }, + { + "Close": "81.900002", + "Date": "2003/6/5", + "High": "84.25", + "Low": "81.75", + "Open": "84", + "Volume": "15256300" + }, + { + "Close": "80.050003", + "Date": "2003/6/6", + "High": "83.230003", + "Low": "79.839996", + "Open": "82.25", + "Volume": "15160900" + }, + { + "Close": "82", + "Date": "2003/6/9", + "High": "82", + "Low": "79.809998", + "Open": "80", + "Volume": "9756300" + }, + { + "Close": "81.709999", + "Date": "2003/6/10", + "High": "82.919998", + "Low": "81.209999", + "Open": "82.349998", + "Volume": "8896000" + }, + { + "Close": "83.970001", + "Date": "2003/6/11", + "High": "84.150002", + "Low": "82.290001", + "Open": "82.75", + "Volume": "9815800" + }, + { + "Close": "83.949997", + "Date": "2003/6/12", + "High": "84.980003", + "Low": "83.550003", + "Open": "84.800003", + "Volume": "7072400" + }, + { + "Close": "82.75", + "Date": "2003/6/13", + "High": "84.290001", + "Low": "82.510002", + "Open": "84.150002", + "Volume": "5727500" + }, + { + "Close": "84.5", + "Date": "2003/6/16", + "High": "84.550003", + "Low": "82.550003", + "Open": "83.099998", + "Volume": "6492100" + }, + { + "Close": "84.300003", + "Date": "2003/6/17", + "High": "84.949997", + "Low": "83.800003", + "Open": "84.949997", + "Volume": "5873700" + }, + { + "Close": "84.699997", + "Date": "2003/6/18", + "High": "84.989998", + "Low": "83.220001", + "Open": "84.150002", + "Volume": "5941400" + }, + { + "Close": "84.550003", + "Date": "2003/6/19", + "High": "85.290001", + "Low": "84.5", + "Open": "84.949997", + "Volume": "7277100" + }, + { + "Close": "84.919998", + "Date": "2003/6/20", + "High": "85.239998", + "Low": "84.690002", + "Open": "85", + "Volume": "11900000" + }, + { + "Close": "83.18", + "Date": "2003/6/23", + "High": "84.790001", + "Low": "82.970001", + "Open": "84.790001", + "Volume": "6311600" + }, + { + "Close": "83.629997", + "Date": "2003/6/24", + "High": "84.18", + "Low": "82.849998", + "Open": "82.949997", + "Volume": "5062800" + }, + { + "Close": "82.489998", + "Date": "2003/6/25", + "High": "84.160004", + "Low": "82.089996", + "Open": "83.550003", + "Volume": "5548000" + }, + { + "Close": "84.349998", + "Date": "2003/6/26", + "High": "84.379997", + "Low": "82.82", + "Open": "83.699997", + "Volume": "6374400" + }, + { + "Close": "83.419998", + "Date": "2003/6/27", + "High": "84.650002", + "Low": "83.220001", + "Open": "84.150002", + "Volume": "4532900" + }, + { + "Close": "82.5", + "Date": "2003/6/30", + "High": "84.199997", + "Low": "82.5", + "Open": "83.900002", + "Volume": "7950900" + }, + { + "Close": "83.589996", + "Date": "2003/7/1", + "High": "83.660004", + "Low": "81.400002", + "Open": "81.400002", + "Volume": "5785800" + }, + { + "Close": "84.739998", + "Date": "2003/7/2", + "High": "84.889999", + "Low": "83.75", + "Open": "83.949997", + "Volume": "6009700" + }, + { + "Close": "83.949997", + "Date": "2003/7/3", + "High": "84.690002", + "Low": "83.480003", + "Open": "84.25", + "Volume": "3009500" + }, + { + "Close": "86.089996", + "Date": "2003/7/7", + "High": "86.449997", + "Low": "84.739998", + "Open": "84.800003", + "Volume": "7614900" + }, + { + "Close": "86.25", + "Date": "2003/7/8", + "High": "86.75", + "Low": "85.190002", + "Open": "86.089996", + "Volume": "5873900" + }, + { + "Close": "85.470001", + "Date": "2003/7/9", + "High": "86.349998", + "Low": "84.849998", + "Open": "86.099998", + "Volume": "6709700" + }, + { + "Close": "84.029999", + "Date": "2003/7/10", + "High": "85.220001", + "Low": "83.470001", + "Open": "85", + "Volume": "7509200" + }, + { + "Close": "84.889999", + "Date": "2003/7/11", + "High": "85.279999", + "Low": "83.699997", + "Open": "84.099998", + "Volume": "4534700" + }, + { + "Close": "85.419998", + "Date": "2003/7/14", + "High": "86.580002", + "Low": "85.419998", + "Open": "86", + "Volume": "6455200" + }, + { + "Close": "86.440002", + "Date": "2003/7/15", + "High": "87", + "Low": "85.82", + "Open": "86.150002", + "Volume": "7910400" + }, + { + "Close": "86.739998", + "Date": "2003/7/16", + "High": "87.029999", + "Low": "85.849998", + "Open": "87", + "Volume": "8837600" + }, + { + "Close": "83.330002", + "Date": "2003/7/17", + "High": "83.940002", + "Low": "82.5", + "Open": "82.699997", + "Volume": "13515700" + }, + { + "Close": "83.720001", + "Date": "2003/7/18", + "High": "84.019997", + "Low": "83.209999", + "Open": "83.849998", + "Volume": "8567200" + }, + { + "Close": "82.5", + "Date": "2003/7/21", + "High": "83.43", + "Low": "82.209999", + "Open": "83.199997", + "Volume": "7036100" + }, + { + "Close": "81.849998", + "Date": "2003/7/22", + "High": "83.260002", + "Low": "81.519997", + "Open": "82.5", + "Volume": "8744300" + }, + { + "Close": "82.300003", + "Date": "2003/7/23", + "High": "82.769997", + "Low": "81.730003", + "Open": "82", + "Volume": "5326800" + }, + { + "Close": "81.510002", + "Date": "2003/7/24", + "High": "82.989998", + "Low": "81.510002", + "Open": "82.949997", + "Volume": "5859100" + }, + { + "Close": "83.550003", + "Date": "2003/7/25", + "High": "83.739998", + "Low": "81.57", + "Open": "81.599998", + "Volume": "6204700" + }, + { + "Close": "82.540001", + "Date": "2003/7/28", + "High": "83.699997", + "Low": "82.040001", + "Open": "83.669998", + "Volume": "6423500" + }, + { + "Close": "81.800003", + "Date": "2003/7/29", + "High": "82.879997", + "Low": "81.599998", + "Open": "82.550003", + "Volume": "7282700" + }, + { + "Close": "80.959999", + "Date": "2003/7/30", + "High": "82.449997", + "Low": "80.580002", + "Open": "82.449997", + "Volume": "6654600" + }, + { + "Close": "81.25", + "Date": "2003/7/31", + "High": "82.540001", + "Low": "81.099998", + "Open": "81.800003", + "Volume": "8050300" + }, + { + "Close": "81.269997", + "Date": "2003/8/1", + "High": "81.269997", + "Low": "80.050003", + "Open": "81.150002", + "Volume": "6475400" + }, + { + "Close": "81.129997", + "Date": "2003/8/4", + "High": "81.360001", + "Low": "80.059998", + "Open": "80.75", + "Volume": "5888000" + }, + { + "Close": "79.849998", + "Date": "2003/8/5", + "High": "81.330002", + "Low": "79.800003", + "Open": "81.129997", + "Volume": "7018100" + }, + { + "Close": "79.75", + "Date": "2003/8/6", + "High": "80.68", + "Low": "78.730003", + "Open": "79.699997", + "Volume": "7472200" + }, + { + "Close": "80.690002", + "Date": "2003/8/7", + "High": "80.82", + "Low": "79.379997", + "Open": "79.690002", + "Volume": "5298500" + }, + { + "Close": "80.879997", + "Date": "2003/8/8", + "High": "81.269997", + "Low": "80.349998", + "Open": "81.050003", + "Volume": "4613800" + }, + { + "Close": "81.019997", + "Date": "2003/8/11", + "High": "81.5", + "Low": "80.279999", + "Open": "80.870003", + "Volume": "4261200" + }, + { + "Close": "81.510002", + "Date": "2003/8/12", + "High": "81.540001", + "Low": "80.650002", + "Open": "81.449997", + "Volume": "4634200" + }, + { + "Close": "81.199997", + "Date": "2003/8/13", + "High": "82.190002", + "Low": "80.580002", + "Open": "81.650002", + "Volume": "5138400" + }, + { + "Close": "81.559998", + "Date": "2003/8/14", + "High": "81.75", + "Low": "80.690002", + "Open": "81", + "Volume": "4562700" + }, + { + "Close": "81.790001", + "Date": "2003/8/15", + "High": "81.980003", + "Low": "81.199997", + "Open": "81.800003", + "Volume": "3623600" + }, + { + "Close": "83.519997", + "Date": "2003/8/18", + "High": "83.68", + "Low": "81.900002", + "Open": "82.050003", + "Volume": "6847200" + }, + { + "Close": "82.849998", + "Date": "2003/8/19", + "High": "83.809998", + "Low": "82.559998", + "Open": "83.099998", + "Volume": "6318300" + }, + { + "Close": "83.050003", + "Date": "2003/8/20", + "High": "83.309998", + "Low": "82", + "Open": "82", + "Volume": "4829900" + }, + { + "Close": "82.849998", + "Date": "2003/8/21", + "High": "83.849998", + "Low": "82.849998", + "Open": "83.389999", + "Volume": "5185200" + }, + { + "Close": "82.970001", + "Date": "2003/8/22", + "High": "84.720001", + "Low": "82.959999", + "Open": "84.25", + "Volume": "7434900" + }, + { + "Close": "81.959999", + "Date": "2003/8/25", + "High": "83.029999", + "Low": "81.75", + "Open": "82.849998", + "Volume": "5150900" + }, + { + "Close": "82.5", + "Date": "2003/8/26", + "High": "82.540001", + "Low": "81.269997", + "Open": "81.650002", + "Volume": "5569600" + }, + { + "Close": "82", + "Date": "2003/8/27", + "High": "82.529999", + "Low": "81.900002", + "Open": "82", + "Volume": "3834100" + }, + { + "Close": "81.900002", + "Date": "2003/8/28", + "High": "82.339996", + "Low": "81.269997", + "Open": "82", + "Volume": "5516300" + }, + { + "Close": "82.010002", + "Date": "2003/8/29", + "High": "82.110001", + "Low": "81.559998", + "Open": "81.949997", + "Volume": "4222700" + }, + { + "Close": "85.760002", + "Date": "2003/9/2", + "High": "85.959999", + "Low": "82.300003", + "Open": "82.400002", + "Volume": "12406400" + }, + { + "Close": "86.330002", + "Date": "2003/9/3", + "High": "87.300003", + "Low": "86", + "Open": "86.239998", + "Volume": "10835700" + }, + { + "Close": "87.910004", + "Date": "2003/9/4", + "High": "88.290001", + "Low": "85.690002", + "Open": "86.330002", + "Volume": "9889100" + }, + { + "Close": "86.949997", + "Date": "2003/9/5", + "High": "88.260002", + "Low": "86.75", + "Open": "87", + "Volume": "7896600" + }, + { + "Close": "89.099998", + "Date": "2003/9/8", + "High": "89.660004", + "Low": "88.349998", + "Open": "88.449997", + "Volume": "9213400" + }, + { + "Close": "89.419998", + "Date": "2003/9/9", + "High": "89.970001", + "Low": "88.93", + "Open": "89.199997", + "Volume": "8102500" + }, + { + "Close": "87.839996", + "Date": "2003/9/10", + "High": "89", + "Low": "87.610001", + "Open": "88.989998", + "Volume": "7322600" + }, + { + "Close": "87.919998", + "Date": "2003/9/11", + "High": "88.419998", + "Low": "86.400002", + "Open": "86.75", + "Volume": "9753500" + }, + { + "Close": "88.699997", + "Date": "2003/9/12", + "High": "89.010002", + "Low": "87.199997", + "Open": "87.599998", + "Volume": "7209200" + }, + { + "Close": "88.489998", + "Date": "2003/9/15", + "High": "89.959999", + "Low": "88.389999", + "Open": "89.699997", + "Volume": "7305400" + }, + { + "Close": "90.290001", + "Date": "2003/9/16", + "High": "90.410004", + "Low": "88.489998", + "Open": "88.489998", + "Volume": "7896100" + }, + { + "Close": "90.629997", + "Date": "2003/9/17", + "High": "91.940002", + "Low": "90.199997", + "Open": "90.400002", + "Volume": "9086600" + }, + { + "Close": "92", + "Date": "2003/9/18", + "High": "92.43", + "Low": "90.459999", + "Open": "90.629997", + "Volume": "8338700" + }, + { + "Close": "93.279999", + "Date": "2003/9/19", + "High": "93.470001", + "Low": "91.800003", + "Open": "92.449997", + "Volume": "9412500" + }, + { + "Close": "91.389999", + "Date": "2003/9/22", + "High": "92.239998", + "Low": "90.900002", + "Open": "92.239998", + "Volume": "7302600" + }, + { + "Close": "91.339996", + "Date": "2003/9/23", + "High": "92.089996", + "Low": "90.559998", + "Open": "91.5", + "Volume": "7935200" + }, + { + "Close": "89.400002", + "Date": "2003/9/24", + "High": "91.82", + "Low": "89.330002", + "Open": "91.080002", + "Volume": "7575800" + }, + { + "Close": "89.410004", + "Date": "2003/9/25", + "High": "90.970001", + "Low": "89.199997", + "Open": "89.400002", + "Volume": "6585500" + }, + { + "Close": "89.050003", + "Date": "2003/9/26", + "High": "90.139999", + "Low": "89", + "Open": "89.410004", + "Volume": "5095800" + }, + { + "Close": "89.449997", + "Date": "2003/9/29", + "High": "90.18", + "Low": "89.07", + "Open": "89.25", + "Volume": "5723200" + }, + { + "Close": "88.330002", + "Date": "2003/9/30", + "High": "89.25", + "Low": "87.900002", + "Open": "89.199997", + "Volume": "7056700" + }, + { + "Close": "90.349998", + "Date": "2003/10/1", + "High": "90.599998", + "Low": "88.699997", + "Open": "88.75", + "Volume": "7925200" + }, + { + "Close": "90.080002", + "Date": "2003/10/2", + "High": "90.449997", + "Low": "89.220001", + "Open": "89.550003", + "Volume": "7428300" + }, + { + "Close": "90.639999", + "Date": "2003/10/3", + "High": "91.949997", + "Low": "90.57", + "Open": "91", + "Volume": "7479300" + }, + { + "Close": "91.18", + "Date": "2003/10/6", + "High": "91.760002", + "Low": "90.510002", + "Open": "90.739998", + "Volume": "3845400" + }, + { + "Close": "91.699997", + "Date": "2003/10/7", + "High": "91.699997", + "Low": "90.400002", + "Open": "90.5", + "Volume": "5369800" + }, + { + "Close": "92.660004", + "Date": "2003/10/8", + "High": "92.870003", + "Low": "91.949997", + "Open": "92", + "Volume": "6418900" + }, + { + "Close": "92.449997", + "Date": "2003/10/9", + "High": "93.599998", + "Low": "92.199997", + "Open": "93.300003", + "Volume": "7593000" + }, + { + "Close": "92.669998", + "Date": "2003/10/10", + "High": "93.18", + "Low": "92.360001", + "Open": "92.400002", + "Volume": "4500500" + }, + { + "Close": "93.199997", + "Date": "2003/10/13", + "High": "93.540001", + "Low": "92.580002", + "Open": "93.099998", + "Volume": "4839200" + }, + { + "Close": "92.720001", + "Date": "2003/10/14", + "High": "92.949997", + "Low": "92.32", + "Open": "92.650002", + "Volume": "4699500" + }, + { + "Close": "92.739998", + "Date": "2003/10/15", + "High": "94.540001", + "Low": "92.739998", + "Open": "93.900002", + "Volume": "11558700" + }, + { + "Close": "89.279999", + "Date": "2003/10/16", + "High": "89.699997", + "Low": "88.660004", + "Open": "89.269997", + "Volume": "16994000" + }, + { + "Close": "89.230003", + "Date": "2003/10/17", + "High": "89.68", + "Low": "88.809998", + "Open": "89.279999", + "Volume": "9506200" + }, + { + "Close": "89", + "Date": "2003/10/20", + "High": "89.400002", + "Low": "88.860001", + "Open": "89.349998", + "Volume": "6971300" + }, + { + "Close": "88.93", + "Date": "2003/10/21", + "High": "89.339996", + "Low": "88.699997", + "Open": "89.25", + "Volume": "5287100" + }, + { + "Close": "88.459999", + "Date": "2003/10/22", + "High": "89.010002", + "Low": "87.900002", + "Open": "88.300003", + "Volume": "5600100" + }, + { + "Close": "88.150002", + "Date": "2003/10/23", + "High": "88.400002", + "Low": "87.529999", + "Open": "87.599998", + "Volume": "6046400" + }, + { + "Close": "88.419998", + "Date": "2003/10/24", + "High": "88.639999", + "Low": "87.720001", + "Open": "88.150002", + "Volume": "5471700" + }, + { + "Close": "88.519997", + "Date": "2003/10/27", + "High": "89.099998", + "Low": "88.050003", + "Open": "88.800003", + "Volume": "5099200" + }, + { + "Close": "89.900002", + "Date": "2003/10/28", + "High": "89.900002", + "Low": "88.519997", + "Open": "89.050003", + "Volume": "6959000" + }, + { + "Close": "89.339996", + "Date": "2003/10/29", + "High": "89.940002", + "Low": "89.150002", + "Open": "89.599998", + "Volume": "5180700" + }, + { + "Close": "89.120003", + "Date": "2003/10/30", + "High": "90.169998", + "Low": "89.059998", + "Open": "90", + "Volume": "6535700" + }, + { + "Close": "89.480003", + "Date": "2003/10/31", + "High": "90.709999", + "Low": "89.199997", + "Open": "90.709999", + "Volume": "4836200" + }, + { + "Close": "89.68", + "Date": "2003/11/3", + "High": "90.839996", + "Low": "89.480003", + "Open": "89.900002", + "Volume": "5825200" + }, + { + "Close": "89.139999", + "Date": "2003/11/4", + "High": "89.800003", + "Low": "88.860001", + "Open": "89.68", + "Volume": "5146100" + }, + { + "Close": "88.489998", + "Date": "2003/11/5", + "High": "88.879997", + "Low": "88", + "Open": "88.519997", + "Volume": "6296300" + }, + { + "Close": "89.339996", + "Date": "2003/11/6", + "High": "89.589996", + "Low": "87.720001", + "Open": "88.330002", + "Volume": "5668600" + }, + { + "Close": "88.260002", + "Date": "2003/11/7", + "High": "89.599998", + "Low": "88.260002", + "Open": "89.400002", + "Volume": "5543500" + }, + { + "Close": "89.949997", + "Date": "2003/11/10", + "High": "90.470001", + "Low": "89.550003", + "Open": "89.550003", + "Volume": "8349700" + }, + { + "Close": "89.360001", + "Date": "2003/11/11", + "High": "90.029999", + "Low": "88.889999", + "Open": "90", + "Volume": "4841200" + }, + { + "Close": "90.690002", + "Date": "2003/11/12", + "High": "91.160004", + "Low": "89.309998", + "Open": "89.449997", + "Volume": "5901700" + }, + { + "Close": "91.089996", + "Date": "2003/11/13", + "High": "91.480003", + "Low": "90.160004", + "Open": "90.400002", + "Volume": "5277900" + }, + { + "Close": "90.25", + "Date": "2003/11/14", + "High": "91.419998", + "Low": "89.809998", + "Open": "91.019997", + "Volume": "4510200" + }, + { + "Close": "89.800003", + "Date": "2003/11/17", + "High": "90.050003", + "Low": "89.029999", + "Open": "89.900002", + "Volume": "4748200" + }, + { + "Close": "88.949997", + "Date": "2003/11/18", + "High": "90.18", + "Low": "88.900002", + "Open": "89.919998", + "Volume": "5284300" + }, + { + "Close": "89.400002", + "Date": "2003/11/19", + "High": "89.830002", + "Low": "88.32", + "Open": "88.32", + "Volume": "4156600" + }, + { + "Close": "88.389999", + "Date": "2003/11/20", + "High": "89.790001", + "Low": "88.379997", + "Open": "89.300003", + "Volume": "5111000" + }, + { + "Close": "88.629997", + "Date": "2003/11/21", + "High": "88.849998", + "Low": "88.230003", + "Open": "88.400002", + "Volume": "5935400" + }, + { + "Close": "89.660004", + "Date": "2003/11/24", + "High": "89.739998", + "Low": "88.949997", + "Open": "89.029999", + "Volume": "4722200" + }, + { + "Close": "89.43", + "Date": "2003/11/25", + "High": "89.849998", + "Low": "89.269997", + "Open": "89.660004", + "Volume": "4305700" + }, + { + "Close": "89.910004", + "Date": "2003/11/26", + "High": "90.089996", + "Low": "89.110001", + "Open": "89.790001", + "Volume": "4146800" + }, + { + "Close": "90.540001", + "Date": "2003/11/28", + "High": "90.68", + "Low": "89.620003", + "Open": "89.900002", + "Volume": "2195500" + }, + { + "Close": "91.010002", + "Date": "2003/12/1", + "High": "91.360001", + "Low": "90.480003", + "Open": "90.900002", + "Volume": "5234900" + }, + { + "Close": "90.75", + "Date": "2003/12/2", + "High": "91.480003", + "Low": "90.519997", + "Open": "90.57", + "Volume": "5091800" + }, + { + "Close": "90.300003", + "Date": "2003/12/3", + "High": "91.440002", + "Low": "90.300003", + "Open": "91.150002", + "Volume": "6169800" + }, + { + "Close": "91.419998", + "Date": "2003/12/4", + "High": "91.440002", + "Low": "90.029999", + "Open": "90.050003", + "Volume": "5360400" + }, + { + "Close": "90.639999", + "Date": "2003/12/5", + "High": "91.300003", + "Low": "90.5", + "Open": "91.300003", + "Volume": "5878400" + }, + { + "Close": "91.199997", + "Date": "2003/12/8", + "High": "91.470001", + "Low": "90.519997", + "Open": "90.519997", + "Volume": "5342000" + }, + { + "Close": "90.629997", + "Date": "2003/12/9", + "High": "92.160004", + "Low": "90.610001", + "Open": "91.150002", + "Volume": "6971500" + }, + { + "Close": "91.730003", + "Date": "2003/12/10", + "High": "92.739998", + "Low": "90.650002", + "Open": "90.690002", + "Volume": "7138000" + }, + { + "Close": "92.400002", + "Date": "2003/12/11", + "High": "92.970001", + "Low": "91.919998", + "Open": "91.959999", + "Volume": "6412100" + }, + { + "Close": "92.709999", + "Date": "2003/12/12", + "High": "93.160004", + "Low": "92.239998", + "Open": "92.699997", + "Volume": "5079800" + }, + { + "Close": "92.110001", + "Date": "2003/12/15", + "High": "93.970001", + "Low": "92.080002", + "Open": "93.43", + "Volume": "5964500" + }, + { + "Close": "93.980003", + "Date": "2003/12/16", + "High": "94.120003", + "Low": "91.879997", + "Open": "92.110001", + "Volume": "7501100" + }, + { + "Close": "93.400002", + "Date": "2003/12/17", + "High": "93.870003", + "Low": "92.849998", + "Open": "93.849998", + "Volume": "6052900" + }, + { + "Close": "92.730003", + "Date": "2003/12/18", + "High": "93.379997", + "Low": "92.5", + "Open": "93", + "Volume": "6873600" + }, + { + "Close": "93.139999", + "Date": "2003/12/19", + "High": "93.25", + "Low": "92.669998", + "Open": "93.230003", + "Volume": "7090500" + }, + { + "Close": "93.389999", + "Date": "2003/12/22", + "High": "93.5", + "Low": "92.779999", + "Open": "92.830002", + "Volume": "4332100" + }, + { + "Close": "92.790001", + "Date": "2003/12/23", + "High": "93.440002", + "Low": "92.339996", + "Open": "93.07", + "Volume": "3677000" + }, + { + "Close": "92.269997", + "Date": "2003/12/24", + "High": "92.800003", + "Low": "92.18", + "Open": "92.800003", + "Volume": "1760500" + }, + { + "Close": "92.900002", + "Date": "2003/12/26", + "High": "93", + "Low": "92.300003", + "Open": "92.370003", + "Volume": "1408500" + }, + { + "Close": "93.519997", + "Date": "2003/12/29", + "High": "93.730003", + "Low": "93.029999", + "Open": "93.099998", + "Volume": "4033900" + }, + { + "Close": "92.629997", + "Date": "2003/12/30", + "High": "93.5", + "Low": "92.360001", + "Open": "93.269997", + "Volume": "4003400" + }, + { + "Close": "92.68", + "Date": "2003/12/31", + "High": "92.849998", + "Low": "92.160004", + "Open": "92.660004", + "Volume": "4726900" + }, + { + "Close": "91.550003", + "Date": "2004/1/2", + "High": "93.050003", + "Low": "91.199997", + "Open": "92.860001", + "Volume": "5327800" + }, + { + "Close": "93.050003", + "Date": "2004/1/5", + "High": "93.089996", + "Low": "92", + "Open": "92", + "Volume": "5276300" + }, + { + "Close": "93.059998", + "Date": "2004/1/6", + "High": "93.190002", + "Low": "92.139999", + "Open": "92.199997", + "Volume": "4380000" + }, + { + "Close": "92.779999", + "Date": "2004/1/7", + "High": "93.379997", + "Low": "92.470001", + "Open": "93.139999", + "Volume": "4927600" + }, + { + "Close": "93.040001", + "Date": "2004/1/8", + "High": "93.209999", + "Low": "92.029999", + "Open": "93.209999", + "Volume": "6179800" + }, + { + "Close": "91.209999", + "Date": "2004/1/9", + "High": "92.349998", + "Low": "91", + "Open": "91.75", + "Volume": "7930900" + }, + { + "Close": "91.550003", + "Date": "2004/1/12", + "High": "92.139999", + "Low": "91.209999", + "Open": "91.209999", + "Volume": "5130400" + }, + { + "Close": "89.699997", + "Date": "2004/1/13", + "High": "91.510002", + "Low": "89.010002", + "Open": "91.449997", + "Volume": "8842500" + }, + { + "Close": "90.309998", + "Date": "2004/1/14", + "High": "90.459999", + "Low": "89.75", + "Open": "89.900002", + "Volume": "5505100" + }, + { + "Close": "94.019997", + "Date": "2004/1/15", + "High": "95.650002", + "Low": "93.550003", + "Open": "95.07", + "Volume": "19812000" + }, + { + "Close": "95.32", + "Date": "2004/1/16", + "High": "95.349998", + "Low": "94.709999", + "Open": "95", + "Volume": "9302000" + }, + { + "Close": "97.099998", + "Date": "2004/1/20", + "High": "97.440002", + "Low": "95.730003", + "Open": "96", + "Volume": "9285100" + }, + { + "Close": "97.699997", + "Date": "2004/1/21", + "High": "98.040001", + "Low": "96.639999", + "Open": "97.230003", + "Volume": "6949000" + }, + { + "Close": "97.510002", + "Date": "2004/1/22", + "High": "98.160004", + "Low": "97.32", + "Open": "97.839996", + "Volume": "4371600" + }, + { + "Close": "97.900002", + "Date": "2004/1/23", + "High": "98.209999", + "Low": "97.099998", + "Open": "97.82", + "Volume": "5283900" + }, + { + "Close": "99.849998", + "Date": "2004/1/26", + "High": "99.849998", + "Low": "97.559998", + "Open": "97.900002", + "Volume": "6189400" + }, + { + "Close": "98.800003", + "Date": "2004/1/27", + "High": "99.669998", + "Low": "98.699997", + "Open": "99.400002", + "Volume": "5345300" + }, + { + "Close": "97.379997", + "Date": "2004/1/28", + "High": "99.419998", + "Low": "97.279999", + "Open": "99.150002", + "Volume": "6549700" + }, + { + "Close": "98.010002", + "Date": "2004/1/29", + "High": "98.599998", + "Low": "96.550003", + "Open": "98.099998", + "Volume": "6642500" + }, + { + "Close": "99.230003", + "Date": "2004/1/30", + "High": "99.330002", + "Low": "97.839996", + "Open": "98.019997", + "Volume": "6137600" + }, + { + "Close": "99.389999", + "Date": "2004/2/2", + "High": "99.940002", + "Low": "98.5", + "Open": "99.150002", + "Volume": "6200000" + }, + { + "Close": "100", + "Date": "2004/2/3", + "High": "100", + "Low": "98.949997", + "Open": "99", + "Volume": "5604300" + }, + { + "Close": "100.190002", + "Date": "2004/2/4", + "High": "100.43", + "Low": "99.300003", + "Open": "99.379997", + "Volume": "8387500" + }, + { + "Close": "98.860001", + "Date": "2004/2/5", + "High": "100.089996", + "Low": "98.260002", + "Open": "100", + "Volume": "5975000" + }, + { + "Close": "98.940002", + "Date": "2004/2/6", + "High": "99.239998", + "Low": "98.25", + "Open": "98.849998", + "Volume": "5516900" + }, + { + "Close": "98.949997", + "Date": "2004/2/9", + "High": "99.440002", + "Low": "98.599998", + "Open": "99.309998", + "Volume": "3742400" + }, + { + "Close": "99.610001", + "Date": "2004/2/10", + "High": "99.970001", + "Low": "98.410004", + "Open": "98.449997", + "Volume": "4057500" + }, + { + "Close": "99.959999", + "Date": "2004/2/11", + "High": "100.309998", + "Low": "98.800003", + "Open": "99.199997", + "Volume": "5505700" + }, + { + "Close": "99.300003", + "Date": "2004/2/12", + "High": "100.300003", + "Low": "99.300003", + "Open": "100.059998", + "Volume": "3611500" + }, + { + "Close": "99.709999", + "Date": "2004/2/13", + "High": "100.089996", + "Low": "99.080002", + "Open": "99.099998", + "Volume": "3562400" + }, + { + "Close": "99.370003", + "Date": "2004/2/17", + "High": "100", + "Low": "99.32", + "Open": "99.989998", + "Volume": "3930400" + }, + { + "Close": "98.419998", + "Date": "2004/2/18", + "High": "99.769997", + "Low": "98.150002", + "Open": "99.309998", + "Volume": "4830300" + }, + { + "Close": "97.800003", + "Date": "2004/2/19", + "High": "99.230003", + "Low": "97.519997", + "Open": "98.419998", + "Volume": "5447200" + }, + { + "Close": "97.309998", + "Date": "2004/2/20", + "High": "98.599998", + "Low": "97.190002", + "Open": "98.599998", + "Volume": "5690200" + }, + { + "Close": "95.959999", + "Date": "2004/2/23", + "High": "97.510002", + "Low": "95.459999", + "Open": "97.400002", + "Volume": "6629100" + }, + { + "Close": "96.790001", + "Date": "2004/2/24", + "High": "97.459999", + "Low": "95.199997", + "Open": "95.199997", + "Volume": "7008300" + }, + { + "Close": "96.540001", + "Date": "2004/2/25", + "High": "97.089996", + "Low": "96.230003", + "Open": "96.5", + "Volume": "3362500" + }, + { + "Close": "96.790001", + "Date": "2004/2/26", + "High": "97.260002", + "Low": "96.25", + "Open": "96.269997", + "Volume": "3965700" + }, + { + "Close": "96.5", + "Date": "2004/2/27", + "High": "97.379997", + "Low": "96.099998", + "Open": "96.800003", + "Volume": "4715000" + }, + { + "Close": "97.040001", + "Date": "2004/3/1", + "High": "97.25", + "Low": "96.150002", + "Open": "96.5", + "Volume": "4454000" + }, + { + "Close": "96.82", + "Date": "2004/3/2", + "High": "97.599998", + "Low": "96.620003", + "Open": "97.599998", + "Volume": "4976200" + }, + { + "Close": "96.839996", + "Date": "2004/3/3", + "High": "96.889999", + "Low": "95.599998", + "Open": "96.57", + "Volume": "4806500" + }, + { + "Close": "96.389999", + "Date": "2004/3/4", + "High": "96.919998", + "Low": "96.129997", + "Open": "96.580002", + "Volume": "3547900" + }, + { + "Close": "96.449997", + "Date": "2004/3/5", + "High": "96.980003", + "Low": "95.559998", + "Open": "95.949997", + "Volume": "3970900" + }, + { + "Close": "94.589996", + "Date": "2004/3/8", + "High": "96.879997", + "Low": "94.589996", + "Open": "96.489998", + "Volume": "5084200" + }, + { + "Close": "94.529999", + "Date": "2004/3/9", + "High": "95.279999", + "Low": "93.769997", + "Open": "94.300003", + "Volume": "6390600" + }, + { + "Close": "93.059998", + "Date": "2004/3/10", + "High": "94.739998", + "Low": "92.68", + "Open": "94.379997", + "Volume": "6536300" + }, + { + "Close": "91.209999", + "Date": "2004/3/11", + "High": "92.980003", + "Low": "91.150002", + "Open": "92", + "Volume": "8560800" + }, + { + "Close": "93.300003", + "Date": "2004/3/12", + "High": "93.379997", + "Low": "91.68", + "Open": "92", + "Volume": "6290600" + }, + { + "Close": "91.82", + "Date": "2004/3/15", + "High": "92.690002", + "Low": "90.879997", + "Open": "92.599998", + "Volume": "6523000" + }, + { + "Close": "92.449997", + "Date": "2004/3/16", + "High": "92.699997", + "Low": "91.419998", + "Open": "92.400002", + "Volume": "4627600" + }, + { + "Close": "93.389999", + "Date": "2004/3/17", + "High": "93.790001", + "Low": "92.449997", + "Open": "92.57", + "Volume": "4663000" + }, + { + "Close": "92.849998", + "Date": "2004/3/18", + "High": "93.18", + "Low": "91.900002", + "Open": "93.050003", + "Volume": "4605200" + }, + { + "Close": "91.620003", + "Date": "2004/3/19", + "High": "92.970001", + "Low": "91.510002", + "Open": "92.860001", + "Volume": "7058700" + }, + { + "Close": "91.019997", + "Date": "2004/3/22", + "High": "91.480003", + "Low": "90.279999", + "Open": "91.269997", + "Volume": "6223500" + }, + { + "Close": "91.32", + "Date": "2004/3/23", + "High": "92.160004", + "Low": "90.68", + "Open": "91.599998", + "Volume": "5065300" + }, + { + "Close": "91.769997", + "Date": "2004/3/24", + "High": "92.489998", + "Low": "91.040001", + "Open": "91.57", + "Volume": "6210400" + }, + { + "Close": "92.389999", + "Date": "2004/3/25", + "High": "92.629997", + "Low": "91.449997", + "Open": "92.150002", + "Volume": "5585800" + }, + { + "Close": "92.769997", + "Date": "2004/3/26", + "High": "93.25", + "Low": "92.160004", + "Open": "92.389999", + "Volume": "4397700" + }, + { + "Close": "92.68", + "Date": "2004/3/29", + "High": "93.610001", + "Low": "92.18", + "Open": "92.989998", + "Volume": "4876300" + }, + { + "Close": "92.32", + "Date": "2004/3/30", + "High": "92.669998", + "Low": "91.349998", + "Open": "92.669998", + "Volume": "5415700" + }, + { + "Close": "91.839996", + "Date": "2004/3/31", + "High": "92.239998", + "Low": "91.510002", + "Open": "92.07", + "Volume": "4613500" + }, + { + "Close": "92.370003", + "Date": "2004/4/1", + "High": "92.68", + "Low": "91.620003", + "Open": "91.669998", + "Volume": "4246900" + }, + { + "Close": "94.199997", + "Date": "2004/4/2", + "High": "94.550003", + "Low": "93.330002", + "Open": "93.550003", + "Volume": "5894500" + }, + { + "Close": "94.18", + "Date": "2004/4/5", + "High": "94.370003", + "Low": "93.510002", + "Open": "93.949997", + "Volume": "3936000" + }, + { + "Close": "93.699997", + "Date": "2004/4/6", + "High": "93.790001", + "Low": "93.019997", + "Open": "93.599998", + "Volume": "3860100" + }, + { + "Close": "93.080002", + "Date": "2004/4/7", + "High": "93.580002", + "Low": "92.510002", + "Open": "93.370003", + "Volume": "4537300" + }, + { + "Close": "93.120003", + "Date": "2004/4/8", + "High": "94.389999", + "Low": "92.550003", + "Open": "94", + "Volume": "3868000" + }, + { + "Close": "93.739998", + "Date": "2004/4/12", + "High": "94.360001", + "Low": "93.400002", + "Open": "93.5", + "Volume": "3112600" + }, + { + "Close": "93.040001", + "Date": "2004/4/13", + "High": "94.040001", + "Low": "92.5", + "Open": "93.790001", + "Volume": "5013600" + }, + { + "Close": "93.699997", + "Date": "2004/4/14", + "High": "93.860001", + "Low": "92.099998", + "Open": "92.099998", + "Volume": "5316300" + }, + { + "Close": "93.449997", + "Date": "2004/4/15", + "High": "94.089996", + "Low": "93.059998", + "Open": "93.800003", + "Volume": "6844200" + }, + { + "Close": "92.279999", + "Date": "2004/4/16", + "High": "92.349998", + "Low": "91.040001", + "Open": "92.300003", + "Volume": "11118000" + }, + { + "Close": "91.940002", + "Date": "2004/4/19", + "High": "92.300003", + "Low": "91.699997", + "Open": "91.900002", + "Volume": "4159400" + }, + { + "Close": "90.650002", + "Date": "2004/4/20", + "High": "92.480003", + "Low": "90.650002", + "Open": "92", + "Volume": "4260200" + }, + { + "Close": "91.260002", + "Date": "2004/4/21", + "High": "91.419998", + "Low": "90.690002", + "Open": "91.150002", + "Volume": "4623400" + }, + { + "Close": "90.739998", + "Date": "2004/4/22", + "High": "91.510002", + "Low": "89.699997", + "Open": "90.5", + "Volume": "7988000" + }, + { + "Close": "91.279999", + "Date": "2004/4/23", + "High": "91.610001", + "Low": "90.360001", + "Open": "91", + "Volume": "5063200" + }, + { + "Close": "90.43", + "Date": "2004/4/26", + "High": "91.559998", + "Low": "90.349998", + "Open": "90.75", + "Volume": "4533600" + }, + { + "Close": "91.110001", + "Date": "2004/4/27", + "High": "91.989998", + "Low": "90.559998", + "Open": "90.650002", + "Volume": "4768000" + }, + { + "Close": "90.410004", + "Date": "2004/4/28", + "High": "90.980003", + "Low": "90.209999", + "Open": "90.300003", + "Volume": "4706000" + }, + { + "Close": "89.080002", + "Date": "2004/4/29", + "High": "90.260002", + "Low": "88.190002", + "Open": "90.010002", + "Volume": "7763200" + }, + { + "Close": "88.169998", + "Date": "2004/4/30", + "High": "89.199997", + "Low": "88.010002", + "Open": "89.010002", + "Volume": "5019500" + }, + { + "Close": "88.019997", + "Date": "2004/5/3", + "High": "88.519997", + "Low": "87.199997", + "Open": "88.129997", + "Volume": "6070100" + }, + { + "Close": "89", + "Date": "2004/5/4", + "High": "89.739998", + "Low": "88", + "Open": "88.019997", + "Volume": "5451800" + }, + { + "Close": "88.959999", + "Date": "2004/5/5", + "High": "89.75", + "Low": "88.510002", + "Open": "89.75", + "Volume": "4402300" + }, + { + "Close": "88.360001", + "Date": "2004/5/6", + "High": "89.099998", + "Low": "87.589996", + "Open": "88.099998", + "Volume": "4319100" + }, + { + "Close": "88.190002", + "Date": "2004/5/7", + "High": "89.400002", + "Low": "87.620003", + "Open": "87.75", + "Volume": "5407400" + }, + { + "Close": "86.879997", + "Date": "2004/5/10", + "High": "88.099998", + "Low": "86.370003", + "Open": "87.599998", + "Volume": "6692400" + }, + { + "Close": "87.129997", + "Date": "2004/5/11", + "High": "88.150002", + "Low": "86.82", + "Open": "87.199997", + "Volume": "6575000" + }, + { + "Close": "86.809998", + "Date": "2004/5/12", + "High": "87.25", + "Low": "85.120003", + "Open": "87.25", + "Volume": "8445800" + }, + { + "Close": "87.190002", + "Date": "2004/5/13", + "High": "87.410004", + "Low": "86.260002", + "Open": "86.790001", + "Volume": "4708400" + }, + { + "Close": "86.410004", + "Date": "2004/5/14", + "High": "87.349998", + "Low": "86.07", + "Open": "86.650002", + "Volume": "5197800" + }, + { + "Close": "85.529999", + "Date": "2004/5/17", + "High": "86.029999", + "Low": "85.150002", + "Open": "85.300003", + "Volume": "5700000" + }, + { + "Close": "86.059998", + "Date": "2004/5/18", + "High": "86.489998", + "Low": "86", + "Open": "86.080002", + "Volume": "4401100" + }, + { + "Close": "87.050003", + "Date": "2004/5/19", + "High": "88.879997", + "Low": "86.5", + "Open": "87.400002", + "Volume": "7431800" + }, + { + "Close": "87.419998", + "Date": "2004/5/20", + "High": "87.949997", + "Low": "87.050003", + "Open": "87.059998", + "Volume": "4031500" + }, + { + "Close": "87.129997", + "Date": "2004/5/21", + "High": "88.18", + "Low": "86.910004", + "Open": "87.589996", + "Volume": "5130000" + }, + { + "Close": "87.099998", + "Date": "2004/5/24", + "High": "87.839996", + "Low": "86.550003", + "Open": "87.75", + "Volume": "3778100" + }, + { + "Close": "88.699997", + "Date": "2004/5/25", + "High": "88.919998", + "Low": "86.550003", + "Open": "86.75", + "Volume": "5358100" + }, + { + "Close": "88.349998", + "Date": "2004/5/26", + "High": "88.849998", + "Low": "88.040001", + "Open": "88.639999", + "Volume": "4308200" + }, + { + "Close": "88.589996", + "Date": "2004/5/27", + "High": "89.080002", + "Low": "87.980003", + "Open": "88.75", + "Volume": "4094600" + }, + { + "Close": "88.589996", + "Date": "2004/5/28", + "High": "88.849998", + "Low": "88.25", + "Open": "88.480003", + "Volume": "3203800" + }, + { + "Close": "88.120003", + "Date": "2004/6/1", + "High": "88.480003", + "Low": "87.300003", + "Open": "88", + "Volume": "4884300" + }, + { + "Close": "87.980003", + "Date": "2004/6/2", + "High": "88.639999", + "Low": "87.889999", + "Open": "88.639999", + "Volume": "3912600" + }, + { + "Close": "87.349998", + "Date": "2004/6/3", + "High": "88.099998", + "Low": "87.349998", + "Open": "87.849998", + "Volume": "3011500" + }, + { + "Close": "87.559998", + "Date": "2004/6/4", + "High": "88.489998", + "Low": "87.5", + "Open": "87.949997", + "Volume": "3803400" + }, + { + "Close": "88.639999", + "Date": "2004/6/7", + "High": "88.989998", + "Low": "88.010002", + "Open": "88.75", + "Volume": "4264500" + }, + { + "Close": "90.040001", + "Date": "2004/6/8", + "High": "90.5", + "Low": "88.400002", + "Open": "88.639999", + "Volume": "5400300" + }, + { + "Close": "90.089996", + "Date": "2004/6/9", + "High": "90.550003", + "Low": "89.809998", + "Open": "89.900002", + "Volume": "5233400" + }, + { + "Close": "90.459999", + "Date": "2004/6/10", + "High": "90.75", + "Low": "89.889999", + "Open": "90.230003", + "Volume": "3468700" + }, + { + "Close": "90.07", + "Date": "2004/6/14", + "High": "90.580002", + "Low": "89.620003", + "Open": "90.050003", + "Volume": "4121400" + }, + { + "Close": "90.540001", + "Date": "2004/6/15", + "High": "91.209999", + "Low": "90.230003", + "Open": "90.489998", + "Volume": "4508300" + }, + { + "Close": "90.379997", + "Date": "2004/6/16", + "High": "90.93", + "Low": "90.089996", + "Open": "90.25", + "Volume": "3145700" + }, + { + "Close": "90.440002", + "Date": "2004/6/17", + "High": "90.559998", + "Low": "90.07", + "Open": "90.5", + "Volume": "4180200" + }, + { + "Close": "90.059998", + "Date": "2004/6/18", + "High": "90.800003", + "Low": "89.900002", + "Open": "90.199997", + "Volume": "6470800" + }, + { + "Close": "89.489998", + "Date": "2004/6/21", + "High": "90.43", + "Low": "89.309998", + "Open": "90.400002", + "Volume": "3843400" + }, + { + "Close": "90.019997", + "Date": "2004/6/22", + "High": "90.239998", + "Low": "89.129997", + "Open": "89.279999", + "Volume": "4149300" + }, + { + "Close": "90.790001", + "Date": "2004/6/23", + "High": "90.839996", + "Low": "89.839996", + "Open": "90.099998", + "Volume": "4354700" + }, + { + "Close": "89.989998", + "Date": "2004/6/24", + "High": "90.919998", + "Low": "89.839996", + "Open": "90.279999", + "Volume": "4069400" + }, + { + "Close": "89.550003", + "Date": "2004/6/25", + "High": "90.230003", + "Low": "88.940002", + "Open": "89.949997", + "Volume": "5604700" + }, + { + "Close": "88.709999", + "Date": "2004/6/28", + "High": "89.900002", + "Low": "88.360001", + "Open": "89.709999", + "Volume": "4423200" + }, + { + "Close": "88.290001", + "Date": "2004/6/29", + "High": "88.489998", + "Low": "87.900002", + "Open": "88.349998", + "Volume": "4394800" + }, + { + "Close": "88.150002", + "Date": "2004/6/30", + "High": "88.5", + "Low": "87.699997", + "Open": "88.300003", + "Volume": "4724000" + }, + { + "Close": "87.5", + "Date": "2004/7/1", + "High": "88.440002", + "Low": "86.57", + "Open": "88.279999", + "Volume": "5093900" + }, + { + "Close": "87.040001", + "Date": "2004/7/2", + "High": "87.550003", + "Low": "86.599998", + "Open": "87.449997", + "Volume": "2874500" + }, + { + "Close": "85.699997", + "Date": "2004/7/6", + "High": "86.730003", + "Low": "85.129997", + "Open": "86.5", + "Volume": "6408100" + }, + { + "Close": "85.349998", + "Date": "2004/7/7", + "High": "85.940002", + "Low": "85.050003", + "Open": "85.300003", + "Volume": "5677300" + }, + { + "Close": "83.650002", + "Date": "2004/7/8", + "High": "85.010002", + "Low": "83.580002", + "Open": "85", + "Volume": "7529000" + }, + { + "Close": "83.889999", + "Date": "2004/7/9", + "High": "84.5", + "Low": "83.510002", + "Open": "84.400002", + "Volume": "6595200" + }, + { + "Close": "84.099998", + "Date": "2004/7/12", + "High": "85.25", + "Low": "83.419998", + "Open": "84", + "Volume": "6009200" + }, + { + "Close": "85.25", + "Date": "2004/7/13", + "High": "86.089996", + "Low": "85.199997", + "Open": "85.900002", + "Volume": "6001000" + }, + { + "Close": "84.129997", + "Date": "2004/7/14", + "High": "85.239998", + "Low": "83.779999", + "Open": "84.839996", + "Volume": "6298600" + }, + { + "Close": "84.019997", + "Date": "2004/7/15", + "High": "84.629997", + "Low": "83.610001", + "Open": "84.129997", + "Volume": "7086500" + }, + { + "Close": "84.279999", + "Date": "2004/7/16", + "High": "86.480003", + "Low": "84.279999", + "Open": "86.050003", + "Volume": "10441400" + }, + { + "Close": "85.300003", + "Date": "2004/7/19", + "High": "85.849998", + "Low": "84.400002", + "Open": "84.5", + "Volume": "6596000" + }, + { + "Close": "86.360001", + "Date": "2004/7/20", + "High": "86.489998", + "Low": "85.300003", + "Open": "85.629997", + "Volume": "5651300" + }, + { + "Close": "85.300003", + "Date": "2004/7/21", + "High": "87.110001", + "Low": "85.300003", + "Open": "86.75", + "Volume": "5534000" + }, + { + "Close": "86.059998", + "Date": "2004/7/22", + "High": "86.400002", + "Low": "84.68", + "Open": "85", + "Volume": "5972600" + }, + { + "Close": "84.849998", + "Date": "2004/7/23", + "High": "86.059998", + "Low": "84.5", + "Open": "85.699997", + "Volume": "4309400" + }, + { + "Close": "85.089996", + "Date": "2004/7/26", + "High": "85.580002", + "Low": "84.510002", + "Open": "84.849998", + "Volume": "4517500" + }, + { + "Close": "85.879997", + "Date": "2004/7/27", + "High": "86.300003", + "Low": "85.449997", + "Open": "85.599998", + "Volume": "4098500" + }, + { + "Close": "85.849998", + "Date": "2004/7/28", + "High": "86.279999", + "Low": "84.879997", + "Open": "85.879997", + "Volume": "6566200" + }, + { + "Close": "86.769997", + "Date": "2004/7/29", + "High": "87.220001", + "Low": "86.230003", + "Open": "86.25", + "Volume": "4232300" + }, + { + "Close": "87.07", + "Date": "2004/7/30", + "High": "87.400002", + "Low": "86.389999", + "Open": "86.449997", + "Volume": "3508500" + }, + { + "Close": "86.690002", + "Date": "2004/8/2", + "High": "87.389999", + "Low": "86.419998", + "Open": "86.870003", + "Volume": "3408400" + }, + { + "Close": "85.709999", + "Date": "2004/8/3", + "High": "86.800003", + "Low": "85.440002", + "Open": "86.699997", + "Volume": "4147200" + }, + { + "Close": "85.970001", + "Date": "2004/8/4", + "High": "86.650002", + "Low": "85.25", + "Open": "85.300003", + "Volume": "4160600" + }, + { + "Close": "85.190002", + "Date": "2004/8/5", + "High": "86.419998", + "Low": "85.010002", + "Open": "85.970001", + "Volume": "3879900" + }, + { + "Close": "83.480003", + "Date": "2004/8/6", + "High": "84.760002", + "Low": "83.419998", + "Open": "84.379997", + "Volume": "5219200" + }, + { + "Close": "83.550003", + "Date": "2004/8/9", + "High": "83.959999", + "Low": "82.870003", + "Open": "83.480003", + "Volume": "3621100" + }, + { + "Close": "84.989998", + "Date": "2004/8/10", + "High": "84.989998", + "Low": "83.809998", + "Open": "84", + "Volume": "4351000" + }, + { + "Close": "83.690002", + "Date": "2004/8/11", + "High": "83.980003", + "Low": "83.099998", + "Open": "83.699997", + "Volume": "5288000" + }, + { + "Close": "82.209999", + "Date": "2004/8/12", + "High": "83.050003", + "Low": "81.900002", + "Open": "83.050003", + "Volume": "7134900" + }, + { + "Close": "83.910004", + "Date": "2004/8/13", + "High": "83.940002", + "Low": "82.510002", + "Open": "82.540001", + "Volume": "5801900" + }, + { + "Close": "84.019997", + "Date": "2004/8/16", + "High": "84.559998", + "Low": "83.510002", + "Open": "83.699997", + "Volume": "4361500" + }, + { + "Close": "84.040001", + "Date": "2004/8/17", + "High": "84.540001", + "Low": "83.660004", + "Open": "84.099998", + "Volume": "3559400" + }, + { + "Close": "85.129997", + "Date": "2004/8/18", + "High": "85.129997", + "Low": "83.57", + "Open": "83.599998", + "Volume": "4397500" + }, + { + "Close": "84.889999", + "Date": "2004/8/19", + "High": "85.349998", + "Low": "84.449997", + "Open": "84.75", + "Volume": "4704500" + }, + { + "Close": "85.25", + "Date": "2004/8/20", + "High": "85.25", + "Low": "84.519997", + "Open": "84.519997", + "Volume": "4501400" + }, + { + "Close": "84.650002", + "Date": "2004/8/23", + "High": "85.449997", + "Low": "84.650002", + "Open": "85.230003", + "Volume": "4260600" + }, + { + "Close": "84.709999", + "Date": "2004/8/24", + "High": "85.150002", + "Low": "84.349998", + "Open": "85", + "Volume": "2710400" + }, + { + "Close": "85.07", + "Date": "2004/8/25", + "High": "85.269997", + "Low": "84.550003", + "Open": "85", + "Volume": "4405600" + }, + { + "Close": "84.690002", + "Date": "2004/8/26", + "High": "85.040001", + "Low": "84.690002", + "Open": "85", + "Volume": "3134400" + }, + { + "Close": "84.940002", + "Date": "2004/8/27", + "High": "84.949997", + "Low": "84.589996", + "Open": "84.650002", + "Volume": "2444800" + }, + { + "Close": "84.400002", + "Date": "2004/8/30", + "High": "84.989998", + "Low": "84.389999", + "Open": "84.57", + "Volume": "2277900" + }, + { + "Close": "84.690002", + "Date": "2004/8/31", + "High": "84.690002", + "Low": "83.650002", + "Open": "84.550003", + "Volume": "3399500" + }, + { + "Close": "84.220001", + "Date": "2004/9/1", + "High": "85.089996", + "Low": "84.010002", + "Open": "84.050003", + "Volume": "4748500" + }, + { + "Close": "84.57", + "Date": "2004/9/2", + "High": "84.779999", + "Low": "83.849998", + "Open": "84.220001", + "Volume": "3380400" + }, + { + "Close": "84.389999", + "Date": "2004/9/3", + "High": "84.690002", + "Low": "83.959999", + "Open": "84.300003", + "Volume": "3479800" + }, + { + "Close": "84.970001", + "Date": "2004/9/7", + "High": "85.440002", + "Low": "84.599998", + "Open": "84.699997", + "Volume": "4002800" + }, + { + "Close": "85.860001", + "Date": "2004/9/8", + "High": "86.510002", + "Low": "84.879997", + "Open": "84.900002", + "Volume": "5721200" + }, + { + "Close": "86.440002", + "Date": "2004/9/9", + "High": "86.790001", + "Low": "85.860001", + "Open": "85.860001", + "Volume": "4517400" + }, + { + "Close": "86.760002", + "Date": "2004/9/10", + "High": "87", + "Low": "86.25", + "Open": "86.43", + "Volume": "3753500" + }, + { + "Close": "86.489998", + "Date": "2004/9/13", + "High": "87.279999", + "Low": "86.080002", + "Open": "87", + "Volume": "4801400" + }, + { + "Close": "86.720001", + "Date": "2004/9/14", + "High": "86.879997", + "Low": "86.150002", + "Open": "86.599998", + "Volume": "3953500" + }, + { + "Close": "86.370003", + "Date": "2004/9/15", + "High": "86.5", + "Low": "85.889999", + "Open": "85.940002", + "Volume": "4631200" + }, + { + "Close": "86.120003", + "Date": "2004/9/16", + "High": "86.959999", + "Low": "85.93", + "Open": "86.199997", + "Volume": "3623000" + }, + { + "Close": "85.739998", + "Date": "2004/9/17", + "High": "86.5", + "Low": "85.440002", + "Open": "86.400002", + "Volume": "6198700" + }, + { + "Close": "85.699997", + "Date": "2004/9/20", + "High": "86.43", + "Low": "85.400002", + "Open": "85.400002", + "Volume": "4380400" + }, + { + "Close": "85.720001", + "Date": "2004/9/21", + "High": "86.110001", + "Low": "85.339996", + "Open": "85.699997", + "Volume": "4049700" + }, + { + "Close": "84.309998", + "Date": "2004/9/22", + "High": "85.440002", + "Low": "84.169998", + "Open": "85.349998", + "Volume": "5037100" + }, + { + "Close": "83.879997", + "Date": "2004/9/23", + "High": "84.269997", + "Low": "83.239998", + "Open": "84.040001", + "Volume": "4801200" + }, + { + "Close": "84.43", + "Date": "2004/9/24", + "High": "84.739998", + "Low": "83.779999", + "Open": "83.800003", + "Volume": "4899500" + }, + { + "Close": "84.160004", + "Date": "2004/9/27", + "High": "84.440002", + "Low": "83.980003", + "Open": "84.099998", + "Volume": "4650300" + }, + { + "Close": "84.480003", + "Date": "2004/9/28", + "High": "84.650002", + "Low": "83.879997", + "Open": "84.349998", + "Volume": "3874200" + }, + { + "Close": "84.980003", + "Date": "2004/9/29", + "High": "84.980003", + "Low": "84.150002", + "Open": "84.480003", + "Volume": "4204500" + }, + { + "Close": "85.739998", + "Date": "2004/9/30", + "High": "85.980003", + "Low": "85.010002", + "Open": "85.139999", + "Volume": "5198000" + }, + { + "Close": "86.720001", + "Date": "2004/10/1", + "High": "86.980003", + "Low": "85.879997", + "Open": "85.949997", + "Volume": "4538000" + }, + { + "Close": "87.160004", + "Date": "2004/10/4", + "High": "88.099998", + "Low": "86.720001", + "Open": "87", + "Volume": "5001400" + }, + { + "Close": "87.32", + "Date": "2004/10/5", + "High": "88.029999", + "Low": "87.129997", + "Open": "87.949997", + "Volume": "5150700" + }, + { + "Close": "88.040001", + "Date": "2004/10/6", + "High": "88.099998", + "Low": "87.099998", + "Open": "87.139999", + "Volume": "3984400" + }, + { + "Close": "87.419998", + "Date": "2004/10/7", + "High": "88.099998", + "Low": "87.400002", + "Open": "88.040001", + "Volume": "3076900" + }, + { + "Close": "86.709999", + "Date": "2004/10/8", + "High": "87.910004", + "Low": "86.510002", + "Open": "87.43", + "Volume": "4090000" + }, + { + "Close": "86.629997", + "Date": "2004/10/11", + "High": "87.199997", + "Low": "86.269997", + "Open": "86.769997", + "Volume": "3016300" + }, + { + "Close": "86", + "Date": "2004/10/12", + "High": "86.199997", + "Low": "85.580002", + "Open": "86.019997", + "Volume": "4626600" + }, + { + "Close": "84.980003", + "Date": "2004/10/13", + "High": "86.480003", + "Low": "84.43", + "Open": "86.260002", + "Volume": "6651400" + }, + { + "Close": "84.779999", + "Date": "2004/10/14", + "High": "84.980003", + "Low": "84.300003", + "Open": "84.75", + "Volume": "4233700" + }, + { + "Close": "84.849998", + "Date": "2004/10/15", + "High": "85.25", + "Low": "84.599998", + "Open": "84.779999", + "Volume": "5928500" + }, + { + "Close": "85.919998", + "Date": "2004/10/18", + "High": "86.150002", + "Low": "84.290001", + "Open": "84.300003", + "Volume": "7182600" + }, + { + "Close": "89.370003", + "Date": "2004/10/19", + "High": "89.730003", + "Low": "88", + "Open": "88.199997", + "Volume": "13692200" + }, + { + "Close": "88.82", + "Date": "2004/10/20", + "High": "89.190002", + "Low": "88.290001", + "Open": "88.449997", + "Volume": "6926800" + }, + { + "Close": "88.099998", + "Date": "2004/10/21", + "High": "88.760002", + "Low": "87.660004", + "Open": "88.400002", + "Volume": "6137500" + }, + { + "Close": "87.389999", + "Date": "2004/10/22", + "High": "88.449997", + "Low": "87.290001", + "Open": "88.220001", + "Volume": "5988700" + }, + { + "Close": "88.43", + "Date": "2004/10/25", + "High": "88.900002", + "Low": "87.309998", + "Open": "87.360001", + "Volume": "5774500" + }, + { + "Close": "89", + "Date": "2004/10/26", + "High": "89.57", + "Low": "88.25", + "Open": "88.330002", + "Volume": "7335800" + }, + { + "Close": "90", + "Date": "2004/10/27", + "High": "90.269997", + "Low": "88.5", + "Open": "88.580002", + "Volume": "6035100" + }, + { + "Close": "89.5", + "Date": "2004/10/28", + "High": "90.239998", + "Low": "89.43", + "Open": "89.800003", + "Volume": "4226500" + }, + { + "Close": "89.75", + "Date": "2004/10/29", + "High": "89.900002", + "Low": "88.949997", + "Open": "89.400002", + "Volume": "4518500" + }, + { + "Close": "90.110001", + "Date": "2004/11/1", + "High": "90.599998", + "Low": "89.230003", + "Open": "89.330002", + "Volume": "5160600" + }, + { + "Close": "90.470001", + "Date": "2004/11/2", + "High": "91.220001", + "Low": "89.5", + "Open": "89.550003", + "Volume": "5388700" + }, + { + "Close": "91.199997", + "Date": "2004/11/3", + "High": "91.900002", + "Low": "90.970001", + "Open": "91.25", + "Volume": "6553300" + }, + { + "Close": "92.379997", + "Date": "2004/11/4", + "High": "92.699997", + "Low": "90.82", + "Open": "91.050003", + "Volume": "6951600" + }, + { + "Close": "93.279999", + "Date": "2004/11/5", + "High": "93.519997", + "Low": "92.400002", + "Open": "92.400002", + "Volume": "6708400" + }, + { + "Close": "93.370003", + "Date": "2004/11/8", + "High": "93.699997", + "Low": "92.5", + "Open": "92.5", + "Volume": "4907300" + }, + { + "Close": "93.370003", + "Date": "2004/11/9", + "High": "93.949997", + "Low": "93", + "Open": "93", + "Volume": "4513100" + }, + { + "Close": "93.610001", + "Date": "2004/11/10", + "High": "94.300003", + "Low": "92.919998", + "Open": "92.919998", + "Volume": "6258400" + }, + { + "Close": "94.790001", + "Date": "2004/11/11", + "High": "95.220001", + "Low": "93.540001", + "Open": "93.599998", + "Volume": "7453400" + }, + { + "Close": "95.32", + "Date": "2004/11/12", + "High": "95.5", + "Low": "94.559998", + "Open": "94.660004", + "Volume": "4958400" + }, + { + "Close": "95.919998", + "Date": "2004/11/15", + "High": "96", + "Low": "94.800003", + "Open": "95.080002", + "Volume": "4887600" + }, + { + "Close": "94.889999", + "Date": "2004/11/16", + "High": "95.5", + "Low": "94.650002", + "Open": "95.25", + "Volume": "5684100" + }, + { + "Close": "95.459999", + "Date": "2004/11/17", + "High": "96.629997", + "Low": "95.300003", + "Open": "95.300003", + "Volume": "6353200" + }, + { + "Close": "95.099998", + "Date": "2004/11/18", + "High": "95.699997", + "Low": "95.029999", + "Open": "95.360001", + "Volume": "4655900" + }, + { + "Close": "94.449997", + "Date": "2004/11/19", + "High": "95.160004", + "Low": "94.25", + "Open": "94.949997", + "Volume": "5679100" + }, + { + "Close": "95.110001", + "Date": "2004/11/22", + "High": "95.400002", + "Low": "94.160004", + "Open": "94.300003", + "Volume": "5814100" + }, + { + "Close": "95.279999", + "Date": "2004/11/23", + "High": "95.370003", + "Low": "94.550003", + "Open": "94.699997", + "Volume": "5529900" + }, + { + "Close": "95.459999", + "Date": "2004/11/24", + "High": "95.790001", + "Low": "95.040001", + "Open": "95.040001", + "Volume": "3750600" + }, + { + "Close": "94.720001", + "Date": "2004/11/26", + "High": "95.379997", + "Low": "94.580002", + "Open": "95.050003", + "Volume": "2204300" + }, + { + "Close": "95.5", + "Date": "2004/11/29", + "High": "96.379997", + "Low": "94.940002", + "Open": "94.940002", + "Volume": "5699800" + }, + { + "Close": "94.239998", + "Date": "2004/11/30", + "High": "95.650002", + "Low": "94.239998", + "Open": "95.150002", + "Volume": "5870300" + }, + { + "Close": "95.879997", + "Date": "2004/12/1", + "High": "96.07", + "Low": "94.470001", + "Open": "94.5", + "Volume": "5664500" + }, + { + "Close": "95.760002", + "Date": "2004/12/2", + "High": "96.779999", + "Low": "95.489998", + "Open": "95.650002", + "Volume": "5152300" + }, + { + "Close": "97.080002", + "Date": "2004/12/3", + "High": "97.629997", + "Low": "96.550003", + "Open": "96.550003", + "Volume": "7026800" + }, + { + "Close": "97.669998", + "Date": "2004/12/6", + "High": "97.900002", + "Low": "96.650002", + "Open": "96.879997", + "Volume": "5263000" + }, + { + "Close": "96.099998", + "Date": "2004/12/7", + "High": "98.25", + "Low": "95.989998", + "Open": "97.699997", + "Volume": "6477100" + }, + { + "Close": "96.650002", + "Date": "2004/12/8", + "High": "97.349998", + "Low": "95.769997", + "Open": "96.43", + "Volume": "5310700" + }, + { + "Close": "97.510002", + "Date": "2004/12/9", + "High": "97.599998", + "Low": "95.709999", + "Open": "96.199997", + "Volume": "5713700" + }, + { + "Close": "96.669998", + "Date": "2004/12/10", + "High": "97.989998", + "Low": "96.099998", + "Open": "96.099998", + "Volume": "4188300" + }, + { + "Close": "96.449997", + "Date": "2004/12/13", + "High": "97.199997", + "Low": "96.080002", + "Open": "96.849998", + "Volume": "4799500" + }, + { + "Close": "97.309998", + "Date": "2004/12/14", + "High": "97.699997", + "Low": "96.290001", + "Open": "96.300003", + "Volume": "4493200" + }, + { + "Close": "97.330002", + "Date": "2004/12/15", + "High": "97.699997", + "Low": "96.809998", + "Open": "96.919998", + "Volume": "3914500" + }, + { + "Close": "97.449997", + "Date": "2004/12/16", + "High": "98.150002", + "Low": "96.800003", + "Open": "96.800003", + "Volume": "5660100" + }, + { + "Close": "96.199997", + "Date": "2004/12/17", + "High": "98", + "Low": "96.199997", + "Open": "97", + "Volume": "8853100" + }, + { + "Close": "96.550003", + "Date": "2004/12/20", + "High": "97.57", + "Low": "96.349998", + "Open": "96.349998", + "Volume": "4769900" + }, + { + "Close": "97.019997", + "Date": "2004/12/21", + "High": "97.150002", + "Low": "96.510002", + "Open": "96.589996", + "Volume": "4841800" + }, + { + "Close": "97.610001", + "Date": "2004/12/22", + "High": "97.980003", + "Low": "97.290001", + "Open": "97.349998", + "Volume": "4950100" + }, + { + "Close": "97.720001", + "Date": "2004/12/23", + "High": "98", + "Low": "97.5", + "Open": "97.5", + "Volume": "3590600" + }, + { + "Close": "97.5", + "Date": "2004/12/27", + "High": "97.970001", + "Low": "97.379997", + "Open": "97.690002", + "Volume": "3262900" + }, + { + "Close": "98.300003", + "Date": "2004/12/28", + "High": "98.550003", + "Low": "97.370003", + "Open": "97.400002", + "Volume": "4336400" + }, + { + "Close": "98.18", + "Date": "2004/12/29", + "High": "98.470001", + "Low": "97.800003", + "Open": "97.809998", + "Volume": "3296300" + }, + { + "Close": "98.300003", + "Date": "2004/12/30", + "High": "99", + "Low": "98.07", + "Open": "98.099998", + "Volume": "3812400" + }, + { + "Close": "98.580002", + "Date": "2004/12/31", + "High": "98.910004", + "Low": "98.489998", + "Open": "98.599998", + "Volume": "2793200" + }, + { + "Close": "97.75", + "Date": "2005/1/3", + "High": "99.099998", + "Low": "97.25", + "Open": "98.970001", + "Volume": "5295200" + }, + { + "Close": "96.699997", + "Date": "2005/1/4", + "High": "98.419998", + "Low": "96.519997", + "Open": "97.739998", + "Volume": "5711000" + }, + { + "Close": "96.5", + "Date": "2005/1/5", + "High": "97.830002", + "Low": "96.400002", + "Open": "96.599998", + "Volume": "5646700" + }, + { + "Close": "96.199997", + "Date": "2005/1/6", + "High": "96.980003", + "Low": "96.050003", + "Open": "96.540001", + "Volume": "4561700" + }, + { + "Close": "95.779999", + "Date": "2005/1/7", + "High": "96.800003", + "Low": "95.470001", + "Open": "96.5", + "Volume": "6200700" + }, + { + "Close": "95.68", + "Date": "2005/1/10", + "High": "96.089996", + "Low": "95.239998", + "Open": "95.779999", + "Volume": "4625100" + }, + { + "Close": "95", + "Date": "2005/1/11", + "High": "95.790001", + "Low": "94.709999", + "Open": "95.68", + "Volume": "4746400" + }, + { + "Close": "95.209999", + "Date": "2005/1/12", + "High": "95.279999", + "Low": "94.059998", + "Open": "95", + "Volume": "5828600" + }, + { + "Close": "94.449997", + "Date": "2005/1/13", + "High": "96.199997", + "Low": "93.699997", + "Open": "95.389999", + "Volume": "5339400" + }, + { + "Close": "94.099998", + "Date": "2005/1/14", + "High": "94.25", + "Low": "93.550003", + "Open": "94.010002", + "Volume": "5520800" + }, + { + "Close": "94.900002", + "Date": "2005/1/18", + "High": "95.339996", + "Low": "93.620003", + "Open": "93.650002", + "Volume": "8492100" + }, + { + "Close": "93.099998", + "Date": "2005/1/19", + "High": "95.150002", + "Low": "92.93", + "Open": "94.949997", + "Volume": "7352700" + }, + { + "Close": "93", + "Date": "2005/1/20", + "High": "93.839996", + "Low": "92.599998", + "Open": "92.610001", + "Volume": "5708600" + }, + { + "Close": "92.379997", + "Date": "2005/1/21", + "High": "93.300003", + "Low": "92.230003", + "Open": "93", + "Volume": "7002600" + }, + { + "Close": "91.790001", + "Date": "2005/1/24", + "High": "92.849998", + "Low": "91.760002", + "Open": "92.699997", + "Volume": "6537300" + }, + { + "Close": "92.190002", + "Date": "2005/1/25", + "High": "92.589996", + "Low": "91.949997", + "Open": "91.980003", + "Volume": "5070700" + }, + { + "Close": "91.949997", + "Date": "2005/1/26", + "High": "92.870003", + "Low": "91.940002", + "Open": "92.300003", + "Volume": "5352000" + }, + { + "Close": "91.980003", + "Date": "2005/1/27", + "High": "92.220001", + "Low": "91.440002", + "Open": "91.5", + "Volume": "4746900" + }, + { + "Close": "92.889999", + "Date": "2005/1/28", + "High": "93.589996", + "Low": "92.480003", + "Open": "92.68", + "Volume": "5960600" + }, + { + "Close": "93.419998", + "Date": "2005/1/31", + "High": "93.949997", + "Low": "93.050003", + "Open": "93.650002", + "Volume": "4759900" + }, + { + "Close": "93.860001", + "Date": "2005/2/1", + "High": "94", + "Low": "93.370003", + "Open": "93.669998", + "Volume": "3637400" + }, + { + "Close": "94.300003", + "Date": "2005/2/2", + "High": "94.349998", + "Low": "93.629997", + "Open": "93.779999", + "Volume": "3597400" + }, + { + "Close": "93.540001", + "Date": "2005/2/3", + "High": "93.940002", + "Low": "93.059998", + "Open": "93.870003", + "Volume": "3928700" + }, + { + "Close": "94.510002", + "Date": "2005/2/4", + "High": "94.739998", + "Low": "93", + "Open": "93.010002", + "Volume": "3807600" + }, + { + "Close": "94.529999", + "Date": "2005/2/7", + "High": "94.900002", + "Low": "94.330002", + "Open": "94.349998", + "Volume": "2837800" + }, + { + "Close": "94.129997", + "Date": "2005/2/8", + "High": "94.639999", + "Low": "94.129997", + "Open": "94.209999", + "Volume": "3541100" + }, + { + "Close": "92.699997", + "Date": "2005/2/9", + "High": "94.830002", + "Low": "92.540001", + "Open": "94.139999", + "Volume": "5657100" + }, + { + "Close": "92.760002", + "Date": "2005/2/10", + "High": "93.099998", + "Low": "92.300003", + "Open": "92.949997", + "Volume": "4838400" + }, + { + "Close": "93.300003", + "Date": "2005/2/11", + "High": "93.970001", + "Low": "92.5", + "Open": "92.699997", + "Volume": "4229300" + }, + { + "Close": "93.57", + "Date": "2005/2/14", + "High": "94.019997", + "Low": "93.160004", + "Open": "93.160004", + "Volume": "2868800" + }, + { + "Close": "94.330002", + "Date": "2005/2/15", + "High": "94.669998", + "Low": "93.480003", + "Open": "93.5", + "Volume": "4148000" + }, + { + "Close": "94.620003", + "Date": "2005/2/16", + "High": "94.970001", + "Low": "94.199997", + "Open": "94.230003", + "Volume": "4466500" + }, + { + "Close": "93.75", + "Date": "2005/2/17", + "High": "94.760002", + "Low": "93.739998", + "Open": "94.5", + "Volume": "4254200" + }, + { + "Close": "93.269997", + "Date": "2005/2/18", + "High": "94.25", + "Low": "92.900002", + "Open": "93.75", + "Volume": "4265300" + }, + { + "Close": "92.32", + "Date": "2005/2/22", + "High": "93.5", + "Low": "92.230003", + "Open": "92.669998", + "Volume": "4825100" + }, + { + "Close": "92.099998", + "Date": "2005/2/23", + "High": "92.440002", + "Low": "91.550003", + "Open": "92.290001", + "Volume": "5622800" + }, + { + "Close": "92.639999", + "Date": "2005/2/24", + "High": "93.089996", + "Low": "91.849998", + "Open": "91.980003", + "Volume": "4153900" + }, + { + "Close": "92.800003", + "Date": "2005/2/25", + "High": "92.800003", + "Low": "92.290001", + "Open": "92.349998", + "Volume": "4078500" + }, + { + "Close": "92.580002", + "Date": "2005/2/28", + "High": "92.760002", + "Low": "92.410004", + "Open": "92.529999", + "Volume": "4949800" + }, + { + "Close": "93.300003", + "Date": "2005/3/1", + "High": "93.43", + "Low": "92.589996", + "Open": "92.639999", + "Volume": "3819900" + }, + { + "Close": "92.919998", + "Date": "2005/3/2", + "High": "93.730003", + "Low": "92.75", + "Open": "92.75", + "Volume": "4467400" + }, + { + "Close": "92.410004", + "Date": "2005/3/3", + "High": "93.209999", + "Low": "92.199997", + "Open": "93.150002", + "Volume": "4037800" + }, + { + "Close": "92.370003", + "Date": "2005/3/4", + "High": "93.18", + "Low": "92.360001", + "Open": "92.940002", + "Volume": "4754000" + }, + { + "Close": "91.599998", + "Date": "2005/3/7", + "High": "92.510002", + "Low": "91.589996", + "Open": "92.349998", + "Volume": "7046900" + }, + { + "Close": "92.129997", + "Date": "2005/3/8", + "High": "92.559998", + "Low": "91.699997", + "Open": "91.699997", + "Volume": "5087800" + }, + { + "Close": "92.349998", + "Date": "2005/3/9", + "High": "93", + "Low": "92.010002", + "Open": "92.019997", + "Volume": "4511200" + }, + { + "Close": "92.410004", + "Date": "2005/3/10", + "High": "92.800003", + "Low": "92.089996", + "Open": "92.349998", + "Volume": "3422500" + }, + { + "Close": "91.510002", + "Date": "2005/3/11", + "High": "92.410004", + "Low": "91.199997", + "Open": "92.25", + "Volume": "4494300" + }, + { + "Close": "91.900002", + "Date": "2005/3/14", + "High": "92.040001", + "Low": "91.5", + "Open": "91.5", + "Volume": "3935500" + }, + { + "Close": "91.379997", + "Date": "2005/3/15", + "High": "92.269997", + "Low": "91.199997", + "Open": "92", + "Volume": "3663100" + }, + { + "Close": "90.650002", + "Date": "2005/3/16", + "High": "91.400002", + "Low": "90.25", + "Open": "90.739998", + "Volume": "5065300" + }, + { + "Close": "89.860001", + "Date": "2005/3/17", + "High": "90.68", + "Low": "89.699997", + "Open": "90.489998", + "Volume": "5562100" + }, + { + "Close": "89.279999", + "Date": "2005/3/18", + "High": "89.900002", + "Low": "89.089996", + "Open": "89.860001", + "Volume": "7541500" + }, + { + "Close": "89.510002", + "Date": "2005/3/21", + "High": "90.279999", + "Low": "89.269997", + "Open": "89.419998", + "Volume": "4402400" + }, + { + "Close": "89.5", + "Date": "2005/3/22", + "High": "90.339996", + "Low": "89.260002", + "Open": "89.610001", + "Volume": "4452500" + }, + { + "Close": "90.519997", + "Date": "2005/3/23", + "High": "91.169998", + "Low": "89.82", + "Open": "89.970001", + "Volume": "5472100" + }, + { + "Close": "90.699997", + "Date": "2005/3/24", + "High": "91.550003", + "Low": "90.699997", + "Open": "90.800003", + "Volume": "4577100" + }, + { + "Close": "91.040001", + "Date": "2005/3/28", + "High": "91.629997", + "Low": "90.620003", + "Open": "90.709999", + "Volume": "4088900" + }, + { + "Close": "90.599998", + "Date": "2005/3/29", + "High": "91.07", + "Low": "90.18", + "Open": "90.739998", + "Volume": "6070400" + }, + { + "Close": "90.68", + "Date": "2005/3/30", + "High": "90.879997", + "Low": "90.32", + "Open": "90.32", + "Volume": "5253900" + }, + { + "Close": "91.379997", + "Date": "2005/3/31", + "High": "91.410004", + "Low": "90.220001", + "Open": "90.459999", + "Volume": "4418600" + }, + { + "Close": "90.440002", + "Date": "2005/4/1", + "High": "91.760002", + "Low": "90.040001", + "Open": "91.489998", + "Volume": "5721200" + }, + { + "Close": "90.32", + "Date": "2005/4/4", + "High": "90.620003", + "Low": "89.769997", + "Open": "90.080002", + "Volume": "3737800" + }, + { + "Close": "89.57", + "Date": "2005/4/5", + "High": "90.330002", + "Low": "89.260002", + "Open": "90.230003", + "Volume": "4568400" + }, + { + "Close": "89", + "Date": "2005/4/6", + "High": "89.379997", + "Low": "88.709999", + "Open": "89.050003", + "Volume": "7836800" + }, + { + "Close": "88.440002", + "Date": "2005/4/7", + "High": "89.199997", + "Low": "88.099998", + "Open": "89", + "Volume": "6355700" + }, + { + "Close": "87.599998", + "Date": "2005/4/8", + "High": "88.459999", + "Low": "87.5", + "Open": "88.279999", + "Volume": "5179200" + }, + { + "Close": "86.199997", + "Date": "2005/4/11", + "High": "87.559998", + "Low": "86.089996", + "Open": "87.349998", + "Volume": "8296500" + }, + { + "Close": "85.75", + "Date": "2005/4/12", + "High": "86.239998", + "Low": "85.169998", + "Open": "85.900002", + "Volume": "8429700" + }, + { + "Close": "84.57", + "Date": "2005/4/13", + "High": "85.970001", + "Low": "84.239998", + "Open": "85.760002", + "Volume": "7090700" + }, + { + "Close": "83.639999", + "Date": "2005/4/14", + "High": "85.410004", + "Low": "83.470001", + "Open": "84.510002", + "Volume": "10421200" + }, + { + "Close": "76.699997", + "Date": "2005/4/15", + "High": "79.660004", + "Low": "76.330002", + "Open": "79", + "Volume": "27906300" + }, + { + "Close": "76.650002", + "Date": "2005/4/18", + "High": "77.75", + "Low": "76.139999", + "Open": "77.150002", + "Volume": "13255000" + }, + { + "Close": "75.480003", + "Date": "2005/4/19", + "High": "77.199997", + "Low": "75.25", + "Open": "76.980003", + "Volume": "9259900" + }, + { + "Close": "72.010002", + "Date": "2005/4/20", + "High": "75.870003", + "Low": "71.849998", + "Open": "75.480003", + "Volume": "20366300" + }, + { + "Close": "74.029999", + "Date": "2005/4/21", + "High": "74.099998", + "Low": "72.800003", + "Open": "73", + "Volume": "16224400" + }, + { + "Close": "74.209999", + "Date": "2005/4/22", + "High": "74.699997", + "Low": "73.260002", + "Open": "74.230003", + "Volume": "10984400" + }, + { + "Close": "74.610001", + "Date": "2005/4/25", + "High": "75.720001", + "Low": "74.050003", + "Open": "75.099998", + "Volume": "10219400" + }, + { + "Close": "75.43", + "Date": "2005/4/26", + "High": "76.980003", + "Low": "74.650002", + "Open": "74.68", + "Volume": "12484300" + }, + { + "Close": "77.050003", + "Date": "2005/4/27", + "High": "77.18", + "Low": "75.5", + "Open": "75.599998", + "Volume": "11631400" + }, + { + "Close": "75.910004", + "Date": "2005/4/28", + "High": "77.110001", + "Low": "75.650002", + "Open": "77.050003", + "Volume": "8629200" + }, + { + "Close": "76.379997", + "Date": "2005/4/29", + "High": "77.080002", + "Low": "75.910004", + "Open": "77.050003", + "Volume": "8147700" + }, + { + "Close": "76.510002", + "Date": "2005/5/2", + "High": "77.290001", + "Low": "76.029999", + "Open": "76.879997", + "Volume": "7232500" + }, + { + "Close": "76.470001", + "Date": "2005/5/3", + "High": "76.959999", + "Low": "75.93", + "Open": "76.779999", + "Volume": "6196300" + }, + { + "Close": "77.080002", + "Date": "2005/5/4", + "High": "77.199997", + "Low": "76.5", + "Open": "76.599998", + "Volume": "5512300" + }, + { + "Close": "75.5", + "Date": "2005/5/5", + "High": "78.110001", + "Low": "75.330002", + "Open": "78", + "Volume": "12371800" + }, + { + "Close": "75.260002", + "Date": "2005/5/6", + "High": "75.919998", + "Low": "74.970001", + "Open": "75.559998", + "Volume": "7750300" + }, + { + "Close": "74.980003", + "Date": "2005/5/9", + "High": "75.459999", + "Low": "74.709999", + "Open": "75.260002", + "Volume": "5616700" + }, + { + "Close": "73.300003", + "Date": "2005/5/10", + "High": "74.760002", + "Low": "73.040001", + "Open": "74.75", + "Volume": "7982200" + }, + { + "Close": "73.279999", + "Date": "2005/5/11", + "High": "73.690002", + "Low": "72.510002", + "Open": "73.629997", + "Volume": "6915700" + }, + { + "Close": "72.620003", + "Date": "2005/5/12", + "High": "73.800003", + "Low": "72.5", + "Open": "73.529999", + "Volume": "6061900" + }, + { + "Close": "73.160004", + "Date": "2005/5/13", + "High": "73.860001", + "Low": "72.519997", + "Open": "72.529999", + "Volume": "7150600" + }, + { + "Close": "74.339996", + "Date": "2005/5/16", + "High": "74.489998", + "Low": "73.089996", + "Open": "73.089996", + "Volume": "5501500" + }, + { + "Close": "74.290001", + "Date": "2005/5/17", + "High": "74.43", + "Low": "73.330002", + "Open": "73.93", + "Volume": "5135600" + }, + { + "Close": "76.360001", + "Date": "2005/5/18", + "High": "76.82", + "Low": "74.690002", + "Open": "75", + "Volume": "10309600" + }, + { + "Close": "77.160004", + "Date": "2005/5/19", + "High": "77.639999", + "Low": "76.370003", + "Open": "76.5", + "Volume": "7030400" + }, + { + "Close": "76.410004", + "Date": "2005/5/20", + "High": "77.279999", + "Low": "76.360001", + "Open": "77.279999", + "Volume": "6329800" + }, + { + "Close": "76.510002", + "Date": "2005/5/23", + "High": "76.949997", + "Low": "76", + "Open": "76.300003", + "Volume": "4759800" + }, + { + "Close": "75.809998", + "Date": "2005/5/24", + "High": "76.510002", + "Low": "75.559998", + "Open": "76.139999", + "Volume": "5660700" + }, + { + "Close": "76", + "Date": "2005/5/25", + "High": "76.029999", + "Low": "75.169998", + "Open": "75.419998", + "Volume": "5483400" + }, + { + "Close": "77.139999", + "Date": "2005/5/26", + "High": "77.410004", + "Low": "76.290001", + "Open": "76.449997", + "Volume": "5832000" + }, + { + "Close": "77.099998", + "Date": "2005/5/27", + "High": "77.239998", + "Low": "76.529999", + "Open": "77.110001", + "Volume": "3163900" + }, + { + "Close": "75.550003", + "Date": "2005/5/31", + "High": "77.410004", + "Low": "75.5", + "Open": "77.300003", + "Volume": "6419000" + }, + { + "Close": "76.839996", + "Date": "2005/6/1", + "High": "77.5", + "Low": "75.57", + "Open": "75.57", + "Volume": "7380600" + }, + { + "Close": "77.349998", + "Date": "2005/6/2", + "High": "77.389999", + "Low": "76.68", + "Open": "76.75", + "Volume": "4025600" + }, + { + "Close": "75.790001", + "Date": "2005/6/3", + "High": "77.099998", + "Low": "75.739998", + "Open": "77.059998", + "Volume": "6149900" + }, + { + "Close": "75", + "Date": "2005/6/6", + "High": "75.900002", + "Low": "74.919998", + "Open": "75.800003", + "Volume": "5978600" + }, + { + "Close": "75.040001", + "Date": "2005/6/7", + "High": "76.089996", + "Low": "75", + "Open": "75", + "Volume": "5226600" + }, + { + "Close": "74.800003", + "Date": "2005/6/8", + "High": "75.400002", + "Low": "74.629997", + "Open": "75.040001", + "Volume": "4280000" + }, + { + "Close": "74.93", + "Date": "2005/6/9", + "High": "75.470001", + "Low": "74.230003", + "Open": "74.580002", + "Volume": "4423200" + }, + { + "Close": "74.769997", + "Date": "2005/6/10", + "High": "75.050003", + "Low": "74.099998", + "Open": "74.75", + "Volume": "4895800" + }, + { + "Close": "75.050003", + "Date": "2005/6/13", + "High": "75.93", + "Low": "74.449997", + "Open": "74.5", + "Volume": "5715700" + }, + { + "Close": "74.889999", + "Date": "2005/6/14", + "High": "75.43", + "Low": "74.730003", + "Open": "75.050003", + "Volume": "4314900" + }, + { + "Close": "76.300003", + "Date": "2005/6/15", + "High": "76.5", + "Low": "75.150002", + "Open": "75.699997", + "Volume": "7103600" + }, + { + "Close": "77.050003", + "Date": "2005/6/16", + "High": "77.25", + "Low": "76.309998", + "Open": "76.400002", + "Volume": "7840000" + }, + { + "Close": "76.389999", + "Date": "2005/6/17", + "High": "77.730003", + "Low": "76.379997", + "Open": "77.699997", + "Volume": "8593800" + }, + { + "Close": "76.550003", + "Date": "2005/6/20", + "High": "76.980003", + "Low": "75.57", + "Open": "76.029999", + "Volume": "3745600" + }, + { + "Close": "76.410004", + "Date": "2005/6/21", + "High": "77", + "Low": "76.110001", + "Open": "76.699997", + "Volume": "5339100" + }, + { + "Close": "77.230003", + "Date": "2005/6/22", + "High": "77.489998", + "Low": "76.669998", + "Open": "76.830002", + "Volume": "5646300" + }, + { + "Close": "75.410004", + "Date": "2005/6/23", + "High": "76.970001", + "Low": "75.059998", + "Open": "76.809998", + "Volume": "7766700" + }, + { + "Close": "74.010002", + "Date": "2005/6/24", + "High": "75.400002", + "Low": "74", + "Open": "75.169998", + "Volume": "10792100" + }, + { + "Close": "73.879997", + "Date": "2005/6/27", + "High": "74.769997", + "Low": "73.5", + "Open": "74.010002", + "Volume": "6489800" + }, + { + "Close": "75.300003", + "Date": "2005/6/28", + "High": "75.300003", + "Low": "73.449997", + "Open": "73.830002", + "Volume": "8188800" + }, + { + "Close": "74.730003", + "Date": "2005/6/29", + "High": "75.68", + "Low": "74.620003", + "Open": "75.260002", + "Volume": "5519100" + }, + { + "Close": "74.199997", + "Date": "2005/6/30", + "High": "75.489998", + "Low": "74.07", + "Open": "74.800003", + "Volume": "6127000" + }, + { + "Close": "74.669998", + "Date": "2005/7/1", + "High": "75.330002", + "Low": "74.300003", + "Open": "74.300003", + "Volume": "4353100" + }, + { + "Close": "74.790001", + "Date": "2005/7/5", + "High": "74.970001", + "Low": "74.160004", + "Open": "74.379997", + "Volume": "5181800" + }, + { + "Close": "75.809998", + "Date": "2005/7/6", + "High": "76.150002", + "Low": "74.400002", + "Open": "74.800003", + "Volume": "8009300" + }, + { + "Close": "77.379997", + "Date": "2005/7/7", + "High": "77.529999", + "Low": "75", + "Open": "75.150002", + "Volume": "10757200" + }, + { + "Close": "79.300003", + "Date": "2005/7/8", + "High": "79.519997", + "Low": "77.139999", + "Open": "77.379997", + "Volume": "13440500" + }, + { + "Close": "78.959999", + "Date": "2005/7/11", + "High": "79.519997", + "Low": "78.519997", + "Open": "79.400002", + "Volume": "7186700" + }, + { + "Close": "80.040001", + "Date": "2005/7/12", + "High": "80.489998", + "Low": "79.18", + "Open": "79.199997", + "Volume": "10945500" + }, + { + "Close": "81.449997", + "Date": "2005/7/13", + "High": "81.75", + "Low": "81.160004", + "Open": "81.160004", + "Volume": "11340000" + }, + { + "Close": "82.419998", + "Date": "2005/7/14", + "High": "82.669998", + "Low": "82", + "Open": "82", + "Volume": "8546200" + }, + { + "Close": "82.379997", + "Date": "2005/7/15", + "High": "82.75", + "Low": "81.519997", + "Open": "82.43", + "Volume": "7644100" + }, + { + "Close": "81.809998", + "Date": "2005/7/18", + "High": "83.940002", + "Low": "81.68", + "Open": "81.989998", + "Volume": "8705600" + }, + { + "Close": "83.699997", + "Date": "2005/7/19", + "High": "85.110001", + "Low": "83.699997", + "Open": "84.720001", + "Volume": "14149700" + }, + { + "Close": "84.599998", + "Date": "2005/7/20", + "High": "84.959999", + "Low": "82.989998", + "Open": "83.199997", + "Volume": "9323200" + }, + { + "Close": "84.400002", + "Date": "2005/7/21", + "High": "84.949997", + "Low": "83.400002", + "Open": "84.599998", + "Volume": "8265300" + }, + { + "Close": "84.440002", + "Date": "2005/7/22", + "High": "84.629997", + "Low": "83.860001", + "Open": "83.980003", + "Volume": "4570400" + }, + { + "Close": "84.199997", + "Date": "2005/7/25", + "High": "84.519997", + "Low": "83.919998", + "Open": "83.980003", + "Volume": "4457800" + }, + { + "Close": "84.120003", + "Date": "2005/7/26", + "High": "84.349998", + "Low": "83.849998", + "Open": "84.150002", + "Volume": "4542900" + }, + { + "Close": "83.870003", + "Date": "2005/7/27", + "High": "84.129997", + "Low": "82.809998", + "Open": "83.800003", + "Volume": "4862200" + }, + { + "Close": "83.800003", + "Date": "2005/7/28", + "High": "83.970001", + "Low": "83.269997", + "Open": "83.550003", + "Volume": "6189700" + }, + { + "Close": "83.459999", + "Date": "2005/7/29", + "High": "83.949997", + "Low": "83.220001", + "Open": "83.300003", + "Volume": "4330300" + }, + { + "Close": "83.43", + "Date": "2005/8/1", + "High": "83.849998", + "Low": "82.849998", + "Open": "83", + "Volume": "3664300" + }, + { + "Close": "83.309998", + "Date": "2005/8/2", + "High": "83.860001", + "Low": "83.040001", + "Open": "83.269997", + "Volume": "5380700" + }, + { + "Close": "84.059998", + "Date": "2005/8/3", + "High": "84.199997", + "Low": "83.110001", + "Open": "83.309998", + "Volume": "4256200" + }, + { + "Close": "83.120003", + "Date": "2005/8/4", + "High": "83.889999", + "Low": "82.980003", + "Open": "83.75", + "Volume": "5249900" + }, + { + "Close": "83.360001", + "Date": "2005/8/5", + "High": "83.739998", + "Low": "82.730003", + "Open": "82.75", + "Volume": "3714600" + }, + { + "Close": "83.360001", + "Date": "2005/8/8", + "High": "83.889999", + "Low": "83.019997", + "Open": "83.410004", + "Volume": "4424300" + }, + { + "Close": "83.5", + "Date": "2005/8/9", + "High": "83.949997", + "Low": "82.940002", + "Open": "83.400002", + "Volume": "3793500" + }, + { + "Close": "82.019997", + "Date": "2005/8/10", + "High": "84.010002", + "Low": "81.970001", + "Open": "83.650002", + "Volume": "5402400" + }, + { + "Close": "82.660004", + "Date": "2005/8/11", + "High": "82.75", + "Low": "81.620003", + "Open": "81.93", + "Volume": "4570400" + }, + { + "Close": "82.190002", + "Date": "2005/8/12", + "High": "82.580002", + "Low": "82.059998", + "Open": "82.150002", + "Volume": "4378200" + }, + { + "Close": "82.5", + "Date": "2005/8/15", + "High": "82.940002", + "Low": "81.610001", + "Open": "81.900002", + "Volume": "3431100" + }, + { + "Close": "81.300003", + "Date": "2005/8/16", + "High": "82.43", + "Low": "81.089996", + "Open": "82.07", + "Volume": "4407400" + }, + { + "Close": "81.300003", + "Date": "2005/8/17", + "High": "81.940002", + "Low": "80.839996", + "Open": "81.400002", + "Volume": "4853000" + }, + { + "Close": "81.150002", + "Date": "2005/8/18", + "High": "82", + "Low": "80.800003", + "Open": "81.099998", + "Volume": "3713300" + }, + { + "Close": "82.760002", + "Date": "2005/8/19", + "High": "83.300003", + "Low": "81.360001", + "Open": "81.360001", + "Volume": "6481000" + }, + { + "Close": "82.599998", + "Date": "2005/8/22", + "High": "83.349998", + "Low": "81.849998", + "Open": "82.75", + "Volume": "5157200" + }, + { + "Close": "82.029999", + "Date": "2005/8/23", + "High": "83.139999", + "Low": "81.599998", + "Open": "82.699997", + "Volume": "4000300" + }, + { + "Close": "81.32", + "Date": "2005/8/24", + "High": "82.400002", + "Low": "81.230003", + "Open": "81.529999", + "Volume": "4417600" + }, + { + "Close": "81.099998", + "Date": "2005/8/25", + "High": "81.449997", + "Low": "80.720001", + "Open": "81.449997", + "Volume": "3606100" + }, + { + "Close": "80.379997", + "Date": "2005/8/26", + "High": "81.019997", + "Low": "80.260002", + "Open": "80.809998", + "Volume": "5029300" + }, + { + "Close": "81.339996", + "Date": "2005/8/29", + "High": "81.75", + "Low": "79.900002", + "Open": "80", + "Volume": "4025300" + }, + { + "Close": "80.540001", + "Date": "2005/8/30", + "High": "81", + "Low": "79.980003", + "Open": "81", + "Volume": "5674200" + }, + { + "Close": "80.620003", + "Date": "2005/8/31", + "High": "80.790001", + "Low": "79.870003", + "Open": "80.349998", + "Volume": "5400800" + }, + { + "Close": "79.540001", + "Date": "2005/9/1", + "High": "80.32", + "Low": "79.339996", + "Open": "80.160004", + "Volume": "6390600" + }, + { + "Close": "79.459999", + "Date": "2005/9/2", + "High": "80.010002", + "Low": "79.459999", + "Open": "79.5", + "Volume": "3680600" + }, + { + "Close": "81.019997", + "Date": "2005/9/6", + "High": "81.190002", + "Low": "79.699997", + "Open": "79.699997", + "Volume": "6305500" + }, + { + "Close": "80.980003", + "Date": "2005/9/7", + "High": "81.129997", + "Low": "80.32", + "Open": "80.699997", + "Volume": "4116300" + }, + { + "Close": "80.800003", + "Date": "2005/9/8", + "High": "81.519997", + "Low": "80.5", + "Open": "81.279999", + "Volume": "4277300" + }, + { + "Close": "81.440002", + "Date": "2005/9/9", + "High": "81.489998", + "Low": "80.519997", + "Open": "80.860001", + "Volume": "3982200" + }, + { + "Close": "81.480003", + "Date": "2005/9/12", + "High": "82.110001", + "Low": "81", + "Open": "81.029999", + "Volume": "3692800" + }, + { + "Close": "80.75", + "Date": "2005/9/13", + "High": "81.489998", + "Low": "80.519997", + "Open": "81.489998", + "Volume": "5040900" + }, + { + "Close": "80.480003", + "Date": "2005/9/14", + "High": "81.400002", + "Low": "80.419998", + "Open": "80.75", + "Volume": "3887700" + }, + { + "Close": "80.010002", + "Date": "2005/9/15", + "High": "80.650002", + "Low": "79.669998", + "Open": "80.43", + "Volume": "4864100" + }, + { + "Close": "80.330002", + "Date": "2005/9/16", + "High": "80.5", + "Low": "79.830002", + "Open": "80.379997", + "Volume": "7624900" + }, + { + "Close": "79.43", + "Date": "2005/9/19", + "High": "79.980003", + "Low": "79.010002", + "Open": "79.739998", + "Volume": "5148500" + }, + { + "Close": "78.699997", + "Date": "2005/9/20", + "High": "79.650002", + "Low": "78.629997", + "Open": "79.269997", + "Volume": "7122300" + }, + { + "Close": "77.559998", + "Date": "2005/9/21", + "High": "78.459999", + "Low": "77.370003", + "Open": "78", + "Volume": "7126000" + }, + { + "Close": "78.209999", + "Date": "2005/9/22", + "High": "78.5", + "Low": "77.300003", + "Open": "77.559998", + "Volume": "6870400" + }, + { + "Close": "78", + "Date": "2005/9/23", + "High": "78.110001", + "Low": "77.5", + "Open": "77.699997", + "Volume": "5434600" + }, + { + "Close": "77.410004", + "Date": "2005/9/26", + "High": "78.410004", + "Low": "76.93", + "Open": "78.309998", + "Volume": "5433200" + }, + { + "Close": "77.989998", + "Date": "2005/9/27", + "High": "78.599998", + "Low": "77.160004", + "Open": "77.169998", + "Volume": "5499600" + }, + { + "Close": "79.5", + "Date": "2005/9/28", + "High": "79.730003", + "Low": "78.059998", + "Open": "78.059998", + "Volume": "7747700" + }, + { + "Close": "80.360001", + "Date": "2005/9/29", + "High": "80.550003", + "Low": "78.870003", + "Open": "79.25", + "Volume": "5899700" + }, + { + "Close": "80.220001", + "Date": "2005/9/30", + "High": "80.5", + "Low": "79.970001", + "Open": "80.019997", + "Volume": "5536500" + }, + { + "Close": "80.449997", + "Date": "2005/10/3", + "High": "80.599998", + "Low": "79.5", + "Open": "80.220001", + "Volume": "5297600" + }, + { + "Close": "80.110001", + "Date": "2005/10/4", + "High": "81.470001", + "Low": "79.93", + "Open": "80.650002", + "Volume": "6365100" + }, + { + "Close": "79.82", + "Date": "2005/10/5", + "High": "80.68", + "Low": "79.559998", + "Open": "80.110001", + "Volume": "4998800" + }, + { + "Close": "79.699997", + "Date": "2005/10/6", + "High": "80.269997", + "Low": "78.699997", + "Open": "79.82", + "Volume": "8130200" + }, + { + "Close": "80.5", + "Date": "2005/10/7", + "High": "81.120003", + "Low": "80.089996", + "Open": "80.25", + "Volume": "6130100" + }, + { + "Close": "81.25", + "Date": "2005/10/10", + "High": "82.099998", + "Low": "81.080002", + "Open": "81.239998", + "Volume": "7882900" + }, + { + "Close": "83.190002", + "Date": "2005/10/11", + "High": "83.519997", + "Low": "81.970001", + "Open": "82.25", + "Volume": "9781300" + }, + { + "Close": "82.190002", + "Date": "2005/10/12", + "High": "82.93", + "Low": "81.949997", + "Open": "82.75", + "Volume": "7580800" + }, + { + "Close": "82.199997", + "Date": "2005/10/13", + "High": "83.199997", + "Low": "81.699997", + "Open": "81.699997", + "Volume": "5530600" + }, + { + "Close": "82.349998", + "Date": "2005/10/14", + "High": "82.709999", + "Low": "81.599998", + "Open": "82.599998", + "Volume": "5573700" + }, + { + "Close": "82.589996", + "Date": "2005/10/17", + "High": "82.989998", + "Low": "81.93", + "Open": "82.360001", + "Volume": "7964800" + }, + { + "Close": "83.480003", + "Date": "2005/10/18", + "High": "84.599998", + "Low": "83.349998", + "Open": "84.330002", + "Volume": "12045300" + }, + { + "Close": "84.169998", + "Date": "2005/10/19", + "High": "84.199997", + "Low": "82.379997", + "Open": "82.410004", + "Volume": "7502600" + }, + { + "Close": "83.169998", + "Date": "2005/10/20", + "High": "84.190002", + "Low": "82.879997", + "Open": "84", + "Volume": "5752700" + }, + { + "Close": "83.330002", + "Date": "2005/10/21", + "High": "84", + "Low": "82.910004", + "Open": "83.080002", + "Volume": "6020700" + }, + { + "Close": "83.470001", + "Date": "2005/10/24", + "High": "83.610001", + "Low": "82.599998", + "Open": "83.150002", + "Volume": "5482200" + }, + { + "Close": "83.360001", + "Date": "2005/10/25", + "High": "83.949997", + "Low": "82.709999", + "Open": "83.080002", + "Volume": "5393300" + }, + { + "Close": "82.889999", + "Date": "2005/10/26", + "High": "83.870003", + "Low": "82.720001", + "Open": "82.970001", + "Volume": "4270800" + }, + { + "Close": "82.309998", + "Date": "2005/10/27", + "High": "82.93", + "Low": "82.25", + "Open": "82.529999", + "Volume": "3705800" + }, + { + "Close": "81.419998", + "Date": "2005/10/28", + "High": "82.43", + "Low": "80.5", + "Open": "82.32", + "Volume": "6941300" + }, + { + "Close": "81.879997", + "Date": "2005/10/31", + "High": "82.300003", + "Low": "81.300003", + "Open": "81.510002", + "Volume": "7531200" + }, + { + "Close": "81.589996", + "Date": "2005/11/1", + "High": "82.150002", + "Low": "81.290001", + "Open": "81.849998", + "Volume": "5653100" + }, + { + "Close": "81.059998", + "Date": "2005/11/2", + "High": "81.889999", + "Low": "80.639999", + "Open": "81.199997", + "Volume": "6447400" + }, + { + "Close": "82.870003", + "Date": "2005/11/3", + "High": "83.029999", + "Low": "81.309998", + "Open": "81.550003", + "Volume": "7690900" + }, + { + "Close": "83", + "Date": "2005/11/4", + "High": "83.300003", + "Low": "82.650002", + "Open": "82.910004", + "Volume": "3831400" + }, + { + "Close": "83.610001", + "Date": "2005/11/7", + "High": "83.849998", + "Low": "83.07", + "Open": "83.099998", + "Volume": "4455100" + }, + { + "Close": "83.150002", + "Date": "2005/11/8", + "High": "83.900002", + "Low": "83.110001", + "Open": "83.410004", + "Volume": "3798000" + }, + { + "Close": "82.839996", + "Date": "2005/11/9", + "High": "83.330002", + "Low": "82.489998", + "Open": "82.709999", + "Volume": "3936200" + }, + { + "Close": "83.989998", + "Date": "2005/11/10", + "High": "84.300003", + "Low": "82.300003", + "Open": "82.699997", + "Volume": "4732000" + }, + { + "Close": "84.550003", + "Date": "2005/11/11", + "High": "84.839996", + "Low": "84.150002", + "Open": "84.199997", + "Volume": "4841300" + }, + { + "Close": "84.360001", + "Date": "2005/11/14", + "High": "85", + "Low": "84.110001", + "Open": "84.25", + "Volume": "3915300" + }, + { + "Close": "85.529999", + "Date": "2005/11/15", + "High": "85.900002", + "Low": "84.029999", + "Open": "84.029999", + "Volume": "6830800" + }, + { + "Close": "86.540001", + "Date": "2005/11/16", + "High": "86.580002", + "Low": "85.389999", + "Open": "85.449997", + "Volume": "6694100" + }, + { + "Close": "86.889999", + "Date": "2005/11/17", + "High": "86.980003", + "Low": "85.760002", + "Open": "86.18", + "Volume": "5293600" + }, + { + "Close": "87.769997", + "Date": "2005/11/18", + "High": "88", + "Low": "87.169998", + "Open": "88", + "Volume": "7985800" + }, + { + "Close": "87.290001", + "Date": "2005/11/21", + "High": "87.870003", + "Low": "87.010002", + "Open": "87.599998", + "Volume": "4807900" + }, + { + "Close": "87.989998", + "Date": "2005/11/22", + "High": "88.080002", + "Low": "86.879997", + "Open": "86.879997", + "Volume": "5786600" + }, + { + "Close": "88.800003", + "Date": "2005/11/23", + "High": "89.389999", + "Low": "87.949997", + "Open": "88.120003", + "Volume": "5399300" + }, + { + "Close": "88.800003", + "Date": "2005/11/25", + "High": "89.32", + "Low": "88.620003", + "Open": "88.949997", + "Volume": "2199300" + }, + { + "Close": "89.110001", + "Date": "2005/11/28", + "High": "89.43", + "Low": "88.75", + "Open": "88.800003", + "Volume": "5197900" + }, + { + "Close": "89.099998", + "Date": "2005/11/29", + "High": "89.940002", + "Low": "89.019997", + "Open": "89.18", + "Volume": "5147000" + }, + { + "Close": "88.900002", + "Date": "2005/11/30", + "High": "89.639999", + "Low": "88.730003", + "Open": "89.050003", + "Volume": "6021500" + }, + { + "Close": "89.209999", + "Date": "2005/12/1", + "High": "89.739998", + "Low": "89.050003", + "Open": "89.150002", + "Volume": "4668500" + }, + { + "Close": "88.650002", + "Date": "2005/12/2", + "High": "89.150002", + "Low": "88.360001", + "Open": "89", + "Volume": "4730500" + }, + { + "Close": "88.43", + "Date": "2005/12/5", + "High": "88.650002", + "Low": "87.709999", + "Open": "88.400002", + "Volume": "4023600" + }, + { + "Close": "89.139999", + "Date": "2005/12/6", + "High": "89.839996", + "Low": "88.559998", + "Open": "88.559998", + "Volume": "4871500" + }, + { + "Close": "88.720001", + "Date": "2005/12/7", + "High": "89.919998", + "Low": "88.449997", + "Open": "89", + "Volume": "5284000" + }, + { + "Close": "87.5", + "Date": "2005/12/8", + "High": "88.910004", + "Low": "86.669998", + "Open": "88.57", + "Volume": "5787000" + }, + { + "Close": "86.970001", + "Date": "2005/12/9", + "High": "87.099998", + "Low": "86.330002", + "Open": "86.800003", + "Volume": "6461800" + }, + { + "Close": "85.959999", + "Date": "2005/12/12", + "High": "87.349998", + "Low": "85.760002", + "Open": "87.010002", + "Volume": "6044100" + }, + { + "Close": "83.709999", + "Date": "2005/12/13", + "High": "84.900002", + "Low": "83.5", + "Open": "84.5", + "Volume": "12545300" + }, + { + "Close": "83.129997", + "Date": "2005/12/14", + "High": "83.949997", + "Low": "82.949997", + "Open": "83.650002", + "Volume": "7161800" + }, + { + "Close": "83.529999", + "Date": "2005/12/15", + "High": "83.629997", + "Low": "82.75", + "Open": "82.879997", + "Volume": "6155900" + }, + { + "Close": "83.370003", + "Date": "2005/12/16", + "High": "84", + "Low": "83", + "Open": "83.889999", + "Volume": "7398200" + }, + { + "Close": "82.760002", + "Date": "2005/12/19", + "High": "83.599998", + "Low": "82.650002", + "Open": "83.230003", + "Volume": "4985400" + }, + { + "Close": "82.480003", + "Date": "2005/12/20", + "High": "83.099998", + "Low": "82.059998", + "Open": "82.949997", + "Volume": "5276200" + }, + { + "Close": "83.120003", + "Date": "2005/12/21", + "High": "84", + "Low": "82.459999", + "Open": "82.459999", + "Volume": "6846800" + }, + { + "Close": "83.220001", + "Date": "2005/12/22", + "High": "83.230003", + "Low": "82.300003", + "Open": "82.610001", + "Volume": "6573600" + }, + { + "Close": "83.480003", + "Date": "2005/12/23", + "High": "84.199997", + "Low": "83.389999", + "Open": "84", + "Volume": "3616200" + }, + { + "Close": "82.989998", + "Date": "2005/12/27", + "High": "84.5", + "Low": "82.889999", + "Open": "83.480003", + "Volume": "4377800" + }, + { + "Close": "83.040001", + "Date": "2005/12/28", + "High": "83.57", + "Low": "82.800003", + "Open": "83.099998", + "Volume": "3836800" + }, + { + "Close": "82.400002", + "Date": "2005/12/29", + "High": "83.059998", + "Low": "82.220001", + "Open": "82.800003", + "Volume": "3958400" + }, + { + "Close": "82.199997", + "Date": "2005/12/30", + "High": "82.489998", + "Low": "81.559998", + "Open": "81.849998", + "Volume": "5449000" + }, + { + "Close": "82.059998", + "Date": "2006/1/3", + "High": "82.550003", + "Low": "80.809998", + "Open": "82.449997", + "Volume": "11715100" + }, + { + "Close": "81.949997", + "Date": "2006/1/4", + "High": "82.5", + "Low": "81.330002", + "Open": "82.199997", + "Volume": "9832800" + }, + { + "Close": "82.5", + "Date": "2006/1/5", + "High": "82.900002", + "Low": "81.25", + "Open": "81.400002", + "Volume": "7213400" + }, + { + "Close": "84.949997", + "Date": "2006/1/6", + "High": "85.029999", + "Low": "83.410004", + "Open": "83.949997", + "Volume": "8196900" + }, + { + "Close": "83.730003", + "Date": "2006/1/9", + "High": "84.25", + "Low": "83.379997", + "Open": "83.900002", + "Volume": "6851100" + }, + { + "Close": "84.07", + "Date": "2006/1/10", + "High": "84.120003", + "Low": "83.120003", + "Open": "83.150002", + "Volume": "5700000" + }, + { + "Close": "84.169998", + "Date": "2006/1/11", + "High": "84.809998", + "Low": "83.400002", + "Open": "84.370003", + "Volume": "5776400" + }, + { + "Close": "83.57", + "Date": "2006/1/12", + "High": "83.959999", + "Low": "83.400002", + "Open": "83.82", + "Volume": "4924100" + }, + { + "Close": "83.169998", + "Date": "2006/1/13", + "High": "83.449997", + "Low": "82.5", + "Open": "83", + "Volume": "6921600" + }, + { + "Close": "83", + "Date": "2006/1/17", + "High": "83.160004", + "Low": "82.540001", + "Open": "82.800003", + "Volume": "8718400" + }, + { + "Close": "83.800003", + "Date": "2006/1/18", + "High": "84.699997", + "Low": "83.519997", + "Open": "84", + "Volume": "10984800" + }, + { + "Close": "83.089996", + "Date": "2006/1/19", + "High": "84.389999", + "Low": "83.019997", + "Open": "84.139999", + "Volume": "6483500" + }, + { + "Close": "81.360001", + "Date": "2006/1/20", + "High": "83.050003", + "Low": "81.25", + "Open": "83.040001", + "Volume": "8605800" + }, + { + "Close": "81.410004", + "Date": "2006/1/23", + "High": "81.919998", + "Low": "80.919998", + "Open": "81.330002", + "Volume": "6114100" + }, + { + "Close": "80.849998", + "Date": "2006/1/24", + "High": "82.150002", + "Low": "80.800003", + "Open": "81.389999", + "Volume": "6069000" + }, + { + "Close": "80.910004", + "Date": "2006/1/25", + "High": "81.620003", + "Low": "80.610001", + "Open": "81.050003", + "Volume": "6374300" + }, + { + "Close": "80.720001", + "Date": "2006/1/26", + "High": "81.650002", + "Low": "80.589996", + "Open": "81.5", + "Volume": "7810200" + }, + { + "Close": "81.019997", + "Date": "2006/1/27", + "High": "81.769997", + "Low": "80.75", + "Open": "80.75", + "Volume": "6103400" + }, + { + "Close": "81.629997", + "Date": "2006/1/30", + "High": "81.809998", + "Low": "80.209999", + "Open": "80.209999", + "Volume": "5325100" + }, + { + "Close": "81.300003", + "Date": "2006/1/31", + "High": "82", + "Low": "81.169998", + "Open": "81.5", + "Volume": "6771600" + }, + { + "Close": "81.940002", + "Date": "2006/2/1", + "High": "82.239998", + "Low": "80.650002", + "Open": "80.900002", + "Volume": "5419300" + }, + { + "Close": "81.230003", + "Date": "2006/2/2", + "High": "81.589996", + "Low": "80.900002", + "Open": "81.449997", + "Volume": "6198000" + }, + { + "Close": "79.970001", + "Date": "2006/2/3", + "High": "80.769997", + "Low": "79.720001", + "Open": "80.550003", + "Volume": "9852000" + }, + { + "Close": "79.510002", + "Date": "2006/2/6", + "High": "79.949997", + "Low": "78.93", + "Open": "79.940002", + "Volume": "9568500" + }, + { + "Close": "79.849998", + "Date": "2006/2/7", + "High": "80.190002", + "Low": "79.300003", + "Open": "79.5", + "Volume": "5247300" + }, + { + "Close": "80.800003", + "Date": "2006/2/8", + "High": "80.900002", + "Low": "80.239998", + "Open": "80.580002", + "Volume": "5029200" + }, + { + "Close": "80.400002", + "Date": "2006/2/9", + "High": "80.800003", + "Low": "79.5", + "Open": "80.400002", + "Volume": "7609200" + }, + { + "Close": "81.330002", + "Date": "2006/2/10", + "High": "81.459999", + "Low": "80.199997", + "Open": "80.400002", + "Volume": "5371900" + }, + { + "Close": "80.440002", + "Date": "2006/2/13", + "High": "81.910004", + "Low": "80.18", + "Open": "81.330002", + "Volume": "5257400" + }, + { + "Close": "81.089996", + "Date": "2006/2/14", + "High": "81.449997", + "Low": "80.349998", + "Open": "80.550003", + "Volume": "6075500" + }, + { + "Close": "80.849998", + "Date": "2006/2/15", + "High": "81.5", + "Low": "80.5", + "Open": "80.860001", + "Volume": "5052000" + }, + { + "Close": "80.910004", + "Date": "2006/2/16", + "High": "80.910004", + "Low": "80.129997", + "Open": "80.68", + "Volume": "5310500" + }, + { + "Close": "80.709999", + "Date": "2006/2/17", + "High": "81.029999", + "Low": "80.129997", + "Open": "80.910004", + "Volume": "5298800" + }, + { + "Close": "80.5", + "Date": "2006/2/21", + "High": "80.75", + "Low": "79.970001", + "Open": "80.099998", + "Volume": "5838000" + }, + { + "Close": "81.349998", + "Date": "2006/2/22", + "High": "81.650002", + "Low": "79.970001", + "Open": "80", + "Volume": "5294300" + }, + { + "Close": "80.199997", + "Date": "2006/2/23", + "High": "81.339996", + "Low": "80.040001", + "Open": "81.199997", + "Volume": "4979400" + }, + { + "Close": "80.099998", + "Date": "2006/2/24", + "High": "80.650002", + "Low": "79.849998", + "Open": "80.650002", + "Volume": "3903200" + }, + { + "Close": "80.629997", + "Date": "2006/2/27", + "High": "80.889999", + "Low": "79.949997", + "Open": "79.970001", + "Volume": "3787000" + }, + { + "Close": "80.239998", + "Date": "2006/2/28", + "High": "80.550003", + "Low": "79.709999", + "Open": "80.099998", + "Volume": "5960700" + }, + { + "Close": "79.900002", + "Date": "2006/3/1", + "High": "80.809998", + "Low": "79.779999", + "Open": "80.199997", + "Volume": "5172300" + }, + { + "Close": "79.940002", + "Date": "2006/3/2", + "High": "80.209999", + "Low": "79.540001", + "Open": "79.550003", + "Volume": "4418800" + }, + { + "Close": "79.959999", + "Date": "2006/3/3", + "High": "80.830002", + "Low": "79.510002", + "Open": "79.510002", + "Volume": "4354400" + }, + { + "Close": "80", + "Date": "2006/3/6", + "High": "80.639999", + "Low": "79.900002", + "Open": "79.910004", + "Volume": "4709500" + }, + { + "Close": "80.290001", + "Date": "2006/3/7", + "High": "80.790001", + "Low": "79.860001", + "Open": "80.010002", + "Volume": "4330800" + }, + { + "Close": "81.139999", + "Date": "2006/3/8", + "High": "81.599998", + "Low": "80.25", + "Open": "80.25", + "Volume": "5569900" + }, + { + "Close": "81.019997", + "Date": "2006/3/9", + "High": "81.980003", + "Low": "80.800003", + "Open": "81.260002", + "Volume": "4310700" + }, + { + "Close": "81.57", + "Date": "2006/3/10", + "High": "82.25", + "Low": "81.029999", + "Open": "81.029999", + "Volume": "4787200" + }, + { + "Close": "81.93", + "Date": "2006/3/13", + "High": "82.400002", + "Low": "81.449997", + "Open": "81.559998", + "Volume": "4571400" + }, + { + "Close": "82.879997", + "Date": "2006/3/14", + "High": "82.989998", + "Low": "81.470001", + "Open": "81.510002", + "Volume": "4518000" + }, + { + "Close": "83.379997", + "Date": "2006/3/15", + "High": "83.760002", + "Low": "82.639999", + "Open": "82.650002", + "Volume": "5370400" + }, + { + "Close": "82.870003", + "Date": "2006/3/16", + "High": "83.720001", + "Low": "82.610001", + "Open": "83.43", + "Volume": "4299500" + }, + { + "Close": "83.300003", + "Date": "2006/3/17", + "High": "83.410004", + "Low": "82.82", + "Open": "83.349998", + "Volume": "6414400" + }, + { + "Close": "83.580002", + "Date": "2006/3/20", + "High": "83.75", + "Low": "82.989998", + "Open": "83.110001", + "Volume": "3870300" + }, + { + "Close": "83.809998", + "Date": "2006/3/21", + "High": "84.989998", + "Low": "83.580002", + "Open": "83.82", + "Volume": "7404300" + }, + { + "Close": "84.449997", + "Date": "2006/3/22", + "High": "84.68", + "Low": "83.349998", + "Open": "83.349998", + "Volume": "4968600" + }, + { + "Close": "83.199997", + "Date": "2006/3/23", + "High": "84.269997", + "Low": "82.93", + "Open": "84.230003", + "Volume": "5105800" + }, + { + "Close": "83.360001", + "Date": "2006/3/24", + "High": "83.720001", + "Low": "82.989998", + "Open": "82.989998", + "Volume": "4198800" + }, + { + "Close": "83.080002", + "Date": "2006/3/27", + "High": "83.260002", + "Low": "82.580002", + "Open": "82.980003", + "Volume": "3910100" + }, + { + "Close": "82.43", + "Date": "2006/3/28", + "High": "83.389999", + "Low": "82.290001", + "Open": "82.860001", + "Volume": "4508600" + }, + { + "Close": "83.129997", + "Date": "2006/3/29", + "High": "83.550003", + "Low": "82.199997", + "Open": "82.199997", + "Volume": "4392100" + }, + { + "Close": "83.199997", + "Date": "2006/3/30", + "High": "83.699997", + "Low": "82.830002", + "Open": "82.879997", + "Volume": "4467000" + }, + { + "Close": "82.470001", + "Date": "2006/3/31", + "High": "83.599998", + "Low": "82.290001", + "Open": "82.949997", + "Volume": "5862000" + }, + { + "Close": "83.059998", + "Date": "2006/4/3", + "High": "83.589996", + "Low": "82.650002", + "Open": "82.720001", + "Volume": "4121600" + }, + { + "Close": "83.449997", + "Date": "2006/4/4", + "High": "83.779999", + "Low": "82.800003", + "Open": "83.050003", + "Volume": "3853000" + }, + { + "Close": "84.169998", + "Date": "2006/4/5", + "High": "84.449997", + "Low": "83.32", + "Open": "83.330002", + "Volume": "5523900" + }, + { + "Close": "83.809998", + "Date": "2006/4/6", + "High": "84.32", + "Low": "83.360001", + "Open": "83.699997", + "Volume": "4944100" + }, + { + "Close": "82.480003", + "Date": "2006/4/7", + "High": "83.800003", + "Low": "82.440002", + "Open": "83.599998", + "Volume": "5337500" + }, + { + "Close": "82.099998", + "Date": "2006/4/10", + "High": "82.739998", + "Low": "82", + "Open": "82.269997", + "Volume": "3627700" + }, + { + "Close": "81.160004", + "Date": "2006/4/11", + "High": "82.059998", + "Low": "80.75", + "Open": "81.830002", + "Volume": "5959700" + }, + { + "Close": "80.75", + "Date": "2006/4/12", + "High": "81.370003", + "Low": "80.629997", + "Open": "81.099998", + "Volume": "3905200" + }, + { + "Close": "81.980003", + "Date": "2006/4/13", + "High": "82.599998", + "Low": "81.120003", + "Open": "81.18", + "Volume": "4799700" + }, + { + "Close": "81.639999", + "Date": "2006/4/17", + "High": "82.919998", + "Low": "81.400002", + "Open": "81.919998", + "Volume": "4634200" + }, + { + "Close": "83.309998", + "Date": "2006/4/18", + "High": "83.529999", + "Low": "81.699997", + "Open": "81.889999", + "Volume": "7905800" + }, + { + "Close": "81.860001", + "Date": "2006/4/19", + "High": "84", + "Low": "81.260002", + "Open": "83.949997", + "Volume": "10554700" + }, + { + "Close": "82.019997", + "Date": "2006/4/20", + "High": "82.849998", + "Low": "81.639999", + "Open": "81.650002", + "Volume": "6237200" + }, + { + "Close": "81.660004", + "Date": "2006/4/21", + "High": "82.5", + "Low": "81.379997", + "Open": "82.489998", + "Volume": "6117400" + }, + { + "Close": "82.110001", + "Date": "2006/4/24", + "High": "82.410004", + "Low": "81.099998", + "Open": "81.300003", + "Volume": "6604100" + }, + { + "Close": "82.669998", + "Date": "2006/4/25", + "High": "82.900002", + "Low": "81.599998", + "Open": "81.949997", + "Volume": "6856300" + }, + { + "Close": "83.349998", + "Date": "2006/4/26", + "High": "83.480003", + "Low": "82.709999", + "Open": "82.839996", + "Volume": "6648800" + }, + { + "Close": "83.879997", + "Date": "2006/4/27", + "High": "84.400002", + "Low": "82.699997", + "Open": "82.699997", + "Volume": "8174300" + }, + { + "Close": "82.339996", + "Date": "2006/4/28", + "High": "83.620003", + "Low": "81.980003", + "Open": "83.510002", + "Volume": "8201800" + }, + { + "Close": "82.230003", + "Date": "2006/5/1", + "High": "83.309998", + "Low": "82.099998", + "Open": "82.589996", + "Volume": "6011100" + }, + { + "Close": "82.419998", + "Date": "2006/5/2", + "High": "82.739998", + "Low": "82", + "Open": "82.110001", + "Volume": "4336400" + }, + { + "Close": "82.699997", + "Date": "2006/5/3", + "High": "83.290001", + "Low": "82.449997", + "Open": "82.540001", + "Volume": "5721100" + }, + { + "Close": "82.43", + "Date": "2006/5/4", + "High": "83.089996", + "Low": "82.400002", + "Open": "82.870003", + "Volume": "3966900" + }, + { + "Close": "83.279999", + "Date": "2006/5/5", + "High": "83.339996", + "Low": "82.699997", + "Open": "82.949997", + "Volume": "4504500" + }, + { + "Close": "82.889999", + "Date": "2006/5/8", + "High": "83.220001", + "Low": "82.300003", + "Open": "82.599998", + "Volume": "3856500" + }, + { + "Close": "83.230003", + "Date": "2006/5/9", + "High": "83.290001", + "Low": "82.410004", + "Open": "82.489998", + "Volume": "4072800" + }, + { + "Close": "82.900002", + "Date": "2006/5/10", + "High": "83.330002", + "Low": "82.599998", + "Open": "82.900002", + "Volume": "3430400" + }, + { + "Close": "82.459999", + "Date": "2006/5/11", + "High": "83.089996", + "Low": "82.449997", + "Open": "82.650002", + "Volume": "5274500" + }, + { + "Close": "82.389999", + "Date": "2006/5/12", + "High": "83.690002", + "Low": "82.300003", + "Open": "82.470001", + "Volume": "5685700" + }, + { + "Close": "82.889999", + "Date": "2006/5/15", + "High": "83.150002", + "Low": "81.800003", + "Open": "81.800003", + "Volume": "5776400" + }, + { + "Close": "82.160004", + "Date": "2006/5/16", + "High": "83.25", + "Low": "82.07", + "Open": "83", + "Volume": "4454800" + }, + { + "Close": "81.269997", + "Date": "2006/5/17", + "High": "82.209999", + "Low": "81.019997", + "Open": "81.75", + "Volume": "5936000" + }, + { + "Close": "80.660004", + "Date": "2006/5/18", + "High": "81.349998", + "Low": "80.029999", + "Open": "80.5", + "Volume": "5443600" + }, + { + "Close": "80.279999", + "Date": "2006/5/19", + "High": "81", + "Low": "79.510002", + "Open": "80.860001", + "Volume": "7019100" + }, + { + "Close": "80.019997", + "Date": "2006/5/22", + "High": "80.339996", + "Low": "79.400002", + "Open": "79.830002", + "Volume": "6250900" + }, + { + "Close": "79.830002", + "Date": "2006/5/23", + "High": "81.300003", + "Low": "79.639999", + "Open": "80.25", + "Volume": "5006400" + }, + { + "Close": "79.779999", + "Date": "2006/5/24", + "High": "80.040001", + "Low": "79.059998", + "Open": "79.349998", + "Volume": "7389600" + }, + { + "Close": "80.139999", + "Date": "2006/5/25", + "High": "80.18", + "Low": "79.650002", + "Open": "79.889999", + "Volume": "3995000" + }, + { + "Close": "80.75", + "Date": "2006/5/26", + "High": "80.860001", + "Low": "79.699997", + "Open": "80.160004", + "Volume": "3580800" + }, + { + "Close": "80.160004", + "Date": "2006/5/30", + "High": "80.959999", + "Low": "80.150002", + "Open": "80.349998", + "Volume": "5049100" + }, + { + "Close": "79.900002", + "Date": "2006/5/31", + "High": "80.830002", + "Low": "79.610001", + "Open": "80.150002", + "Volume": "6384900" + }, + { + "Close": "80.690002", + "Date": "2006/6/1", + "High": "80.870003", + "Low": "79.809998", + "Open": "79.889999", + "Volume": "4866500" + }, + { + "Close": "79.519997", + "Date": "2006/6/2", + "High": "80.559998", + "Low": "79.150002", + "Open": "80.5", + "Volume": "7232300" + }, + { + "Close": "79.059998", + "Date": "2006/6/5", + "High": "80.040001", + "Low": "79.010002", + "Open": "79.099998", + "Volume": "5555800" + }, + { + "Close": "79.760002", + "Date": "2006/6/6", + "High": "79.900002", + "Low": "78.5", + "Open": "79.059998", + "Volume": "7250600" + }, + { + "Close": "79.150002", + "Date": "2006/6/7", + "High": "80.739998", + "Low": "79.120003", + "Open": "79.779999", + "Volume": "7924800" + }, + { + "Close": "77.029999", + "Date": "2006/6/8", + "High": "79.580002", + "Low": "76.75", + "Open": "78.550003", + "Volume": "13474400" + }, + { + "Close": "77.629997", + "Date": "2006/6/9", + "High": "78.099998", + "Low": "77.050003", + "Open": "77.239998", + "Volume": "6135400" + }, + { + "Close": "77.019997", + "Date": "2006/6/12", + "High": "78.089996", + "Low": "77.010002", + "Open": "77.629997", + "Volume": "4924900" + }, + { + "Close": "76.93", + "Date": "2006/6/13", + "High": "77.93", + "Low": "76.82", + "Open": "77.139999", + "Volume": "7374100" + }, + { + "Close": "77.709999", + "Date": "2006/6/14", + "High": "77.849998", + "Low": "76.93", + "Open": "76.93", + "Volume": "6038600" + }, + { + "Close": "78.559998", + "Date": "2006/6/15", + "High": "78.779999", + "Low": "76.949997", + "Open": "77.849998", + "Volume": "6679400" + }, + { + "Close": "77.949997", + "Date": "2006/6/16", + "High": "78.529999", + "Low": "77.57", + "Open": "78.440002", + "Volume": "8133500" + }, + { + "Close": "77.669998", + "Date": "2006/6/19", + "High": "78.300003", + "Low": "77.339996", + "Open": "77.900002", + "Volume": "5302100" + }, + { + "Close": "77.989998", + "Date": "2006/6/20", + "High": "78.300003", + "Low": "77.25", + "Open": "77.839996", + "Volume": "6124500" + }, + { + "Close": "78.300003", + "Date": "2006/6/21", + "High": "78.559998", + "Low": "77.980003", + "Open": "77.989998", + "Volume": "5559100" + }, + { + "Close": "77.190002", + "Date": "2006/6/22", + "High": "78.370003", + "Low": "77", + "Open": "78.160004", + "Volume": "5563700" + }, + { + "Close": "77.099998", + "Date": "2006/6/23", + "High": "77.839996", + "Low": "76.940002", + "Open": "77.150002", + "Volume": "4520600" + }, + { + "Close": "77.150002", + "Date": "2006/6/26", + "High": "77.519997", + "Low": "76.800003", + "Open": "77.040001", + "Volume": "3448000" + }, + { + "Close": "76.629997", + "Date": "2006/6/27", + "High": "77.599998", + "Low": "76.32", + "Open": "77.32", + "Volume": "5596800" + }, + { + "Close": "76.559998", + "Date": "2006/6/28", + "High": "76.599998", + "Low": "76.059998", + "Open": "76.529999", + "Volume": "4392100" + }, + { + "Close": "77.589996", + "Date": "2006/6/29", + "High": "77.800003", + "Low": "76.559998", + "Open": "76.889999", + "Volume": "5448900" + }, + { + "Close": "76.82", + "Date": "2006/6/30", + "High": "77.93", + "Low": "76.790001", + "Open": "77.699997", + "Volume": "7911700" + }, + { + "Close": "78.019997", + "Date": "2006/7/3", + "High": "78.269997", + "Low": "77.269997", + "Open": "77.540001", + "Volume": "3177300" + }, + { + "Close": "77.769997", + "Date": "2006/7/5", + "High": "78.389999", + "Low": "77.519997", + "Open": "78", + "Volume": "4047800" + }, + { + "Close": "78.089996", + "Date": "2006/7/6", + "High": "78.529999", + "Low": "77.57", + "Open": "77.589996", + "Volume": "4333100" + }, + { + "Close": "76.419998", + "Date": "2006/7/7", + "High": "78.089996", + "Low": "76.120003", + "Open": "78.089996", + "Volume": "6641600" + }, + { + "Close": "76.669998", + "Date": "2006/7/10", + "High": "76.830002", + "Low": "75.870003", + "Open": "76.18", + "Volume": "7154700" + }, + { + "Close": "76.470001", + "Date": "2006/7/11", + "High": "76.650002", + "Low": "75.440002", + "Open": "76.25", + "Volume": "6086500" + }, + { + "Close": "75.480003", + "Date": "2006/7/12", + "High": "76.300003", + "Low": "74.82", + "Open": "76.07", + "Volume": "8372100" + }, + { + "Close": "74.239998", + "Date": "2006/7/13", + "High": "75.279999", + "Low": "73.830002", + "Open": "75.010002", + "Volume": "8754700" + }, + { + "Close": "73.57", + "Date": "2006/7/14", + "High": "74.300003", + "Low": "73.370003", + "Open": "74.239998", + "Volume": "6957800" + }, + { + "Close": "73.699997", + "Date": "2006/7/17", + "High": "73.940002", + "Low": "73.199997", + "Open": "73.349998", + "Volume": "6822700" + }, + { + "Close": "74.260002", + "Date": "2006/7/18", + "High": "74.419998", + "Low": "72.730003", + "Open": "73.699997", + "Volume": "8667500" + }, + { + "Close": "76.07", + "Date": "2006/7/19", + "High": "77.059998", + "Low": "76", + "Open": "76", + "Volume": "14536900" + }, + { + "Close": "75.480003", + "Date": "2006/7/20", + "High": "75.879997", + "Low": "75.199997", + "Open": "75.730003", + "Volume": "12214900" + }, + { + "Close": "74.860001", + "Date": "2006/7/21", + "High": "75.5", + "Low": "74.5", + "Open": "75.489998", + "Volume": "8372500" + }, + { + "Close": "75.989998", + "Date": "2006/7/24", + "High": "76.150002", + "Low": "74.919998", + "Open": "74.919998", + "Volume": "5611200" + }, + { + "Close": "75.889999", + "Date": "2006/7/25", + "High": "76.410004", + "Low": "75.309998", + "Open": "75.989998", + "Volume": "5580300" + }, + { + "Close": "75.830002", + "Date": "2006/7/26", + "High": "76.300003", + "Low": "75.360001", + "Open": "75.480003", + "Volume": "3870100" + }, + { + "Close": "76.150002", + "Date": "2006/7/27", + "High": "77.290001", + "Low": "75.75", + "Open": "75.830002", + "Volume": "6439100" + }, + { + "Close": "76.959999", + "Date": "2006/7/28", + "High": "77.300003", + "Low": "76.260002", + "Open": "76.379997", + "Volume": "4165700" + }, + { + "Close": "77.410004", + "Date": "2006/7/31", + "High": "77.5", + "Low": "76.150002", + "Open": "76.440002", + "Volume": "5381800" + }, + { + "Close": "76.139999", + "Date": "2006/8/1", + "High": "77.379997", + "Low": "75.75", + "Open": "76.650002", + "Volume": "4406700" + }, + { + "Close": "76.32", + "Date": "2006/8/2", + "High": "76.93", + "Low": "76.199997", + "Open": "76.209999", + "Volume": "3283800" + }, + { + "Close": "76.330002", + "Date": "2006/8/3", + "High": "76.730003", + "Low": "75.400002", + "Open": "76", + "Volume": "2765800" + }, + { + "Close": "75.910004", + "Date": "2006/8/4", + "High": "76.769997", + "Low": "75.32", + "Open": "76.650002", + "Volume": "5062400" + }, + { + "Close": "75.519997", + "Date": "2006/8/7", + "High": "76.199997", + "Low": "75.279999", + "Open": "75.629997", + "Volume": "3870200" + }, + { + "Close": "75.330002", + "Date": "2006/8/8", + "High": "76.260002", + "Low": "75.110001", + "Open": "75.629997", + "Volume": "3794700" + }, + { + "Close": "75.389999", + "Date": "2006/8/9", + "High": "76.279999", + "Low": "75.389999", + "Open": "75.559998", + "Volume": "4480400" + }, + { + "Close": "75.739998", + "Date": "2006/8/10", + "High": "76.080002", + "Low": "75.050003", + "Open": "75.199997", + "Volume": "3213600" + }, + { + "Close": "75.480003", + "Date": "2006/8/11", + "High": "75.779999", + "Low": "75.199997", + "Open": "75.339996", + "Volume": "3695800" + }, + { + "Close": "76.68", + "Date": "2006/8/14", + "High": "77.489998", + "Low": "75.599998", + "Open": "76.050003", + "Volume": "4997400" + }, + { + "Close": "77.080002", + "Date": "2006/8/15", + "High": "77.139999", + "Low": "76.309998", + "Open": "76.900002", + "Volume": "5985400" + }, + { + "Close": "79.089996", + "Date": "2006/8/16", + "High": "79.279999", + "Low": "77.349998", + "Open": "77.480003", + "Volume": "7386500" + }, + { + "Close": "79.370003", + "Date": "2006/8/17", + "High": "79.559998", + "Low": "78.529999", + "Open": "78.93", + "Volume": "5535400" + }, + { + "Close": "79.900002", + "Date": "2006/8/18", + "High": "79.970001", + "Low": "78.629997", + "Open": "79.379997", + "Volume": "5399200" + }, + { + "Close": "79.279999", + "Date": "2006/8/21", + "High": "79.879997", + "Low": "78.870003", + "Open": "79.510002", + "Volume": "3676500" + }, + { + "Close": "78.949997", + "Date": "2006/8/22", + "High": "79.550003", + "Low": "78.610001", + "Open": "79.279999", + "Volume": "4057200" + }, + { + "Close": "78.669998", + "Date": "2006/8/23", + "High": "79.470001", + "Low": "78.419998", + "Open": "78.949997", + "Volume": "3425700" + }, + { + "Close": "79.379997", + "Date": "2006/8/24", + "High": "79.5", + "Low": "78.870003", + "Open": "78.900002", + "Volume": "3473300" + }, + { + "Close": "79.879997", + "Date": "2006/8/25", + "High": "80", + "Low": "79.139999", + "Open": "79.199997", + "Volume": "3427400" + }, + { + "Close": "80.32", + "Date": "2006/8/28", + "High": "80.470001", + "Low": "79.760002", + "Open": "79.910004", + "Volume": "5259400" + }, + { + "Close": "81.400002", + "Date": "2006/8/29", + "High": "81.480003", + "Low": "80.059998", + "Open": "80.059998", + "Volume": "5208500" + }, + { + "Close": "81.220001", + "Date": "2006/8/30", + "High": "81.68", + "Low": "80.839996", + "Open": "81.260002", + "Volume": "4688800" + }, + { + "Close": "80.970001", + "Date": "2006/8/31", + "High": "81.5", + "Low": "80.779999", + "Open": "81.300003", + "Volume": "3786200" + }, + { + "Close": "81.410004", + "Date": "2006/9/1", + "High": "81.57", + "Low": "80.809998", + "Open": "81.129997", + "Volume": "3294000" + }, + { + "Close": "80.849998", + "Date": "2006/9/5", + "High": "81.540001", + "Low": "80.599998", + "Open": "81.190002", + "Volume": "3968500" + }, + { + "Close": "80.279999", + "Date": "2006/9/6", + "High": "80.690002", + "Low": "80.169998", + "Open": "80.290001", + "Volume": "3727600" + }, + { + "Close": "79.400002", + "Date": "2006/9/7", + "High": "80.379997", + "Low": "79.309998", + "Open": "79.900002", + "Volume": "3913300" + }, + { + "Close": "80.660004", + "Date": "2006/9/8", + "High": "80.860001", + "Low": "79.349998", + "Open": "79.599998", + "Volume": "4498600" + }, + { + "Close": "80.93", + "Date": "2006/9/11", + "High": "81.199997", + "Low": "80.25", + "Open": "80.599998", + "Volume": "4314300" + }, + { + "Close": "82.279999", + "Date": "2006/9/12", + "High": "82.5", + "Low": "81.059998", + "Open": "81.139999", + "Volume": "5722200" + }, + { + "Close": "82.209999", + "Date": "2006/9/13", + "High": "82.699997", + "Low": "81.839996", + "Open": "82.25", + "Volume": "4920200" + }, + { + "Close": "82.470001", + "Date": "2006/9/14", + "High": "83", + "Low": "81.739998", + "Open": "81.900002", + "Volume": "4265300" + }, + { + "Close": "82.940002", + "Date": "2006/9/15", + "High": "83.589996", + "Low": "82.790001", + "Open": "83.209999", + "Volume": "8203800" + }, + { + "Close": "82.239998", + "Date": "2006/9/18", + "High": "83.209999", + "Low": "82.169998", + "Open": "82.559998", + "Volume": "4417600" + }, + { + "Close": "81.870003", + "Date": "2006/9/19", + "High": "82.089996", + "Low": "81.419998", + "Open": "81.970001", + "Volume": "5088600" + }, + { + "Close": "83.419998", + "Date": "2006/9/20", + "High": "83.790001", + "Low": "82.199997", + "Open": "82.370003", + "Volume": "7524600" + }, + { + "Close": "81.610001", + "Date": "2006/9/21", + "High": "83.25", + "Low": "81.349998", + "Open": "82.610001", + "Volume": "8909000" + }, + { + "Close": "81.209999", + "Date": "2006/9/22", + "High": "82.120003", + "Low": "81.010002", + "Open": "81.75", + "Volume": "4350200" + }, + { + "Close": "82", + "Date": "2006/9/25", + "High": "82.279999", + "Low": "81.279999", + "Open": "81.650002", + "Volume": "5683000" + }, + { + "Close": "82.5", + "Date": "2006/9/26", + "High": "82.660004", + "Low": "81.699997", + "Open": "81.900002", + "Volume": "4731800" + }, + { + "Close": "82.089996", + "Date": "2006/9/27", + "High": "82.669998", + "Low": "81.709999", + "Open": "82", + "Volume": "5880500" + }, + { + "Close": "81.989998", + "Date": "2006/9/28", + "High": "82.349998", + "Low": "81.720001", + "Open": "81.849998", + "Volume": "4592300" + }, + { + "Close": "81.940002", + "Date": "2006/9/29", + "High": "82.790001", + "Low": "81.769997", + "Open": "81.900002", + "Volume": "4770700" + }, + { + "Close": "81.870003", + "Date": "2006/10/2", + "High": "82.470001", + "Low": "81.580002", + "Open": "81.760002", + "Volume": "4483300" + }, + { + "Close": "81.650002", + "Date": "2006/10/3", + "High": "82.260002", + "Low": "81.559998", + "Open": "81.879997", + "Volume": "4838500" + }, + { + "Close": "83.099998", + "Date": "2006/10/4", + "High": "83.25", + "Low": "81.629997", + "Open": "81.650002", + "Volume": "6119300" + }, + { + "Close": "82.919998", + "Date": "2006/10/5", + "High": "83.209999", + "Low": "82.599998", + "Open": "82.809998", + "Volume": "4956600" + }, + { + "Close": "83.139999", + "Date": "2006/10/6", + "High": "83.779999", + "Low": "82.5", + "Open": "82.93", + "Volume": "5340900" + }, + { + "Close": "84", + "Date": "2006/10/9", + "High": "84.080002", + "Low": "83", + "Open": "83.139999", + "Volume": "4490200" + }, + { + "Close": "84.190002", + "Date": "2006/10/10", + "High": "84.629997", + "Low": "83.559998", + "Open": "83.709999", + "Volume": "4712900" + }, + { + "Close": "84.190002", + "Date": "2006/10/11", + "High": "84.690002", + "Low": "83.790001", + "Open": "84.150002", + "Volume": "5210600" + }, + { + "Close": "84.699997", + "Date": "2006/10/12", + "High": "84.900002", + "Low": "84.099998", + "Open": "84.199997", + "Volume": "4661700" + }, + { + "Close": "86.080002", + "Date": "2006/10/13", + "High": "86.209999", + "Low": "84.440002", + "Open": "84.449997", + "Volume": "7788600" + }, + { + "Close": "86.709999", + "Date": "2006/10/16", + "High": "87.599998", + "Low": "85.75", + "Open": "86.080002", + "Volume": "8633100" + }, + { + "Close": "86.949997", + "Date": "2006/10/17", + "High": "87.940002", + "Low": "86.220001", + "Open": "86.330002", + "Volume": "13295500" + }, + { + "Close": "89.82", + "Date": "2006/10/18", + "High": "92.040001", + "Low": "89.730003", + "Open": "90.510002", + "Volume": "27875200" + }, + { + "Close": "89.860001", + "Date": "2006/10/19", + "High": "90.980003", + "Low": "89.309998", + "Open": "89.800003", + "Volume": "10671400" + }, + { + "Close": "90.480003", + "Date": "2006/10/20", + "High": "90.699997", + "Low": "89.550003", + "Open": "90.040001", + "Volume": "7390900" + }, + { + "Close": "91.559998", + "Date": "2006/10/23", + "High": "92", + "Low": "90.010002", + "Open": "90.050003", + "Volume": "8862300" + }, + { + "Close": "91.489998", + "Date": "2006/10/24", + "High": "91.949997", + "Low": "90.800003", + "Open": "90.910004", + "Volume": "9222300" + }, + { + "Close": "91.830002", + "Date": "2006/10/25", + "High": "91.989998", + "Low": "90.940002", + "Open": "91.209999", + "Volume": "6122100" + }, + { + "Close": "91.540001", + "Date": "2006/10/26", + "High": "91.93", + "Low": "91.25", + "Open": "91.830002", + "Volume": "4990300" + }, + { + "Close": "90.760002", + "Date": "2006/10/27", + "High": "91.889999", + "Low": "90.580002", + "Open": "90.910004", + "Volume": "5840300" + }, + { + "Close": "91.5", + "Date": "2006/10/30", + "High": "92", + "Low": "89.800003", + "Open": "89.800003", + "Volume": "5594000" + }, + { + "Close": "92.330002", + "Date": "2006/10/31", + "High": "92.68", + "Low": "91.5", + "Open": "91.5", + "Volume": "9267300" + }, + { + "Close": "91.800003", + "Date": "2006/11/1", + "High": "92.68", + "Low": "91.5", + "Open": "92.5", + "Volume": "5845700" + }, + { + "Close": "91.68", + "Date": "2006/11/2", + "High": "91.949997", + "Low": "91.25", + "Open": "91.800003", + "Volume": "4895100" + }, + { + "Close": "91.410004", + "Date": "2006/11/3", + "High": "92.339996", + "Low": "91.18", + "Open": "91.760002", + "Volume": "4506400" + }, + { + "Close": "92.599998", + "Date": "2006/11/6", + "High": "92.739998", + "Low": "91.5", + "Open": "91.5", + "Volume": "6240600" + }, + { + "Close": "92.75", + "Date": "2006/11/7", + "High": "93.400002", + "Low": "92.410004", + "Open": "92.419998", + "Volume": "7305200" + }, + { + "Close": "92.589996", + "Date": "2006/11/8", + "High": "92.919998", + "Low": "92.010002", + "Open": "92.25", + "Volume": "6022200" + }, + { + "Close": "92.419998", + "Date": "2006/11/9", + "High": "93.190002", + "Low": "92.370003", + "Open": "92.589996", + "Volume": "4518900" + }, + { + "Close": "91.760002", + "Date": "2006/11/10", + "High": "92.349998", + "Low": "91.629997", + "Open": "92.300003", + "Volume": "5369600" + }, + { + "Close": "92.07", + "Date": "2006/11/13", + "High": "92.43", + "Low": "91.410004", + "Open": "91.550003", + "Volume": "4358300" + }, + { + "Close": "93.290001", + "Date": "2006/11/14", + "High": "93.290001", + "Low": "91.650002", + "Open": "92", + "Volume": "5873000" + }, + { + "Close": "93.110001", + "Date": "2006/11/15", + "High": "93.279999", + "Low": "92.540001", + "Open": "93.080002", + "Volume": "4172800" + }, + { + "Close": "93.470001", + "Date": "2006/11/16", + "High": "93.599998", + "Low": "92.599998", + "Open": "93.07", + "Volume": "4171500" + }, + { + "Close": "93.809998", + "Date": "2006/11/17", + "High": "94.050003", + "Low": "93.309998", + "Open": "93.419998", + "Volume": "5251000" + }, + { + "Close": "93.25", + "Date": "2006/11/20", + "High": "93.800003", + "Low": "93.010002", + "Open": "93.599998", + "Volume": "5010600" + }, + { + "Close": "93.080002", + "Date": "2006/11/21", + "High": "93.43", + "Low": "92.849998", + "Open": "93.010002", + "Volume": "3067800" + }, + { + "Close": "93.519997", + "Date": "2006/11/22", + "High": "93.739998", + "Low": "92.800003", + "Open": "92.900002", + "Volume": "3351700" + }, + { + "Close": "93.349998", + "Date": "2006/11/24", + "High": "93.75", + "Low": "92.980003", + "Open": "93.050003", + "Volume": "2129800" + }, + { + "Close": "91.449997", + "Date": "2006/11/27", + "High": "93.239998", + "Low": "91.120003", + "Open": "92.709999", + "Volume": "6284000" + }, + { + "Close": "91.349998", + "Date": "2006/11/28", + "High": "91.57", + "Low": "90.43", + "Open": "90.650002", + "Volume": "4962100" + }, + { + "Close": "91.519997", + "Date": "2006/11/29", + "High": "91.660004", + "Low": "91.010002", + "Open": "91.349998", + "Volume": "4623000" + }, + { + "Close": "91.919998", + "Date": "2006/11/30", + "High": "92.480003", + "Low": "91.25", + "Open": "91.349998", + "Volume": "6470700" + }, + { + "Close": "91.25", + "Date": "2006/12/1", + "High": "91.910004", + "Low": "90.550003", + "Open": "91.900002", + "Volume": "5445400" + }, + { + "Close": "93.510002", + "Date": "2006/12/4", + "High": "93.949997", + "Low": "92.25", + "Open": "92.5", + "Volume": "7507900" + }, + { + "Close": "94.480003", + "Date": "2006/12/5", + "High": "94.639999", + "Low": "93.440002", + "Open": "93.510002", + "Volume": "6886200" + }, + { + "Close": "94.120003", + "Date": "2006/12/6", + "High": "94.870003", + "Low": "94.010002", + "Open": "94.480003", + "Volume": "5947300" + }, + { + "Close": "94.230003", + "Date": "2006/12/7", + "High": "94.43", + "Low": "93.550003", + "Open": "94", + "Volume": "4310800" + }, + { + "Close": "93.860001", + "Date": "2006/12/8", + "High": "94.389999", + "Low": "93.470001", + "Open": "93.650002", + "Volume": "4140000" + }, + { + "Close": "93.639999", + "Date": "2006/12/11", + "High": "94.349998", + "Low": "93.559998", + "Open": "93.720001", + "Volume": "3459200" + }, + { + "Close": "94.120003", + "Date": "2006/12/12", + "High": "94.849998", + "Low": "93.300003", + "Open": "93.599998", + "Volume": "7783800" + }, + { + "Close": "94.769997", + "Date": "2006/12/13", + "High": "95.330002", + "Low": "94.5", + "Open": "94.779999", + "Volume": "6441300" + }, + { + "Close": "95.360001", + "Date": "2006/12/14", + "High": "95.720001", + "Low": "94.540001", + "Open": "94.970001", + "Volume": "4644100" + }, + { + "Close": "95.300003", + "Date": "2006/12/15", + "High": "95.800003", + "Low": "95.050003", + "Open": "95.610001", + "Volume": "8086500" + }, + { + "Close": "95.440002", + "Date": "2006/12/18", + "High": "96.160004", + "Low": "94.800003", + "Open": "94.949997", + "Volume": "7984900" + }, + { + "Close": "96", + "Date": "2006/12/19", + "High": "96.389999", + "Low": "94.910004", + "Open": "95.099998", + "Volume": "4933200" + }, + { + "Close": "96", + "Date": "2006/12/20", + "High": "96.5", + "Low": "95.699997", + "Open": "96.099998", + "Volume": "3654600" + }, + { + "Close": "95.910004", + "Date": "2006/12/21", + "High": "96.5", + "Low": "95.529999", + "Open": "95.779999", + "Volume": "4405600" + }, + { + "Close": "95.25", + "Date": "2006/12/22", + "High": "95.980003", + "Low": "95.239998", + "Open": "95.75", + "Volume": "3031500" + }, + { + "Close": "95.660004", + "Date": "2006/12/26", + "High": "95.809998", + "Low": "94.919998", + "Open": "95", + "Volume": "2278700" + }, + { + "Close": "97.199997", + "Date": "2006/12/27", + "High": "97.230003", + "Low": "96.269997", + "Open": "96.300003", + "Volume": "4571600" + }, + { + "Close": "96.970001", + "Date": "2006/12/28", + "High": "97.400002", + "Low": "96.870003", + "Open": "97.110001", + "Volume": "4501700" + }, + { + "Close": "97.150002", + "Date": "2006/12/29", + "High": "97.879997", + "Low": "96.830002", + "Open": "97", + "Volume": "4455900" + }, + { + "Close": "97.269997", + "Date": "2007/1/3", + "High": "98.400002", + "Low": "96.260002", + "Open": "97.18", + "Volume": "9196800" + }, + { + "Close": "98.309998", + "Date": "2007/1/4", + "High": "98.790001", + "Low": "96.879997", + "Open": "97.25", + "Volume": "10524500" + }, + { + "Close": "97.419998", + "Date": "2007/1/5", + "High": "97.949997", + "Low": "96.910004", + "Open": "97.599998", + "Volume": "7221300" + }, + { + "Close": "98.900002", + "Date": "2007/1/8", + "High": "99.5", + "Low": "98.349998", + "Open": "98.5", + "Volume": "10340000" + }, + { + "Close": "100.07", + "Date": "2007/1/9", + "High": "100.330002", + "Low": "99.07", + "Open": "99.080002", + "Volume": "11108200" + }, + { + "Close": "98.889999", + "Date": "2007/1/10", + "High": "99.050003", + "Low": "97.93", + "Open": "98.5", + "Volume": "8744800" + }, + { + "Close": "98.650002", + "Date": "2007/1/11", + "High": "99.900002", + "Low": "98.5", + "Open": "99", + "Volume": "8000700" + }, + { + "Close": "99.339996", + "Date": "2007/1/12", + "High": "99.690002", + "Low": "98.5", + "Open": "98.989998", + "Volume": "6636500" + }, + { + "Close": "100.82", + "Date": "2007/1/16", + "High": "100.839996", + "Low": "99.300003", + "Open": "99.400002", + "Volume": "9602200" + }, + { + "Close": "100.019997", + "Date": "2007/1/17", + "High": "100.900002", + "Low": "99.900002", + "Open": "100.690002", + "Volume": "8200700" + }, + { + "Close": "99.449997", + "Date": "2007/1/18", + "High": "99.949997", + "Low": "98.910004", + "Open": "99.800003", + "Volume": "14636100" + }, + { + "Close": "96.169998", + "Date": "2007/1/19", + "High": "96.849998", + "Low": "94.550003", + "Open": "95", + "Volume": "26035800" + }, + { + "Close": "97.110001", + "Date": "2007/1/22", + "High": "97.230003", + "Low": "96.120003", + "Open": "96.419998", + "Volume": "13539300" + }, + { + "Close": "97.080002", + "Date": "2007/1/23", + "High": "97.379997", + "Low": "96.199997", + "Open": "96.910004", + "Volume": "10337400" + }, + { + "Close": "97.400002", + "Date": "2007/1/24", + "High": "97.580002", + "Low": "96.580002", + "Open": "97.080002", + "Volume": "5700000" + }, + { + "Close": "97.510002", + "Date": "2007/1/25", + "High": "97.919998", + "Low": "97.220001", + "Open": "97.220001", + "Volume": "6201300" + }, + { + "Close": "97.449997", + "Date": "2007/1/26", + "High": "97.830002", + "Low": "96.839996", + "Open": "97.519997", + "Volume": "5771100" + }, + { + "Close": "98.540001", + "Date": "2007/1/29", + "High": "98.660004", + "Low": "97.449997", + "Open": "97.699997", + "Volume": "7294800" + }, + { + "Close": "99.370003", + "Date": "2007/1/30", + "High": "99.449997", + "Low": "98.5", + "Open": "98.57", + "Volume": "7177900" + }, + { + "Close": "99.150002", + "Date": "2007/1/31", + "High": "99.480003", + "Low": "98.349998", + "Open": "98.800003", + "Volume": "6432600" + }, + { + "Close": "99", + "Date": "2007/2/1", + "High": "99.18", + "Low": "97.959999", + "Open": "98.970001", + "Volume": "6610700" + }, + { + "Close": "99.169998", + "Date": "2007/2/2", + "High": "99.730003", + "Low": "98.879997", + "Open": "99.099998", + "Volume": "6656300" + }, + { + "Close": "100.379997", + "Date": "2007/2/5", + "High": "100.440002", + "Low": "98.900002", + "Open": "99.169998", + "Volume": "8184800" + }, + { + "Close": "99.849998", + "Date": "2007/2/6", + "High": "100.400002", + "Low": "99.540001", + "Open": "100", + "Volume": "6532800" + }, + { + "Close": "99.540001", + "Date": "2007/2/7", + "High": "100.360001", + "Low": "99.120003", + "Open": "99.800003", + "Volume": "7698200" + }, + { + "Close": "99.620003", + "Date": "2007/2/8", + "High": "99.739998", + "Low": "98.650002", + "Open": "98.900002", + "Volume": "6152200" + }, + { + "Close": "98.550003", + "Date": "2007/2/9", + "High": "99.699997", + "Low": "97.809998", + "Open": "99.519997", + "Volume": "6100400" + }, + { + "Close": "98.580002", + "Date": "2007/2/12", + "High": "99.199997", + "Low": "98.220001", + "Open": "98.800003", + "Volume": "5331000" + }, + { + "Close": "98.290001", + "Date": "2007/2/13", + "High": "98.739998", + "Low": "97.800003", + "Open": "98.599998", + "Volume": "5702800" + }, + { + "Close": "99.199997", + "Date": "2007/2/14", + "High": "99.43", + "Low": "98.25", + "Open": "98.5", + "Volume": "5644800" + }, + { + "Close": "98.919998", + "Date": "2007/2/15", + "High": "99.519997", + "Low": "98.480003", + "Open": "99.059998", + "Volume": "5568600" + }, + { + "Close": "98.989998", + "Date": "2007/2/16", + "High": "99.25", + "Low": "98.629997", + "Open": "99.120003", + "Volume": "4800700" + }, + { + "Close": "99.349998", + "Date": "2007/2/20", + "High": "99.459999", + "Low": "98.550003", + "Open": "98.660004", + "Volume": "4124200" + }, + { + "Close": "99.089996", + "Date": "2007/2/21", + "High": "99.370003", + "Low": "98.699997", + "Open": "98.900002", + "Volume": "4302400" + }, + { + "Close": "98.5", + "Date": "2007/2/22", + "High": "99.5", + "Low": "97.769997", + "Open": "98.800003", + "Volume": "5900100" + }, + { + "Close": "97.730003", + "Date": "2007/2/23", + "High": "98.440002", + "Low": "97.410004", + "Open": "98.400002", + "Volume": "6355800" + }, + { + "Close": "96.910004", + "Date": "2007/2/26", + "High": "97.860001", + "Low": "96.459999", + "Open": "97.860001", + "Volume": "5922100" + }, + { + "Close": "93.959999", + "Date": "2007/2/27", + "High": "96.010002", + "Low": "92.879997", + "Open": "96", + "Volume": "11996700" + }, + { + "Close": "92.940002", + "Date": "2007/2/28", + "High": "94.089996", + "Low": "92.470001", + "Open": "93.709999", + "Volume": "12191600" + }, + { + "Close": "92.269997", + "Date": "2007/3/1", + "High": "93.050003", + "Low": "88.769997", + "Open": "90.25", + "Volume": "12865700" + }, + { + "Close": "90.900002", + "Date": "2007/3/2", + "High": "92.370003", + "Low": "90.839996", + "Open": "92", + "Volume": "9451300" + }, + { + "Close": "91.809998", + "Date": "2007/3/5", + "High": "92.150002", + "Low": "90.099998", + "Open": "90.25", + "Volume": "10314900" + }, + { + "Close": "93.800003", + "Date": "2007/3/6", + "High": "93.889999", + "Low": "92.260002", + "Open": "92.400002", + "Volume": "9184200" + }, + { + "Close": "93.940002", + "Date": "2007/3/7", + "High": "94.849998", + "Low": "93.620003", + "Open": "93.970001", + "Volume": "10269100" + }, + { + "Close": "93", + "Date": "2007/3/8", + "High": "94.82", + "Low": "92.519997", + "Open": "94.5", + "Volume": "7403900" + }, + { + "Close": "93.279999", + "Date": "2007/3/9", + "High": "94", + "Low": "92.82", + "Open": "93.480003", + "Volume": "6333000" + }, + { + "Close": "94.110001", + "Date": "2007/3/12", + "High": "94.169998", + "Low": "92.970001", + "Open": "93.290001", + "Volume": "5531300" + }, + { + "Close": "92.709999", + "Date": "2007/3/13", + "High": "94.470001", + "Low": "92.620003", + "Open": "93.860001", + "Volume": "7539100" + }, + { + "Close": "93.760002", + "Date": "2007/3/14", + "High": "94.029999", + "Low": "92.099998", + "Open": "92.650002", + "Volume": "8713900" + }, + { + "Close": "93.449997", + "Date": "2007/3/15", + "High": "93.970001", + "Low": "93.099998", + "Open": "93.400002", + "Volume": "5910000" + }, + { + "Close": "93.25", + "Date": "2007/3/16", + "High": "94.449997", + "Low": "93.019997", + "Open": "94.449997", + "Volume": "8728700" + }, + { + "Close": "93.989998", + "Date": "2007/3/19", + "High": "94.32", + "Low": "93.389999", + "Open": "93.949997", + "Volume": "4568100" + }, + { + "Close": "94.5", + "Date": "2007/3/20", + "High": "94.529999", + "Low": "93.550003", + "Open": "94", + "Volume": "4560000" + }, + { + "Close": "95.360001", + "Date": "2007/3/21", + "High": "95.809998", + "Low": "93.830002", + "Open": "94.5", + "Volume": "7665600" + }, + { + "Close": "95.190002", + "Date": "2007/3/22", + "High": "95.440002", + "Low": "94.650002", + "Open": "95.099998", + "Volume": "5700400" + }, + { + "Close": "95.029999", + "Date": "2007/3/23", + "High": "95.220001", + "Low": "94.650002", + "Open": "94.82", + "Volume": "4412500" + }, + { + "Close": "95", + "Date": "2007/3/26", + "High": "95.25", + "Low": "94.32", + "Open": "95", + "Volume": "6729400" + }, + { + "Close": "94.730003", + "Date": "2007/3/27", + "High": "95.029999", + "Low": "94.199997", + "Open": "94.709999", + "Volume": "4695800" + }, + { + "Close": "94.260002", + "Date": "2007/3/28", + "High": "95.019997", + "Low": "93.800003", + "Open": "93.900002", + "Volume": "8128000" + }, + { + "Close": "94.57", + "Date": "2007/3/29", + "High": "95.110001", + "Low": "93.959999", + "Open": "94.660004", + "Volume": "6851500" + }, + { + "Close": "94.260002", + "Date": "2007/3/30", + "High": "94.75", + "Low": "93.57", + "Open": "94.239998", + "Volume": "7638100" + }, + { + "Close": "95.209999", + "Date": "2007/4/2", + "High": "95.5", + "Low": "94.059998", + "Open": "94.510002", + "Volume": "5883700" + }, + { + "Close": "96.099998", + "Date": "2007/4/3", + "High": "96.230003", + "Low": "95.330002", + "Open": "95.449997", + "Volume": "5730800" + }, + { + "Close": "96.209999", + "Date": "2007/4/4", + "High": "96.449997", + "Low": "95.57", + "Open": "95.800003", + "Volume": "4276200" + }, + { + "Close": "96.519997", + "Date": "2007/4/5", + "High": "96.75", + "Low": "95.75", + "Open": "95.980003", + "Volume": "3307100" + }, + { + "Close": "96.620003", + "Date": "2007/4/9", + "High": "96.940002", + "Low": "96.120003", + "Open": "96.43", + "Volume": "4850600" + }, + { + "Close": "96.459999", + "Date": "2007/4/10", + "High": "96.800003", + "Low": "96.160004", + "Open": "96.400002", + "Volume": "3596400" + }, + { + "Close": "95.160004", + "Date": "2007/4/11", + "High": "96.699997", + "Low": "94.949997", + "Open": "96.510002", + "Volume": "5936900" + }, + { + "Close": "95.669998", + "Date": "2007/4/12", + "High": "95.82", + "Low": "94.529999", + "Open": "95.029999", + "Volume": "7085300" + }, + { + "Close": "94.93", + "Date": "2007/4/13", + "High": "95.75", + "Low": "94.589996", + "Open": "95.75", + "Volume": "6027800" + }, + { + "Close": "96.18", + "Date": "2007/4/16", + "High": "96.300003", + "Low": "94.720001", + "Open": "94.989998", + "Volume": "6865100" + }, + { + "Close": "97.120003", + "Date": "2007/4/17", + "High": "97.660004", + "Low": "96.019997", + "Open": "96.300003", + "Volume": "10264000" + }, + { + "Close": "94.800003", + "Date": "2007/4/18", + "High": "95.910004", + "Low": "94.400002", + "Open": "94.800003", + "Volume": "15871700" + }, + { + "Close": "94.290001", + "Date": "2007/4/19", + "High": "94.870003", + "Low": "94", + "Open": "94.5", + "Volume": "9445600" + }, + { + "Close": "94.580002", + "Date": "2007/4/20", + "High": "95.150002", + "Low": "93.910004", + "Open": "95.019997", + "Volume": "9340300" + }, + { + "Close": "95.209999", + "Date": "2007/4/23", + "High": "95.730003", + "Low": "95.050003", + "Open": "95.160004", + "Volume": "7247400" + }, + { + "Close": "98.489998", + "Date": "2007/4/24", + "High": "99.900002", + "Low": "97.230003", + "Open": "97.230003", + "Volume": "21450700" + }, + { + "Close": "101.459999", + "Date": "2007/4/25", + "High": "101.699997", + "Low": "98.730003", + "Open": "98.739998", + "Volume": "14827300" + }, + { + "Close": "100.900002", + "Date": "2007/4/26", + "High": "101.5", + "Low": "100.209999", + "Open": "101", + "Volume": "8608500" + }, + { + "Close": "101.169998", + "Date": "2007/4/27", + "High": "101.169998", + "Low": "100.059998", + "Open": "100.300003", + "Volume": "6141400" + }, + { + "Close": "102.209999", + "Date": "2007/4/30", + "High": "103", + "Low": "100.970001", + "Open": "101.110001", + "Volume": "10050400" + }, + { + "Close": "103.169998", + "Date": "2007/5/1", + "High": "103.169998", + "Low": "102.050003", + "Open": "102.059998", + "Volume": "8670100" + }, + { + "Close": "102.220001", + "Date": "2007/5/2", + "High": "103.139999", + "Low": "102.129997", + "Open": "102.800003", + "Volume": "6820300" + }, + { + "Close": "102.800003", + "Date": "2007/5/3", + "High": "103", + "Low": "101.349998", + "Open": "101.75", + "Volume": "7302200" + }, + { + "Close": "102.959999", + "Date": "2007/5/4", + "High": "103.029999", + "Low": "102.25", + "Open": "102.75", + "Volume": "5464800" + }, + { + "Close": "103.160004", + "Date": "2007/5/7", + "High": "103.169998", + "Low": "102.400002", + "Open": "102.760002", + "Volume": "5620100" + }, + { + "Close": "103.290001", + "Date": "2007/5/8", + "High": "103.389999", + "Low": "102.209999", + "Open": "102.419998", + "Volume": "5965000" + }, + { + "Close": "104.379997", + "Date": "2007/5/9", + "High": "104.75", + "Low": "103.699997", + "Open": "103.93", + "Volume": "8408100" + }, + { + "Close": "104.68", + "Date": "2007/5/10", + "High": "105.110001", + "Low": "103.709999", + "Open": "103.82", + "Volume": "8959800" + }, + { + "Close": "105.980003", + "Date": "2007/5/11", + "High": "105.989998", + "Low": "104.669998", + "Open": "104.690002", + "Volume": "6026100" + }, + { + "Close": "105.57", + "Date": "2007/5/14", + "High": "106.25", + "Low": "104.790001", + "Open": "105.809998", + "Volume": "5732600" + }, + { + "Close": "104.830002", + "Date": "2007/5/15", + "High": "105.800003", + "Low": "104.699997", + "Open": "105.400002", + "Volume": "6104200" + }, + { + "Close": "105.870003", + "Date": "2007/5/16", + "High": "105.889999", + "Low": "104.529999", + "Open": "105.099998", + "Volume": "5613500" + }, + { + "Close": "105.309998", + "Date": "2007/5/17", + "High": "106.230003", + "Low": "104.730003", + "Open": "105.610001", + "Volume": "7706400" + }, + { + "Close": "107.989998", + "Date": "2007/5/18", + "High": "108.050003", + "Low": "105.599998", + "Open": "105.839996", + "Volume": "9857500" + }, + { + "Close": "107.040001", + "Date": "2007/5/21", + "High": "108", + "Low": "106.870003", + "Open": "107.669998", + "Volume": "7512200" + }, + { + "Close": "106.699997", + "Date": "2007/5/22", + "High": "107.25", + "Low": "106.010002", + "Open": "106.949997", + "Volume": "5313300" + }, + { + "Close": "105.580002", + "Date": "2007/5/23", + "High": "107", + "Low": "105.25", + "Open": "106.800003", + "Volume": "4396900" + }, + { + "Close": "103.949997", + "Date": "2007/5/24", + "High": "105.980003", + "Low": "103.57", + "Open": "105.449997", + "Volume": "6926300" + }, + { + "Close": "105.18", + "Date": "2007/5/25", + "High": "105.43", + "Low": "103.849998", + "Open": "103.900002", + "Volume": "6123000" + }, + { + "Close": "105.910004", + "Date": "2007/5/29", + "High": "106.629997", + "Low": "105.300003", + "Open": "105.57", + "Volume": "5420300" + }, + { + "Close": "106.93", + "Date": "2007/5/30", + "High": "107.099998", + "Low": "105.209999", + "Open": "105.400002", + "Volume": "7401000" + }, + { + "Close": "106.599998", + "Date": "2007/5/31", + "High": "107.669998", + "Low": "106", + "Open": "107.260002", + "Volume": "5097700" + }, + { + "Close": "106.540001", + "Date": "2007/6/1", + "High": "107.239998", + "Low": "106.019997", + "Open": "106.620003", + "Volume": "5289200" + }, + { + "Close": "106.230003", + "Date": "2007/6/4", + "High": "106.589996", + "Low": "105.580002", + "Open": "106.5", + "Volume": "4569900" + }, + { + "Close": "105.839996", + "Date": "2007/6/5", + "High": "106.550003", + "Low": "105.540001", + "Open": "106.550003", + "Volume": "5244200" + }, + { + "Close": "102.410004", + "Date": "2007/6/6", + "High": "105.510002", + "Low": "102.389999", + "Open": "105.5", + "Volume": "30770700" + }, + { + "Close": "101.800003", + "Date": "2007/6/7", + "High": "103.169998", + "Low": "101.559998", + "Open": "102.459999", + "Volume": "14384600" + }, + { + "Close": "103.07", + "Date": "2007/6/8", + "High": "103.209999", + "Low": "101.75", + "Open": "101.800003", + "Volume": "8216300" + }, + { + "Close": "103.220001", + "Date": "2007/6/11", + "High": "104", + "Low": "102.5", + "Open": "102.870003", + "Volume": "7903100" + }, + { + "Close": "102.339996", + "Date": "2007/6/12", + "High": "103.18", + "Low": "102.150002", + "Open": "103.110001", + "Volume": "5578400" + }, + { + "Close": "103.120003", + "Date": "2007/6/13", + "High": "103.260002", + "Low": "102.099998", + "Open": "102.849998", + "Volume": "6437600" + }, + { + "Close": "103.849998", + "Date": "2007/6/14", + "High": "104.239998", + "Low": "102.809998", + "Open": "103.099998", + "Volume": "5165600" + }, + { + "Close": "105.089996", + "Date": "2007/6/15", + "High": "105.190002", + "Low": "103.879997", + "Open": "104.220001", + "Volume": "9432300" + }, + { + "Close": "105.330002", + "Date": "2007/6/18", + "High": "105.650002", + "Low": "104.889999", + "Open": "105.269997", + "Volume": "6359200" + }, + { + "Close": "106.5", + "Date": "2007/6/19", + "High": "106.660004", + "Low": "104.900002", + "Open": "104.93", + "Volume": "5754000" + }, + { + "Close": "106", + "Date": "2007/6/20", + "High": "107.019997", + "Low": "105.949997", + "Open": "106.5", + "Volume": "6541500" + }, + { + "Close": "106.599998", + "Date": "2007/6/21", + "High": "107", + "Low": "105.610001", + "Open": "105.769997", + "Volume": "5587800" + }, + { + "Close": "104.440002", + "Date": "2007/6/22", + "High": "106.440002", + "Low": "104.440002", + "Open": "105.959999", + "Volume": "10808500" + }, + { + "Close": "105.099998", + "Date": "2007/6/25", + "High": "105.769997", + "Low": "104.5", + "Open": "104.730003", + "Volume": "8476400" + }, + { + "Close": "105.330002", + "Date": "2007/6/26", + "High": "106.059998", + "Low": "104.82", + "Open": "105.099998", + "Volume": "5229600" + }, + { + "Close": "105.43", + "Date": "2007/6/27", + "High": "105.470001", + "Low": "104.400002", + "Open": "104.75", + "Volume": "5403800" + }, + { + "Close": "105.949997", + "Date": "2007/6/28", + "High": "106.919998", + "Low": "105.220001", + "Open": "105.519997", + "Volume": "5430900" + }, + { + "Close": "105.25", + "Date": "2007/6/29", + "High": "106.580002", + "Low": "104.099998", + "Open": "105.959999", + "Volume": "7018400" + }, + { + "Close": "105.010002", + "Date": "2007/7/2", + "High": "105.800003", + "Low": "104.580002", + "Open": "105.389999", + "Volume": "4701300" + }, + { + "Close": "106.580002", + "Date": "2007/7/3", + "High": "107.080002", + "Low": "105.239998", + "Open": "105.5", + "Volume": "4217900" + }, + { + "Close": "108.050003", + "Date": "2007/7/5", + "High": "108.389999", + "Low": "105.980003", + "Open": "106.309998", + "Volume": "6670900" + }, + { + "Close": "109.029999", + "Date": "2007/7/6", + "High": "109.660004", + "Low": "107.660004", + "Open": "107.790001", + "Volume": "8977200" + }, + { + "Close": "108.970001", + "Date": "2007/7/9", + "High": "109.349998", + "Low": "108.199997", + "Open": "108.730003", + "Volume": "6046300" + }, + { + "Close": "108.629997", + "Date": "2007/7/10", + "High": "109.150002", + "Low": "108.25", + "Open": "108.550003", + "Volume": "6209300" + }, + { + "Close": "109.099998", + "Date": "2007/7/11", + "High": "109.599998", + "Low": "108.25", + "Open": "108.300003", + "Volume": "5887800" + }, + { + "Close": "109.279999", + "Date": "2007/7/12", + "High": "109.650002", + "Low": "108.220001", + "Open": "109.349998", + "Volume": "9544100" + }, + { + "Close": "108.599998", + "Date": "2007/7/13", + "High": "109.199997", + "Low": "108.099998", + "Open": "108.75", + "Volume": "7124100" + }, + { + "Close": "109.660004", + "Date": "2007/7/16", + "High": "110.040001", + "Low": "108.419998", + "Open": "108.57", + "Volume": "8864200" + }, + { + "Close": "110.769997", + "Date": "2007/7/17", + "High": "111.470001", + "Low": "109.449997", + "Open": "109.660004", + "Volume": "7619900" + }, + { + "Close": "111.080002", + "Date": "2007/7/18", + "High": "111.879997", + "Low": "110.040001", + "Open": "110.25", + "Volume": "10154100" + }, + { + "Close": "115.860001", + "Date": "2007/7/19", + "High": "116.480003", + "Low": "114.650002", + "Open": "115", + "Volume": "17281600" + }, + { + "Close": "114.809998", + "Date": "2007/7/20", + "High": "115.860001", + "Low": "113.940002", + "Open": "114.849998", + "Volume": "11706300" + }, + { + "Close": "116.379997", + "Date": "2007/7/23", + "High": "116.43", + "Low": "114.849998", + "Open": "114.879997", + "Volume": "8040900" + }, + { + "Close": "116.169998", + "Date": "2007/7/24", + "High": "117", + "Low": "115.019997", + "Open": "115.32", + "Volume": "10499300" + }, + { + "Close": "118.099998", + "Date": "2007/7/25", + "High": "118.379997", + "Low": "115.239998", + "Open": "116.190002", + "Volume": "11340000" + }, + { + "Close": "116.529999", + "Date": "2007/7/26", + "High": "118.82", + "Low": "115.519997", + "Open": "117.010002", + "Volume": "16822100" + }, + { + "Close": "115.620003", + "Date": "2007/7/27", + "High": "117.949997", + "Low": "115.620003", + "Open": "116.620003", + "Volume": "18138700" + }, + { + "Close": "114.519997", + "Date": "2007/7/30", + "High": "115.75", + "Low": "113.519997", + "Open": "115", + "Volume": "15095400" + }, + { + "Close": "110.650002", + "Date": "2007/7/31", + "High": "114.720001", + "Low": "110.019997", + "Open": "114.720001", + "Volume": "17816200" + }, + { + "Close": "112.040001", + "Date": "2007/8/1", + "High": "112.730003", + "Low": "110.059998", + "Open": "110.389999", + "Volume": "12390300" + }, + { + "Close": "113.230003", + "Date": "2007/8/2", + "High": "114.050003", + "Low": "111.5", + "Open": "112.099998", + "Volume": "11318900" + }, + { + "Close": "111.889999", + "Date": "2007/8/3", + "High": "114.18", + "Low": "111.699997", + "Open": "113.239998", + "Volume": "9571300" + }, + { + "Close": "113.889999", + "Date": "2007/8/6", + "High": "113.889999", + "Low": "111.699997", + "Open": "111.970001", + "Volume": "7245500" + }, + { + "Close": "113.529999", + "Date": "2007/8/7", + "High": "114.169998", + "Low": "112.25", + "Open": "113.019997", + "Volume": "8021400" + }, + { + "Close": "112.980003", + "Date": "2007/8/8", + "High": "114.599998", + "Low": "112.260002", + "Open": "114.300003", + "Volume": "7681400" + }, + { + "Close": "110.730003", + "Date": "2007/8/9", + "High": "114.489998", + "Low": "110.730003", + "Open": "110.769997", + "Volume": "9086000" + }, + { + "Close": "112.639999", + "Date": "2007/8/10", + "High": "113.5", + "Low": "109.699997", + "Open": "109.75", + "Volume": "9592200" + }, + { + "Close": "112.709999", + "Date": "2007/8/13", + "High": "113.949997", + "Low": "112.309998", + "Open": "112.989998", + "Volume": "6135500" + }, + { + "Close": "112.050003", + "Date": "2007/8/14", + "High": "113.150002", + "Low": "111.739998", + "Open": "112.830002", + "Volume": "5615600" + }, + { + "Close": "111.230003", + "Date": "2007/8/15", + "High": "112.849998", + "Low": "109.910004", + "Open": "111", + "Volume": "11640200" + }, + { + "Close": "109.690002", + "Date": "2007/8/16", + "High": "111.419998", + "Low": "103.699997", + "Open": "110.980003", + "Volume": "16723000" + }, + { + "Close": "110.900002", + "Date": "2007/8/17", + "High": "112.669998", + "Low": "108.660004", + "Open": "111.870003", + "Volume": "15274600" + }, + { + "Close": "109.220001", + "Date": "2007/8/20", + "High": "111.099998", + "Low": "109.129997", + "Open": "110.900002", + "Volume": "9839800" + }, + { + "Close": "109.040001", + "Date": "2007/8/21", + "High": "110.110001", + "Low": "108.080002", + "Open": "108.900002", + "Volume": "8458500" + }, + { + "Close": "110", + "Date": "2007/8/22", + "High": "110.5", + "Low": "109.150002", + "Open": "110.089996", + "Volume": "6329700" + }, + { + "Close": "111.449997", + "Date": "2007/8/23", + "High": "111.68", + "Low": "110.010002", + "Open": "110.400002", + "Volume": "8271000" + }, + { + "Close": "113.239998", + "Date": "2007/8/24", + "High": "113.25", + "Low": "110.809998", + "Open": "111.449997", + "Volume": "7058700" + }, + { + "Close": "113.440002", + "Date": "2007/8/27", + "High": "113.849998", + "Low": "112.800003", + "Open": "113", + "Volume": "4921800" + }, + { + "Close": "112", + "Date": "2007/8/28", + "High": "113.589996", + "Low": "111.629997", + "Open": "112.900002", + "Volume": "6006600" + }, + { + "Close": "114.57", + "Date": "2007/8/29", + "High": "114.980003", + "Low": "112.07", + "Open": "112.879997", + "Volume": "7049800" + }, + { + "Close": "115.370003", + "Date": "2007/8/30", + "High": "116", + "Low": "113.620003", + "Open": "113.620003", + "Volume": "7756100" + }, + { + "Close": "116.690002", + "Date": "2007/8/31", + "High": "117.349998", + "Low": "115.550003", + "Open": "115.989998", + "Volume": "6883600" + }, + { + "Close": "118.190002", + "Date": "2007/9/4", + "High": "118.889999", + "Low": "116.150002", + "Open": "116.339996", + "Volume": "8070500" + }, + { + "Close": "117.879997", + "Date": "2007/9/5", + "High": "118.150002", + "Low": "116.550003", + "Open": "117.480003", + "Volume": "6555500" + }, + { + "Close": "117.620003", + "Date": "2007/9/6", + "High": "118.75", + "Low": "116.239998", + "Open": "117.919998", + "Volume": "6778600" + }, + { + "Close": "115.550003", + "Date": "2007/9/7", + "High": "116.970001", + "Low": "115.330002", + "Open": "116.199997", + "Volume": "7511700" + }, + { + "Close": "115.800003", + "Date": "2007/9/10", + "High": "117.5", + "Low": "115.32", + "Open": "116.150002", + "Volume": "6118300" + }, + { + "Close": "117.349998", + "Date": "2007/9/11", + "High": "117.779999", + "Low": "116.040001", + "Open": "116.349998", + "Volume": "8098700" + }, + { + "Close": "116", + "Date": "2007/9/12", + "High": "117.400002", + "Low": "115.690002", + "Open": "116.949997", + "Volume": "6287200" + }, + { + "Close": "115.949997", + "Date": "2007/9/13", + "High": "117", + "Low": "115.739998", + "Open": "116.300003", + "Volume": "4802700" + }, + { + "Close": "115.129997", + "Date": "2007/9/14", + "High": "116", + "Low": "114.650002", + "Open": "115.050003", + "Volume": "6904400" + }, + { + "Close": "114.519997", + "Date": "2007/9/17", + "High": "115.25", + "Low": "114.300003", + "Open": "114.699997", + "Volume": "5022400" + }, + { + "Close": "116.629997", + "Date": "2007/9/18", + "High": "116.779999", + "Low": "114.830002", + "Open": "115", + "Volume": "7839500" + }, + { + "Close": "116.669998", + "Date": "2007/9/19", + "High": "117.190002", + "Low": "115.779999", + "Open": "116.900002", + "Volume": "10311200" + }, + { + "Close": "116.860001", + "Date": "2007/9/20", + "High": "117.650002", + "Low": "116.199997", + "Open": "116.269997", + "Volume": "5806400" + }, + { + "Close": "116.779999", + "Date": "2007/9/21", + "High": "118.099998", + "Low": "116.349998", + "Open": "117.889999", + "Volume": "9097300" + }, + { + "Close": "116.25", + "Date": "2007/9/24", + "High": "117.43", + "Low": "115.849998", + "Open": "116.900002", + "Volume": "5734300" + }, + { + "Close": "116.510002", + "Date": "2007/9/25", + "High": "117.589996", + "Low": "115.790001", + "Open": "116.019997", + "Volume": "7045200" + }, + { + "Close": "117.300003", + "Date": "2007/9/26", + "High": "118.080002", + "Low": "116.75", + "Open": "116.940002", + "Volume": "6695200" + }, + { + "Close": "117.709999", + "Date": "2007/9/27", + "High": "118.209999", + "Low": "117.040001", + "Open": "117.5", + "Volume": "5834500" + }, + { + "Close": "117.800003", + "Date": "2007/9/28", + "High": "118.5", + "Low": "117.099998", + "Open": "117.139999", + "Volume": "7720200" + }, + { + "Close": "119.029999", + "Date": "2007/10/1", + "High": "119.5", + "Low": "117.5", + "Open": "117.610001", + "Volume": "6777300" + }, + { + "Close": "118.360001", + "Date": "2007/10/2", + "High": "119.599998", + "Low": "118.139999", + "Open": "119.309998", + "Volume": "6911500" + }, + { + "Close": "116.400002", + "Date": "2007/10/3", + "High": "117.839996", + "Low": "116.279999", + "Open": "117.650002", + "Volume": "7914100" + }, + { + "Close": "115.690002", + "Date": "2007/10/4", + "High": "116.75", + "Low": "115", + "Open": "116.199997", + "Volume": "6177500" + }, + { + "Close": "116.300003", + "Date": "2007/10/5", + "High": "116.709999", + "Low": "115.470001", + "Open": "116.169998", + "Volume": "5749400" + }, + { + "Close": "117.769997", + "Date": "2007/10/8", + "High": "118.230003", + "Low": "115.879997", + "Open": "116.099998", + "Volume": "4822900" + }, + { + "Close": "118.300003", + "Date": "2007/10/9", + "High": "118.5", + "Low": "116.419998", + "Open": "117.849998", + "Volume": "5670600" + }, + { + "Close": "118.620003", + "Date": "2007/10/10", + "High": "118.800003", + "Low": "117.68", + "Open": "118", + "Volume": "5913800" + }, + { + "Close": "118.050003", + "Date": "2007/10/11", + "High": "121.459999", + "Low": "117.370003", + "Open": "118.989998", + "Volume": "13018800" + }, + { + "Close": "117.809998", + "Date": "2007/10/12", + "High": "118.889999", + "Low": "117.279999", + "Open": "118.5", + "Volume": "5656200" + }, + { + "Close": "118.029999", + "Date": "2007/10/15", + "High": "118.370003", + "Low": "116.75", + "Open": "117.949997", + "Volume": "6267300" + }, + { + "Close": "119.599998", + "Date": "2007/10/16", + "High": "119.940002", + "Low": "117.5", + "Open": "118.019997", + "Volume": "11527300" + }, + { + "Close": "115.779999", + "Date": "2007/10/17", + "High": "118.010002", + "Low": "114.150002", + "Open": "118.010002", + "Volume": "18100500" + }, + { + "Close": "114.800003", + "Date": "2007/10/18", + "High": "116.410004", + "Low": "114.440002", + "Open": "114.82", + "Volume": "7736500" + }, + { + "Close": "112.279999", + "Date": "2007/10/19", + "High": "114.93", + "Low": "111.800003", + "Open": "113.980003", + "Volume": "10327200" + }, + { + "Close": "113.370003", + "Date": "2007/10/22", + "High": "113.879997", + "Low": "110.959999", + "Open": "110.970001", + "Volume": "7576900" + }, + { + "Close": "114.68", + "Date": "2007/10/23", + "High": "114.800003", + "Low": "113.5", + "Open": "113.779999", + "Volume": "5562900" + }, + { + "Close": "112.949997", + "Date": "2007/10/24", + "High": "114.449997", + "Low": "111.68", + "Open": "114.199997", + "Volume": "8072600" + }, + { + "Close": "112.809998", + "Date": "2007/10/25", + "High": "114.400002", + "Low": "111.690002", + "Open": "113.32", + "Volume": "6519900" + }, + { + "Close": "113.730003", + "Date": "2007/10/26", + "High": "114", + "Low": "112.07", + "Open": "113", + "Volume": "5030300" + }, + { + "Close": "114.800003", + "Date": "2007/10/29", + "High": "115.010002", + "Low": "113.849998", + "Open": "113.900002", + "Volume": "5103200" + }, + { + "Close": "114.120003", + "Date": "2007/10/30", + "High": "114.900002", + "Low": "113.75", + "Open": "114.5", + "Volume": "4015500" + }, + { + "Close": "116.120003", + "Date": "2007/10/31", + "High": "116.25", + "Low": "113.279999", + "Open": "114.75", + "Volume": "7216800" + }, + { + "Close": "113.650002", + "Date": "2007/11/1", + "High": "116.089996", + "Low": "113.32", + "Open": "115.5", + "Volume": "7594400" + }, + { + "Close": "114.589996", + "Date": "2007/11/2", + "High": "115.150002", + "Low": "113.57", + "Open": "114.419998", + "Volume": "6114800" + }, + { + "Close": "113.400002", + "Date": "2007/11/5", + "High": "115.110001", + "Low": "112.830002", + "Open": "115.110001", + "Volume": "7155300" + }, + { + "Close": "113.169998", + "Date": "2007/11/6", + "High": "113.949997", + "Low": "111.669998", + "Open": "113.489998", + "Volume": "7299700" + }, + { + "Close": "111.080002", + "Date": "2007/11/7", + "High": "113.639999", + "Low": "110.900002", + "Open": "113.559998", + "Volume": "7087000" + }, + { + "Close": "106.110001", + "Date": "2007/11/8", + "High": "110.32", + "Low": "103.989998", + "Open": "105.650002", + "Volume": "23092200" + }, + { + "Close": "100.25", + "Date": "2007/11/9", + "High": "104.919998", + "Low": "99.269997", + "Open": "104.919998", + "Volume": "18084100" + }, + { + "Close": "101.449997", + "Date": "2007/11/12", + "High": "104.190002", + "Low": "100.699997", + "Open": "101.889999", + "Volume": "13553600" + }, + { + "Close": "105.269997", + "Date": "2007/11/13", + "High": "105.739998", + "Low": "102.5", + "Open": "102.730003", + "Volume": "10777900" + }, + { + "Close": "103.440002", + "Date": "2007/11/14", + "High": "106.419998", + "Low": "102.839996", + "Open": "106.120003", + "Volume": "8453600" + }, + { + "Close": "103.599998", + "Date": "2007/11/15", + "High": "105.639999", + "Low": "103.050003", + "Open": "103.239998", + "Volume": "8023600" + }, + { + "Close": "104.790001", + "Date": "2007/11/16", + "High": "105", + "Low": "103.25", + "Open": "104.510002", + "Volume": "9294000" + }, + { + "Close": "102.220001", + "Date": "2007/11/19", + "High": "105.389999", + "Low": "101.339996", + "Open": "104.339996", + "Volume": "9502200" + }, + { + "Close": "103.419998", + "Date": "2007/11/20", + "High": "104.970001", + "Low": "101.379997", + "Open": "102.589996", + "Volume": "8393400" + }, + { + "Close": "102.220001", + "Date": "2007/11/21", + "High": "104.089996", + "Low": "101.410004", + "Open": "101.410004", + "Volume": "7097200" + }, + { + "Close": "104.050003", + "Date": "2007/11/23", + "High": "104.139999", + "Low": "102.32", + "Open": "103.099998", + "Volume": "2827700" + }, + { + "Close": "101.970001", + "Date": "2007/11/26", + "High": "105.150002", + "Low": "101.720001", + "Open": "104.260002", + "Volume": "7340700" + }, + { + "Close": "103.830002", + "Date": "2007/11/27", + "High": "104.580002", + "Low": "101.5", + "Open": "102.699997", + "Volume": "9117500" + }, + { + "Close": "107.370003", + "Date": "2007/11/28", + "High": "108.269997", + "Low": "104.360001", + "Open": "104.82", + "Volume": "9397700" + }, + { + "Close": "107.5", + "Date": "2007/11/29", + "High": "107.870003", + "Low": "106.25", + "Open": "107.239998", + "Volume": "7813800" + }, + { + "Close": "105.18", + "Date": "2007/11/30", + "High": "109.190002", + "Low": "103.93", + "Open": "108.57", + "Volume": "12900200" + }, + { + "Close": "105.830002", + "Date": "2007/12/3", + "High": "107.139999", + "Low": "104.580002", + "Open": "105.550003", + "Volume": "7918800" + }, + { + "Close": "106.629997", + "Date": "2007/12/4", + "High": "107.419998", + "Low": "104.720001", + "Open": "105.410004", + "Volume": "6361800" + }, + { + "Close": "108.160004", + "Date": "2007/12/5", + "High": "108.519997", + "Low": "106.980003", + "Open": "107.830002", + "Volume": "6090400" + }, + { + "Close": "109.699997", + "Date": "2007/12/6", + "High": "110", + "Low": "107.93", + "Open": "108", + "Volume": "5315500" + }, + { + "Close": "108.860001", + "Date": "2007/12/7", + "High": "110", + "Low": "107.949997", + "Open": "109.68", + "Volume": "5985500" + }, + { + "Close": "109.389999", + "Date": "2007/12/10", + "High": "110.260002", + "Low": "109", + "Open": "109.379997", + "Volume": "4442200" + }, + { + "Close": "106.989998", + "Date": "2007/12/11", + "High": "110.400002", + "Low": "106.459999", + "Open": "109.339996", + "Volume": "8439700" + }, + { + "Close": "108.470001", + "Date": "2007/12/12", + "High": "110.199997", + "Low": "107.379997", + "Open": "109.169998", + "Volume": "7879800" + }, + { + "Close": "108.18", + "Date": "2007/12/13", + "High": "108.639999", + "Low": "106.940002", + "Open": "108", + "Volume": "6252800" + }, + { + "Close": "105.769997", + "Date": "2007/12/14", + "High": "107.559998", + "Low": "104.099998", + "Open": "107.309998", + "Volume": "9711200" + }, + { + "Close": "104.529999", + "Date": "2007/12/17", + "High": "105.989998", + "Low": "104", + "Open": "105.370003", + "Volume": "7131100" + }, + { + "Close": "106.309998", + "Date": "2007/12/18", + "High": "106.970001", + "Low": "104.129997", + "Open": "105.080002", + "Volume": "8042000" + }, + { + "Close": "107.139999", + "Date": "2007/12/19", + "High": "108.379997", + "Low": "105.870003", + "Open": "106.540001", + "Volume": "7031100" + }, + { + "Close": "108.839996", + "Date": "2007/12/20", + "High": "109.489998", + "Low": "107.610001", + "Open": "107.779999", + "Volume": "8030900" + }, + { + "Close": "111.050003", + "Date": "2007/12/21", + "High": "111.160004", + "Low": "109.150002", + "Open": "109.900002", + "Volume": "13246600" + }, + { + "Close": "111.650002", + "Date": "2007/12/24", + "High": "112", + "Low": "110.550003", + "Open": "111.199997", + "Volume": "2342400" + }, + { + "Close": "111.559998", + "Date": "2007/12/26", + "High": "112.190002", + "Low": "110.900002", + "Open": "110.900002", + "Volume": "3849400" + }, + { + "Close": "109.599998", + "Date": "2007/12/27", + "High": "111.300003", + "Low": "109.489998", + "Open": "110.529999", + "Volume": "4513600" + }, + { + "Close": "110.089996", + "Date": "2007/12/28", + "High": "110.760002", + "Low": "109.110001", + "Open": "110.760002", + "Volume": "5834500" + }, + { + "Close": "108.099998", + "Date": "2007/12/31", + "High": "110", + "Low": "107.260002", + "Open": "109.510002", + "Volume": "5732300" + }, + { + "Close": "104.690002", + "Date": "2008/1/2", + "High": "108.989998", + "Low": "104.169998", + "Open": "108.989998", + "Volume": "9503500" + }, + { + "Close": "104.900002", + "Date": "2008/1/3", + "High": "105.57", + "Low": "103.980003", + "Open": "104.830002", + "Volume": "7528900" + }, + { + "Close": "101.129997", + "Date": "2008/1/4", + "High": "103.949997", + "Low": "100.480003", + "Open": "103.949997", + "Volume": "11034600" + }, + { + "Close": "100.050003", + "Date": "2008/1/7", + "High": "101", + "Low": "99.029999", + "Open": "100.25", + "Volume": "12650400" + }, + { + "Close": "97.589996", + "Date": "2008/1/8", + "High": "100.379997", + "Low": "97.169998", + "Open": "100.050003", + "Volume": "9434400" + }, + { + "Close": "98.309998", + "Date": "2008/1/9", + "High": "99.150002", + "Low": "97.160004", + "Open": "97.760002", + "Volume": "10922100" + }, + { + "Close": "99.919998", + "Date": "2008/1/10", + "High": "100.860001", + "Low": "97.150002", + "Open": "97.389999", + "Volume": "10634700" + }, + { + "Close": "97.669998", + "Date": "2008/1/11", + "High": "99.459999", + "Low": "97.040001", + "Open": "99.199997", + "Volume": "8959900" + }, + { + "Close": "102.93", + "Date": "2008/1/14", + "High": "105.589996", + "Low": "101.330002", + "Open": "105.010002", + "Volume": "18009400" + }, + { + "Close": "101.830002", + "Date": "2008/1/15", + "High": "104.639999", + "Low": "101.230003", + "Open": "102.029999", + "Volume": "11629500" + }, + { + "Close": "101.629997", + "Date": "2008/1/16", + "High": "102.860001", + "Low": "100.139999", + "Open": "100.139999", + "Volume": "12681700" + }, + { + "Close": "101.099998", + "Date": "2008/1/17", + "High": "103.449997", + "Low": "100.050003", + "Open": "102", + "Volume": "11934000" + }, + { + "Close": "103.400002", + "Date": "2008/1/18", + "High": "106.720001", + "Low": "102.5", + "Open": "106.720001", + "Volume": "23871700" + }, + { + "Close": "101.220001", + "Date": "2008/1/22", + "High": "103.089996", + "Low": "98.550003", + "Open": "98.550003", + "Volume": "15129500" + }, + { + "Close": "106.099998", + "Date": "2008/1/23", + "High": "106.339996", + "Low": "98.5", + "Open": "99.629997", + "Volume": "19588100" + }, + { + "Close": "106.910004", + "Date": "2008/1/24", + "High": "107.510002", + "Low": "104.68", + "Open": "106.379997", + "Volume": "13025700" + }, + { + "Close": "104.519997", + "Date": "2008/1/25", + "High": "107.790001", + "Low": "104.099998", + "Open": "107.790001", + "Volume": "10025400" + }, + { + "Close": "104.980003", + "Date": "2008/1/28", + "High": "105.769997", + "Low": "103.830002", + "Open": "104.440002", + "Volume": "7858500" + }, + { + "Close": "106.099998", + "Date": "2008/1/29", + "High": "106.800003", + "Low": "104.599998", + "Open": "105.5", + "Volume": "6616200" + }, + { + "Close": "105.650002", + "Date": "2008/1/30", + "High": "107.650002", + "Low": "104.860001", + "Open": "105.849998", + "Volume": "7431100" + }, + { + "Close": "107.110001", + "Date": "2008/1/31", + "High": "107.970001", + "Low": "103.699997", + "Open": "104.209999", + "Volume": "9054600" + }, + { + "Close": "109.080002", + "Date": "2008/2/1", + "High": "109.400002", + "Low": "105.860001", + "Open": "107.160004", + "Volume": "8047100" + }, + { + "Close": "107.93", + "Date": "2008/2/4", + "High": "109", + "Low": "107.230003", + "Open": "108.669998", + "Volume": "5985500" + }, + { + "Close": "105.019997", + "Date": "2008/2/5", + "High": "108.050003", + "Low": "104.68", + "Open": "107.059998", + "Volume": "9048900" + }, + { + "Close": "103.589996", + "Date": "2008/2/6", + "High": "106.489998", + "Low": "103.580002", + "Open": "105.050003", + "Volume": "8265700" + }, + { + "Close": "102.339996", + "Date": "2008/2/7", + "High": "104", + "Low": "100.599998", + "Open": "102.889999", + "Volume": "11255800" + }, + { + "Close": "103.269997", + "Date": "2008/2/8", + "High": "103.669998", + "Low": "102.07", + "Open": "102.190002", + "Volume": "6085600" + }, + { + "Close": "105.139999", + "Date": "2008/2/11", + "High": "105.550003", + "Low": "102.870003", + "Open": "103.050003", + "Volume": "6098300" + }, + { + "Close": "106.529999", + "Date": "2008/2/12", + "High": "107.330002", + "Low": "104.699997", + "Open": "105.160004", + "Volume": "7650200" + }, + { + "Close": "108.419998", + "Date": "2008/2/13", + "High": "108.93", + "Low": "106.800003", + "Open": "107.129997", + "Volume": "6608200" + }, + { + "Close": "106.129997", + "Date": "2008/2/14", + "High": "108.5", + "Low": "105.5", + "Open": "107.940002", + "Volume": "7340600" + }, + { + "Close": "106.160004", + "Date": "2008/2/15", + "High": "106.25", + "Low": "105", + "Open": "105.269997", + "Volume": "6235600" + }, + { + "Close": "105", + "Date": "2008/2/19", + "High": "107.620003", + "Low": "104.639999", + "Open": "106.940002", + "Volume": "7376400" + }, + { + "Close": "107.849998", + "Date": "2008/2/20", + "High": "108.209999", + "Low": "104.529999", + "Open": "105.43", + "Volume": "7671000" + }, + { + "Close": "106.93", + "Date": "2008/2/21", + "High": "109.599998", + "Low": "106.43", + "Open": "108.099998", + "Volume": "8328000" + }, + { + "Close": "108.07", + "Date": "2008/2/22", + "High": "108.480003", + "Low": "105.709999", + "Open": "107.139999", + "Volume": "7917200" + }, + { + "Close": "110.080002", + "Date": "2008/2/25", + "High": "110.32", + "Low": "107.43", + "Open": "107.43", + "Volume": "8158000" + }, + { + "Close": "114.379997", + "Date": "2008/2/26", + "High": "114.989998", + "Low": "109.050003", + "Open": "109.519997", + "Volume": "18651500" + }, + { + "Close": "116.459999", + "Date": "2008/2/27", + "High": "116.629997", + "Low": "112.910004", + "Open": "113.839996", + "Volume": "11854900" + }, + { + "Close": "115.239998", + "Date": "2008/2/28", + "High": "115.900002", + "Low": "114.559998", + "Open": "115.599998", + "Volume": "7227200" + }, + { + "Close": "113.860001", + "Date": "2008/2/29", + "High": "115.139999", + "Low": "113.349998", + "Open": "114.040001", + "Volume": "8475100" + }, + { + "Close": "114.230003", + "Date": "2008/3/3", + "High": "114.809998", + "Low": "113.480003", + "Open": "113.860001", + "Volume": "6335700" + }, + { + "Close": "115.709999", + "Date": "2008/3/4", + "High": "115.720001", + "Low": "112.75", + "Open": "113.400002", + "Volume": "8593300" + }, + { + "Close": "115.389999", + "Date": "2008/3/5", + "High": "116.410004", + "Low": "114.25", + "Open": "116.410004", + "Volume": "8434200" + }, + { + "Close": "112.519997", + "Date": "2008/3/6", + "High": "115.150002", + "Low": "112.25", + "Open": "115.059998", + "Volume": "8018400" + }, + { + "Close": "113.940002", + "Date": "2008/3/7", + "High": "114.75", + "Low": "111.800003", + "Open": "111.849998", + "Volume": "8124900" + }, + { + "Close": "114.010002", + "Date": "2008/3/10", + "High": "115.989998", + "Low": "113.120003", + "Open": "113.120003", + "Volume": "9747300" + }, + { + "Close": "116.489998", + "Date": "2008/3/11", + "High": "116.559998", + "Low": "114.040001", + "Open": "115.800003", + "Volume": "10480600" + }, + { + "Close": "117.07", + "Date": "2008/3/12", + "High": "118", + "Low": "115.110001", + "Open": "116.440002", + "Volume": "9083200" + }, + { + "Close": "115.910004", + "Date": "2008/3/13", + "High": "116.779999", + "Low": "113.639999", + "Open": "115.690002", + "Volume": "9548900" + }, + { + "Close": "115.230003", + "Date": "2008/3/14", + "High": "116.519997", + "Low": "112.690002", + "Open": "116.07", + "Volume": "9734600" + }, + { + "Close": "115.550003", + "Date": "2008/3/17", + "High": "117.040001", + "Low": "113", + "Open": "113", + "Volume": "9280300" + }, + { + "Close": "118.410004", + "Date": "2008/3/18", + "High": "118.43", + "Low": "113.809998", + "Open": "116.599998", + "Volume": "9966500" + }, + { + "Close": "116.940002", + "Date": "2008/3/19", + "High": "118.5", + "Low": "116.650002", + "Open": "118.290001", + "Volume": "9314400" + }, + { + "Close": "118.330002", + "Date": "2008/3/20", + "High": "118.480003", + "Low": "116.650002", + "Open": "117.089996", + "Volume": "11417900" + }, + { + "Close": "119.059998", + "Date": "2008/3/24", + "High": "119.790001", + "Low": "118.129997", + "Open": "118.57", + "Volume": "8398000" + }, + { + "Close": "117.970001", + "Date": "2008/3/25", + "High": "119.099998", + "Low": "117.150002", + "Open": "119.099998", + "Volume": "8443600" + }, + { + "Close": "116.910004", + "Date": "2008/3/26", + "High": "117.970001", + "Low": "114.959999", + "Open": "117.589996", + "Volume": "9617100" + }, + { + "Close": "115.519997", + "Date": "2008/3/27", + "High": "116.199997", + "Low": "114.510002", + "Open": "116.019997", + "Volume": "8437200" + }, + { + "Close": "114.57", + "Date": "2008/3/28", + "High": "116.75", + "Low": "114.209999", + "Open": "115.860001", + "Volume": "6600900" + }, + { + "Close": "115.139999", + "Date": "2008/3/31", + "High": "115.870003", + "Low": "113.339996", + "Open": "114.150002", + "Volume": "9707200" + }, + { + "Close": "116.489998", + "Date": "2008/4/1", + "High": "118.370003", + "Low": "114.970001", + "Open": "115.199997", + "Volume": "11875400" + }, + { + "Close": "114.809998", + "Date": "2008/4/2", + "High": "116.879997", + "Low": "113.980003", + "Open": "116.839996", + "Volume": "8007600" + }, + { + "Close": "116.019997", + "Date": "2008/4/3", + "High": "116.82", + "Low": "113.860001", + "Open": "114.349998", + "Volume": "7052900" + }, + { + "Close": "115.760002", + "Date": "2008/4/4", + "High": "116.580002", + "Low": "114.599998", + "Open": "116.050003", + "Volume": "5733200" + }, + { + "Close": "116.309998", + "Date": "2008/4/7", + "High": "117.370003", + "Low": "115.82", + "Open": "116.370003", + "Volume": "6181200" + }, + { + "Close": "116.269997", + "Date": "2008/4/8", + "High": "116.879997", + "Low": "115.279999", + "Open": "115.720001", + "Volume": "7283300" + }, + { + "Close": "116.769997", + "Date": "2008/4/9", + "High": "117.720001", + "Low": "115.720001", + "Open": "116.5", + "Volume": "6819100" + }, + { + "Close": "118.779999", + "Date": "2008/4/10", + "High": "119.220001", + "Low": "116.879997", + "Open": "116.93", + "Volume": "9149300" + }, + { + "Close": "116", + "Date": "2008/4/11", + "High": "117.800003", + "Low": "115.510002", + "Open": "117.309998", + "Volume": "9556800" + }, + { + "Close": "117.279999", + "Date": "2008/4/14", + "High": "117.940002", + "Low": "115.949997", + "Open": "116.199997", + "Volume": "7745600" + }, + { + "Close": "117.169998", + "Date": "2008/4/15", + "High": "117.669998", + "Low": "115.540001", + "Open": "117.099998", + "Volume": "8642000" + }, + { + "Close": "120.470001", + "Date": "2008/4/16", + "High": "120.470001", + "Low": "117.169998", + "Open": "118.150002", + "Volume": "19317700" + }, + { + "Close": "123.080002", + "Date": "2008/4/17", + "High": "123.720001", + "Low": "120.699997", + "Open": "122.389999", + "Volume": "18999100" + }, + { + "Close": "124.400002", + "Date": "2008/4/18", + "High": "125", + "Low": "123.150002", + "Open": "123.919998", + "Volume": "12490800" + }, + { + "Close": "124.349998", + "Date": "2008/4/21", + "High": "124.510002", + "Low": "122.050003", + "Open": "123.620003", + "Volume": "6952800" + }, + { + "Close": "123.669998", + "Date": "2008/4/22", + "High": "124.349998", + "Low": "123.010002", + "Open": "123.870003", + "Volume": "5417500" + }, + { + "Close": "123.599998", + "Date": "2008/4/23", + "High": "124.779999", + "Low": "122.639999", + "Open": "123.690002", + "Volume": "7593300" + }, + { + "Close": "124.190002", + "Date": "2008/4/24", + "High": "124.900002", + "Low": "122.730003", + "Open": "123.379997", + "Volume": "5996700" + }, + { + "Close": "123.080002", + "Date": "2008/4/25", + "High": "124.5", + "Low": "122.059998", + "Open": "124.5", + "Volume": "6313400" + }, + { + "Close": "121.690002", + "Date": "2008/4/28", + "High": "123.050003", + "Low": "121.639999", + "Open": "122.610001", + "Volume": "5605200" + }, + { + "Close": "122.849998", + "Date": "2008/4/29", + "High": "123.199997", + "Low": "122.040001", + "Open": "122.040001", + "Volume": "7226000" + }, + { + "Close": "120.699997", + "Date": "2008/4/30", + "High": "123.5", + "Low": "120.5", + "Open": "123.339996", + "Volume": "8128300" + }, + { + "Close": "123.610001", + "Date": "2008/5/1", + "High": "124.43", + "Low": "121.059998", + "Open": "121.059998", + "Volume": "8230200" + }, + { + "Close": "123.18", + "Date": "2008/5/2", + "High": "124", + "Low": "121.760002", + "Open": "123.300003", + "Volume": "6916600" + }, + { + "Close": "122.029999", + "Date": "2008/5/5", + "High": "123.25", + "Low": "121.739998", + "Open": "122.290001", + "Volume": "6359300" + }, + { + "Close": "122.82", + "Date": "2008/5/6", + "High": "123.339996", + "Low": "120.779999", + "Open": "121.5", + "Volume": "5910400" + }, + { + "Close": "124.139999", + "Date": "2008/5/7", + "High": "124.980003", + "Low": "122.410004", + "Open": "122.779999", + "Volume": "11406800" + }, + { + "Close": "124.919998", + "Date": "2008/5/8", + "High": "125.169998", + "Low": "123.699997", + "Open": "124.199997", + "Volume": "9794000" + }, + { + "Close": "124.059998", + "Date": "2008/5/9", + "High": "124.650002", + "Low": "123.629997", + "Open": "124.370003", + "Volume": "5502900" + }, + { + "Close": "125.239998", + "Date": "2008/5/12", + "High": "125.989998", + "Low": "123.559998", + "Open": "123.82", + "Volume": "8666800" + }, + { + "Close": "126.580002", + "Date": "2008/5/13", + "High": "126.699997", + "Low": "125.029999", + "Open": "125.120003", + "Volume": "9693400" + }, + { + "Close": "127.519997", + "Date": "2008/5/14", + "High": "128.830002", + "Low": "126.199997", + "Open": "126.519997", + "Volume": "8888300" + }, + { + "Close": "128.460007", + "Date": "2008/5/15", + "High": "128.679993", + "Low": "126.900002", + "Open": "127.330002", + "Volume": "7227900" + }, + { + "Close": "127.82", + "Date": "2008/5/16", + "High": "128.479996", + "Low": "126.800003", + "Open": "128.460007", + "Volume": "6372100" + }, + { + "Close": "126.489998", + "Date": "2008/5/19", + "High": "128.210007", + "Low": "126.050003", + "Open": "127.68", + "Volume": "6385200" + }, + { + "Close": "125.18", + "Date": "2008/5/20", + "High": "126.050003", + "Low": "124.449997", + "Open": "126.050003", + "Volume": "7017700" + }, + { + "Close": "123.620003", + "Date": "2008/5/21", + "High": "126.400002", + "Low": "123.019997", + "Open": "125.050003", + "Volume": "8333900" + }, + { + "Close": "124.699997", + "Date": "2008/5/22", + "High": "125.349998", + "Low": "123.550003", + "Open": "123.550003", + "Volume": "5031300" + }, + { + "Close": "124.199997", + "Date": "2008/5/23", + "High": "124.910004", + "Low": "123.769997", + "Open": "124.349998", + "Volume": "4701500" + }, + { + "Close": "127.32", + "Date": "2008/5/27", + "High": "127.379997", + "Low": "124", + "Open": "124.010002", + "Volume": "6989200" + }, + { + "Close": "129.539993", + "Date": "2008/5/28", + "High": "129.539993", + "Low": "126.989998", + "Open": "127.5", + "Volume": "9875600" + }, + { + "Close": "129.710007", + "Date": "2008/5/29", + "High": "129.990005", + "Low": "128.660004", + "Open": "128.759995", + "Volume": "7561500" + }, + { + "Close": "129.429993", + "Date": "2008/5/30", + "High": "129.990005", + "Low": "128.800003", + "Open": "129.220001", + "Volume": "8652900" + }, + { + "Close": "127.360001", + "Date": "2008/6/2", + "High": "129.369995", + "Low": "126.699997", + "Open": "128.490005", + "Volume": "7599300" + }, + { + "Close": "127.839996", + "Date": "2008/6/3", + "High": "129", + "Low": "127.459999", + "Open": "127.470001", + "Volume": "7238200" + }, + { + "Close": "127.550003", + "Date": "2008/6/4", + "High": "128.5", + "Low": "126.449997", + "Open": "127.870003", + "Volume": "6432300" + }, + { + "Close": "128.470001", + "Date": "2008/6/5", + "High": "129.039993", + "Low": "127.199997", + "Open": "127.410004", + "Volume": "6153300" + }, + { + "Close": "124.940002", + "Date": "2008/6/6", + "High": "128.139999", + "Low": "124.739998", + "Open": "127.769997", + "Volume": "7886200" + }, + { + "Close": "125.860001", + "Date": "2008/6/9", + "High": "126.18", + "Low": "124.059998", + "Open": "125.379997", + "Volume": "5584000" + }, + { + "Close": "125.940002", + "Date": "2008/6/10", + "High": "126.720001", + "Low": "124.629997", + "Open": "124.879997", + "Volume": "5384200" + }, + { + "Close": "123.25", + "Date": "2008/6/11", + "High": "125.900002", + "Low": "122.860001", + "Open": "125.900002", + "Volume": "7207200" + }, + { + "Close": "123.849998", + "Date": "2008/6/12", + "High": "125.089996", + "Low": "123.129997", + "Open": "123.849998", + "Volume": "6748600" + }, + { + "Close": "126.150002", + "Date": "2008/6/13", + "High": "126.57", + "Low": "124.150002", + "Open": "124.419998", + "Volume": "6379600" + }, + { + "Close": "126.709999", + "Date": "2008/6/16", + "High": "127.139999", + "Low": "124.650002", + "Open": "125.459999", + "Volume": "6280200" + }, + { + "Close": "125.099998", + "Date": "2008/6/17", + "High": "127.099998", + "Low": "124.620003", + "Open": "127.099998", + "Volume": "5277900" + }, + { + "Close": "124.160004", + "Date": "2008/6/18", + "High": "125.43", + "Low": "123.699997", + "Open": "124.550003", + "Volume": "6614700" + }, + { + "Close": "125.019997", + "Date": "2008/6/19", + "High": "125.620003", + "Low": "122.360001", + "Open": "123.669998", + "Volume": "7570200" + }, + { + "Close": "122.739998", + "Date": "2008/6/20", + "High": "125.019997", + "Low": "122.5", + "Open": "124.809998", + "Volume": "9624900" + }, + { + "Close": "123.459999", + "Date": "2008/6/23", + "High": "124.5", + "Low": "122.400002", + "Open": "123", + "Volume": "5852300" + }, + { + "Close": "123.459999", + "Date": "2008/6/24", + "High": "124.25", + "Low": "121.900002", + "Open": "123.080002", + "Volume": "7552900" + }, + { + "Close": "124.580002", + "Date": "2008/6/25", + "High": "125.830002", + "Low": "123.199997", + "Open": "123.669998", + "Volume": "7131500" + }, + { + "Close": "121.129997", + "Date": "2008/6/26", + "High": "123.82", + "Low": "120.760002", + "Open": "123.43", + "Volume": "9710600" + }, + { + "Close": "120.050003", + "Date": "2008/6/27", + "High": "122.050003", + "Low": "118.260002", + "Open": "121.019997", + "Volume": "11660400" + }, + { + "Close": "118.529999", + "Date": "2008/6/30", + "High": "120.220001", + "Low": "118.150002", + "Open": "120.029999", + "Volume": "8439000" + }, + { + "Close": "119.269997", + "Date": "2008/7/1", + "High": "119.360001", + "Low": "116.599998", + "Open": "117.5", + "Volume": "10069400" + }, + { + "Close": "119.099998", + "Date": "2008/7/2", + "High": "120.550003", + "Low": "118.120003", + "Open": "118.410004", + "Volume": "8093200" + }, + { + "Close": "119.540001", + "Date": "2008/7/3", + "High": "120.779999", + "Low": "117.889999", + "Open": "119.949997", + "Volume": "6115200" + }, + { + "Close": "121.5", + "Date": "2008/7/7", + "High": "122.639999", + "Low": "119.620003", + "Open": "119.620003", + "Volume": "9131100" + }, + { + "Close": "123.879997", + "Date": "2008/7/8", + "High": "123.989998", + "Low": "120.550003", + "Open": "120.550003", + "Volume": "9813300" + }, + { + "Close": "120.400002", + "Date": "2008/7/9", + "High": "124.5", + "Low": "120.400002", + "Open": "124.209999", + "Volume": "9506700" + }, + { + "Close": "123.18", + "Date": "2008/7/10", + "High": "123.540001", + "Low": "120.660004", + "Open": "120.660004", + "Volume": "10053600" + }, + { + "Close": "122.120003", + "Date": "2008/7/11", + "High": "123.739998", + "Low": "120.57", + "Open": "121.800003", + "Volume": "8841400" + }, + { + "Close": "121.540001", + "Date": "2008/7/14", + "High": "124.25", + "Low": "121.239998", + "Open": "123.510002", + "Volume": "8317400" + }, + { + "Close": "123.199997", + "Date": "2008/7/15", + "High": "124.5", + "Low": "119.900002", + "Open": "121", + "Volume": "10710500" + }, + { + "Close": "125.940002", + "Date": "2008/7/16", + "High": "126.889999", + "Low": "122.25", + "Open": "122.809998", + "Volume": "9898800" + }, + { + "Close": "126.519997", + "Date": "2008/7/17", + "High": "126.959999", + "Low": "124", + "Open": "126.389999", + "Volume": "12298200" + }, + { + "Close": "129.889999", + "Date": "2008/7/18", + "High": "130", + "Low": "125.419998", + "Open": "125.809998", + "Volume": "18317800" + }, + { + "Close": "128.660004", + "Date": "2008/7/21", + "High": "129.899994", + "Low": "127.639999", + "Open": "129.830002", + "Volume": "7779600" + }, + { + "Close": "130", + "Date": "2008/7/22", + "High": "130", + "Low": "127.260002", + "Open": "127.5", + "Volume": "11428600" + }, + { + "Close": "129.520004", + "Date": "2008/7/23", + "High": "130.330002", + "Low": "128.289993", + "Open": "129.779999", + "Volume": "10230300" + }, + { + "Close": "130", + "Date": "2008/7/24", + "High": "130.929993", + "Low": "128.800003", + "Open": "129.059998", + "Volume": "8946300" + }, + { + "Close": "128.529999", + "Date": "2008/7/25", + "High": "129.899994", + "Low": "128", + "Open": "129", + "Volume": "7565500" + }, + { + "Close": "126.25", + "Date": "2008/7/28", + "High": "128.440002", + "Low": "126.129997", + "Open": "127.690002", + "Volume": "6096800" + }, + { + "Close": "127.660004", + "Date": "2008/7/29", + "High": "128.169998", + "Low": "126.25", + "Open": "126.540001", + "Volume": "5979400" + }, + { + "Close": "128.860001", + "Date": "2008/7/30", + "High": "129", + "Low": "127.089996", + "Open": "128.119995", + "Volume": "5826100" + }, + { + "Close": "127.980003", + "Date": "2008/7/31", + "High": "129.5", + "Low": "127.739998", + "Open": "128.100006", + "Volume": "5857300" + }, + { + "Close": "126.639999", + "Date": "2008/8/1", + "High": "129.300003", + "Low": "126.279999", + "Open": "128.520004", + "Volume": "4939700" + }, + { + "Close": "127.559998", + "Date": "2008/8/4", + "High": "128.100006", + "Low": "126.25", + "Open": "126.769997", + "Volume": "5994900" + }, + { + "Close": "128.869995", + "Date": "2008/8/5", + "High": "128.899994", + "Low": "127.080002", + "Open": "128.199997", + "Volume": "6969900" + }, + { + "Close": "129.160004", + "Date": "2008/8/6", + "High": "129.5", + "Low": "127.75", + "Open": "128.449997", + "Volume": "6253800" + }, + { + "Close": "129.050003", + "Date": "2008/8/7", + "High": "129.970001", + "Low": "127.900002", + "Open": "128.300003", + "Volume": "6633500" + }, + { + "Close": "128.809998", + "Date": "2008/8/8", + "High": "129.880005", + "Low": "127.629997", + "Open": "128.5", + "Volume": "8561800" + }, + { + "Close": "126.599998", + "Date": "2008/8/11", + "High": "128.429993", + "Low": "125.75", + "Open": "128.429993", + "Volume": "7490400" + }, + { + "Close": "125.220001", + "Date": "2008/8/12", + "High": "126.5", + "Low": "124.400002", + "Open": "126.010002", + "Volume": "6996800" + }, + { + "Close": "125.800003", + "Date": "2008/8/13", + "High": "126.989998", + "Low": "124.75", + "Open": "125", + "Volume": "5857800" + }, + { + "Close": "126.940002", + "Date": "2008/8/14", + "High": "128.25", + "Low": "124.800003", + "Open": "125.010002", + "Volume": "6813000" + }, + { + "Close": "126.360001", + "Date": "2008/8/15", + "High": "127.190002", + "Low": "125.349998", + "Open": "127.07", + "Volume": "5566200" + }, + { + "Close": "124.589996", + "Date": "2008/8/18", + "High": "127", + "Low": "123.68", + "Open": "126.489998", + "Volume": "5970000" + }, + { + "Close": "122.559998", + "Date": "2008/8/19", + "High": "124.790001", + "Low": "122.010002", + "Open": "123.629997", + "Volume": "9311600" + }, + { + "Close": "122.510002", + "Date": "2008/8/20", + "High": "123.970001", + "Low": "122.010002", + "Open": "123.5", + "Volume": "6871600" + }, + { + "Close": "122.989998", + "Date": "2008/8/21", + "High": "123.43", + "Low": "121.550003", + "Open": "121.580002", + "Volume": "6315000" + }, + { + "Close": "124.93", + "Date": "2008/8/22", + "High": "125.349998", + "Low": "122.800003", + "Open": "123.300003", + "Volume": "5989200" + }, + { + "Close": "122.860001", + "Date": "2008/8/25", + "High": "124.93", + "Low": "122.699997", + "Open": "124.480003", + "Volume": "5827400" + }, + { + "Close": "122.5", + "Date": "2008/8/26", + "High": "122.849998", + "Low": "121.5", + "Open": "122.580002", + "Volume": "6218200" + }, + { + "Close": "123.379997", + "Date": "2008/8/27", + "High": "124.849998", + "Low": "122.18", + "Open": "122.419998", + "Volume": "5843800" + }, + { + "Close": "124.580002", + "Date": "2008/8/28", + "High": "125.449997", + "Low": "123.580002", + "Open": "124.059998", + "Volume": "5448200" + }, + { + "Close": "121.730003", + "Date": "2008/8/29", + "High": "123.989998", + "Low": "121.629997", + "Open": "123.709999", + "Volume": "7156000" + }, + { + "Close": "118.410004", + "Date": "2008/9/2", + "High": "124", + "Low": "117.900002", + "Open": "122.870003", + "Volume": "11749800" + }, + { + "Close": "118.339996", + "Date": "2008/9/3", + "High": "118.650002", + "Low": "115.150002", + "Open": "118.339996", + "Volume": "11316600" + }, + { + "Close": "115", + "Date": "2008/9/4", + "High": "118.900002", + "Low": "114.900002", + "Open": "117.989998", + "Volume": "10133800" + }, + { + "Close": "114.330002", + "Date": "2008/9/5", + "High": "115.089996", + "Low": "113.169998", + "Open": "114.150002", + "Volume": "8811400" + }, + { + "Close": "117.290001", + "Date": "2008/9/8", + "High": "118.279999", + "Low": "115.139999", + "Open": "118", + "Volume": "10452800" + }, + { + "Close": "115.040001", + "Date": "2008/9/9", + "High": "118.099998", + "Low": "115", + "Open": "117.779999", + "Volume": "8106300" + }, + { + "Close": "118.040001", + "Date": "2008/9/10", + "High": "119.949997", + "Low": "116.099998", + "Open": "116.400002", + "Volume": "11852200" + }, + { + "Close": "119.199997", + "Date": "2008/9/11", + "High": "119.370003", + "Low": "116.110001", + "Open": "116.599998", + "Volume": "9737400" + }, + { + "Close": "118.970001", + "Date": "2008/9/12", + "High": "119.279999", + "Low": "116.82", + "Open": "118.660004", + "Volume": "6635100" + }, + { + "Close": "115.190002", + "Date": "2008/9/15", + "High": "118.410004", + "Low": "115.190002", + "Open": "115.360001", + "Volume": "9908300" + }, + { + "Close": "116.050003", + "Date": "2008/9/16", + "High": "117.639999", + "Low": "113.32", + "Open": "113.730003", + "Volume": "13673200" + }, + { + "Close": "111.470001", + "Date": "2008/9/17", + "High": "115.5", + "Low": "110.610001", + "Open": "114.790001", + "Volume": "12298000" + }, + { + "Close": "115.120003", + "Date": "2008/9/18", + "High": "118.589996", + "Low": "111.040001", + "Open": "112.910004", + "Volume": "15995000" + }, + { + "Close": "118.849998", + "Date": "2008/9/19", + "High": "124", + "Low": "117.5", + "Open": "119.589996", + "Volume": "14432600" + }, + { + "Close": "116.209999", + "Date": "2008/9/22", + "High": "120.139999", + "Low": "116.019997", + "Open": "118.449997", + "Volume": "8844000" + }, + { + "Close": "115.360001", + "Date": "2008/9/23", + "High": "118.169998", + "Low": "114.139999", + "Open": "116.209999", + "Volume": "8012800" + }, + { + "Close": "116.459999", + "Date": "2008/9/24", + "High": "118.169998", + "Low": "114.260002", + "Open": "116.93", + "Volume": "6574100" + }, + { + "Close": "120.110001", + "Date": "2008/9/25", + "High": "121.989998", + "Low": "116.120003", + "Open": "117.75", + "Volume": "6539200" + }, + { + "Close": "119.419998", + "Date": "2008/9/26", + "High": "121.010002", + "Low": "117.010002", + "Open": "117.209999", + "Volume": "4760500" + }, + { + "Close": "114.459999", + "Date": "2008/9/29", + "High": "118.43", + "Low": "109.949997", + "Open": "117.440002", + "Volume": "9586700" + }, + { + "Close": "116.959999", + "Date": "2008/9/30", + "High": "116.959999", + "Low": "111.809998", + "Open": "115.830002", + "Volume": "18991900" + }, + { + "Close": "110.129997", + "Date": "2008/10/1", + "High": "116.800003", + "Low": "107.75", + "Open": "115.510002", + "Volume": "13134400" + }, + { + "Close": "104.739998", + "Date": "2008/10/2", + "High": "109.970001", + "Low": "103.040001", + "Open": "108.480003", + "Volume": "11458200" + }, + { + "Close": "103.440002", + "Date": "2008/10/3", + "High": "110.949997", + "Low": "103.029999", + "Open": "105.160004", + "Volume": "9637900" + }, + { + "Close": "100.620003", + "Date": "2008/10/6", + "High": "103", + "Low": "96.599998", + "Open": "101.209999", + "Volume": "11521400" + }, + { + "Close": "95.650002", + "Date": "2008/10/7", + "High": "102.620003", + "Low": "94.239998", + "Open": "101.5", + "Volume": "11416100" + }, + { + "Close": "90.550003", + "Date": "2008/10/8", + "High": "97.480003", + "Low": "89.980003", + "Open": "91.510002", + "Volume": "17980400" + }, + { + "Close": "89", + "Date": "2008/10/9", + "High": "95.309998", + "Low": "88.230003", + "Open": "95.290001", + "Volume": "21293600" + }, + { + "Close": "87.75", + "Date": "2008/10/10", + "High": "91.660004", + "Low": "83.510002", + "Open": "87.410004", + "Volume": "24637400" + }, + { + "Close": "92.209999", + "Date": "2008/10/13", + "High": "93.610001", + "Low": "86.949997", + "Open": "90.440002", + "Volume": "17101600" + }, + { + "Close": "93.599998", + "Date": "2008/10/14", + "High": "99", + "Low": "92", + "Open": "96.419998", + "Volume": "15114200" + }, + { + "Close": "88.290001", + "Date": "2008/10/15", + "High": "95.290001", + "Low": "87.709999", + "Open": "92.769997", + "Volume": "11330800" + }, + { + "Close": "91.519997", + "Date": "2008/10/16", + "High": "92", + "Low": "84.349998", + "Open": "89.379997", + "Volume": "16271300" + }, + { + "Close": "90.779999", + "Date": "2008/10/17", + "High": "95.910004", + "Low": "87.709999", + "Open": "91.75", + "Volume": "15230700" + }, + { + "Close": "92.510002", + "Date": "2008/10/20", + "High": "93.309998", + "Low": "89.330002", + "Open": "92.209999", + "Volume": "9747100" + }, + { + "Close": "88.860001", + "Date": "2008/10/21", + "High": "92.459999", + "Low": "88.57", + "Open": "92.220001", + "Volume": "9716400" + }, + { + "Close": "83.599998", + "Date": "2008/10/22", + "High": "87.589996", + "Low": "80.800003", + "Open": "87", + "Volume": "14198100" + }, + { + "Close": "84.349998", + "Date": "2008/10/23", + "High": "85.889999", + "Low": "81", + "Open": "84.089996", + "Volume": "12358000" + }, + { + "Close": "82.07", + "Date": "2008/10/24", + "High": "84.309998", + "Low": "78.82", + "Open": "79.269997", + "Volume": "12287300" + }, + { + "Close": "79.660004", + "Date": "2008/10/27", + "High": "84.5", + "Low": "79.010002", + "Open": "80.269997", + "Volume": "11099100" + }, + { + "Close": "87.279999", + "Date": "2008/10/28", + "High": "87.610001", + "Low": "79.519997", + "Open": "81.400002", + "Volume": "14205900" + }, + { + "Close": "88.199997", + "Date": "2008/10/29", + "High": "91", + "Low": "86.25", + "Open": "87.739998", + "Volume": "12692000" + }, + { + "Close": "90.690002", + "Date": "2008/10/30", + "High": "92.400002", + "Low": "88.900002", + "Open": "91.010002", + "Volume": "12033800" + }, + { + "Close": "92.970001", + "Date": "2008/10/31", + "High": "94.190002", + "Low": "89.029999", + "Open": "90.900002", + "Volume": "10506300" + }, + { + "Close": "92.68", + "Date": "2008/11/3", + "High": "94.669998", + "Low": "92.169998", + "Open": "92.639999", + "Volume": "7686300" + }, + { + "Close": "93.400002", + "Date": "2008/11/4", + "High": "94.760002", + "Low": "92.07", + "Open": "94.760002", + "Volume": "10173000" + }, + { + "Close": "89.940002", + "Date": "2008/11/5", + "High": "93.400002", + "Low": "89.699997", + "Open": "92.93", + "Volume": "8706200" + }, + { + "Close": "85.150002", + "Date": "2008/11/6", + "High": "88.830002", + "Low": "84.279999", + "Open": "87.68", + "Volume": "12522000" + }, + { + "Close": "86.269997", + "Date": "2008/11/7", + "High": "86.709999", + "Low": "84.25", + "Open": "85.779999", + "Volume": "7927800" + }, + { + "Close": "83.870003", + "Date": "2008/11/10", + "High": "88.099998", + "Low": "82.739998", + "Open": "87.989998", + "Volume": "9685100" + }, + { + "Close": "82.739998", + "Date": "2008/11/11", + "High": "84.290001", + "Low": "80.25", + "Open": "83.25", + "Volume": "10013600" + }, + { + "Close": "79.739998", + "Date": "2008/11/12", + "High": "82.400002", + "Low": "79.57", + "Open": "80.730003", + "Volume": "11368400" + }, + { + "Close": "84.209999", + "Date": "2008/11/13", + "High": "84.389999", + "Low": "75.400002", + "Open": "79.620003", + "Volume": "15103600" + }, + { + "Close": "80.330002", + "Date": "2008/11/14", + "High": "85.400002", + "Low": "79.5", + "Open": "82.629997", + "Volume": "12023700" + }, + { + "Close": "77.480003", + "Date": "2008/11/17", + "High": "79.739998", + "Low": "77.160004", + "Open": "79.400002", + "Volume": "10315300" + }, + { + "Close": "80.080002", + "Date": "2008/11/18", + "High": "80.93", + "Low": "77", + "Open": "79.129997", + "Volume": "13050600" + }, + { + "Close": "75.970001", + "Date": "2008/11/19", + "High": "81", + "Low": "75.730003", + "Open": "79.93", + "Volume": "12606400" + }, + { + "Close": "71.739998", + "Date": "2008/11/20", + "High": "78.389999", + "Low": "70.510002", + "Open": "75", + "Volume": "17634700" + }, + { + "Close": "74.879997", + "Date": "2008/11/21", + "High": "76.980003", + "Low": "69.5", + "Open": "72.739998", + "Volume": "19804500" + }, + { + "Close": "79.889999", + "Date": "2008/11/24", + "High": "82.089996", + "Low": "75", + "Open": "75.739998", + "Volume": "15023200" + }, + { + "Close": "80.650002", + "Date": "2008/11/25", + "High": "82.400002", + "Low": "78.220001", + "Open": "81.370003", + "Volume": "12519700" + }, + { + "Close": "81.669998", + "Date": "2008/11/26", + "High": "81.790001", + "Low": "78.610001", + "Open": "79.519997", + "Volume": "8240600" + }, + { + "Close": "81.599998", + "Date": "2008/11/28", + "High": "81.900002", + "Low": "80.099998", + "Open": "81", + "Volume": "3908300" + }, + { + "Close": "76.900002", + "Date": "2008/12/1", + "High": "81.360001", + "Low": "76.790001", + "Open": "80.949997", + "Volume": "10265000" + }, + { + "Close": "79.839996", + "Date": "2008/12/2", + "High": "80", + "Low": "76.139999", + "Open": "77.800003", + "Volume": "9305200" + }, + { + "Close": "80.669998", + "Date": "2008/12/3", + "High": "81", + "Low": "76.989998", + "Open": "78.620003", + "Volume": "9757800" + }, + { + "Close": "77.440002", + "Date": "2008/12/4", + "High": "80.830002", + "Low": "76.18", + "Open": "80.029999", + "Volume": "10914000" + }, + { + "Close": "80.589996", + "Date": "2008/12/5", + "High": "81.5", + "Low": "75.309998", + "Open": "76.779999", + "Volume": "11212000" + }, + { + "Close": "84.860001", + "Date": "2008/12/8", + "High": "85.879997", + "Low": "81.730003", + "Open": "82.57", + "Volume": "11177600" + }, + { + "Close": "82.690002", + "Date": "2008/12/9", + "High": "85.43", + "Low": "82.199997", + "Open": "83.82", + "Volume": "9356400" + }, + { + "Close": "82.860001", + "Date": "2008/12/10", + "High": "84.989998", + "Low": "81.830002", + "Open": "83.949997", + "Volume": "8187000" + }, + { + "Close": "80.580002", + "Date": "2008/12/11", + "High": "82.860001", + "Low": "79.769997", + "Open": "81.5", + "Volume": "10682400" + }, + { + "Close": "82.199997", + "Date": "2008/12/12", + "High": "82.940002", + "Low": "78.059998", + "Open": "78.68", + "Volume": "10381700" + }, + { + "Close": "82.769997", + "Date": "2008/12/15", + "High": "83.540001", + "Low": "80", + "Open": "82.510002", + "Volume": "8848200" + }, + { + "Close": "86.400002", + "Date": "2008/12/16", + "High": "86.839996", + "Low": "82.870003", + "Open": "83.110001", + "Volume": "11559800" + }, + { + "Close": "85.839996", + "Date": "2008/12/17", + "High": "87.269997", + "Low": "84.660004", + "Open": "85.440002", + "Volume": "8592000" + }, + { + "Close": "84", + "Date": "2008/12/18", + "High": "86.639999", + "Low": "82.959999", + "Open": "85.769997", + "Volume": "8029500" + }, + { + "Close": "83.519997", + "Date": "2008/12/19", + "High": "85.220001", + "Low": "82.970001", + "Open": "85.220001", + "Volume": "13098600" + }, + { + "Close": "81.989998", + "Date": "2008/12/22", + "High": "83.449997", + "Low": "80.32", + "Open": "83.269997", + "Volume": "7083300" + }, + { + "Close": "80.599998", + "Date": "2008/12/23", + "High": "82.809998", + "Low": "80.129997", + "Open": "82.349998", + "Volume": "6374400" + }, + { + "Close": "80.519997", + "Date": "2008/12/24", + "High": "81.220001", + "Low": "79.919998", + "Open": "80.550003", + "Volume": "2415200" + }, + { + "Close": "81.330002", + "Date": "2008/12/26", + "High": "81.800003", + "Low": "80.550003", + "Open": "80.93", + "Volume": "3101300" + }, + { + "Close": "81.25", + "Date": "2008/12/29", + "High": "81.720001", + "Low": "79.68", + "Open": "81.720001", + "Volume": "6062600" + }, + { + "Close": "83.550003", + "Date": "2008/12/30", + "High": "83.639999", + "Low": "81.519997", + "Open": "81.830002", + "Volume": "5774400" + }, + { + "Close": "84.160004", + "Date": "2008/12/31", + "High": "85", + "Low": "83.5", + "Open": "83.5", + "Volume": "6667700" + }, + { + "Close": "87.370003", + "Date": "2009/1/2", + "High": "87.589996", + "Low": "83.889999", + "Open": "83.889999", + "Volume": "7558200" + }, + { + "Close": "86.82", + "Date": "2009/1/5", + "High": "87.669998", + "Low": "86.18", + "Open": "86.419998", + "Volume": "8315700" + }, + { + "Close": "89.230003", + "Date": "2009/1/6", + "High": "90.410004", + "Low": "86.370003", + "Open": "87.110001", + "Volume": "9649500" + }, + { + "Close": "87.790001", + "Date": "2009/1/7", + "High": "88.800003", + "Low": "87.120003", + "Open": "87.830002", + "Volume": "8455100" + }, + { + "Close": "87.18", + "Date": "2009/1/8", + "High": "88.139999", + "Low": "85.980003", + "Open": "87.809998", + "Volume": "7231800" + }, + { + "Close": "84.699997", + "Date": "2009/1/9", + "High": "87.5", + "Low": "84.25", + "Open": "87.050003", + "Volume": "7440300" + }, + { + "Close": "85.709999", + "Date": "2009/1/12", + "High": "86.599998", + "Low": "84.419998", + "Open": "84.57", + "Volume": "8072700" + }, + { + "Close": "85.339996", + "Date": "2009/1/13", + "High": "86.589996", + "Low": "84.790001", + "Open": "85.5", + "Volume": "7657200" + }, + { + "Close": "83.190002", + "Date": "2009/1/14", + "High": "84.82", + "Low": "82.110001", + "Open": "84.199997", + "Volume": "9470000" + }, + { + "Close": "84.120003", + "Date": "2009/1/15", + "High": "84.830002", + "Low": "82.260002", + "Open": "83.610001", + "Volume": "11734800" + }, + { + "Close": "84.919998", + "Date": "2009/1/16", + "High": "85.739998", + "Low": "83.080002", + "Open": "84.610001", + "Volume": "11245300" + }, + { + "Close": "81.980003", + "Date": "2009/1/20", + "High": "84.919998", + "Low": "81.760002", + "Open": "84.760002", + "Volume": "13800100" + }, + { + "Close": "91.419998", + "Date": "2009/1/21", + "High": "91.599998", + "Low": "86", + "Open": "86.290001", + "Volume": "24905000" + }, + { + "Close": "90.07", + "Date": "2009/1/22", + "High": "90.739998", + "Low": "88.110001", + "Open": "89.830002", + "Volume": "12350700" + }, + { + "Close": "89.489998", + "Date": "2009/1/23", + "High": "90.699997", + "Low": "87.809998", + "Open": "88.400002", + "Volume": "10253700" + }, + { + "Close": "91.599998", + "Date": "2009/1/26", + "High": "92.669998", + "Low": "89.519997", + "Open": "89.769997", + "Volume": "9840800" + }, + { + "Close": "91.660004", + "Date": "2009/1/27", + "High": "91.970001", + "Low": "90.5", + "Open": "91.769997", + "Volume": "8720800" + }, + { + "Close": "94.82", + "Date": "2009/1/28", + "High": "94.940002", + "Low": "91.910004", + "Open": "92.699997", + "Volume": "13407200" + }, + { + "Close": "92.510002", + "Date": "2009/1/29", + "High": "94.580002", + "Low": "92.019997", + "Open": "93.580002", + "Volume": "9233500" + }, + { + "Close": "91.650002", + "Date": "2009/1/30", + "High": "93.480003", + "Low": "91.25", + "Open": "92.230003", + "Volume": "9617000" + }, + { + "Close": "90.93", + "Date": "2009/2/2", + "High": "91.860001", + "Low": "89.690002", + "Open": "90.599998", + "Volume": "9926400" + }, + { + "Close": "93.480003", + "Date": "2009/2/3", + "High": "93.730003", + "Low": "90.160004", + "Open": "91.07", + "Volume": "8864500" + }, + { + "Close": "92.830002", + "Date": "2009/2/4", + "High": "94.910004", + "Low": "91.82", + "Open": "93.739998", + "Volume": "10189800" + }, + { + "Close": "92.410004", + "Date": "2009/2/5", + "High": "93.199997", + "Low": "91.220001", + "Open": "92.129997", + "Volume": "11622900" + }, + { + "Close": "96.139999", + "Date": "2009/2/6", + "High": "97.099998", + "Low": "91.650002", + "Open": "92.510002", + "Volume": "13055900" + }, + { + "Close": "96.82", + "Date": "2009/2/9", + "High": "96.980003", + "Low": "94.720001", + "Open": "95.93", + "Volume": "8165800" + }, + { + "Close": "93.269997", + "Date": "2009/2/10", + "High": "96.82", + "Low": "92.959999", + "Open": "95.580002", + "Volume": "13541300" + }, + { + "Close": "95.160004", + "Date": "2009/2/11", + "High": "95.769997", + "Low": "93", + "Open": "93.480003", + "Volume": "10765700" + }, + { + "Close": "95.07", + "Date": "2009/2/12", + "High": "95.199997", + "Low": "92.199997", + "Open": "94.410004", + "Volume": "9917700" + }, + { + "Close": "93.839996", + "Date": "2009/2/13", + "High": "95.18", + "Low": "93.57", + "Open": "94.790001", + "Volume": "6742400" + }, + { + "Close": "90.669998", + "Date": "2009/2/17", + "High": "92.489998", + "Low": "90.5", + "Open": "91.730003", + "Volume": "8903500" + }, + { + "Close": "91.510002", + "Date": "2009/2/18", + "High": "92.25", + "Low": "90.440002", + "Open": "91.169998", + "Volume": "8492600" + }, + { + "Close": "88.93", + "Date": "2009/2/19", + "High": "92.160004", + "Low": "88.449997", + "Open": "91.059998", + "Volume": "12622700" + }, + { + "Close": "88.790001", + "Date": "2009/2/20", + "High": "89.900002", + "Low": "87.339996", + "Open": "88.050003", + "Volume": "12400700" + }, + { + "Close": "84.370003", + "Date": "2009/2/23", + "High": "89.330002", + "Low": "84.190002", + "Open": "89.300003", + "Volume": "13509600" + }, + { + "Close": "86.400002", + "Date": "2009/2/24", + "High": "87.080002", + "Low": "84.099998", + "Open": "84.629997", + "Volume": "12915300" + }, + { + "Close": "85.900002", + "Date": "2009/2/25", + "High": "87.120003", + "Low": "82.849998", + "Open": "86", + "Volume": "12646400" + }, + { + "Close": "88.970001", + "Date": "2009/2/26", + "High": "90.199997", + "Low": "86.330002", + "Open": "86.849998", + "Volume": "17423200" + }, + { + "Close": "92.029999", + "Date": "2009/2/27", + "High": "93.279999", + "Low": "88.010002", + "Open": "88.120003", + "Volume": "21311200" + }, + { + "Close": "89.050003", + "Date": "2009/3/2", + "High": "91.900002", + "Low": "88.75", + "Open": "91.169998", + "Volume": "15231700" + }, + { + "Close": "87.769997", + "Date": "2009/3/3", + "High": "90.18", + "Low": "87.190002", + "Open": "90.160004", + "Volume": "13744100" + }, + { + "Close": "89.489998", + "Date": "2009/3/4", + "High": "91.239998", + "Low": "87.599998", + "Open": "88.970001", + "Volume": "15391700" + }, + { + "Close": "87.480003", + "Date": "2009/3/5", + "High": "90.160004", + "Low": "87.019997", + "Open": "88.129997", + "Volume": "14930100" + }, + { + "Close": "85.809998", + "Date": "2009/3/6", + "High": "88.25", + "Low": "83.809998", + "Open": "87.470001", + "Volume": "15186000" + }, + { + "Close": "83.480003", + "Date": "2009/3/9", + "High": "86.800003", + "Low": "83.019997", + "Open": "84.699997", + "Volume": "13151800" + }, + { + "Close": "87.25", + "Date": "2009/3/10", + "High": "87.25", + "Low": "83.639999", + "Open": "85.110001", + "Volume": "15914800" + }, + { + "Close": "88.620003", + "Date": "2009/3/11", + "High": "89.540001", + "Low": "86.720001", + "Open": "87.510002", + "Volume": "11823900" + }, + { + "Close": "90.400002", + "Date": "2009/3/12", + "High": "90.599998", + "Low": "87.489998", + "Open": "88.589996", + "Volume": "11829200" + }, + { + "Close": "90.360001", + "Date": "2009/3/13", + "High": "90.650002", + "Low": "89.290001", + "Open": "90.400002", + "Volume": "9111900" + }, + { + "Close": "91.220001", + "Date": "2009/3/16", + "High": "93", + "Low": "90.540001", + "Open": "91.650002", + "Volume": "11793700" + }, + { + "Close": "92.910004", + "Date": "2009/3/17", + "High": "92.910004", + "Low": "90.449997", + "Open": "91.110001", + "Volume": "11489700" + }, + { + "Close": "91.949997", + "Date": "2009/3/18", + "High": "92.900002", + "Low": "89.410004", + "Open": "89.459999", + "Volume": "17954300" + }, + { + "Close": "92.660004", + "Date": "2009/3/19", + "High": "93.349998", + "Low": "91.510002", + "Open": "92.839996", + "Volume": "9899300" + }, + { + "Close": "92.510002", + "Date": "2009/3/20", + "High": "95", + "Low": "92.18", + "Open": "93.160004", + "Volume": "12193900" + }, + { + "Close": "98.709999", + "Date": "2009/3/23", + "High": "98.709999", + "Low": "93.699997", + "Open": "93.699997", + "Volume": "12407200" + }, + { + "Close": "98.300003", + "Date": "2009/3/24", + "High": "99.550003", + "Low": "97.519997", + "Open": "97.690002", + "Volume": "9346700" + }, + { + "Close": "97.949997", + "Date": "2009/3/25", + "High": "99.860001", + "Low": "96.089996", + "Open": "98.470001", + "Volume": "12017000" + }, + { + "Close": "98.779999", + "Date": "2009/3/26", + "High": "99.199997", + "Low": "97.75", + "Open": "98.470001", + "Volume": "11434600" + }, + { + "Close": "94.150002", + "Date": "2009/3/27", + "High": "96", + "Low": "92.75", + "Open": "95.989998", + "Volume": "15745200" + }, + { + "Close": "94.519997", + "Date": "2009/3/30", + "High": "94.739998", + "Low": "91.800003", + "Open": "92", + "Volume": "10964000" + }, + { + "Close": "96.889999", + "Date": "2009/3/31", + "High": "98.660004", + "Low": "94.849998", + "Open": "94.959999", + "Volume": "14553700" + }, + { + "Close": "97.610001", + "Date": "2009/4/1", + "High": "98", + "Low": "95.699997", + "Open": "96.129997", + "Volume": "12212900" + }, + { + "Close": "100.82", + "Date": "2009/4/2", + "High": "101.989998", + "Low": "98.379997", + "Open": "99.150002", + "Volume": "16219000" + }, + { + "Close": "102.220001", + "Date": "2009/4/3", + "High": "102.660004", + "Low": "99.709999", + "Open": "99.730003", + "Volume": "10962900" + }, + { + "Close": "101.559998", + "Date": "2009/4/6", + "High": "101.849998", + "Low": "100", + "Open": "100.900002", + "Volume": "8819800" + }, + { + "Close": "98.75", + "Date": "2009/4/7", + "High": "100.5", + "Low": "98.519997", + "Open": "100.169998", + "Volume": "8768400" + }, + { + "Close": "101.190002", + "Date": "2009/4/8", + "High": "101.550003", + "Low": "99", + "Open": "99.449997", + "Volume": "7285200" + }, + { + "Close": "101.699997", + "Date": "2009/4/9", + "High": "102.449997", + "Low": "100.25", + "Open": "102.010002", + "Volume": "8013700" + }, + { + "Close": "99.949997", + "Date": "2009/4/13", + "High": "101.650002", + "Low": "99.040001", + "Open": "100.279999", + "Volume": "7797200" + }, + { + "Close": "99.269997", + "Date": "2009/4/14", + "High": "99.949997", + "Low": "98.269997", + "Open": "99.080002", + "Volume": "6276700" + }, + { + "Close": "98.849998", + "Date": "2009/4/15", + "High": "99.059998", + "Low": "96.440002", + "Open": "98.230003", + "Volume": "8164200" + }, + { + "Close": "101.43", + "Date": "2009/4/16", + "High": "101.919998", + "Low": "99.18", + "Open": "99.739998", + "Volume": "9259500" + }, + { + "Close": "101.269997", + "Date": "2009/4/17", + "High": "102.040001", + "Low": "99.690002", + "Open": "101.18", + "Volume": "10214200" + }, + { + "Close": "100.43", + "Date": "2009/4/20", + "High": "101.190002", + "Low": "99.209999", + "Open": "100.290001", + "Volume": "12524700" + }, + { + "Close": "102.309998", + "Date": "2009/4/21", + "High": "102.480003", + "Low": "98.199997", + "Open": "98.410004", + "Volume": "15226700" + }, + { + "Close": "102.550003", + "Date": "2009/4/22", + "High": "103.860001", + "Low": "101.059998", + "Open": "101.169998", + "Volume": "12120000" + }, + { + "Close": "101.419998", + "Date": "2009/4/23", + "High": "102.779999", + "Low": "99.800003", + "Open": "102.650002", + "Volume": "9440400" + }, + { + "Close": "100.080002", + "Date": "2009/4/24", + "High": "101.580002", + "Low": "99.5", + "Open": "101.169998", + "Volume": "10157500" + }, + { + "Close": "99.949997", + "Date": "2009/4/27", + "High": "101.690002", + "Low": "99.290001", + "Open": "99.610001", + "Volume": "8611400" + }, + { + "Close": "101.940002", + "Date": "2009/4/28", + "High": "102.730003", + "Low": "99.25", + "Open": "99.360001", + "Volume": "11110500" + }, + { + "Close": "104.040001", + "Date": "2009/4/29", + "High": "105", + "Low": "101.669998", + "Open": "101.980003", + "Volume": "9783700" + }, + { + "Close": "103.209999", + "Date": "2009/4/30", + "High": "106.050003", + "Low": "102.849998", + "Open": "104.550003", + "Volume": "10654500" + }, + { + "Close": "104.610001", + "Date": "2009/5/1", + "High": "104.860001", + "Low": "102.940002", + "Open": "103.779999", + "Volume": "6234200" + }, + { + "Close": "106.190002", + "Date": "2009/5/4", + "High": "106.75", + "Low": "104.610001", + "Open": "105.260002", + "Volume": "8313900" + }, + { + "Close": "105.849998", + "Date": "2009/5/5", + "High": "106.82", + "Low": "105.510002", + "Open": "106", + "Volume": "6750000" + }, + { + "Close": "104.620003", + "Date": "2009/5/6", + "High": "105.5", + "Low": "103.709999", + "Open": "105.230003", + "Volume": "7530900" + }, + { + "Close": "102.589996", + "Date": "2009/5/7", + "High": "104.800003", + "Low": "101.830002", + "Open": "104.650002", + "Volume": "8521400" + }, + { + "Close": "101.489998", + "Date": "2009/5/8", + "High": "103.75", + "Low": "99.830002", + "Open": "103.580002", + "Volume": "11575500" + }, + { + "Close": "102.900002", + "Date": "2009/5/11", + "High": "103.879997", + "Low": "100.949997", + "Open": "101.089996", + "Volume": "8253000" + }, + { + "Close": "103.940002", + "Date": "2009/5/12", + "High": "104.379997", + "Low": "102.370003", + "Open": "102.980003", + "Volume": "7961600" + }, + { + "Close": "102.260002", + "Date": "2009/5/13", + "High": "103.099998", + "Low": "101.349998", + "Open": "102.879997", + "Volume": "8202100" + }, + { + "Close": "101.050003", + "Date": "2009/5/14", + "High": "102.709999", + "Low": "100.769997", + "Open": "101.720001", + "Volume": "9445100" + }, + { + "Close": "101.370003", + "Date": "2009/5/15", + "High": "103.07", + "Low": "100.57", + "Open": "100.900002", + "Volume": "8367400" + }, + { + "Close": "104.580002", + "Date": "2009/5/18", + "High": "104.709999", + "Low": "101.940002", + "Open": "102", + "Volume": "7429500" + }, + { + "Close": "105.510002", + "Date": "2009/5/19", + "High": "106.120003", + "Low": "104", + "Open": "104.330002", + "Volume": "7079200" + }, + { + "Close": "104.050003", + "Date": "2009/5/20", + "High": "105.980003", + "Low": "103.809998", + "Open": "105.510002", + "Volume": "7083100" + }, + { + "Close": "102.82", + "Date": "2009/5/21", + "High": "103.25", + "Low": "101.739998", + "Open": "103.07", + "Volume": "7411500" + }, + { + "Close": "101.889999", + "Date": "2009/5/22", + "High": "103.309998", + "Low": "101.75", + "Open": "102.669998", + "Volume": "5596200" + }, + { + "Close": "105.019997", + "Date": "2009/5/26", + "High": "105.629997", + "Low": "101.019997", + "Open": "101.32", + "Volume": "7211200" + }, + { + "Close": "102.93", + "Date": "2009/5/27", + "High": "105.169998", + "Low": "102.910004", + "Open": "104.339996", + "Volume": "7119600" + }, + { + "Close": "104.690002", + "Date": "2009/5/28", + "High": "105.139999", + "Low": "102.68", + "Open": "103.339996", + "Volume": "6127500" + }, + { + "Close": "106.279999", + "Date": "2009/5/29", + "High": "106.5", + "Low": "103.949997", + "Open": "104.470001", + "Volume": "6871800" + }, + { + "Close": "108.370003", + "Date": "2009/6/1", + "High": "108.669998", + "Low": "106.669998", + "Open": "106.940002", + "Volume": "7725000" + }, + { + "Close": "106.830002", + "Date": "2009/6/2", + "High": "108.800003", + "Low": "106.660004", + "Open": "107.510002", + "Volume": "7045800" + }, + { + "Close": "106.489998", + "Date": "2009/6/3", + "High": "106.599998", + "Low": "105.110001", + "Open": "106.529999", + "Volume": "7688000" + }, + { + "Close": "106.330002", + "Date": "2009/6/4", + "High": "106.870003", + "Low": "105.599998", + "Open": "106.169998", + "Volume": "5468500" + }, + { + "Close": "107.239998", + "Date": "2009/6/5", + "High": "108.400002", + "Low": "106.75", + "Open": "107.330002", + "Volume": "7665000" + }, + { + "Close": "107.489998", + "Date": "2009/6/8", + "High": "107.980003", + "Low": "105.5", + "Open": "106.639999", + "Volume": "6363800" + }, + { + "Close": "108.139999", + "Date": "2009/6/9", + "High": "109.139999", + "Low": "107.989998", + "Open": "108.150002", + "Volume": "8585900" + }, + { + "Close": "108.349998", + "Date": "2009/6/10", + "High": "109.279999", + "Low": "107.050003", + "Open": "109.199997", + "Volume": "7578100" + }, + { + "Close": "109.400002", + "Date": "2009/6/11", + "High": "110.639999", + "Low": "108.559998", + "Open": "108.75", + "Volume": "9134300" + }, + { + "Close": "108.209999", + "Date": "2009/6/12", + "High": "109.279999", + "Low": "107.75", + "Open": "108.400002", + "Volume": "7250900" + }, + { + "Close": "107.620003", + "Date": "2009/6/15", + "High": "108.830002", + "Low": "107.239998", + "Open": "107.629997", + "Volume": "8567600" + }, + { + "Close": "107.32", + "Date": "2009/6/16", + "High": "109.139999", + "Low": "107.269997", + "Open": "108.470001", + "Volume": "7231000" + }, + { + "Close": "107", + "Date": "2009/6/17", + "High": "107.879997", + "Low": "106.879997", + "Open": "107.459999", + "Volume": "7366200" + }, + { + "Close": "106.330002", + "Date": "2009/6/18", + "High": "107.529999", + "Low": "106.120003", + "Open": "106.93", + "Volume": "6206900" + }, + { + "Close": "105.889999", + "Date": "2009/6/19", + "High": "106.650002", + "Low": "105.5", + "Open": "106.309998", + "Volume": "13559000" + }, + { + "Close": "104.519997", + "Date": "2009/6/22", + "High": "105.879997", + "Low": "104.230003", + "Open": "105.18", + "Volume": "7295400" + }, + { + "Close": "104.440002", + "Date": "2009/6/23", + "High": "104.870003", + "Low": "103.790001", + "Open": "104.75", + "Volume": "5152600" + }, + { + "Close": "104.150002", + "Date": "2009/6/24", + "High": "106.480003", + "Low": "103.720001", + "Open": "105.389999", + "Volume": "6395200" + }, + { + "Close": "106.059998", + "Date": "2009/6/25", + "High": "106.790001", + "Low": "103.510002", + "Open": "103.699997", + "Volume": "6900600" + }, + { + "Close": "105.68", + "Date": "2009/6/26", + "High": "106.5", + "Low": "105.050003", + "Open": "106.5", + "Volume": "5127900" + }, + { + "Close": "105.830002", + "Date": "2009/6/29", + "High": "106.18", + "Low": "105.160004", + "Open": "105.989998", + "Volume": "4681800" + }, + { + "Close": "104.419998", + "Date": "2009/6/30", + "High": "106.029999", + "Low": "103.809998", + "Open": "105.690002", + "Volume": "7512600" + }, + { + "Close": "104.839996", + "Date": "2009/7/1", + "High": "106.269997", + "Low": "104.730003", + "Open": "105", + "Volume": "5537300" + }, + { + "Close": "101.730003", + "Date": "2009/7/2", + "High": "103.910004", + "Low": "101.730003", + "Open": "103.800003", + "Volume": "7026700" + }, + { + "Close": "101.650002", + "Date": "2009/7/6", + "High": "102.230003", + "Low": "100.470001", + "Open": "101.57", + "Volume": "6522500" + }, + { + "Close": "100.190002", + "Date": "2009/7/7", + "High": "101.959999", + "Low": "100.029999", + "Open": "101.339996", + "Volume": "6685600" + }, + { + "Close": "100.68", + "Date": "2009/7/8", + "High": "101.169998", + "Low": "99.5", + "Open": "100.290001", + "Volume": "7380800" + }, + { + "Close": "102.080002", + "Date": "2009/7/9", + "High": "102.779999", + "Low": "100.849998", + "Open": "101.120003", + "Volume": "6153200" + }, + { + "Close": "100.830002", + "Date": "2009/7/10", + "High": "101.720001", + "Low": "99.800003", + "Open": "100.970001", + "Volume": "7465900" + }, + { + "Close": "103.620003", + "Date": "2009/7/13", + "High": "103.650002", + "Low": "100.190002", + "Open": "101.279999", + "Volume": "9494300" + }, + { + "Close": "103.25", + "Date": "2009/7/14", + "High": "103.620003", + "Low": "102.519997", + "Open": "103.419998", + "Volume": "5413500" + }, + { + "Close": "107.220001", + "Date": "2009/7/15", + "High": "107.220001", + "Low": "104.599998", + "Open": "104.75", + "Volume": "8699100" + }, + { + "Close": "110.639999", + "Date": "2009/7/16", + "High": "110.970001", + "Low": "106.790001", + "Open": "106.839996", + "Volume": "14997900" + }, + { + "Close": "115.419998", + "Date": "2009/7/17", + "High": "115.529999", + "Low": "113.160004", + "Open": "113.410004", + "Volume": "20188900" + }, + { + "Close": "116.440002", + "Date": "2009/7/20", + "High": "116.879997", + "Low": "114.389999", + "Open": "114.529999", + "Volume": "10682500" + }, + { + "Close": "117.040001", + "Date": "2009/7/21", + "High": "117.040001", + "Low": "115.379997", + "Open": "115.870003", + "Volume": "8301700" + }, + { + "Close": "115.57", + "Date": "2009/7/22", + "High": "117.199997", + "Low": "115.089996", + "Open": "116.18", + "Volume": "8813400" + }, + { + "Close": "117.059998", + "Date": "2009/7/23", + "High": "118", + "Low": "115.059998", + "Open": "115.059998", + "Volume": "8461400" + }, + { + "Close": "117.639999", + "Date": "2009/7/24", + "High": "118.150002", + "Low": "116.629997", + "Open": "116.68", + "Volume": "6261000" + }, + { + "Close": "117.629997", + "Date": "2009/7/27", + "High": "117.919998", + "Low": "116.57", + "Open": "116.949997", + "Volume": "5069200" + }, + { + "Close": "117.279999", + "Date": "2009/7/28", + "High": "117.519997", + "Low": "116.339996", + "Open": "116.629997", + "Volume": "5782900" + }, + { + "Close": "117.260002", + "Date": "2009/7/29", + "High": "117.279999", + "Low": "116.050003", + "Open": "116.360001", + "Volume": "5100900" + }, + { + "Close": "117.860001", + "Date": "2009/7/30", + "High": "119.370003", + "Low": "117.669998", + "Open": "118", + "Volume": "6803100" + }, + { + "Close": "117.93", + "Date": "2009/7/31", + "High": "118.989998", + "Low": "117.559998", + "Open": "117.559998", + "Volume": "5329600" + }, + { + "Close": "119.919998", + "Date": "2009/8/3", + "High": "119.959999", + "Low": "118.690002", + "Open": "118.879997", + "Volume": "6108200" + }, + { + "Close": "119.599998", + "Date": "2009/8/4", + "High": "119.800003", + "Low": "119.019997", + "Open": "119.169998", + "Volume": "4993500" + }, + { + "Close": "118.470001", + "Date": "2009/8/5", + "High": "119", + "Low": "117.860001", + "Open": "118.519997", + "Volume": "5025800" + }, + { + "Close": "117.379997", + "Date": "2009/8/6", + "High": "118.400002", + "Low": "116.699997", + "Open": "118.309998", + "Volume": "6003100" + }, + { + "Close": "119.330002", + "Date": "2009/8/7", + "High": "119.910004", + "Low": "118.110001", + "Open": "118.110001", + "Volume": "5763200" + }, + { + "Close": "118.699997", + "Date": "2009/8/10", + "High": "119.190002", + "Low": "117.970001", + "Open": "118.169998", + "Volume": "3981300" + }, + { + "Close": "117.790001", + "Date": "2009/8/11", + "High": "118.5", + "Low": "117.32", + "Open": "118.029999", + "Volume": "4844500" + }, + { + "Close": "119.290001", + "Date": "2009/8/12", + "High": "119.959999", + "Low": "117.419998", + "Open": "117.599998", + "Volume": "6289700" + }, + { + "Close": "119.580002", + "Date": "2009/8/13", + "High": "119.779999", + "Low": "118.629997", + "Open": "119.279999", + "Volume": "5489200" + }, + { + "Close": "118.57", + "Date": "2009/8/14", + "High": "119.739998", + "Low": "117.620003", + "Open": "119.290001", + "Volume": "4796400" + }, + { + "Close": "116.860001", + "Date": "2009/8/17", + "High": "117.440002", + "Low": "116.209999", + "Open": "116.690002", + "Volume": "5349600" + }, + { + "Close": "117.629997", + "Date": "2009/8/18", + "High": "118", + "Low": "116.730003", + "Open": "116.809998", + "Volume": "4286200" + }, + { + "Close": "118.57", + "Date": "2009/8/19", + "High": "118.769997", + "Low": "116.120003", + "Open": "116.360001", + "Volume": "4837900" + }, + { + "Close": "118.949997", + "Date": "2009/8/20", + "High": "119.410004", + "Low": "118.099998", + "Open": "118.440002", + "Volume": "4841700" + }, + { + "Close": "119.900002", + "Date": "2009/8/21", + "High": "120.010002", + "Low": "118.550003", + "Open": "119.650002", + "Volume": "8306800" + }, + { + "Close": "119.32", + "Date": "2009/8/24", + "High": "120.879997", + "Low": "119.099998", + "Open": "119.919998", + "Volume": "6363400" + }, + { + "Close": "118.830002", + "Date": "2009/8/25", + "High": "120.150002", + "Low": "118.709999", + "Open": "119.25", + "Volume": "4652200" + }, + { + "Close": "119.470001", + "Date": "2009/8/26", + "High": "119.849998", + "Low": "117.510002", + "Open": "118.639999", + "Volume": "4515500" + }, + { + "Close": "119.43", + "Date": "2009/8/27", + "High": "119.589996", + "Low": "117.849998", + "Open": "118.730003", + "Volume": "4356900" + }, + { + "Close": "118.220001", + "Date": "2009/8/28", + "High": "120.230003", + "Low": "117.769997", + "Open": "120.099998", + "Volume": "6235700" + }, + { + "Close": "118.050003", + "Date": "2009/8/31", + "High": "118.059998", + "Low": "116.919998", + "Open": "117.099998", + "Volume": "5439400" + }, + { + "Close": "116.690002", + "Date": "2009/9/1", + "High": "118.93", + "Low": "116.5", + "Open": "117.669998", + "Volume": "6303800" + }, + { + "Close": "116.089996", + "Date": "2009/9/2", + "High": "117.239998", + "Low": "116", + "Open": "116.339996", + "Volume": "5178800" + }, + { + "Close": "116.330002", + "Date": "2009/9/3", + "High": "116.730003", + "Low": "115.150002", + "Open": "116.550003", + "Volume": "4936200" + }, + { + "Close": "117.459999", + "Date": "2009/9/4", + "High": "117.5", + "Low": "116.209999", + "Open": "116.580002", + "Volume": "3451700" + }, + { + "Close": "117.160004", + "Date": "2009/9/8", + "High": "118.169998", + "Low": "116.629997", + "Open": "117.940002", + "Volume": "5797500" + }, + { + "Close": "116.760002", + "Date": "2009/9/9", + "High": "117.669998", + "Low": "116.160004", + "Open": "117.029999", + "Volume": "5248100" + }, + { + "Close": "117.669998", + "Date": "2009/9/10", + "High": "117.830002", + "Low": "116.75", + "Open": "116.989998", + "Volume": "4889400" + }, + { + "Close": "118.050003", + "Date": "2009/9/11", + "High": "119.25", + "Low": "117.470001", + "Open": "117.800003", + "Volume": "5893700" + }, + { + "Close": "118.879997", + "Date": "2009/9/14", + "High": "118.989998", + "Low": "116.940002", + "Open": "117", + "Volume": "4758600" + }, + { + "Close": "119.349998", + "Date": "2009/9/15", + "High": "119.449997", + "Low": "118.160004", + "Open": "118.779999", + "Volume": "6536000" + }, + { + "Close": "121.82", + "Date": "2009/9/16", + "High": "122", + "Low": "119.300003", + "Open": "119.5", + "Volume": "11236700" + }, + { + "Close": "121.879997", + "Date": "2009/9/17", + "High": "122.779999", + "Low": "121.050003", + "Open": "121.139999", + "Volume": "8392600" + }, + { + "Close": "122.110001", + "Date": "2009/9/18", + "High": "122.879997", + "Low": "121.620003", + "Open": "122.449997", + "Volume": "9935800" + }, + { + "Close": "121.57", + "Date": "2009/9/21", + "High": "122.080002", + "Low": "120.879997", + "Open": "121.029999", + "Volume": "4515100" + }, + { + "Close": "121.610001", + "Date": "2009/9/22", + "High": "122.110001", + "Low": "120.980003", + "Open": "122.089996", + "Volume": "5564700" + }, + { + "Close": "120.82", + "Date": "2009/9/23", + "High": "122.739998", + "Low": "120.709999", + "Open": "121.260002", + "Volume": "5538100" + }, + { + "Close": "120.940002", + "Date": "2009/9/24", + "High": "121.650002", + "Low": "120.400002", + "Open": "120.690002", + "Volume": "5426800" + }, + { + "Close": "121.080002", + "Date": "2009/9/25", + "High": "121.650002", + "Low": "120.099998", + "Open": "120.269997", + "Volume": "5187900" + }, + { + "Close": "119.330002", + "Date": "2009/9/28", + "High": "122", + "Low": "118.940002", + "Open": "120.519997", + "Volume": "8248600" + }, + { + "Close": "118.809998", + "Date": "2009/9/29", + "High": "119.940002", + "Low": "118.599998", + "Open": "119.360001", + "Volume": "6748800" + }, + { + "Close": "119.610001", + "Date": "2009/9/30", + "High": "120", + "Low": "117.550003", + "Open": "119.18", + "Volume": "7733300" + }, + { + "Close": "117.900002", + "Date": "2009/10/1", + "High": "119.610001", + "Low": "117.559998", + "Open": "119.389999", + "Volume": "7067500" + }, + { + "Close": "119.019997", + "Date": "2009/10/2", + "High": "119.660004", + "Low": "117.260002", + "Open": "117.400002", + "Volume": "7581900" + }, + { + "Close": "119.75", + "Date": "2009/10/5", + "High": "120.18", + "Low": "118.129997", + "Open": "118.900002", + "Volume": "5673300" + }, + { + "Close": "121.349998", + "Date": "2009/10/6", + "High": "121.589996", + "Low": "120.220001", + "Open": "120.389999", + "Volume": "6659100" + }, + { + "Close": "122.779999", + "Date": "2009/10/7", + "High": "122.849998", + "Low": "120.940002", + "Open": "121.120003", + "Volume": "5872000" + }, + { + "Close": "122.290001", + "Date": "2009/10/8", + "High": "122.980003", + "Low": "121.849998", + "Open": "122.519997", + "Volume": "6498000" + }, + { + "Close": "125.93", + "Date": "2009/10/9", + "High": "126", + "Low": "122.300003", + "Open": "122.43", + "Volume": "13123100" + }, + { + "Close": "127.040001", + "Date": "2009/10/12", + "High": "127.099998", + "Low": "125.199997", + "Open": "125.440002", + "Volume": "7730500" + }, + { + "Close": "127.019997", + "Date": "2009/10/13", + "High": "127.389999", + "Low": "126.199997", + "Open": "126.220001", + "Volume": "7581300" + }, + { + "Close": "128.350006", + "Date": "2009/10/14", + "High": "128.610001", + "Low": "126.599998", + "Open": "127.709999", + "Volume": "9545500" + }, + { + "Close": "127.980003", + "Date": "2009/10/15", + "High": "128", + "Low": "126.32", + "Open": "127.559998", + "Volume": "11904600" + }, + { + "Close": "121.639999", + "Date": "2009/10/16", + "High": "123.699997", + "Low": "121.25", + "Open": "123.150002", + "Volume": "19216900" + }, + { + "Close": "123.059998", + "Date": "2009/10/19", + "High": "123.360001", + "Low": "121.610001", + "Open": "121.760002", + "Volume": "7514100" + }, + { + "Close": "122.82", + "Date": "2009/10/20", + "High": "123.5", + "Low": "121.5", + "Open": "123.360001", + "Volume": "8780700" + }, + { + "Close": "120.870003", + "Date": "2009/10/21", + "High": "124.110001", + "Low": "120.860001", + "Open": "122.18", + "Volume": "7171000" + }, + { + "Close": "122.690002", + "Date": "2009/10/22", + "High": "123", + "Low": "120.339996", + "Open": "120.75", + "Volume": "6027000" + }, + { + "Close": "120.360001", + "Date": "2009/10/23", + "High": "123.059998", + "Low": "120", + "Open": "122.949997", + "Volume": "6799200" + }, + { + "Close": "120.110001", + "Date": "2009/10/26", + "High": "122.440002", + "Low": "119.550003", + "Open": "120.610001", + "Volume": "6538500" + }, + { + "Close": "120.650002", + "Date": "2009/10/27", + "High": "122.139999", + "Low": "119.150002", + "Open": "120.18", + "Volume": "9445400" + }, + { + "Close": "121.5", + "Date": "2009/10/28", + "High": "121.68", + "Low": "119.870003", + "Open": "120.470001", + "Volume": "8780400" + }, + { + "Close": "122.870003", + "Date": "2009/10/29", + "High": "123.029999", + "Low": "121.599998", + "Open": "122.150002", + "Volume": "6309400" + }, + { + "Close": "120.610001", + "Date": "2009/10/30", + "High": "123.25", + "Low": "120.480003", + "Open": "122.629997", + "Volume": "7711700" + }, + { + "Close": "120.559998", + "Date": "2009/11/2", + "High": "121.93", + "Low": "119.5", + "Open": "120.769997", + "Volume": "7049400" + }, + { + "Close": "121.160004", + "Date": "2009/11/3", + "High": "121.190002", + "Low": "119.529999", + "Open": "119.529999", + "Volume": "5706800" + }, + { + "Close": "121.290001", + "Date": "2009/11/4", + "High": "122.5", + "Low": "121.160004", + "Open": "121.459999", + "Volume": "6353300" + }, + { + "Close": "123.099998", + "Date": "2009/11/5", + "High": "123.5", + "Low": "122", + "Open": "122.120003", + "Volume": "6701800" + }, + { + "Close": "123.489998", + "Date": "2009/11/6", + "High": "123.489998", + "Low": "122.230003", + "Open": "122.510002", + "Volume": "4979600" + }, + { + "Close": "126", + "Date": "2009/11/9", + "High": "126", + "Low": "123.489998", + "Open": "123.919998", + "Volume": "7764600" + }, + { + "Close": "126.910004", + "Date": "2009/11/10", + "High": "127.050003", + "Low": "125.169998", + "Open": "125.300003", + "Volume": "6444500" + }, + { + "Close": "127.190002", + "Date": "2009/11/11", + "High": "127.300003", + "Low": "125.940002", + "Open": "126.550003", + "Volume": "6530800" + }, + { + "Close": "126.260002", + "Date": "2009/11/12", + "High": "127.650002", + "Low": "126.110001", + "Open": "126.610001", + "Volume": "5345400" + }, + { + "Close": "127.029999", + "Date": "2009/11/13", + "High": "127.800003", + "Low": "126.269997", + "Open": "126.410004", + "Volume": "4979700" + }, + { + "Close": "128.210007", + "Date": "2009/11/16", + "High": "128.240005", + "Low": "127.029999", + "Open": "127.169998", + "Volume": "7822500" + }, + { + "Close": "128.630005", + "Date": "2009/11/17", + "High": "128.649994", + "Low": "127.400002", + "Open": "127.43", + "Volume": "1027500" + }, + { + "Close": "128.149994", + "Date": "2009/11/18", + "High": "128.350006", + "Low": "127.550003", + "Open": "128.050003", + "Volume": "3970100" + }, + { + "Close": "127.540001", + "Date": "2009/11/19", + "High": "127.839996", + "Low": "126.510002", + "Open": "127.279999", + "Volume": "5308400" + }, + { + "Close": "126.959999", + "Date": "2009/11/20", + "High": "127.690002", + "Low": "126.459999", + "Open": "127.169998", + "Volume": "5354200" + }, + { + "Close": "128.199997", + "Date": "2009/11/23", + "High": "128.940002", + "Low": "127.650002", + "Open": "127.699997", + "Volume": "7003500" + }, + { + "Close": "127.93", + "Date": "2009/11/24", + "High": "128.320007", + "Low": "127.139999", + "Open": "127.900002", + "Volume": "4816500" + }, + { + "Close": "127.279999", + "Date": "2009/11/25", + "High": "128.220001", + "Low": "127.080002", + "Open": "127.879997", + "Volume": "3967700" + }, + { + "Close": "125.699997", + "Date": "2009/11/27", + "High": "126.620003", + "Low": "124.260002", + "Open": "124.589996", + "Volume": "3319200" + }, + { + "Close": "126.349998", + "Date": "2009/11/30", + "High": "126.599998", + "Low": "124.919998", + "Open": "125.120003", + "Volume": "6302700" + }, + { + "Close": "127.940002", + "Date": "2009/12/1", + "High": "128.389999", + "Low": "126.849998", + "Open": "127.290001", + "Volume": "6578600" + }, + { + "Close": "127.209999", + "Date": "2009/12/2", + "High": "128.389999", + "Low": "127.160004", + "Open": "127.32", + "Volume": "4597900" + }, + { + "Close": "127.550003", + "Date": "2009/12/3", + "High": "128.470001", + "Low": "127.25", + "Open": "127.599998", + "Volume": "5760000" + }, + { + "Close": "127.25", + "Date": "2009/12/4", + "High": "128.899994", + "Low": "126", + "Open": "128.399994", + "Volume": "7068500" + }, + { + "Close": "127.040001", + "Date": "2009/12/7", + "High": "127.529999", + "Low": "126.589996", + "Open": "126.879997", + "Volume": "4144400" + }, + { + "Close": "126.800003", + "Date": "2009/12/8", + "High": "127.349998", + "Low": "126.160004", + "Open": "126.970001", + "Volume": "5351400" + }, + { + "Close": "128.389999", + "Date": "2009/12/9", + "High": "128.389999", + "Low": "126.110001", + "Open": "126.699997", + "Volume": "6071900" + }, + { + "Close": "129.339996", + "Date": "2009/12/10", + "High": "129.470001", + "Low": "128.089996", + "Open": "128.130005", + "Volume": "7077800" + }, + { + "Close": "129.679993", + "Date": "2009/12/11", + "High": "129.770004", + "Low": "128.710007", + "Open": "129.009995", + "Volume": "6597200" + }, + { + "Close": "129.929993", + "Date": "2009/12/14", + "High": "129.979996", + "Low": "129.600006", + "Open": "129.649994", + "Volume": "5201300" + }, + { + "Close": "128.490005", + "Date": "2009/12/15", + "High": "129.860001", + "Low": "127.940002", + "Open": "129.460007", + "Volume": "7862600" + }, + { + "Close": "128.710007", + "Date": "2009/12/16", + "High": "129.600006", + "Low": "128.350006", + "Open": "128.740005", + "Volume": "6372500" + }, + { + "Close": "127.400002", + "Date": "2009/12/17", + "High": "128.559998", + "Low": "127.120003", + "Open": "128", + "Volume": "5909500" + }, + { + "Close": "127.910004", + "Date": "2009/12/18", + "High": "128.389999", + "Low": "127", + "Open": "127.970001", + "Volume": "9106600" + }, + { + "Close": "128.649994", + "Date": "2009/12/21", + "High": "128.940002", + "Low": "127.68", + "Open": "127.800003", + "Volume": "4772500" + }, + { + "Close": "129.929993", + "Date": "2009/12/22", + "High": "129.979996", + "Low": "129.190002", + "Open": "129.300003", + "Volume": "5535500" + }, + { + "Close": "130", + "Date": "2009/12/23", + "High": "130", + "Low": "129.300003", + "Open": "129.699997", + "Volume": "4127600" + }, + { + "Close": "130.570007", + "Date": "2009/12/24", + "High": "130.570007", + "Low": "129.479996", + "Open": "129.889999", + "Volume": "4265100" + }, + { + "Close": "132.309998", + "Date": "2009/12/28", + "High": "132.309998", + "Low": "130.720001", + "Open": "130.990005", + "Volume": "5800400" + }, + { + "Close": "131.850006", + "Date": "2009/12/29", + "High": "132.369995", + "Low": "131.800003", + "Open": "132.279999", + "Volume": "4184200" + }, + { + "Close": "132.570007", + "Date": "2009/12/30", + "High": "132.679993", + "Low": "130.679993", + "Open": "131.229996", + "Volume": "3867000" + }, + { + "Close": "130.899994", + "Date": "2009/12/31", + "High": "132.850006", + "Low": "130.75", + "Open": "132.410004", + "Volume": "4223400" + }, + { + "Close": "132.449997", + "Date": "2010/1/4", + "High": "132.970001", + "Low": "130.850006", + "Open": "131.179993", + "Volume": "6155300" + }, + { + "Close": "130.850006", + "Date": "2010/1/5", + "High": "131.850006", + "Low": "130.100006", + "Open": "131.679993", + "Volume": "6841400" + }, + { + "Close": "130", + "Date": "2010/1/6", + "High": "131.490005", + "Low": "129.809998", + "Open": "130.679993", + "Volume": "5605300" + }, + { + "Close": "129.550003", + "Date": "2010/1/7", + "High": "130.25", + "Low": "128.910004", + "Open": "129.869995", + "Volume": "5840600" + }, + { + "Close": "130.850006", + "Date": "2010/1/8", + "High": "130.919998", + "Low": "129.050003", + "Open": "129.070007", + "Volume": "4197200" + }, + { + "Close": "129.479996", + "Date": "2010/1/11", + "High": "131.059998", + "Low": "128.669998", + "Open": "131.059998", + "Volume": "5730400" + }, + { + "Close": "130.509995", + "Date": "2010/1/12", + "High": "131.330002", + "Low": "129", + "Open": "129.029999", + "Volume": "8081500" + }, + { + "Close": "130.229996", + "Date": "2010/1/13", + "High": "131.119995", + "Low": "129.160004", + "Open": "130.389999", + "Volume": "6455400" + }, + { + "Close": "132.309998", + "Date": "2010/1/14", + "High": "132.710007", + "Low": "129.910004", + "Open": "130.550003", + "Volume": "7111800" + }, + { + "Close": "131.779999", + "Date": "2010/1/15", + "High": "132.889999", + "Low": "131.089996", + "Open": "132.029999", + "Volume": "8494400" + }, + { + "Close": "134.139999", + "Date": "2010/1/19", + "High": "134.25", + "Low": "131.559998", + "Open": "131.630005", + "Volume": "13916200" + }, + { + "Close": "130.25", + "Date": "2010/1/20", + "High": "131.149994", + "Low": "128.949997", + "Open": "130.460007", + "Volume": "15197500" + }, + { + "Close": "129", + "Date": "2010/1/21", + "High": "130.690002", + "Low": "128.059998", + "Open": "130.470001", + "Volume": "9608600" + }, + { + "Close": "125.5", + "Date": "2010/1/22", + "High": "128.889999", + "Low": "125.370003", + "Open": "128.669998", + "Volume": "10088600" + }, + { + "Close": "126.120003", + "Date": "2010/1/25", + "High": "126.889999", + "Low": "125.709999", + "Open": "126.330002", + "Volume": "5738500" + }, + { + "Close": "125.75", + "Date": "2010/1/26", + "High": "127.75", + "Low": "125.410004", + "Open": "125.919998", + "Volume": "7135300" + }, + { + "Close": "126.330002", + "Date": "2010/1/27", + "High": "126.959999", + "Low": "125.040001", + "Open": "125.82", + "Volume": "8719200" + }, + { + "Close": "123.75", + "Date": "2010/1/28", + "High": "127.040001", + "Low": "123.050003", + "Open": "127.029999", + "Volume": "9622200" + }, + { + "Close": "122.389999", + "Date": "2010/1/29", + "High": "125", + "Low": "121.900002", + "Open": "124.32", + "Volume": "11571200" + }, + { + "Close": "124.669998", + "Date": "2010/2/1", + "High": "124.949997", + "Low": "122.779999", + "Open": "123.230003", + "Volume": "7242900" + }, + { + "Close": "125.529999", + "Date": "2010/2/2", + "High": "125.809998", + "Low": "123.949997", + "Open": "124.790001", + "Volume": "5899900" + }, + { + "Close": "125.660004", + "Date": "2010/2/3", + "High": "126.07", + "Low": "125.07", + "Open": "125.160004", + "Volume": "4177100" + }, + { + "Close": "123", + "Date": "2010/2/4", + "High": "125.440002", + "Low": "122.900002", + "Open": "125.190002", + "Volume": "9126900" + }, + { + "Close": "123.519997", + "Date": "2010/2/5", + "High": "123.720001", + "Low": "121.830002", + "Open": "123.040001", + "Volume": "8617000" + }, + { + "Close": "121.879997", + "Date": "2010/2/8", + "High": "123.220001", + "Low": "121.739998", + "Open": "123.150002", + "Volume": "5718500" + }, + { + "Close": "123.209999", + "Date": "2010/2/9", + "High": "124.199997", + "Low": "122.459999", + "Open": "122.650002", + "Volume": "6044500" + }, + { + "Close": "122.809998", + "Date": "2010/2/10", + "High": "123.650002", + "Low": "122.209999", + "Open": "122.940002", + "Volume": "5219100" + }, + { + "Close": "123.730003", + "Date": "2010/2/11", + "High": "124.199997", + "Low": "122.059998", + "Open": "122.580002", + "Volume": "5089000" + }, + { + "Close": "124", + "Date": "2010/2/12", + "High": "124.050003", + "Low": "121.610001", + "Open": "123.010002", + "Volume": "8017700" + }, + { + "Close": "125.230003", + "Date": "2010/2/16", + "High": "125.230003", + "Low": "124.110001", + "Open": "124.910004", + "Volume": "6777300" + }, + { + "Close": "126.330002", + "Date": "2010/2/17", + "High": "126.529999", + "Low": "125.209999", + "Open": "125.5", + "Volume": "5827400" + }, + { + "Close": "127.809998", + "Date": "2010/2/18", + "High": "128", + "Low": "126", + "Open": "126.129997", + "Volume": "5525900" + }, + { + "Close": "127.190002", + "Date": "2010/2/19", + "High": "128.059998", + "Low": "126.870003", + "Open": "127.349998", + "Volume": "6303100" + }, + { + "Close": "126.849998", + "Date": "2010/2/22", + "High": "127.43", + "Low": "126.309998", + "Open": "127.300003", + "Volume": "3808100" + }, + { + "Close": "126.459999", + "Date": "2010/2/23", + "High": "127.660004", + "Low": "126", + "Open": "126.480003", + "Volume": "4591900" + }, + { + "Close": "127.589996", + "Date": "2010/2/24", + "High": "128.270004", + "Low": "126.809998", + "Open": "127.019997", + "Volume": "4782000" + }, + { + "Close": "127.07", + "Date": "2010/2/25", + "High": "127.239998", + "Low": "125.57", + "Open": "126.050003", + "Volume": "5658700" + }, + { + "Close": "127.160004", + "Date": "2010/2/26", + "High": "128", + "Low": "126.739998", + "Open": "127.010002", + "Volume": "4784200" + }, + { + "Close": "128.570007", + "Date": "2010/3/1", + "High": "128.830002", + "Low": "127.470001", + "Open": "127.5", + "Volume": "4577700" + }, + { + "Close": "127.419998", + "Date": "2010/3/2", + "High": "129.089996", + "Low": "127.129997", + "Open": "128.699997", + "Volume": "6013300" + }, + { + "Close": "126.879997", + "Date": "2010/3/3", + "High": "128.020004", + "Low": "126.68", + "Open": "127.730003", + "Volume": "6390000" + }, + { + "Close": "126.720001", + "Date": "2010/3/4", + "High": "127.07", + "Low": "125.470001", + "Open": "127.07", + "Volume": "6032300" + }, + { + "Close": "127.25", + "Date": "2010/3/5", + "High": "127.550003", + "Low": "127.040001", + "Open": "127.169998", + "Volume": "6140200" + }, + { + "Close": "126.410004", + "Date": "2010/3/8", + "High": "127.5", + "Low": "126.360001", + "Open": "127.059998", + "Volume": "6199300" + }, + { + "Close": "125.550003", + "Date": "2010/3/9", + "High": "126.290001", + "Low": "125.199997", + "Open": "126.269997", + "Volume": "7528800" + }, + { + "Close": "125.620003", + "Date": "2010/3/10", + "High": "126.360001", + "Low": "125.209999", + "Open": "125.989998", + "Volume": "6916200" + }, + { + "Close": "127.599998", + "Date": "2010/3/11", + "High": "127.809998", + "Low": "125.709999", + "Open": "125.709999", + "Volume": "7922200" + }, + { + "Close": "127.940002", + "Date": "2010/3/12", + "High": "128.369995", + "Low": "127.510002", + "Open": "127.910004", + "Volume": "5169500" + }, + { + "Close": "127.830002", + "Date": "2010/3/15", + "High": "128.339996", + "Low": "127.279999", + "Open": "127.400002", + "Volume": "4497700" + }, + { + "Close": "128.669998", + "Date": "2010/3/16", + "High": "128.880005", + "Low": "127.449997", + "Open": "128", + "Volume": "6134900" + }, + { + "Close": "127.760002", + "Date": "2010/3/17", + "High": "128.929993", + "Low": "127.360001", + "Open": "128.899994", + "Volume": "6348400" + }, + { + "Close": "128.380005", + "Date": "2010/3/18", + "High": "128.75", + "Low": "127.449997", + "Open": "127.459999", + "Volume": "4954400" + }, + { + "Close": "127.709999", + "Date": "2010/3/19", + "High": "128.929993", + "Low": "126.779999", + "Open": "127.709999", + "Volume": "10744300" + }, + { + "Close": "127.980003", + "Date": "2010/3/22", + "High": "128.389999", + "Low": "126.57", + "Open": "127.110001", + "Volume": "5651900" + }, + { + "Close": "129.369995", + "Date": "2010/3/23", + "High": "129.429993", + "Low": "127.639999", + "Open": "127.940002", + "Volume": "5978500" + }, + { + "Close": "128.529999", + "Date": "2010/3/24", + "High": "129.949997", + "Low": "128.470001", + "Open": "128.630005", + "Volume": "6669300" + }, + { + "Close": "129.240005", + "Date": "2010/3/25", + "High": "130.729996", + "Low": "129.130005", + "Open": "129.360001", + "Volume": "7603200" + }, + { + "Close": "129.259995", + "Date": "2010/3/26", + "High": "129.779999", + "Low": "128.720001", + "Open": "128.929993", + "Volume": "5550800" + }, + { + "Close": "128.589996", + "Date": "2010/3/29", + "High": "129.949997", + "Low": "128.259995", + "Open": "129.300003", + "Volume": "4643000" + }, + { + "Close": "128.770004", + "Date": "2010/3/30", + "High": "129.130005", + "Low": "128.25", + "Open": "128.899994", + "Volume": "3426600" + }, + { + "Close": "128.25", + "Date": "2010/3/31", + "High": "128.75", + "Low": "127.650002", + "Open": "128.229996", + "Volume": "4904800" + }, + { + "Close": "128.25", + "Date": "2010/4/1", + "High": "129.309998", + "Low": "127.550003", + "Open": "128.949997", + "Volume": "4980500" + }, + { + "Close": "129.350006", + "Date": "2010/4/5", + "High": "129.800003", + "Low": "128.139999", + "Open": "128.380005", + "Volume": "4118700" + }, + { + "Close": "128.929993", + "Date": "2010/4/6", + "High": "129.300003", + "Low": "128.050003", + "Open": "128.679993", + "Volume": "3926300" + }, + { + "Close": "128.479996", + "Date": "2010/4/7", + "High": "129.270004", + "Low": "128.009995", + "Open": "128.529999", + "Volume": "5157000" + }, + { + "Close": "127.610001", + "Date": "2010/4/8", + "High": "128.229996", + "Low": "127.199997", + "Open": "128.039993", + "Volume": "6006900" + }, + { + "Close": "128.759995", + "Date": "2010/4/9", + "High": "128.869995", + "Low": "127.120003", + "Open": "127.879997", + "Volume": "5185100" + }, + { + "Close": "128.360001", + "Date": "2010/4/12", + "High": "128.960007", + "Low": "128.240005", + "Open": "128.570007", + "Volume": "3992300" + }, + { + "Close": "129.029999", + "Date": "2010/4/13", + "High": "129.429993", + "Low": "127.839996", + "Open": "128.259995", + "Volume": "6819100" + }, + { + "Close": "131.25", + "Date": "2010/4/14", + "High": "131.419998", + "Low": "129.460007", + "Open": "129.729996", + "Volume": "8545800" + }, + { + "Close": "130.889999", + "Date": "2010/4/15", + "High": "131.139999", + "Low": "130.190002", + "Open": "130.529999", + "Volume": "6425300" + }, + { + "Close": "130.630005", + "Date": "2010/4/16", + "High": "132.169998", + "Low": "130.25", + "Open": "130.679993", + "Volume": "9546200" + }, + { + "Close": "132.229996", + "Date": "2010/4/19", + "High": "132.279999", + "Low": "130.380005", + "Open": "130.380005", + "Volume": "11353700" + }, + { + "Close": "129.690002", + "Date": "2010/4/20", + "High": "130.330002", + "Low": "128.259995", + "Open": "129.199997", + "Volume": "15216500" + }, + { + "Close": "128.990005", + "Date": "2010/4/21", + "High": "130.270004", + "Low": "128.5", + "Open": "129.869995", + "Volume": "7559200" + }, + { + "Close": "129.130005", + "Date": "2010/4/22", + "High": "129.360001", + "Low": "127.769997", + "Open": "128.639999", + "Volume": "6018500" + }, + { + "Close": "129.990005", + "Date": "2010/4/23", + "High": "130.100006", + "Low": "128.710007", + "Open": "129.080002", + "Volume": "6197300" + }, + { + "Close": "130.729996", + "Date": "2010/4/26", + "High": "131.039993", + "Low": "129.539993", + "Open": "129.759995", + "Volume": "5285400" + }, + { + "Close": "128.820007", + "Date": "2010/4/27", + "High": "132", + "Low": "128.710007", + "Open": "129.899994", + "Volume": "10916700" + }, + { + "Close": "130.100006", + "Date": "2010/4/28", + "High": "130.470001", + "Low": "129.029999", + "Open": "129.399994", + "Volume": "7122300" + }, + { + "Close": "130.460007", + "Date": "2010/4/29", + "High": "131.210007", + "Low": "130.149994", + "Open": "130.550003", + "Volume": "5786900" + }, + { + "Close": "129", + "Date": "2010/4/30", + "High": "130.639999", + "Low": "128.839996", + "Open": "130.429993", + "Volume": "6266700" + }, + { + "Close": "129.600006", + "Date": "2010/5/3", + "High": "130.139999", + "Low": "128.800003", + "Open": "129.389999", + "Volume": "4992100" + }, + { + "Close": "128.119995", + "Date": "2010/5/4", + "High": "128.929993", + "Low": "126.57", + "Open": "128.889999", + "Volume": "8285000" + }, + { + "Close": "127.459999", + "Date": "2010/5/5", + "High": "128.229996", + "Low": "126.870003", + "Open": "127.120003", + "Volume": "6072800" + }, + { + "Close": "123.919998", + "Date": "2010/5/6", + "High": "127.93", + "Low": "116", + "Open": "126.290001", + "Volume": "13168800" + }, + { + "Close": "122.099998", + "Date": "2010/5/7", + "High": "124.389999", + "Low": "120", + "Open": "123.360001", + "Volume": "10584800" + }, + { + "Close": "126.269997", + "Date": "2010/5/10", + "High": "126.669998", + "Low": "125.059998", + "Open": "126.269997", + "Volume": "8463900" + }, + { + "Close": "126.889999", + "Date": "2010/5/11", + "High": "128.419998", + "Low": "125.150002", + "Open": "125.209999", + "Volume": "6498900" + }, + { + "Close": "132.679993", + "Date": "2010/5/12", + "High": "132.850006", + "Low": "127.010002", + "Open": "127.160004", + "Volume": "16626900" + }, + { + "Close": "131.479996", + "Date": "2010/5/13", + "High": "133.100006", + "Low": "130.850006", + "Open": "130.929993", + "Volume": "10497800" + }, + { + "Close": "131.190002", + "Date": "2010/5/14", + "High": "131.669998", + "Low": "129.410004", + "Open": "131.059998", + "Volume": "9920100" + }, + { + "Close": "130.440002", + "Date": "2010/5/17", + "High": "131.759995", + "Low": "128.699997", + "Open": "130.679993", + "Volume": "8923400" + }, + { + "Close": "129.949997", + "Date": "2010/5/18", + "High": "131.990005", + "Low": "129.899994", + "Open": "131.259995", + "Volume": "9330000" + }, + { + "Close": "128.860001", + "Date": "2010/5/19", + "High": "130.5", + "Low": "127.82", + "Open": "129.369995", + "Volume": "8669300" + }, + { + "Close": "123.800003", + "Date": "2010/5/20", + "High": "127.959999", + "Low": "123.68", + "Open": "127.220001", + "Volume": "13176500" + }, + { + "Close": "125.419998", + "Date": "2010/5/21", + "High": "125.610001", + "Low": "121.400002", + "Open": "122.160004", + "Volume": "12639500" + }, + { + "Close": "124.449997", + "Date": "2010/5/24", + "High": "126.019997", + "Low": "124.040001", + "Open": "125.260002", + "Volume": "6868600" + }, + { + "Close": "124.519997", + "Date": "2010/5/25", + "High": "124.949997", + "Low": "121.470001", + "Open": "121.470001", + "Volume": "9494800" + }, + { + "Close": "123.230003", + "Date": "2010/5/26", + "High": "125.940002", + "Low": "123", + "Open": "124.889999", + "Volume": "9083200" + }, + { + "Close": "126.389999", + "Date": "2010/5/27", + "High": "126.389999", + "Low": "124.769997", + "Open": "125.050003", + "Volume": "7725900" + }, + { + "Close": "125.260002", + "Date": "2010/5/28", + "High": "126.279999", + "Low": "124.290001", + "Open": "125.959999", + "Volume": "7421900" + }, + { + "Close": "124.339996", + "Date": "2010/6/1", + "High": "126.879997", + "Low": "124.199997", + "Open": "124.690002", + "Volume": "7135400" + }, + { + "Close": "127.410004", + "Date": "2010/6/2", + "High": "127.5", + "Low": "124.349998", + "Open": "124.849998", + "Volume": "7705300" + }, + { + "Close": "127.959999", + "Date": "2010/6/3", + "High": "128.220001", + "Low": "126.459999", + "Open": "127.75", + "Volume": "6645300" + }, + { + "Close": "125.279999", + "Date": "2010/6/4", + "High": "127.099998", + "Low": "124.669998", + "Open": "126.370003", + "Volume": "9669200" + }, + { + "Close": "124.129997", + "Date": "2010/6/7", + "High": "125.860001", + "Low": "124.129997", + "Open": "125.57", + "Volume": "6951400" + }, + { + "Close": "123.720001", + "Date": "2010/6/8", + "High": "124.459999", + "Low": "122.82", + "Open": "124.260002", + "Volume": "8399200" + }, + { + "Close": "123.900002", + "Date": "2010/6/9", + "High": "125.839996", + "Low": "123.580002", + "Open": "124.830002", + "Volume": "7795500" + }, + { + "Close": "127.68", + "Date": "2010/6/10", + "High": "128.220001", + "Low": "125.800003", + "Open": "125.989998", + "Volume": "7479700" + }, + { + "Close": "128.449997", + "Date": "2010/6/11", + "High": "128.800003", + "Low": "126.440002", + "Open": "126.730003", + "Volume": "5820200" + }, + { + "Close": "128.5", + "Date": "2010/6/14", + "High": "129.970001", + "Low": "128.490005", + "Open": "128.5", + "Volume": "6753000" + }, + { + "Close": "129.789993", + "Date": "2010/6/15", + "High": "129.949997", + "Low": "128.369995", + "Open": "128.929993", + "Volume": "6652500" + }, + { + "Close": "130.350006", + "Date": "2010/6/16", + "High": "130.679993", + "Low": "128.339996", + "Open": "128.339996", + "Volume": "6401000" + }, + { + "Close": "130.979996", + "Date": "2010/6/17", + "High": "131.029999", + "Low": "129.860001", + "Open": "130.070007", + "Volume": "5571000" + }, + { + "Close": "130.149994", + "Date": "2010/6/18", + "High": "131.25", + "Low": "130.130005", + "Open": "131.020004", + "Volume": "9581400" + }, + { + "Close": "130.649994", + "Date": "2010/6/21", + "High": "131.940002", + "Low": "130.220001", + "Open": "131.419998", + "Volume": "6857800" + }, + { + "Close": "129.300003", + "Date": "2010/6/22", + "High": "131.470001", + "Low": "129.070007", + "Open": "130.369995", + "Volume": "6030200" + }, + { + "Close": "130.110001", + "Date": "2010/6/23", + "High": "131.470001", + "Low": "129.089996", + "Open": "129.25", + "Volume": "6855800" + }, + { + "Close": "128.190002", + "Date": "2010/6/24", + "High": "129.729996", + "Low": "127.699997", + "Open": "129.570007", + "Volume": "5565500" + }, + { + "Close": "127.120003", + "Date": "2010/6/25", + "High": "129.100006", + "Low": "127.120003", + "Open": "128.339996", + "Volume": "10420400" + }, + { + "Close": "128.979996", + "Date": "2010/6/28", + "High": "129.470001", + "Low": "127.220001", + "Open": "127.650002", + "Volume": "6335100" + }, + { + "Close": "125.089996", + "Date": "2010/6/29", + "High": "128.399994", + "Low": "124.120003", + "Open": "127.349998", + "Volume": "9376200" + }, + { + "Close": "123.480003", + "Date": "2010/6/30", + "High": "125.220001", + "Low": "123", + "Open": "124.830002", + "Volume": "8018000" + }, + { + "Close": "122.57", + "Date": "2010/7/1", + "High": "124.209999", + "Low": "121.610001", + "Open": "123.550003", + "Volume": "9742100" + }, + { + "Close": "121.860001", + "Date": "2010/7/2", + "High": "123.290001", + "Low": "120.610001", + "Open": "123.290001", + "Volume": "6454500" + }, + { + "Close": "123.459999", + "Date": "2010/7/6", + "High": "124.629997", + "Low": "122.169998", + "Open": "123.580002", + "Volume": "6348700" + }, + { + "Close": "127", + "Date": "2010/7/7", + "High": "127.120003", + "Low": "123.470001", + "Open": "123.470001", + "Volume": "7090300" + }, + { + "Close": "127.970001", + "Date": "2010/7/8", + "High": "128.149994", + "Low": "126.739998", + "Open": "127.370003", + "Volume": "5439300" + }, + { + "Close": "127.959999", + "Date": "2010/7/9", + "High": "128.199997", + "Low": "127.290001", + "Open": "127.900002", + "Volume": "3898000" + }, + { + "Close": "128.669998", + "Date": "2010/7/12", + "High": "128.830002", + "Low": "127.160004", + "Open": "127.370003", + "Volume": "4206900" + }, + { + "Close": "130.479996", + "Date": "2010/7/13", + "High": "130.979996", + "Low": "128.690002", + "Open": "128.970001", + "Volume": "6687700" + }, + { + "Close": "130.720001", + "Date": "2010/7/14", + "High": "131.600006", + "Low": "129.139999", + "Open": "129.320007", + "Volume": "6607200" + }, + { + "Close": "130.720001", + "Date": "2010/7/15", + "High": "130.919998", + "Low": "129.550003", + "Open": "129.869995", + "Volume": "6186800" + }, + { + "Close": "128.029999", + "Date": "2010/7/16", + "High": "130.149994", + "Low": "127.849998", + "Open": "129.960007", + "Volume": "7002900" + }, + { + "Close": "129.789993", + "Date": "2010/7/19", + "High": "130.380005", + "Low": "128.369995", + "Open": "128.669998", + "Volume": "8388600" + }, + { + "Close": "126.550003", + "Date": "2010/7/20", + "High": "126.559998", + "Low": "122.93", + "Open": "122.970001", + "Volume": "16337400" + }, + { + "Close": "125.269997", + "Date": "2010/7/21", + "High": "126.5", + "Low": "124.620003", + "Open": "126.440002", + "Volume": "8615500" + }, + { + "Close": "127.470001", + "Date": "2010/7/22", + "High": "127.779999", + "Low": "126.050003", + "Open": "126.32", + "Volume": "6909000" + }, + { + "Close": "128.380005", + "Date": "2010/7/23", + "High": "128.800003", + "Low": "127", + "Open": "127.300003", + "Volume": "5078000" + }, + { + "Close": "128.410004", + "Date": "2010/7/26", + "High": "128.429993", + "Low": "127.139999", + "Open": "128.179993", + "Volume": "5174900" + }, + { + "Close": "128.630005", + "Date": "2010/7/27", + "High": "129.169998", + "Low": "127.889999", + "Open": "128.779999", + "Volume": "4648200" + }, + { + "Close": "128.429993", + "Date": "2010/7/28", + "High": "129.350006", + "Low": "127.879997", + "Open": "128.669998", + "Volume": "4248800" + }, + { + "Close": "128.020004", + "Date": "2010/7/29", + "High": "129.5", + "Low": "127.139999", + "Open": "129.059998", + "Volume": "8994200" + }, + { + "Close": "128.399994", + "Date": "2010/7/30", + "High": "128.979996", + "Low": "127.040001", + "Open": "127.43", + "Volume": "6021000" + }, + { + "Close": "130.759995", + "Date": "2010/8/2", + "High": "131.199997", + "Low": "129.25", + "Open": "129.25", + "Volume": "6437500" + }, + { + "Close": "130.369995", + "Date": "2010/8/3", + "High": "131.039993", + "Low": "129.330002", + "Open": "130.029999", + "Volume": "5091800" + }, + { + "Close": "131.270004", + "Date": "2010/8/4", + "High": "131.5", + "Low": "129.850006", + "Open": "130.460007", + "Volume": "4567500" + }, + { + "Close": "131.830002", + "Date": "2010/8/5", + "High": "131.979996", + "Low": "130.529999", + "Open": "130.729996", + "Volume": "4520600" + }, + { + "Close": "130.139999", + "Date": "2010/8/6", + "High": "130.479996", + "Low": "128.759995", + "Open": "130.410004", + "Volume": "6136200" + }, + { + "Close": "132", + "Date": "2010/8/9", + "High": "132.339996", + "Low": "130.399994", + "Open": "130.789993", + "Volume": "6131700" + }, + { + "Close": "131.839996", + "Date": "2010/8/10", + "High": "132.490005", + "Low": "130.770004", + "Open": "131.179993", + "Volume": "5471700" + }, + { + "Close": "129.830002", + "Date": "2010/8/11", + "High": "130.690002", + "Low": "129.460007", + "Open": "130.690002", + "Volume": "6316100" + }, + { + "Close": "128.300003", + "Date": "2010/8/12", + "High": "128.779999", + "Low": "127.519997", + "Open": "127.690002", + "Volume": "5132200" + }, + { + "Close": "127.870003", + "Date": "2010/8/13", + "High": "128.460007", + "Low": "127.330002", + "Open": "127.959999", + "Volume": "4669400" + }, + { + "Close": "127.769997", + "Date": "2010/8/16", + "High": "128.229996", + "Low": "126.959999", + "Open": "127.470001", + "Volume": "4009200" + }, + { + "Close": "128.449997", + "Date": "2010/8/17", + "High": "129.850006", + "Low": "127.900002", + "Open": "128.830002", + "Volume": "4298300" + }, + { + "Close": "129.389999", + "Date": "2010/8/18", + "High": "130.199997", + "Low": "127.800003", + "Open": "128.869995", + "Volume": "4883200" + }, + { + "Close": "128.899994", + "Date": "2010/8/19", + "High": "129.589996", + "Low": "128.020004", + "Open": "128.669998", + "Volume": "5402400" + }, + { + "Close": "127.5", + "Date": "2010/8/20", + "High": "128.979996", + "Low": "126.959999", + "Open": "128.720001", + "Volume": "6246300" + }, + { + "Close": "126.470001", + "Date": "2010/8/23", + "High": "128.029999", + "Low": "126.440002", + "Open": "127.57", + "Volume": "4034400" + }, + { + "Close": "124.900002", + "Date": "2010/8/24", + "High": "126.019997", + "Low": "124.57", + "Open": "125.209999", + "Volume": "5621200" + }, + { + "Close": "125.269997", + "Date": "2010/8/25", + "High": "125.599998", + "Low": "124", + "Open": "124.57", + "Volume": "5235300" + }, + { + "Close": "122.779999", + "Date": "2010/8/26", + "High": "125.779999", + "Low": "122.779999", + "Open": "125.779999", + "Volume": "7746600" + }, + { + "Close": "124.730003", + "Date": "2010/8/27", + "High": "124.800003", + "Low": "122.419998", + "Open": "123.830002", + "Volume": "6214200" + }, + { + "Close": "123.400002", + "Date": "2010/8/30", + "High": "125.269997", + "Low": "123.400002", + "Open": "125.080002", + "Volume": "3604000" + }, + { + "Close": "123.129997", + "Date": "2010/8/31", + "High": "123.989998", + "Low": "122.279999", + "Open": "123.309998", + "Volume": "5624200" + }, + { + "Close": "125.769997", + "Date": "2010/9/1", + "High": "126.309998", + "Low": "124.519997", + "Open": "125.309998", + "Volume": "5623100" + }, + { + "Close": "125.040001", + "Date": "2010/9/2", + "High": "126.230003", + "Low": "124.650002", + "Open": "126.029999", + "Volume": "5103300" + }, + { + "Close": "127.580002", + "Date": "2010/9/3", + "High": "127.599998", + "Low": "125.900002", + "Open": "126.220001", + "Volume": "5142900" + }, + { + "Close": "125.949997", + "Date": "2010/9/7", + "High": "127.360001", + "Low": "125.879997", + "Open": "126.989998", + "Volume": "4353300" + }, + { + "Close": "126.080002", + "Date": "2010/9/8", + "High": "126.519997", + "Low": "125.389999", + "Open": "126.019997", + "Volume": "4477500" + }, + { + "Close": "126.360001", + "Date": "2010/9/9", + "High": "127.57", + "Low": "126.150002", + "Open": "127.269997", + "Volume": "3436700" + }, + { + "Close": "127.989998", + "Date": "2010/9/10", + "High": "128.289993", + "Low": "126.260002", + "Open": "126.989998", + "Volume": "4418700" + }, + { + "Close": "129.610001", + "Date": "2010/9/13", + "High": "130", + "Low": "128.520004", + "Open": "128.630005", + "Volume": "5271300" + }, + { + "Close": "128.850006", + "Date": "2010/9/14", + "High": "129.919998", + "Low": "128.429993", + "Open": "128.429993", + "Volume": "4850500" + }, + { + "Close": "129.429993", + "Date": "2010/9/15", + "High": "129.960007", + "Low": "128.539993", + "Open": "128.649994", + "Volume": "4762500" + }, + { + "Close": "129.669998", + "Date": "2010/9/16", + "High": "129.949997", + "Low": "128.800003", + "Open": "129.199997", + "Volume": "4685000" + }, + { + "Close": "130.190002", + "Date": "2010/9/17", + "High": "130.600006", + "Low": "129.699997", + "Open": "129.919998", + "Volume": "10397400" + }, + { + "Close": "131.789993", + "Date": "2010/9/20", + "High": "132.089996", + "Low": "130.110001", + "Open": "130.240005", + "Volume": "7145500" + }, + { + "Close": "131.979996", + "Date": "2010/9/21", + "High": "132.800003", + "Low": "130.779999", + "Open": "131.449997", + "Volume": "5267900" + }, + { + "Close": "132.570007", + "Date": "2010/9/22", + "High": "132.580002", + "Low": "131.399994", + "Open": "131.610001", + "Volume": "4922400" + }, + { + "Close": "131.669998", + "Date": "2010/9/23", + "High": "132.779999", + "Low": "131.220001", + "Open": "131.419998", + "Volume": "3898800" + }, + { + "Close": "134.110001", + "Date": "2010/9/24", + "High": "134.149994", + "Low": "132.339996", + "Open": "132.419998", + "Volume": "7122400" + }, + { + "Close": "134.649994", + "Date": "2010/9/27", + "High": "135", + "Low": "133.509995", + "Open": "133.509995", + "Volume": "6155400" + }, + { + "Close": "134.889999", + "Date": "2010/9/28", + "High": "135.139999", + "Low": "133.710007", + "Open": "134.669998", + "Volume": "7481300" + }, + { + "Close": "135.479996", + "Date": "2010/9/29", + "High": "135.800003", + "Low": "134.339996", + "Open": "134.399994", + "Volume": "5151200" + }, + { + "Close": "134.139999", + "Date": "2010/9/30", + "High": "136.110001", + "Low": "133.669998", + "Open": "135.5", + "Volume": "6425800" + }, + { + "Close": "135.639999", + "Date": "2010/10/1", + "High": "136.279999", + "Low": "135.089996", + "Open": "135.509995", + "Volume": "5621200" + }, + { + "Close": "135.25", + "Date": "2010/10/4", + "High": "135.919998", + "Low": "134.389999", + "Open": "135.229996", + "Volume": "4059900" + }, + { + "Close": "137.660004", + "Date": "2010/10/5", + "High": "137.899994", + "Low": "136.119995", + "Open": "136.179993", + "Volume": "6202500" + }, + { + "Close": "137.839996", + "Date": "2010/10/6", + "High": "137.960007", + "Low": "136.830002", + "Open": "136.880005", + "Volume": "4783000" + }, + { + "Close": "138.720001", + "Date": "2010/10/7", + "High": "138.880005", + "Low": "137.520004", + "Open": "137.919998", + "Volume": "6440800" + }, + { + "Close": "138.850006", + "Date": "2010/10/8", + "High": "139.089996", + "Low": "138.059998", + "Open": "138.399994", + "Volume": "4540800" + }, + { + "Close": "139.660004", + "Date": "2010/10/11", + "High": "139.940002", + "Low": "138.639999", + "Open": "138.789993", + "Volume": "4004300" + }, + { + "Close": "139.850006", + "Date": "2010/10/12", + "High": "139.990005", + "Low": "138.270004", + "Open": "138.399994", + "Volume": "5637300" + }, + { + "Close": "140.369995", + "Date": "2010/10/13", + "High": "141.479996", + "Low": "139.779999", + "Open": "139.910004", + "Volume": "8784300" + }, + { + "Close": "141.5", + "Date": "2010/10/14", + "High": "141.5", + "Low": "139.690002", + "Open": "140.350006", + "Volume": "5653100" + }, + { + "Close": "141.059998", + "Date": "2010/10/15", + "High": "142.100006", + "Low": "140.539993", + "Open": "142.100006", + "Volume": "7220400" + }, + { + "Close": "142.830002", + "Date": "2010/10/18", + "High": "143.029999", + "Low": "140.839996", + "Open": "140.899994", + "Volume": "10322700" + }, + { + "Close": "138.029999", + "Date": "2010/10/19", + "High": "139.339996", + "Low": "136.699997", + "Open": "137.300003", + "Volume": "14159100" + }, + { + "Close": "139.070007", + "Date": "2010/10/20", + "High": "139.869995", + "Low": "138.130005", + "Open": "138.279999", + "Volume": "6945500" + }, + { + "Close": "139.830002", + "Date": "2010/10/21", + "High": "140.490005", + "Low": "138.399994", + "Open": "139.809998", + "Volume": "6221200" + }, + { + "Close": "139.669998", + "Date": "2010/10/22", + "High": "140.75", + "Low": "139.460007", + "Open": "140.149994", + "Volume": "4105300" + }, + { + "Close": "139.839996", + "Date": "2010/10/25", + "High": "141.399994", + "Low": "139.809998", + "Open": "140.419998", + "Volume": "4870000" + }, + { + "Close": "140.669998", + "Date": "2010/10/26", + "High": "142", + "Low": "138.529999", + "Open": "139.289993", + "Volume": "7327100" + }, + { + "Close": "141.429993", + "Date": "2010/10/27", + "High": "141.570007", + "Low": "139", + "Open": "139.520004", + "Volume": "6465300" + }, + { + "Close": "140.899994", + "Date": "2010/10/28", + "High": "141.949997", + "Low": "140.419998", + "Open": "141.839996", + "Volume": "5481600" + }, + { + "Close": "143.600006", + "Date": "2010/10/29", + "High": "144", + "Low": "140.75", + "Open": "140.899994", + "Volume": "8439300" + }, + { + "Close": "143.320007", + "Date": "2010/11/1", + "High": "144.259995", + "Low": "142.320007", + "Open": "143.639999", + "Volume": "5674600" + }, + { + "Close": "143.839996", + "Date": "2010/11/2", + "High": "144.710007", + "Low": "143.710007", + "Open": "143.850006", + "Volume": "4626400" + }, + { + "Close": "144.169998", + "Date": "2010/11/3", + "High": "144.460007", + "Low": "142.630005", + "Open": "144.240005", + "Volume": "5182100" + }, + { + "Close": "146.789993", + "Date": "2010/11/4", + "High": "146.839996", + "Low": "144.710007", + "Open": "144.820007", + "Volume": "6622500" + }, + { + "Close": "146.919998", + "Date": "2010/11/5", + "High": "146.929993", + "Low": "145.669998", + "Open": "145.940002", + "Volume": "4995800" + }, + { + "Close": "146.460007", + "Date": "2010/11/8", + "High": "146.580002", + "Low": "145.25", + "Open": "145.350006", + "Volume": "4459700" + }, + { + "Close": "146.139999", + "Date": "2010/11/9", + "High": "147.529999", + "Low": "145.630005", + "Open": "146.699997", + "Volume": "5700600" + }, + { + "Close": "146.550003", + "Date": "2010/11/10", + "High": "146.789993", + "Low": "145.630005", + "Open": "146.089996", + "Volume": "5172000" + }, + { + "Close": "145.429993", + "Date": "2010/11/11", + "High": "145.5", + "Low": "143.350006", + "Open": "144.699997", + "Volume": "4752200" + }, + { + "Close": "143.740005", + "Date": "2010/11/12", + "High": "145.770004", + "Low": "143.550003", + "Open": "144.589996", + "Volume": "4731500" + }, + { + "Close": "143.639999", + "Date": "2010/11/15", + "High": "144.75", + "Low": "143.270004", + "Open": "143.889999", + "Volume": "3827700" + }, + { + "Close": "142.240005", + "Date": "2010/11/16", + "High": "143.380005", + "Low": "141.179993", + "Open": "142.929993", + "Volume": "6342100" + }, + { + "Close": "141.949997", + "Date": "2010/11/17", + "High": "142.490005", + "Low": "141.389999", + "Open": "142.490005", + "Volume": "4785900" + }, + { + "Close": "144.360001", + "Date": "2010/11/18", + "High": "144.990005", + "Low": "142.75", + "Open": "143.039993", + "Volume": "4236200" + }, + { + "Close": "145.050003", + "Date": "2010/11/19", + "High": "145.350006", + "Low": "143.990005", + "Open": "144.380005", + "Volume": "5015900" + }, + { + "Close": "145.389999", + "Date": "2010/11/22", + "High": "145.429993", + "Low": "143.559998", + "Open": "144", + "Volume": "3730700" + }, + { + "Close": "143.179993", + "Date": "2010/11/23", + "High": "144.529999", + "Low": "142.330002", + "Open": "144.240005", + "Volume": "4570300" + }, + { + "Close": "145.809998", + "Date": "2010/11/24", + "High": "146.440002", + "Low": "143.820007", + "Open": "143.949997", + "Volume": "4874100" + }, + { + "Close": "143.899994", + "Date": "2010/11/26", + "High": "145.300003", + "Low": "143.570007", + "Open": "145.300003", + "Volume": "2081300" + }, + { + "Close": "142.889999", + "Date": "2010/11/29", + "High": "143.669998", + "Low": "141.5", + "Open": "143.529999", + "Volume": "5040300" + }, + { + "Close": "141.460007", + "Date": "2010/11/30", + "High": "142.759995", + "Low": "141.279999", + "Open": "142.240005", + "Volume": "7674800" + }, + { + "Close": "144.410004", + "Date": "2010/12/1", + "High": "145.130005", + "Low": "143.509995", + "Open": "143.610001", + "Volume": "6822800" + }, + { + "Close": "145.179993", + "Date": "2010/12/2", + "High": "145.850006", + "Low": "144.300003", + "Open": "144.330002", + "Volume": "5374000" + }, + { + "Close": "145.380005", + "Date": "2010/12/3", + "High": "145.679993", + "Low": "144.25", + "Open": "144.25", + "Volume": "3710600" + }, + { + "Close": "144.990005", + "Date": "2010/12/6", + "High": "145.869995", + "Low": "144.520004", + "Open": "144.539993", + "Volume": "3321800" + }, + { + "Close": "144.020004", + "Date": "2010/12/7", + "High": "146.300003", + "Low": "143.869995", + "Open": "146.020004", + "Volume": "4828600" + }, + { + "Close": "144.979996", + "Date": "2010/12/8", + "High": "145.649994", + "Low": "143.839996", + "Open": "144.350006", + "Volume": "4961400" + }, + { + "Close": "144.300003", + "Date": "2010/12/9", + "High": "145.940002", + "Low": "143.520004", + "Open": "145.940002", + "Volume": "4405300" + }, + { + "Close": "144.820007", + "Date": "2010/12/10", + "High": "144.949997", + "Low": "143.729996", + "Open": "144.880005", + "Volume": "3503800" + }, + { + "Close": "144.279999", + "Date": "2010/12/13", + "High": "145.399994", + "Low": "144.210007", + "Open": "145.139999", + "Volume": "4741000" + }, + { + "Close": "145.820007", + "Date": "2010/12/14", + "High": "146.009995", + "Low": "144.259995", + "Open": "144.259995", + "Volume": "4800800" + }, + { + "Close": "144.720001", + "Date": "2010/12/15", + "High": "145.720001", + "Low": "144.309998", + "Open": "145.130005", + "Volume": "4447400" + }, + { + "Close": "144.550003", + "Date": "2010/12/16", + "High": "145.320007", + "Low": "144.149994", + "Open": "144.839996", + "Volume": "4178600" + }, + { + "Close": "145", + "Date": "2010/12/17", + "High": "145.5", + "Low": "144.399994", + "Open": "144.690002", + "Volume": "10027000" + }, + { + "Close": "144.509995", + "Date": "2010/12/20", + "High": "145.539993", + "Low": "144.389999", + "Open": "145.389999", + "Volume": "3995000" + }, + { + "Close": "145.740005", + "Date": "2010/12/21", + "High": "145.990005", + "Low": "144.330002", + "Open": "144.990005", + "Volume": "3777100" + }, + { + "Close": "145.949997", + "Date": "2010/12/22", + "High": "146.399994", + "Low": "145.580002", + "Open": "145.660004", + "Volume": "3388800" + }, + { + "Close": "145.889999", + "Date": "2010/12/23", + "High": "146.330002", + "Low": "145.330002", + "Open": "145.889999", + "Volume": "2424500" + }, + { + "Close": "145.339996", + "Date": "2010/12/27", + "High": "145.699997", + "Low": "145", + "Open": "145.119995", + "Volume": "2314700" + }, + { + "Close": "145.710007", + "Date": "2010/12/28", + "High": "146.149994", + "Low": "145.059998", + "Open": "145.309998", + "Volume": "2699600" + }, + { + "Close": "146.520004", + "Date": "2010/12/29", + "High": "147.5", + "Low": "145.710007", + "Open": "146", + "Volume": "3661100" + }, + { + "Close": "146.669998", + "Date": "2010/12/30", + "High": "147.110001", + "Low": "146.25", + "Open": "146.360001", + "Volume": "3039100" + }, + { + "Close": "146.759995", + "Date": "2010/12/31", + "High": "147.070007", + "Low": "145.960007", + "Open": "146.729996", + "Volume": "2969800" + }, + { + "Close": "147.479996", + "Date": "2011/1/3", + "High": "148.199997", + "Low": "147.139999", + "Open": "147.210007", + "Volume": "4603800" + }, + { + "Close": "147.639999", + "Date": "2011/1/4", + "High": "148.220001", + "Low": "146.639999", + "Open": "147.559998", + "Volume": "5060100" + }, + { + "Close": "147.050003", + "Date": "2011/1/5", + "High": "147.479996", + "Low": "146.729996", + "Open": "147.339996", + "Volume": "4657400" + }, + { + "Close": "148.660004", + "Date": "2011/1/6", + "High": "148.789993", + "Low": "146.820007", + "Open": "147.130005", + "Volume": "5029200" + }, + { + "Close": "147.929993", + "Date": "2011/1/7", + "High": "148.860001", + "Low": "146.940002", + "Open": "148.789993", + "Volume": "4135700" + }, + { + "Close": "147.639999", + "Date": "2011/1/10", + "High": "148.059998", + "Low": "147.229996", + "Open": "147.580002", + "Volume": "3633400" + }, + { + "Close": "147.279999", + "Date": "2011/1/11", + "High": "148.350006", + "Low": "146.75", + "Open": "148.199997", + "Volume": "4163600" + }, + { + "Close": "149.100006", + "Date": "2011/1/12", + "High": "149.289993", + "Low": "147.669998", + "Open": "147.990005", + "Volume": "4091500" + }, + { + "Close": "148.820007", + "Date": "2011/1/13", + "High": "149.289993", + "Low": "148.25", + "Open": "149.240005", + "Volume": "3445800" + }, + { + "Close": "150", + "Date": "2011/1/14", + "High": "150", + "Low": "148.470001", + "Open": "148.889999", + "Volume": "4544200" + }, + { + "Close": "150.649994", + "Date": "2011/1/18", + "High": "151.460007", + "Low": "149.380005", + "Open": "149.820007", + "Volume": "9176900" + }, + { + "Close": "155.690002", + "Date": "2011/1/19", + "High": "156.130005", + "Low": "152.830002", + "Open": "153.259995", + "Volume": "12141000" + }, + { + "Close": "155.800003", + "Date": "2011/1/20", + "High": "155.960007", + "Low": "154.449997", + "Open": "154.529999", + "Volume": "7439900" + }, + { + "Close": "155.5", + "Date": "2011/1/21", + "High": "156.779999", + "Low": "154.960007", + "Open": "156.399994", + "Volume": "7009000" + }, + { + "Close": "159.630005", + "Date": "2011/1/24", + "High": "159.789993", + "Low": "155.330002", + "Open": "155.419998", + "Volume": "7285100" + }, + { + "Close": "161.440002", + "Date": "2011/1/25", + "High": "164.350006", + "Low": "159", + "Open": "159.210007", + "Volume": "8260800" + }, + { + "Close": "161.039993", + "Date": "2011/1/26", + "High": "161.899994", + "Low": "160.419998", + "Open": "161.669998", + "Volume": "5353100" + }, + { + "Close": "161.070007", + "Date": "2011/1/27", + "High": "162.179993", + "Low": "160.860001", + "Open": "161.429993", + "Volume": "4878300" + }, + { + "Close": "159.210007", + "Date": "2011/1/28", + "High": "161.919998", + "Low": "158.669998", + "Open": "161.050003", + "Volume": "6725600" + }, + { + "Close": "162", + "Date": "2011/1/31", + "High": "162", + "Low": "158.679993", + "Open": "159.179993", + "Volume": "7197200" + }, + { + "Close": "163.559998", + "Date": "2011/2/1", + "High": "163.940002", + "Low": "162", + "Open": "162.110001", + "Volume": "5831300" + }, + { + "Close": "163.300003", + "Date": "2011/2/2", + "High": "163.600006", + "Low": "162.610001", + "Open": "163.399994", + "Volume": "3904000" + }, + { + "Close": "163.529999", + "Date": "2011/2/3", + "High": "164.199997", + "Low": "162.809998", + "Open": "163.160004", + "Volume": "4683400" + }, + { + "Close": "164", + "Date": "2011/2/4", + "High": "164.139999", + "Low": "163.220001", + "Open": "163.479996", + "Volume": "3755200" + }, + { + "Close": "164.820007", + "Date": "2011/2/7", + "High": "164.990005", + "Low": "164.020004", + "Open": "164.080002", + "Volume": "4928100" + }, + { + "Close": "166.050003", + "Date": "2011/2/8", + "High": "166.25", + "Low": "164.320007", + "Open": "164.820007", + "Volume": "5612600" + }, + { + "Close": "164.649994", + "Date": "2011/2/9", + "High": "165.970001", + "Low": "164.100006", + "Open": "165.619995", + "Volume": "4633600" + }, + { + "Close": "164.089996", + "Date": "2011/2/10", + "High": "165", + "Low": "163.179993", + "Open": "163.899994", + "Volume": "5737800" + }, + { + "Close": "163.850006", + "Date": "2011/2/11", + "High": "165.009995", + "Low": "163.309998", + "Open": "163.979996", + "Volume": "5185200" + }, + { + "Close": "163.220001", + "Date": "2011/2/14", + "High": "164.380005", + "Low": "162.850006", + "Open": "164.179993", + "Volume": "4129800" + }, + { + "Close": "162.839996", + "Date": "2011/2/15", + "High": "163.570007", + "Low": "162.520004", + "Open": "162.889999", + "Volume": "3768700" + }, + { + "Close": "163.399994", + "Date": "2011/2/16", + "High": "163.600006", + "Low": "162.75", + "Open": "163.330002", + "Volume": "3216000" + }, + { + "Close": "164.240005", + "Date": "2011/2/17", + "High": "164.669998", + "Low": "162.850006", + "Open": "163.300003", + "Volume": "3230500" + }, + { + "Close": "164.839996", + "Date": "2011/2/18", + "High": "164.839996", + "Low": "164.100006", + "Open": "164.460007", + "Volume": "4245000" + }, + { + "Close": "161.949997", + "Date": "2011/2/22", + "High": "164.259995", + "Low": "161.779999", + "Open": "163.570007", + "Volume": "5209300" + }, + { + "Close": "160.179993", + "Date": "2011/2/23", + "High": "162.679993", + "Low": "160.139999", + "Open": "161.809998", + "Volume": "5998100" + }, + { + "Close": "160.770004", + "Date": "2011/2/24", + "High": "161.270004", + "Low": "159.029999", + "Open": "159.630005", + "Volume": "5707500" + }, + { + "Close": "162.279999", + "Date": "2011/2/25", + "High": "162.339996", + "Low": "160.860001", + "Open": "161.059998", + "Volume": "4518400" + }, + { + "Close": "161.880005", + "Date": "2011/2/28", + "High": "162.990005", + "Low": "161.240005", + "Open": "162.360001", + "Volume": "4773000" + }, + { + "Close": "159.970001", + "Date": "2011/3/1", + "High": "163.149994", + "Low": "159.880005", + "Open": "163.149994", + "Volume": "4382800" + }, + { + "Close": "160.160004", + "Date": "2011/3/2", + "High": "161.110001", + "Low": "159.410004", + "Open": "159.429993", + "Volume": "3413000" + }, + { + "Close": "163.479996", + "Date": "2011/3/3", + "High": "164", + "Low": "161.270004", + "Open": "161.419998", + "Volume": "4057800" + }, + { + "Close": "161.830002", + "Date": "2011/3/4", + "High": "164.309998", + "Low": "160.649994", + "Open": "163.399994", + "Volume": "4910700" + }, + { + "Close": "159.929993", + "Date": "2011/3/7", + "High": "162.979996", + "Low": "158.850006", + "Open": "161.600006", + "Volume": "5312000" + }, + { + "Close": "162.279999", + "Date": "2011/3/8", + "High": "163.429993", + "Low": "159.210007", + "Open": "159.699997", + "Volume": "5384800" + }, + { + "Close": "165.860001", + "Date": "2011/3/9", + "High": "167.720001", + "Low": "163.279999", + "Open": "163.470001", + "Volume": "9086600" + }, + { + "Close": "162.020004", + "Date": "2011/3/10", + "High": "164.669998", + "Low": "161.380005", + "Open": "164.639999", + "Volume": "7041400" + }, + { + "Close": "162.429993", + "Date": "2011/3/11", + "High": "163.240005", + "Low": "160.839996", + "Open": "162.399994", + "Volume": "4271000" + }, + { + "Close": "161.389999", + "Date": "2011/3/14", + "High": "161.979996", + "Low": "160.089996", + "Open": "161.160004", + "Volume": "4300500" + }, + { + "Close": "159.020004", + "Date": "2011/3/15", + "High": "159.639999", + "Low": "156.880005", + "Open": "157.350006", + "Volume": "6475800" + }, + { + "Close": "153", + "Date": "2011/3/16", + "High": "156.979996", + "Low": "151.710007", + "Open": "156.520004", + "Volume": "12195300" + }, + { + "Close": "154.179993", + "Date": "2011/3/17", + "High": "154.5", + "Low": "152.699997", + "Open": "154", + "Volume": "7376400" + }, + { + "Close": "155.889999", + "Date": "2011/3/18", + "High": "156.949997", + "Low": "154.320007", + "Open": "156.5", + "Volume": "11450000" + }, + { + "Close": "157.679993", + "Date": "2011/3/21", + "High": "159.630005", + "Low": "157.070007", + "Open": "157.639999", + "Volume": "5784000" + }, + { + "Close": "158", + "Date": "2011/3/22", + "High": "158.610001", + "Low": "157.520004", + "Open": "158.559998", + "Volume": "4311400" + }, + { + "Close": "159.529999", + "Date": "2011/3/23", + "High": "160.080002", + "Low": "157.529999", + "Open": "158", + "Volume": "4782500" + }, + { + "Close": "160.039993", + "Date": "2011/3/24", + "High": "160.710007", + "Low": "158.839996", + "Open": "160.229996", + "Volume": "5145800" + }, + { + "Close": "162.179993", + "Date": "2011/3/25", + "High": "162.740005", + "Low": "160.759995", + "Open": "160.979996", + "Volume": "5348100" + }, + { + "Close": "161.369995", + "Date": "2011/3/28", + "High": "162.580002", + "Low": "161.119995", + "Open": "161.539993", + "Volume": "3972800" + }, + { + "Close": "162.880005", + "Date": "2011/3/29", + "High": "163.089996", + "Low": "161.149994", + "Open": "161.339996", + "Volume": "3456700" + }, + { + "Close": "163.600006", + "Date": "2011/3/30", + "High": "163.990005", + "Low": "163.020004", + "Open": "163.550003", + "Volume": "3394100" + }, + { + "Close": "163.070007", + "Date": "2011/3/31", + "High": "164.059998", + "Low": "163.070007", + "Open": "163.399994", + "Volume": "3860800" + }, + { + "Close": "164.270004", + "Date": "2011/4/1", + "High": "164.419998", + "Low": "163.039993", + "Open": "163.699997", + "Volume": "4381900" + }, + { + "Close": "164.25", + "Date": "2011/4/4", + "High": "164.729996", + "Low": "163.580002", + "Open": "164.419998", + "Volume": "3225100" + }, + { + "Close": "163.990005", + "Date": "2011/4/5", + "High": "164.699997", + "Low": "163.619995", + "Open": "163.809998", + "Volume": "3612000" + }, + { + "Close": "164.039993", + "Date": "2011/4/6", + "High": "164.75", + "Low": "163.809998", + "Open": "164.339996", + "Volume": "3774800" + }, + { + "Close": "164.380005", + "Date": "2011/4/7", + "High": "164.550003", + "Low": "163.279999", + "Open": "164.100006", + "Volume": "3666700" + }, + { + "Close": "164.050003", + "Date": "2011/4/8", + "High": "164.380005", + "Low": "163.160004", + "Open": "164.350006", + "Volume": "3324100" + }, + { + "Close": "163.949997", + "Date": "2011/4/11", + "High": "164", + "Low": "163.110001", + "Open": "163.440002", + "Volume": "4139000" + }, + { + "Close": "163.25", + "Date": "2011/4/12", + "High": "163.770004", + "Low": "162.300003", + "Open": "163.360001", + "Volume": "3860600" + }, + { + "Close": "163.949997", + "Date": "2011/4/13", + "High": "164.929993", + "Low": "163.660004", + "Open": "163.970001", + "Volume": "4181900" + }, + { + "Close": "164.970001", + "Date": "2011/4/14", + "High": "165.360001", + "Low": "163.160004", + "Open": "163.839996", + "Volume": "4699100" + }, + { + "Close": "166.210007", + "Date": "2011/4/15", + "High": "166.339996", + "Low": "164.869995", + "Open": "165", + "Volume": "5287400" + }, + { + "Close": "165.940002", + "Date": "2011/4/18", + "High": "166.160004", + "Low": "162.860001", + "Open": "164.639999", + "Volume": "6160700" + }, + { + "Close": "165.399994", + "Date": "2011/4/19", + "High": "166.380005", + "Low": "164.440002", + "Open": "165.710007", + "Volume": "6547100" + }, + { + "Close": "164.75", + "Date": "2011/4/20", + "High": "165.889999", + "Low": "162.190002", + "Open": "163.100006", + "Volume": "10891800" + }, + { + "Close": "168.279999", + "Date": "2011/4/21", + "High": "168.449997", + "Low": "164.860001", + "Open": "165.630005", + "Volume": "6158400" + }, + { + "Close": "167.669998", + "Date": "2011/4/25", + "High": "168.770004", + "Low": "167.229996", + "Open": "167.649994", + "Volume": "3583800" + }, + { + "Close": "168.490005", + "Date": "2011/4/26", + "High": "169.199997", + "Low": "167.399994", + "Open": "167.990005", + "Volume": "7300000" + }, + { + "Close": "170.369995", + "Date": "2011/4/27", + "High": "170.589996", + "Low": "168.460007", + "Open": "168.610001", + "Volume": "5299700" + }, + { + "Close": "170.779999", + "Date": "2011/4/28", + "High": "171.380005", + "Low": "169.699997", + "Open": "169.990005", + "Volume": "5087700" + }, + { + "Close": "170.580002", + "Date": "2011/4/29", + "High": "173", + "Low": "170.479996", + "Open": "171.100006", + "Volume": "5587700" + }, + { + "Close": "172.149994", + "Date": "2011/5/2", + "High": "173.539993", + "Low": "171.490005", + "Open": "172.110001", + "Volume": "5396200" + }, + { + "Close": "172.869995", + "Date": "2011/5/3", + "High": "173.479996", + "Low": "171.229996", + "Open": "172", + "Volume": "5007700" + }, + { + "Close": "170.619995", + "Date": "2011/5/4", + "High": "172.619995", + "Low": "169.589996", + "Open": "172.360001", + "Volume": "6890300" + }, + { + "Close": "168.460007", + "Date": "2011/5/5", + "High": "170.869995", + "Low": "167.5", + "Open": "170.470001", + "Volume": "7332000" + }, + { + "Close": "168.889999", + "Date": "2011/5/6", + "High": "170.149994", + "Low": "168.240005", + "Open": "169.029999", + "Volume": "4839400" + }, + { + "Close": "169.100006", + "Date": "2011/5/9", + "High": "169.850006", + "Low": "168.309998", + "Open": "168.389999", + "Volume": "3594800" + }, + { + "Close": "170.380005", + "Date": "2011/5/10", + "High": "170.899994", + "Low": "169.220001", + "Open": "169.25", + "Volume": "4934800" + }, + { + "Close": "169.5", + "Date": "2011/5/11", + "High": "170.520004", + "Low": "167.820007", + "Open": "170.300003", + "Volume": "4663200" + }, + { + "Close": "172.240005", + "Date": "2011/5/12", + "High": "172.770004", + "Low": "168.649994", + "Open": "169.649994", + "Volume": "5138500" + }, + { + "Close": "169.919998", + "Date": "2011/5/13", + "High": "172.149994", + "Low": "169.440002", + "Open": "171.699997", + "Volume": "5167400" + }, + { + "Close": "168.860001", + "Date": "2011/5/16", + "High": "170.639999", + "Low": "168.309998", + "Open": "169.809998", + "Volume": "4662200" + }, + { + "Close": "170.5", + "Date": "2011/5/17", + "High": "171.410004", + "Low": "166.529999", + "Open": "167.850006", + "Volume": "8773200" + }, + { + "Close": "170.440002", + "Date": "2011/5/18", + "High": "171.190002", + "Low": "169.460007", + "Open": "170.100006", + "Volume": "4154300" + }, + { + "Close": "170.589996", + "Date": "2011/5/19", + "High": "171.399994", + "Low": "169.320007", + "Open": "170.860001", + "Volume": "3538300" + }, + { + "Close": "170.160004", + "Date": "2011/5/20", + "High": "171.149994", + "Low": "169.380005", + "Open": "170.399994", + "Volume": "4869900" + }, + { + "Close": "168.259995", + "Date": "2011/5/23", + "High": "168.690002", + "Low": "167.070007", + "Open": "168.580002", + "Volume": "5144000" + }, + { + "Close": "167.990005", + "Date": "2011/5/24", + "High": "168.669998", + "Low": "167.509995", + "Open": "168.5", + "Volume": "4643600" + }, + { + "Close": "167.75", + "Date": "2011/5/25", + "High": "168.399994", + "Low": "167.509995", + "Open": "167.630005", + "Volume": "3882100" + }, + { + "Close": "167.179993", + "Date": "2011/5/26", + "High": "167.5", + "Low": "165.899994", + "Open": "167.460007", + "Volume": "5771300" + }, + { + "Close": "167.5", + "Date": "2011/5/27", + "High": "168.470001", + "Low": "167", + "Open": "167.910004", + "Volume": "3277600" + }, + { + "Close": "168.929993", + "Date": "2011/5/31", + "High": "169.889999", + "Low": "167.820007", + "Open": "168.440002", + "Volume": "9123400" + }, + { + "Close": "166.559998", + "Date": "2011/6/1", + "High": "169.580002", + "Low": "166.5", + "Open": "168.899994", + "Volume": "5134600" + }, + { + "Close": "166.089996", + "Date": "2011/6/2", + "High": "167.100006", + "Low": "165.710007", + "Open": "166.440002", + "Volume": "3854100" + }, + { + "Close": "165.050003", + "Date": "2011/6/3", + "High": "165.889999", + "Low": "164.130005", + "Open": "164.300003", + "Volume": "5230500" + }, + { + "Close": "164.75", + "Date": "2011/6/6", + "High": "165.580002", + "Low": "164.270004", + "Open": "164.759995", + "Volume": "3619700" + }, + { + "Close": "163.690002", + "Date": "2011/6/7", + "High": "165.240005", + "Low": "163.610001", + "Open": "165.110001", + "Volume": "4187000" + }, + { + "Close": "164.339996", + "Date": "2011/6/8", + "High": "164.850006", + "Low": "163.259995", + "Open": "163.270004", + "Volume": "3850800" + }, + { + "Close": "164.839996", + "Date": "2011/6/9", + "High": "165.960007", + "Low": "164.759995", + "Open": "165.009995", + "Volume": "4299800" + }, + { + "Close": "163.179993", + "Date": "2011/6/10", + "High": "164.839996", + "Low": "162.869995", + "Open": "164.570007", + "Volume": "4683300" + }, + { + "Close": "163.169998", + "Date": "2011/6/13", + "High": "164.460007", + "Low": "162.729996", + "Open": "164.440002", + "Volume": "5099200" + }, + { + "Close": "164.119995", + "Date": "2011/6/14", + "High": "164.570007", + "Low": "163.649994", + "Open": "163.869995", + "Volume": "7050000" + }, + { + "Close": "162.330002", + "Date": "2011/6/15", + "High": "163.410004", + "Low": "161.520004", + "Open": "162.75", + "Volume": "5225600" + }, + { + "Close": "162.669998", + "Date": "2011/6/16", + "High": "163.630005", + "Low": "161.779999", + "Open": "162.059998", + "Volume": "4861100" + }, + { + "Close": "164.440002", + "Date": "2011/6/17", + "High": "165.100006", + "Low": "163.580002", + "Open": "164.240005", + "Volume": "7149700" + }, + { + "Close": "165.020004", + "Date": "2011/6/20", + "High": "165.610001", + "Low": "163.589996", + "Open": "163.699997", + "Volume": "3956100" + }, + { + "Close": "166.220001", + "Date": "2011/6/21", + "High": "166.75", + "Low": "164", + "Open": "165.199997", + "Volume": "5387300" + }, + { + "Close": "165.679993", + "Date": "2011/6/22", + "High": "166.809998", + "Low": "165.100006", + "Open": "165.589996", + "Volume": "3960500" + }, + { + "Close": "166.119995", + "Date": "2011/6/23", + "High": "166.729996", + "Low": "163.800003", + "Open": "164.059998", + "Volume": "5271500" + }, + { + "Close": "165.070007", + "Date": "2011/6/24", + "High": "165.940002", + "Low": "164.570007", + "Open": "165.850006", + "Volume": "4402600" + }, + { + "Close": "167.619995", + "Date": "2011/6/27", + "High": "168.240005", + "Low": "165.210007", + "Open": "165.740005", + "Volume": "4446700" + }, + { + "Close": "170.009995", + "Date": "2011/6/28", + "High": "170.699997", + "Low": "168.009995", + "Open": "168.330002", + "Volume": "4850000" + }, + { + "Close": "170.539993", + "Date": "2011/6/29", + "High": "170.860001", + "Low": "169.820007", + "Open": "170.610001", + "Volume": "3817100" + }, + { + "Close": "171.550003", + "Date": "2011/6/30", + "High": "172.449997", + "Low": "170.75", + "Open": "171.110001", + "Volume": "5105200" + }, + { + "Close": "174.539993", + "Date": "2011/7/1", + "High": "174.649994", + "Low": "171.490005", + "Open": "171.610001", + "Volume": "5181700" + }, + { + "Close": "175.429993", + "Date": "2011/7/5", + "High": "175.429993", + "Low": "173.520004", + "Open": "173.520004", + "Volume": "4586500" + }, + { + "Close": "177.710007", + "Date": "2011/7/6", + "High": "177.770004", + "Low": "175.089996", + "Open": "175.190002", + "Volume": "5885900" + }, + { + "Close": "176.479996", + "Date": "2011/7/7", + "High": "177.270004", + "Low": "176.119995", + "Open": "176.779999", + "Volume": "5905600" + }, + { + "Close": "176.490005", + "Date": "2011/7/8", + "High": "176.490005", + "Low": "175.009995", + "Open": "175.490005", + "Volume": "4399900" + }, + { + "Close": "174.990005", + "Date": "2011/7/11", + "High": "176.149994", + "Low": "174.610001", + "Open": "174.899994", + "Volume": "4766500" + }, + { + "Close": "174.050003", + "Date": "2011/7/12", + "High": "175.369995", + "Low": "173.889999", + "Open": "174.929993", + "Volume": "5036800" + }, + { + "Close": "174.320007", + "Date": "2011/7/13", + "High": "176.320007", + "Low": "174", + "Open": "174.899994", + "Volume": "4074800" + }, + { + "Close": "174.229996", + "Date": "2011/7/14", + "High": "176.100006", + "Low": "173.839996", + "Open": "174.399994", + "Volume": "4613100" + }, + { + "Close": "175.539993", + "Date": "2011/7/15", + "High": "175.940002", + "Low": "174.070007", + "Open": "175.080002", + "Volume": "5347100" + }, + { + "Close": "175.279999", + "Date": "2011/7/18", + "High": "176.460007", + "Low": "173.580002", + "Open": "174.729996", + "Volume": "8879700" + }, + { + "Close": "185.210007", + "Date": "2011/7/19", + "High": "185.210007", + "Low": "178.649994", + "Open": "178.740005", + "Volume": "13245600" + }, + { + "Close": "183.649994", + "Date": "2011/7/20", + "High": "184.419998", + "Low": "183", + "Open": "183.839996", + "Volume": "5901100" + }, + { + "Close": "184.899994", + "Date": "2011/7/21", + "High": "185.5", + "Low": "182.899994", + "Open": "183.589996", + "Volume": "4958400" + }, + { + "Close": "185.179993", + "Date": "2011/7/22", + "High": "185.630005", + "Low": "184.259995", + "Open": "184.639999", + "Volume": "4516100" + }, + { + "Close": "183.699997", + "Date": "2011/7/25", + "High": "184.960007", + "Low": "183.279999", + "Open": "183.889999", + "Volume": "4987000" + }, + { + "Close": "182.929993", + "Date": "2011/7/26", + "High": "184.050003", + "Low": "182.649994", + "Open": "182.940002", + "Volume": "4356200" + }, + { + "Close": "181.350006", + "Date": "2011/7/27", + "High": "182.910004", + "Low": "180.929993", + "Open": "182.009995", + "Volume": "5806800" + }, + { + "Close": "181.800003", + "Date": "2011/7/28", + "High": "183.270004", + "Low": "180.880005", + "Open": "181.059998", + "Volume": "4478800" + }, + { + "Close": "181.850006", + "Date": "2011/7/29", + "High": "183.429993", + "Low": "179.729996", + "Open": "180.259995", + "Volume": "6665600" + }, + { + "Close": "180.75", + "Date": "2011/8/1", + "High": "183.690002", + "Low": "178.5", + "Open": "182.600006", + "Volume": "5842700" + }, + { + "Close": "178.050003", + "Date": "2011/8/2", + "High": "182.289993", + "Low": "177.860001", + "Open": "179.949997", + "Volume": "5770400" + }, + { + "Close": "178.830002", + "Date": "2011/8/3", + "High": "179.229996", + "Low": "175.410004", + "Open": "177.669998", + "Volume": "6722000" + }, + { + "Close": "171.479996", + "Date": "2011/8/4", + "High": "177.919998", + "Low": "171.179993", + "Open": "176.5", + "Volume": "11022300" + }, + { + "Close": "172.979996", + "Date": "2011/8/5", + "High": "174.220001", + "Low": "166.520004", + "Open": "172.100006", + "Volume": "11871800" + }, + { + "Close": "166.220001", + "Date": "2011/8/8", + "High": "172.610001", + "Low": "166", + "Open": "168.830002", + "Volume": "15804900" + }, + { + "Close": "170.610001", + "Date": "2011/8/9", + "High": "171.050003", + "Low": "162", + "Open": "167.460007", + "Volume": "12517600" + }, + { + "Close": "162.539993", + "Date": "2011/8/10", + "High": "169.229996", + "Low": "161.850006", + "Open": "168.179993", + "Volume": "13993600" + }, + { + "Close": "166.729996", + "Date": "2011/8/11", + "High": "168.770004", + "Low": "162.940002", + "Open": "164.100006", + "Volume": "9175600" + }, + { + "Close": "168.199997", + "Date": "2011/8/12", + "High": "169.380005", + "Low": "165.830002", + "Open": "168.5", + "Volume": "5187000" + }, + { + "Close": "172.990005", + "Date": "2011/8/15", + "High": "174", + "Low": "170.389999", + "Open": "171.320007", + "Volume": "7645400" + }, + { + "Close": "171.240005", + "Date": "2011/8/16", + "High": "172.190002", + "Low": "169", + "Open": "172.190002", + "Volume": "5585400" + }, + { + "Close": "171.479996", + "Date": "2011/8/17", + "High": "172.990005", + "Low": "169.889999", + "Open": "171.570007", + "Volume": "5129700" + }, + { + "Close": "163.830002", + "Date": "2011/8/18", + "High": "166.460007", + "Low": "160.160004", + "Open": "166.320007", + "Volume": "15082600" + }, + { + "Close": "157.539993", + "Date": "2011/8/19", + "High": "163.940002", + "Low": "157.130005", + "Open": "162.169998", + "Volume": "14068600" + }, + { + "Close": "158.979996", + "Date": "2011/8/22", + "High": "161.679993", + "Low": "157.619995", + "Open": "161.350006", + "Volume": "7249100" + }, + { + "Close": "164.320007", + "Date": "2011/8/23", + "High": "164.589996", + "Low": "159.529999", + "Open": "160.649994", + "Volume": "6923300" + }, + { + "Close": "166.759995", + "Date": "2011/8/24", + "High": "166.830002", + "Low": "163.350006", + "Open": "164.130005", + "Volume": "6427000" + }, + { + "Close": "165.580002", + "Date": "2011/8/25", + "High": "168.529999", + "Low": "164.850006", + "Open": "167.520004", + "Volume": "6751600" + }, + { + "Close": "169.139999", + "Date": "2011/8/26", + "High": "169.330002", + "Low": "163.279999", + "Open": "164.850006", + "Volume": "6438200" + }, + { + "Close": "172.619995", + "Date": "2011/8/29", + "High": "172.720001", + "Low": "170.360001", + "Open": "170.580002", + "Volume": "5293400" + }, + { + "Close": "172.509995", + "Date": "2011/8/30", + "High": "173.509995", + "Low": "170.880005", + "Open": "172.059998", + "Volume": "4477700" + }, + { + "Close": "171.910004", + "Date": "2011/8/31", + "High": "173.720001", + "Low": "170.710007", + "Open": "173.289993", + "Volume": "6074200" + }, + { + "Close": "170.330002", + "Date": "2011/9/1", + "High": "173.679993", + "Low": "170.119995", + "Open": "172.710007", + "Volume": "5463900" + }, + { + "Close": "166.979996", + "Date": "2011/9/2", + "High": "168.929993", + "Low": "166", + "Open": "167.690002", + "Volume": "4979100" + }, + { + "Close": "165.110001", + "Date": "2011/9/6", + "High": "165.550003", + "Low": "162.199997", + "Open": "163.059998", + "Volume": "5761200" + }, + { + "Close": "167.309998", + "Date": "2011/9/7", + "High": "167.899994", + "Low": "166.160004", + "Open": "167.279999", + "Volume": "6796600" + }, + { + "Close": "165.25", + "Date": "2011/9/8", + "High": "169.580002", + "Low": "165.100006", + "Open": "167", + "Volume": "6027200" + }, + { + "Close": "161.369995", + "Date": "2011/9/9", + "High": "165.190002", + "Low": "160.809998", + "Open": "164.570007", + "Volume": "6743900" + }, + { + "Close": "162.419998", + "Date": "2011/9/12", + "High": "162.440002", + "Low": "158.759995", + "Open": "160.039993", + "Volume": "5247200" + }, + { + "Close": "163.429993", + "Date": "2011/9/13", + "High": "163.919998", + "Low": "161.539993", + "Open": "163.639999", + "Volume": "4723800" + }, + { + "Close": "167.240005", + "Date": "2011/9/14", + "High": "169.660004", + "Low": "161.990005", + "Open": "164.009995", + "Volume": "6980700" + }, + { + "Close": "170.089996", + "Date": "2011/9/15", + "High": "170.160004", + "Low": "167.229996", + "Open": "168.639999", + "Volume": "5464400" + }, + { + "Close": "172.990005", + "Date": "2011/9/16", + "High": "172.990005", + "Low": "169.740005", + "Open": "171.330002", + "Volume": "11048100" + }, + { + "Close": "173.130005", + "Date": "2011/9/19", + "High": "173.869995", + "Low": "169.429993", + "Open": "169.5", + "Volume": "4755600" + }, + { + "Close": "174.720001", + "Date": "2011/9/20", + "High": "177.429993", + "Low": "172.699997", + "Open": "173.570007", + "Volume": "6209600" + }, + { + "Close": "173.020004", + "Date": "2011/9/21", + "High": "177.669998", + "Low": "172.619995", + "Open": "175", + "Volume": "7043100" + }, + { + "Close": "168.619995", + "Date": "2011/9/22", + "High": "169.970001", + "Low": "166.5", + "Open": "168.330002", + "Volume": "8195600" + }, + { + "Close": "169.339996", + "Date": "2011/9/23", + "High": "169.539993", + "Low": "165.759995", + "Open": "166.990005", + "Volume": "5586600" + }, + { + "Close": "174.509995", + "Date": "2011/9/26", + "High": "174.699997", + "Low": "169.860001", + "Open": "170.960007", + "Volume": "6745700" + }, + { + "Close": "177.710007", + "Date": "2011/9/27", + "High": "179.619995", + "Low": "176.429993", + "Open": "176.820007", + "Volume": "7638800" + }, + { + "Close": "177.550003", + "Date": "2011/9/28", + "High": "180.75", + "Low": "177.080002", + "Open": "177.970001", + "Volume": "7732200" + }, + { + "Close": "179.169998", + "Date": "2011/9/29", + "High": "180.910004", + "Low": "175.529999", + "Open": "179.690002", + "Volume": "6944300" + }, + { + "Close": "174.869995", + "Date": "2011/9/30", + "High": "178.270004", + "Low": "174.75", + "Open": "176.009995", + "Volume": "7807400" + }, + { + "Close": "173.289993", + "Date": "2011/10/3", + "High": "177.919998", + "Low": "173.039993", + "Open": "174.360001", + "Volume": "9042600" + }, + { + "Close": "174.740005", + "Date": "2011/10/4", + "High": "175.070007", + "Low": "168.880005", + "Open": "171.539993", + "Volume": "9200000" + }, + { + "Close": "176.850006", + "Date": "2011/10/5", + "High": "177.300003", + "Low": "172.679993", + "Open": "174.570007", + "Volume": "5851700" + }, + { + "Close": "181.690002", + "Date": "2011/10/6", + "High": "181.990005", + "Low": "175.660004", + "Open": "176.809998", + "Volume": "7180900" + }, + { + "Close": "182.389999", + "Date": "2011/10/7", + "High": "183.720001", + "Low": "181.639999", + "Open": "182.320007", + "Volume": "6842600" + }, + { + "Close": "186.619995", + "Date": "2011/10/10", + "High": "186.630005", + "Low": "182.899994", + "Open": "183", + "Volume": "5784800" + }, + { + "Close": "185", + "Date": "2011/10/11", + "High": "186", + "Low": "184.110001", + "Open": "184.589996", + "Volume": "5330500" + }, + { + "Close": "186.119995", + "Date": "2011/10/12", + "High": "188", + "Low": "185.649994", + "Open": "186.080002", + "Volume": "5338200" + }, + { + "Close": "186.820007", + "Date": "2011/10/13", + "High": "187.5", + "Low": "184.5", + "Open": "184.970001", + "Volume": "4399200" + }, + { + "Close": "190.529999", + "Date": "2011/10/14", + "High": "190.529999", + "Low": "187.729996", + "Open": "188.190002", + "Volume": "5368200" + }, + { + "Close": "186.589996", + "Date": "2011/10/17", + "High": "190.160004", + "Low": "185.899994", + "Open": "189.710007", + "Volume": "8790300" + }, + { + "Close": "178.899994", + "Date": "2011/10/18", + "High": "179.380005", + "Low": "176.25", + "Open": "178", + "Volume": "15729400" + }, + { + "Close": "177.389999", + "Date": "2011/10/19", + "High": "179.809998", + "Low": "177.009995", + "Open": "179.679993", + "Volume": "6708300" + }, + { + "Close": "177.25", + "Date": "2011/10/20", + "High": "179.240005", + "Low": "176.169998", + "Open": "178.130005", + "Volume": "7513800" + }, + { + "Close": "181.630005", + "Date": "2011/10/21", + "High": "181.669998", + "Low": "178.75", + "Open": "179.110001", + "Volume": "8054200" + }, + { + "Close": "182.25", + "Date": "2011/10/24", + "High": "183.389999", + "Low": "180.619995", + "Open": "181.509995", + "Volume": "5890600" + }, + { + "Close": "180.360001", + "Date": "2011/10/25", + "High": "182.970001", + "Low": "180.009995", + "Open": "181.660004", + "Volume": "5373100" + }, + { + "Close": "181.970001", + "Date": "2011/10/26", + "High": "182.279999", + "Low": "179.029999", + "Open": "181.740005", + "Volume": "5387700" + }, + { + "Close": "185.880005", + "Date": "2011/10/27", + "High": "187", + "Low": "183.179993", + "Open": "184.990005", + "Volume": "7057800" + }, + { + "Close": "187.449997", + "Date": "2011/10/28", + "High": "188.070007", + "Low": "185.279999", + "Open": "185.570007", + "Volume": "5009800" + }, + { + "Close": "184.630005", + "Date": "2011/10/31", + "High": "186.910004", + "Low": "184.630005", + "Open": "185.589996", + "Volume": "4710000" + }, + { + "Close": "181.350006", + "Date": "2011/11/1", + "High": "183.259995", + "Low": "180.740005", + "Open": "181.550003", + "Volume": "5881200" + }, + { + "Close": "183.919998", + "Date": "2011/11/2", + "High": "185.25", + "Low": "183.029999", + "Open": "184", + "Volume": "4136600" + }, + { + "Close": "187.300003", + "Date": "2011/11/3", + "High": "187.779999", + "Low": "184.020004", + "Open": "185.130005", + "Volume": "4953500" + }, + { + "Close": "186.380005", + "Date": "2011/11/4", + "High": "187.139999", + "Low": "184.740005", + "Open": "186.270004", + "Volume": "3237600" + }, + { + "Close": "187.320007", + "Date": "2011/11/7", + "High": "187.729996", + "Low": "184.75", + "Open": "186.220001", + "Volume": "3530800" + }, + { + "Close": "187.25", + "Date": "2011/11/8", + "High": "187.880005", + "Low": "185.509995", + "Open": "187.479996", + "Volume": "4330600" + }, + { + "Close": "182.240005", + "Date": "2011/11/9", + "High": "185.240005", + "Low": "181.160004", + "Open": "184.199997", + "Volume": "5494800" + }, + { + "Close": "183.350006", + "Date": "2011/11/10", + "High": "184.770004", + "Low": "181.869995", + "Open": "183.580002", + "Volume": "3881600" + }, + { + "Close": "187.380005", + "Date": "2011/11/11", + "High": "187.830002", + "Low": "185.139999", + "Open": "185.270004", + "Volume": "3665300" + }, + { + "Close": "187.350006", + "Date": "2011/11/14", + "High": "189.839996", + "Low": "186.850006", + "Open": "189.169998", + "Volume": "6038600" + }, + { + "Close": "188.75", + "Date": "2011/11/15", + "High": "189.970001", + "Low": "185.639999", + "Open": "187.490005", + "Volume": "4585300" + }, + { + "Close": "186.619995", + "Date": "2011/11/16", + "High": "189.899994", + "Low": "186.300003", + "Open": "187.820007", + "Volume": "4616800" + }, + { + "Close": "185.729996", + "Date": "2011/11/17", + "High": "188.830002", + "Low": "183.389999", + "Open": "186.809998", + "Volume": "5840500" + }, + { + "Close": "185.240005", + "Date": "2011/11/18", + "High": "186.970001", + "Low": "184.660004", + "Open": "186.710007", + "Volume": "4440900" + }, + { + "Close": "181.479996", + "Date": "2011/11/21", + "High": "183.960007", + "Low": "180", + "Open": "183.369995", + "Volume": "5145100" + }, + { + "Close": "181.309998", + "Date": "2011/11/22", + "High": "182.979996", + "Low": "180.289993", + "Open": "182.220001", + "Volume": "4178600" + }, + { + "Close": "177.949997", + "Date": "2011/11/23", + "High": "181.490005", + "Low": "177.520004", + "Open": "180.669998", + "Volume": "4800900" + }, + { + "Close": "177.059998", + "Date": "2011/11/25", + "High": "179.559998", + "Low": "177.059998", + "Open": "178.009995", + "Volume": "2232800" + }, + { + "Close": "182.210007", + "Date": "2011/11/28", + "High": "182.929993", + "Low": "180.669998", + "Open": "182.710007", + "Volume": "4524200" + }, + { + "Close": "180.940002", + "Date": "2011/11/29", + "High": "183.309998", + "Low": "180.839996", + "Open": "182.020004", + "Volume": "3661600" + }, + { + "Close": "188", + "Date": "2011/11/30", + "High": "188.350006", + "Low": "184.210007", + "Open": "184.570007", + "Volume": "7836800" + }, + { + "Close": "189.449997", + "Date": "2011/12/1", + "High": "189.990005", + "Low": "186.770004", + "Open": "187.009995", + "Volume": "4858800" + }, + { + "Close": "189.660004", + "Date": "2011/12/2", + "High": "191.330002", + "Low": "189.449997", + "Open": "189.919998", + "Volume": "4962200" + }, + { + "Close": "190.839996", + "Date": "2011/12/5", + "High": "193.610001", + "Low": "190.380005", + "Open": "191.179993", + "Volume": "5699400" + }, + { + "Close": "192.940002", + "Date": "2011/12/6", + "High": "193.529999", + "Low": "190.320007", + "Open": "190.649994", + "Volume": "4144900" + }, + { + "Close": "194.050003", + "Date": "2011/12/7", + "High": "194.899994", + "Low": "191.279999", + "Open": "191.990005", + "Volume": "5081700" + }, + { + "Close": "191.580002", + "Date": "2011/12/8", + "High": "193.800003", + "Low": "191.070007", + "Open": "192.479996", + "Volume": "4369000" + }, + { + "Close": "194.559998", + "Date": "2011/12/9", + "High": "194.869995", + "Low": "192.399994", + "Open": "192.910004", + "Volume": "4847900" + }, + { + "Close": "192.179993", + "Date": "2011/12/12", + "High": "193.899994", + "Low": "191.220001", + "Open": "193.639999", + "Volume": "3796100" + }, + { + "Close": "191.149994", + "Date": "2011/12/13", + "High": "194.300003", + "Low": "190.639999", + "Open": "193.460007", + "Volume": "5008400" + }, + { + "Close": "188.720001", + "Date": "2011/12/14", + "High": "190.279999", + "Low": "188", + "Open": "189.839996", + "Volume": "5057700" + }, + { + "Close": "187.479996", + "Date": "2011/12/15", + "High": "191.199997", + "Low": "186.889999", + "Open": "190.479996", + "Volume": "4474500" + }, + { + "Close": "183.570007", + "Date": "2011/12/16", + "High": "188.009995", + "Low": "181.910004", + "Open": "188.009995", + "Volume": "11849400" + }, + { + "Close": "182.889999", + "Date": "2011/12/19", + "High": "184.690002", + "Low": "182.25", + "Open": "184.509995", + "Volume": "5039900" + }, + { + "Close": "187.240005", + "Date": "2011/12/20", + "High": "187.330002", + "Low": "184.759995", + "Open": "185.5", + "Volume": "4740100" + }, + { + "Close": "181.470001", + "Date": "2011/12/21", + "High": "183.5", + "Low": "179.039993", + "Open": "183.220001", + "Volume": "9282500" + }, + { + "Close": "182.039993", + "Date": "2011/12/22", + "High": "182.800003", + "Low": "181", + "Open": "182.710007", + "Volume": "5052000" + }, + { + "Close": "184.75", + "Date": "2011/12/23", + "High": "184.850006", + "Low": "181.889999", + "Open": "183.110001", + "Volume": "3052300" + }, + { + "Close": "184.949997", + "Date": "2011/12/27", + "High": "185.850006", + "Low": "184.389999", + "Open": "184.970001", + "Volume": "2775200" + }, + { + "Close": "183.990005", + "Date": "2011/12/28", + "High": "185.399994", + "Low": "183.339996", + "Open": "185.190002", + "Volume": "2872000" + }, + { + "Close": "186.179993", + "Date": "2011/12/29", + "High": "186.229996", + "Low": "184.009995", + "Open": "184.070007", + "Volume": "2941600" + }, + { + "Close": "183.880005", + "Date": "2011/12/30", + "High": "186.479996", + "Low": "183.850006", + "Open": "186.330002", + "Volume": "3530900" + }, + { + "Close": "186.300003", + "Date": "2012/1/3", + "High": "188.710007", + "Low": "186", + "Open": "186.729996", + "Volume": "5646000" + }, + { + "Close": "185.539993", + "Date": "2012/1/4", + "High": "186.330002", + "Low": "184.940002", + "Open": "185.570007", + "Volume": "4346700" + }, + { + "Close": "184.660004", + "Date": "2012/1/5", + "High": "185.029999", + "Low": "183.100006", + "Open": "184.809998", + "Volume": "4463100" + }, + { + "Close": "182.539993", + "Date": "2012/1/6", + "High": "184.479996", + "Low": "182.309998", + "Open": "184.389999", + "Volume": "4897100" + }, + { + "Close": "181.589996", + "Date": "2012/1/9", + "High": "182.270004", + "Low": "180.270004", + "Open": "182.199997", + "Volume": "5201200" + }, + { + "Close": "181.309998", + "Date": "2012/1/10", + "High": "183.720001", + "Low": "181.199997", + "Open": "183.229996", + "Volume": "5161000" + }, + { + "Close": "182.320007", + "Date": "2012/1/11", + "High": "182.809998", + "Low": "180.5", + "Open": "180.729996", + "Volume": "4110800" + }, + { + "Close": "180.550003", + "Date": "2012/1/12", + "High": "181.910004", + "Low": "178.380005", + "Open": "181.860001", + "Volume": "6881000" + }, + { + "Close": "179.160004", + "Date": "2012/1/13", + "High": "179.610001", + "Low": "177.350006", + "Open": "179.479996", + "Volume": "5279200" + }, + { + "Close": "180", + "Date": "2012/1/17", + "High": "182", + "Low": "179.320007", + "Open": "180.360001", + "Volume": "6003400" + }, + { + "Close": "181.070007", + "Date": "2012/1/18", + "High": "181.600006", + "Low": "179.5", + "Open": "179.830002", + "Volume": "4600600" + }, + { + "Close": "180.520004", + "Date": "2012/1/19", + "High": "182.360001", + "Low": "180.350006", + "Open": "181.789993", + "Volume": "8567200" + }, + { + "Close": "188.520004", + "Date": "2012/1/20", + "High": "188.970001", + "Low": "184.75", + "Open": "185.770004", + "Volume": "12849700" + }, + { + "Close": "189.979996", + "Date": "2012/1/23", + "High": "190.520004", + "Low": "187.669998", + "Open": "187.910004", + "Volume": "5751700" + }, + { + "Close": "191.929993", + "Date": "2012/1/24", + "High": "192.300003", + "Low": "188.520004", + "Open": "188.630005", + "Volume": "5345700" + }, + { + "Close": "191.729996", + "Date": "2012/1/25", + "High": "192.240005", + "Low": "189.610001", + "Open": "191.330002", + "Volume": "4359700" + }, + { + "Close": "190.979996", + "Date": "2012/1/26", + "High": "192.789993", + "Low": "190.470001", + "Open": "191.789993", + "Volume": "4004700" + }, + { + "Close": "190.460007", + "Date": "2012/1/27", + "High": "191.770004", + "Low": "189.809998", + "Open": "190.009995", + "Volume": "3360400" + }, + { + "Close": "192.5", + "Date": "2012/1/30", + "High": "192.729996", + "Low": "188.220001", + "Open": "189.389999", + "Volume": "4359000" + }, + { + "Close": "192.600006", + "Date": "2012/1/31", + "High": "193.100006", + "Low": "191", + "Open": "193.089996", + "Volume": "4826800" + }, + { + "Close": "192.619995", + "Date": "2012/2/1", + "High": "194.809998", + "Low": "192.410004", + "Open": "193.210007", + "Volume": "5088800" + }, + { + "Close": "191.529999", + "Date": "2012/2/2", + "High": "193.330002", + "Low": "191.330002", + "Open": "192.720001", + "Volume": "3907300" + }, + { + "Close": "193.639999", + "Date": "2012/2/3", + "High": "194.130005", + "Low": "192.539993", + "Open": "192.929993", + "Volume": "4521700" + }, + { + "Close": "192.820007", + "Date": "2012/2/6", + "High": "193.759995", + "Low": "192", + "Open": "192.479996", + "Volume": "3639800" + }, + { + "Close": "193.350006", + "Date": "2012/2/7", + "High": "194.139999", + "Low": "191.970001", + "Open": "192.449997", + "Volume": "3433000" + }, + { + "Close": "192.949997", + "Date": "2012/2/8", + "High": "193.580002", + "Low": "191.729996", + "Open": "192.779999", + "Volume": "3803800" + }, + { + "Close": "193.130005", + "Date": "2012/2/9", + "High": "194.460007", + "Low": "192.550003", + "Open": "193.029999", + "Volume": "3876400" + }, + { + "Close": "192.419998", + "Date": "2012/2/10", + "High": "192.429993", + "Low": "191.279999", + "Open": "191.759995", + "Volume": "3391100" + }, + { + "Close": "192.619995", + "Date": "2012/2/13", + "High": "193.690002", + "Low": "191.740005", + "Open": "193.309998", + "Volume": "2458800" + }, + { + "Close": "192.220001", + "Date": "2012/2/14", + "High": "192.600006", + "Low": "190.830002", + "Open": "191.759995", + "Volume": "3398100" + }, + { + "Close": "192.25", + "Date": "2012/2/15", + "High": "193.440002", + "Low": "191.259995", + "Open": "192.309998", + "Volume": "4020900" + }, + { + "Close": "193.020004", + "Date": "2012/2/16", + "High": "193.25", + "Low": "192", + "Open": "192.610001", + "Volume": "3525500" + }, + { + "Close": "193.419998", + "Date": "2012/2/17", + "High": "193.860001", + "Low": "192.300003", + "Open": "193.710007", + "Volume": "3746500" + }, + { + "Close": "193.389999", + "Date": "2012/2/21", + "High": "194.240005", + "Low": "192.460007", + "Open": "193.729996", + "Volume": "3293600" + }, + { + "Close": "193.869995", + "Date": "2012/2/22", + "High": "194.740005", + "Low": "192.75", + "Open": "193.029999", + "Volume": "3275800" + }, + { + "Close": "197.610001", + "Date": "2012/2/23", + "High": "199.229996", + "Low": "193.279999", + "Open": "193.869995", + "Volume": "8032700" + }, + { + "Close": "197.759995", + "Date": "2012/2/24", + "High": "198.559998", + "Low": "196.610001", + "Open": "198.380005", + "Volume": "3353200" + }, + { + "Close": "197.529999", + "Date": "2012/2/27", + "High": "198.710007", + "Low": "196.100006", + "Open": "196.779999", + "Volume": "3758400" + }, + { + "Close": "197.979996", + "Date": "2012/2/28", + "High": "198.960007", + "Low": "197.429993", + "Open": "197.75", + "Volume": "3167400" + }, + { + "Close": "196.729996", + "Date": "2012/2/29", + "High": "199.169998", + "Low": "196.449997", + "Open": "197.860001", + "Volume": "5117100" + }, + { + "Close": "197.529999", + "Date": "2012/3/1", + "High": "198.470001", + "Low": "196.929993", + "Open": "197.229996", + "Volume": "3560300" + }, + { + "Close": "198.809998", + "Date": "2012/3/2", + "High": "198.889999", + "Low": "197.059998", + "Open": "197.100006", + "Volume": "3727400" + }, + { + "Close": "200.660004", + "Date": "2012/3/5", + "High": "201.190002", + "Low": "198.300003", + "Open": "198.360001", + "Volume": "6938000" + }, + { + "Close": "197.259995", + "Date": "2012/3/6", + "High": "199.639999", + "Low": "196.809998", + "Open": "199.139999", + "Volume": "5214700" + }, + { + "Close": "197.770004", + "Date": "2012/3/7", + "High": "198.570007", + "Low": "197.309998", + "Open": "198.089996", + "Volume": "3346900" + }, + { + "Close": "199.809998", + "Date": "2012/3/8", + "High": "199.990005", + "Low": "198.649994", + "Open": "199.240005", + "Volume": "3145800" + }, + { + "Close": "200.619995", + "Date": "2012/3/9", + "High": "201.100006", + "Low": "199.720001", + "Open": "199.979996", + "Volume": "3178200" + }, + { + "Close": "201", + "Date": "2012/3/12", + "High": "201.570007", + "Low": "200.229996", + "Open": "200.929993", + "Volume": "3119700" + }, + { + "Close": "203.779999", + "Date": "2012/3/13", + "High": "203.899994", + "Low": "201.610001", + "Open": "201.720001", + "Volume": "4866000" + }, + { + "Close": "204.720001", + "Date": "2012/3/14", + "High": "205.149994", + "Low": "203.639999", + "Open": "203.779999", + "Volume": "4602300" + }, + { + "Close": "206", + "Date": "2012/3/15", + "High": "206.179993", + "Low": "204.740005", + "Open": "204.940002", + "Volume": "3621100" + }, + { + "Close": "206.009995", + "Date": "2012/3/16", + "High": "207.520004", + "Low": "206.009995", + "Open": "207.029999", + "Volume": "9637000" + }, + { + "Close": "205.720001", + "Date": "2012/3/19", + "High": "206.529999", + "Low": "204.5", + "Open": "205.710007", + "Volume": "3763200" + }, + { + "Close": "204.25", + "Date": "2012/3/20", + "High": "205", + "Low": "203.699997", + "Open": "204.740005", + "Volume": "3695100" + }, + { + "Close": "204.690002", + "Date": "2012/3/21", + "High": "205.770004", + "Low": "204.300003", + "Open": "204.320007", + "Volume": "3329900" + }, + { + "Close": "205.490005", + "Date": "2012/3/22", + "High": "205.990005", + "Low": "203.960007", + "Open": "204", + "Volume": "3307800" + }, + { + "Close": "205.479996", + "Date": "2012/3/23", + "High": "205.960007", + "Low": "204.559998", + "Open": "205.889999", + "Volume": "3036200" + }, + { + "Close": "207.770004", + "Date": "2012/3/26", + "High": "207.919998", + "Low": "206.320007", + "Open": "206.449997", + "Volume": "3418200" + }, + { + "Close": "207.179993", + "Date": "2012/3/27", + "High": "208.660004", + "Low": "207", + "Open": "208.460007", + "Volume": "2704500" + }, + { + "Close": "207.289993", + "Date": "2012/3/28", + "High": "208.690002", + "Low": "206.270004", + "Open": "207.440002", + "Volume": "3265700" + }, + { + "Close": "208.270004", + "Date": "2012/3/29", + "High": "208.5", + "Low": "206.020004", + "Open": "206.089996", + "Volume": "3403700" + }, + { + "Close": "208.649994", + "Date": "2012/3/30", + "High": "209.119995", + "Low": "208.009995", + "Open": "208.740005", + "Volume": "3215200" + }, + { + "Close": "209.470001", + "Date": "2012/4/2", + "High": "209.690002", + "Low": "208.089996", + "Open": "208.960007", + "Volume": "3387900" + }, + { + "Close": "209.5", + "Date": "2012/4/3", + "High": "210.690002", + "Low": "208.539993", + "Open": "209.309998", + "Volume": "4091500" + }, + { + "Close": "206.050003", + "Date": "2012/4/4", + "High": "206.979996", + "Low": "205.190002", + "Open": "206.220001", + "Volume": "4404000" + }, + { + "Close": "205.470001", + "Date": "2012/4/5", + "High": "205.679993", + "Low": "204.460007", + "Open": "205.149994", + "Volume": "3809000" + }, + { + "Close": "204.940002", + "Date": "2012/4/9", + "High": "206.169998", + "Low": "203.369995", + "Open": "204.399994", + "Volume": "3326900" + }, + { + "Close": "202.330002", + "Date": "2012/4/10", + "High": "205.740005", + "Low": "202.169998", + "Open": "204.940002", + "Volume": "4132900" + }, + { + "Close": "202.580002", + "Date": "2012/4/11", + "High": "204.320007", + "Low": "202.460007", + "Open": "203.990005", + "Volume": "3366200" + }, + { + "Close": "205.320007", + "Date": "2012/4/12", + "High": "205.559998", + "Low": "202.639999", + "Open": "202.800003", + "Volume": "2929600" + }, + { + "Close": "202.800003", + "Date": "2012/4/13", + "High": "204.649994", + "Low": "202.800003", + "Open": "204.320007", + "Volume": "3767000" + }, + { + "Close": "202.720001", + "Date": "2012/4/16", + "High": "205.970001", + "Low": "202.720001", + "Open": "204.740005", + "Volume": "3826600" + }, + { + "Close": "207.449997", + "Date": "2012/4/17", + "High": "207.639999", + "Low": "204.149994", + "Open": "204.570007", + "Volume": "6065500" + }, + { + "Close": "200.130005", + "Date": "2012/4/18", + "High": "204.070007", + "Low": "200", + "Open": "202.429993", + "Volume": "10153500" + }, + { + "Close": "199.509995", + "Date": "2012/4/19", + "High": "201.259995", + "Low": "197.520004", + "Open": "200.029999", + "Volume": "5762900" + }, + { + "Close": "199.600006", + "Date": "2012/4/20", + "High": "200.119995", + "Low": "199.089996", + "Open": "199.830002", + "Volume": "4758200" + }, + { + "Close": "198.619995", + "Date": "2012/4/23", + "High": "199.100006", + "Low": "196.789993", + "Open": "197.889999", + "Volume": "3618800" + }, + { + "Close": "200", + "Date": "2012/4/24", + "High": "202.479996", + "Low": "198.869995", + "Open": "199.059998", + "Volume": "5626300" + }, + { + "Close": "203.570007", + "Date": "2012/4/25", + "High": "203.690002", + "Low": "201.800003", + "Open": "202.020004", + "Volume": "4003400" + }, + { + "Close": "205.580002", + "Date": "2012/4/26", + "High": "206.210007", + "Low": "203.399994", + "Open": "203.399994", + "Volume": "3302700" + }, + { + "Close": "206.809998", + "Date": "2012/4/27", + "High": "208.169998", + "Low": "205.910004", + "Open": "206.470001", + "Volume": "3496900" + }, + { + "Close": "207.080002", + "Date": "2012/4/30", + "High": "207.960007", + "Low": "206.320007", + "Open": "206.710007", + "Volume": "2773200" + }, + { + "Close": "208", + "Date": "2012/5/1", + "High": "208.929993", + "Low": "206.710007", + "Open": "207.179993", + "Volume": "2715900" + }, + { + "Close": "208.059998", + "Date": "2012/5/2", + "High": "208.270004", + "Low": "206.910004", + "Open": "206.970001", + "Volume": "2360300" + }, + { + "Close": "207.240005", + "Date": "2012/5/3", + "High": "208.919998", + "Low": "206.550003", + "Open": "208.270004", + "Volume": "2826600" + }, + { + "Close": "204.990005", + "Date": "2012/5/4", + "High": "207.110001", + "Low": "204.399994", + "Open": "206.470001", + "Volume": "4023600" + }, + { + "Close": "203.75", + "Date": "2012/5/7", + "High": "204.770004", + "Low": "202.899994", + "Open": "203.960007", + "Volume": "3373400" + }, + { + "Close": "201.479996", + "Date": "2012/5/8", + "High": "203.059998", + "Low": "199.720001", + "Open": "202.440002", + "Volume": "3881500" + }, + { + "Close": "201.229996", + "Date": "2012/5/9", + "High": "203", + "Low": "199.059998", + "Open": "199.990005", + "Volume": "3742500" + }, + { + "Close": "200.600006", + "Date": "2012/5/10", + "High": "203.25", + "Low": "200.020004", + "Open": "201", + "Volume": "3830500" + }, + { + "Close": "201.169998", + "Date": "2012/5/11", + "High": "202.119995", + "Low": "199.949997", + "Open": "199.960007", + "Volume": "2391500" + }, + { + "Close": "199.440002", + "Date": "2012/5/14", + "High": "200.710007", + "Low": "198.559998", + "Open": "199.919998", + "Volume": "3029200" + }, + { + "Close": "199.039993", + "Date": "2012/5/15", + "High": "201.470001", + "Low": "198.759995", + "Open": "199.440002", + "Volume": "2987400" + }, + { + "Close": "199.729996", + "Date": "2012/5/16", + "High": "201.350006", + "Low": "198.179993", + "Open": "199.419998", + "Volume": "5001000" + }, + { + "Close": "197.889999", + "Date": "2012/5/17", + "High": "200.789993", + "Low": "197.639999", + "Open": "199.669998", + "Volume": "5626300" + }, + { + "Close": "195.880005", + "Date": "2012/5/18", + "High": "198.779999", + "Low": "195.160004", + "Open": "198.779999", + "Volume": "5737100" + }, + { + "Close": "197.759995", + "Date": "2012/5/21", + "High": "197.929993", + "Low": "194.630005", + "Open": "195.979996", + "Volume": "3831700" + }, + { + "Close": "196.820007", + "Date": "2012/5/22", + "High": "198.259995", + "Low": "196.059998", + "Open": "198.039993", + "Volume": "3567100" + }, + { + "Close": "196.119995", + "Date": "2012/5/23", + "High": "196.490005", + "Low": "193.199997", + "Open": "195.529999", + "Volume": "4100000" + }, + { + "Close": "196.089996", + "Date": "2012/5/24", + "High": "196.279999", + "Low": "194", + "Open": "195.990005", + "Volume": "3569300" + }, + { + "Close": "194.300003", + "Date": "2012/5/25", + "High": "196", + "Low": "194", + "Open": "195.110001", + "Volume": "2901900" + }, + { + "Close": "196.460007", + "Date": "2012/5/29", + "High": "198.080002", + "Low": "195.220001", + "Open": "195.220001", + "Volume": "3618500" + }, + { + "Close": "194.529999", + "Date": "2012/5/30", + "High": "195.470001", + "Low": "193.770004", + "Open": "194.800003", + "Volume": "3602500" + }, + { + "Close": "192.899994", + "Date": "2012/5/31", + "High": "194.929993", + "Low": "192", + "Open": "194.100006", + "Volume": "9287500" + }, + { + "Close": "189.080002", + "Date": "2012/6/1", + "High": "191.720001", + "Low": "188.600006", + "Open": "190.119995", + "Volume": "5206400" + }, + { + "Close": "188.539993", + "Date": "2012/6/4", + "High": "189.380005", + "Low": "187", + "Open": "188.339996", + "Volume": "4624500" + }, + { + "Close": "189.199997", + "Date": "2012/6/5", + "High": "189.850006", + "Low": "187.559998", + "Open": "187.919998", + "Volume": "3556500" + }, + { + "Close": "193.990005", + "Date": "2012/6/6", + "High": "194", + "Low": "190.020004", + "Open": "190.779999", + "Volume": "3641300" + }, + { + "Close": "194.440002", + "Date": "2012/6/7", + "High": "195.830002", + "Low": "193.940002", + "Open": "195.279999", + "Volume": "3701100" + }, + { + "Close": "195.139999", + "Date": "2012/6/8", + "High": "195.139999", + "Low": "192.699997", + "Open": "193.710007", + "Volume": "2479200" + }, + { + "Close": "192.509995", + "Date": "2012/6/11", + "High": "196.699997", + "Low": "192.369995", + "Open": "196.600006", + "Volume": "3273300" + }, + { + "Close": "194.550003", + "Date": "2012/6/12", + "High": "194.669998", + "Low": "192.139999", + "Open": "192.139999", + "Volume": "3023700" + }, + { + "Close": "193.100006", + "Date": "2012/6/13", + "High": "195.190002", + "Low": "192.350006", + "Open": "194.360001", + "Volume": "3247700" + }, + { + "Close": "195.100006", + "Date": "2012/6/14", + "High": "195.830002", + "Low": "192.740005", + "Open": "193", + "Volume": "3585000" + }, + { + "Close": "199.100006", + "Date": "2012/6/15", + "High": "199.270004", + "Low": "195.399994", + "Open": "196.080002", + "Volume": "6389000" + }, + { + "Close": "198.289993", + "Date": "2012/6/18", + "High": "199.639999", + "Low": "197.169998", + "Open": "197.570007", + "Volume": "3378900" + }, + { + "Close": "198.929993", + "Date": "2012/6/19", + "High": "199.990005", + "Low": "198.800003", + "Open": "198.830002", + "Volume": "3297600" + }, + { + "Close": "198.779999", + "Date": "2012/6/20", + "High": "199.740005", + "Low": "197.5", + "Open": "198.699997", + "Volume": "3378200" + }, + { + "Close": "193.389999", + "Date": "2012/6/21", + "High": "199.449997", + "Low": "193.190002", + "Open": "199.070007", + "Volume": "4316600" + }, + { + "Close": "193.699997", + "Date": "2012/6/22", + "High": "194.880005", + "Low": "193.220001", + "Open": "193.869995", + "Volume": "8823000" + }, + { + "Close": "192.860001", + "Date": "2012/6/25", + "High": "193.389999", + "Low": "191.679993", + "Open": "192.479996", + "Volume": "3211600" + }, + { + "Close": "191.949997", + "Date": "2012/6/26", + "High": "193.679993", + "Low": "190.75", + "Open": "193.539993", + "Volume": "3435900" + }, + { + "Close": "193", + "Date": "2012/6/27", + "High": "193.699997", + "Low": "190.899994", + "Open": "192.139999", + "Volume": "2762700" + }, + { + "Close": "191.399994", + "Date": "2012/6/28", + "High": "192.080002", + "Low": "188.899994", + "Open": "191.229996", + "Volume": "3967300" + }, + { + "Close": "195.580002", + "Date": "2012/6/29", + "High": "195.809998", + "Low": "192.410004", + "Open": "194.550003", + "Volume": "5259600" + }, + { + "Close": "195.830002", + "Date": "2012/7/2", + "High": "197.199997", + "Low": "194.850006", + "Open": "196.360001", + "Volume": "2827000" + }, + { + "Close": "195.929993", + "Date": "2012/7/3", + "High": "196.339996", + "Low": "194.910004", + "Open": "195.460007", + "Volume": "1450400" + }, + { + "Close": "195.289993", + "Date": "2012/7/5", + "High": "196.850006", + "Low": "193.630005", + "Open": "194.880005", + "Volume": "2690200" + }, + { + "Close": "191.410004", + "Date": "2012/7/6", + "High": "193.940002", + "Low": "189.740005", + "Open": "193.919998", + "Volume": "4952900" + }, + { + "Close": "189.669998", + "Date": "2012/7/9", + "High": "191", + "Low": "188.050003", + "Open": "190.759995", + "Volume": "3988100" + }, + { + "Close": "186.259995", + "Date": "2012/7/10", + "High": "191.139999", + "Low": "185.600006", + "Open": "190.300003", + "Volume": "4690300" + }, + { + "Close": "185.25", + "Date": "2012/7/11", + "High": "187.360001", + "Low": "183.509995", + "Open": "186.220001", + "Volume": "5456100" + }, + { + "Close": "183.089996", + "Date": "2012/7/12", + "High": "184.389999", + "Low": "181.850006", + "Open": "184.25", + "Volume": "4931300" + }, + { + "Close": "186.009995", + "Date": "2012/7/13", + "High": "186.330002", + "Low": "183.029999", + "Open": "183.460007", + "Volume": "3933000" + }, + { + "Close": "184.789993", + "Date": "2012/7/16", + "High": "186.100006", + "Low": "184.580002", + "Open": "185.580002", + "Volume": "3144400" + }, + { + "Close": "183.649994", + "Date": "2012/7/17", + "High": "186.289993", + "Low": "183.199997", + "Open": "185.729996", + "Volume": "5158600" + }, + { + "Close": "188.25", + "Date": "2012/7/18", + "High": "188.589996", + "Low": "183.550003", + "Open": "184.149994", + "Volume": "8019500" + }, + { + "Close": "195.339996", + "Date": "2012/7/19", + "High": "196.850006", + "Low": "192.970001", + "Open": "193.399994", + "Volume": "10395400" + }, + { + "Close": "192.449997", + "Date": "2012/7/20", + "High": "194.899994", + "Low": "192.169998", + "Open": "194.089996", + "Volume": "4789700" + }, + { + "Close": "190.830002", + "Date": "2012/7/23", + "High": "191.300003", + "Low": "188.199997", + "Open": "189.779999", + "Volume": "3904500" + }, + { + "Close": "190.339996", + "Date": "2012/7/24", + "High": "191.320007", + "Low": "188.559998", + "Open": "190.919998", + "Volume": "3597100" + }, + { + "Close": "191.080002", + "Date": "2012/7/25", + "High": "192.770004", + "Low": "189.320007", + "Open": "190.309998", + "Volume": "3833800" + }, + { + "Close": "193.949997", + "Date": "2012/7/26", + "High": "194.949997", + "Low": "192.570007", + "Open": "193.490005", + "Volume": "3282900" + }, + { + "Close": "196.389999", + "Date": "2012/7/27", + "High": "197.410004", + "Low": "193.949997", + "Open": "195.100006", + "Volume": "4177300" + }, + { + "Close": "196.679993", + "Date": "2012/7/30", + "High": "197.839996", + "Low": "195.919998", + "Open": "196.320007", + "Volume": "2787000" + }, + { + "Close": "195.979996", + "Date": "2012/7/31", + "High": "197.580002", + "Low": "195.880005", + "Open": "196.5", + "Volume": "3507000" + }, + { + "Close": "195.179993", + "Date": "2012/8/1", + "High": "197.850006", + "Low": "194.720001", + "Open": "196.960007", + "Volume": "2559300" + }, + { + "Close": "194.449997", + "Date": "2012/8/2", + "High": "196.600006", + "Low": "193.020004", + "Open": "194.160004", + "Volume": "2812600" + }, + { + "Close": "198.520004", + "Date": "2012/8/3", + "High": "198.949997", + "Low": "196.160004", + "Open": "196.479996", + "Volume": "3278100" + }, + { + "Close": "198.759995", + "Date": "2012/8/6", + "High": "199.940002", + "Low": "198.520004", + "Open": "198.759995", + "Volume": "2337800" + }, + { + "Close": "199.929993", + "Date": "2012/8/7", + "High": "200.880005", + "Low": "198.800003", + "Open": "199.429993", + "Volume": "3209400" + }, + { + "Close": "199.029999", + "Date": "2012/8/8", + "High": "199.690002", + "Low": "198.160004", + "Open": "198.270004", + "Volume": "2068300" + }, + { + "Close": "198.419998", + "Date": "2012/8/9", + "High": "199.460007", + "Low": "197.889999", + "Open": "198.619995", + "Volume": "2160100" + }, + { + "Close": "199.289993", + "Date": "2012/8/10", + "High": "199.369995", + "Low": "197.240005", + "Open": "197.869995", + "Volume": "2600500" + }, + { + "Close": "199.009995", + "Date": "2012/8/13", + "High": "199.979996", + "Low": "197.789993", + "Open": "198.880005", + "Volume": "2418300" + }, + { + "Close": "198.289993", + "Date": "2012/8/14", + "High": "199.330002", + "Low": "197.720001", + "Open": "198.880005", + "Volume": "2562300" + }, + { + "Close": "198.399994", + "Date": "2012/8/15", + "High": "199.330002", + "Low": "197.919998", + "Open": "198.899994", + "Volume": "2111800" + }, + { + "Close": "200.839996", + "Date": "2012/8/16", + "High": "201.320007", + "Low": "198.119995", + "Open": "198.770004", + "Volume": "2729500" + }, + { + "Close": "201.220001", + "Date": "2012/8/17", + "High": "202", + "Low": "200.660004", + "Open": "201.080002", + "Volume": "2551800" + }, + { + "Close": "200.5", + "Date": "2012/8/20", + "High": "201.130005", + "Low": "200.029999", + "Open": "200.690002", + "Volume": "2336000" + }, + { + "Close": "198.649994", + "Date": "2012/8/21", + "High": "201", + "Low": "198.369995", + "Open": "200.990005", + "Volume": "3111300" + }, + { + "Close": "197.25", + "Date": "2012/8/22", + "High": "198.649994", + "Low": "196.899994", + "Open": "198.639999", + "Volume": "3296100" + }, + { + "Close": "195.699997", + "Date": "2012/8/23", + "High": "197.369995", + "Low": "195.440002", + "Open": "197.039993", + "Volume": "2757400" + }, + { + "Close": "197.770004", + "Date": "2012/8/24", + "High": "198.110001", + "Low": "194.199997", + "Open": "194.960007", + "Volume": "2639500" + }, + { + "Close": "195.690002", + "Date": "2012/8/27", + "High": "198.300003", + "Low": "195.610001", + "Open": "197.960007", + "Volume": "2498800" + }, + { + "Close": "194.869995", + "Date": "2012/8/28", + "High": "196.110001", + "Low": "194.5", + "Open": "195.559998", + "Volume": "2539200" + }, + { + "Close": "195.080002", + "Date": "2012/8/29", + "High": "196.039993", + "Low": "194.899994", + "Open": "195.130005", + "Volume": "2141400" + }, + { + "Close": "193.369995", + "Date": "2012/8/30", + "High": "195.470001", + "Low": "193.179993", + "Open": "194.770004", + "Volume": "2740900" + }, + { + "Close": "194.850006", + "Date": "2012/8/31", + "High": "195.949997", + "Low": "193.460007", + "Open": "194.309998", + "Volume": "3193300" + }, + { + "Close": "194.539993", + "Date": "2012/9/4", + "High": "197.169998", + "Low": "193.25", + "Open": "196.610001", + "Volume": "4514400" + }, + { + "Close": "195.039993", + "Date": "2012/9/5", + "High": "195.850006", + "Low": "193.889999", + "Open": "194.410004", + "Volume": "3312500" + }, + { + "Close": "199.100006", + "Date": "2012/9/6", + "High": "199.460007", + "Low": "196.110001", + "Open": "196.259995", + "Volume": "3931700" + }, + { + "Close": "199.5", + "Date": "2012/9/7", + "High": "199.5", + "Low": "198.080002", + "Open": "199.119995", + "Volume": "3413700" + }, + { + "Close": "200.949997", + "Date": "2012/9/10", + "High": "201.820007", + "Low": "198.729996", + "Open": "199.389999", + "Volume": "4208000" + }, + { + "Close": "203.270004", + "Date": "2012/9/11", + "High": "203.460007", + "Low": "200.509995", + "Open": "200.550003", + "Volume": "3910600" + }, + { + "Close": "203.770004", + "Date": "2012/9/12", + "High": "204.649994", + "Low": "202.960007", + "Open": "203.520004", + "Volume": "3284000" + }, + { + "Close": "206.360001", + "Date": "2012/9/13", + "High": "206.809998", + "Low": "203.460007", + "Open": "204.380005", + "Volume": "3879600" + }, + { + "Close": "206.809998", + "Date": "2012/9/14", + "High": "207.649994", + "Low": "206.050003", + "Open": "206.240005", + "Volume": "4057100" + }, + { + "Close": "207.149994", + "Date": "2012/9/17", + "High": "207.990005", + "Low": "205.550003", + "Open": "205.550003", + "Volume": "3275100" + }, + { + "Close": "207.070007", + "Date": "2012/9/18", + "High": "207.880005", + "Low": "206.479996", + "Open": "206.880005", + "Volume": "2476100" + }, + { + "Close": "206.429993", + "Date": "2012/9/19", + "High": "207.570007", + "Low": "206.009995", + "Open": "207.550003", + "Volume": "2605600" + }, + { + "Close": "206.179993", + "Date": "2012/9/20", + "High": "206.990005", + "Low": "205.300003", + "Open": "205.850006", + "Volume": "3739100" + }, + { + "Close": "205.979996", + "Date": "2012/9/21", + "High": "207.940002", + "Low": "205.919998", + "Open": "207.360001", + "Volume": "12771500" + }, + { + "Close": "205.289993", + "Date": "2012/9/24", + "High": "206.059998", + "Low": "204.899994", + "Open": "205.020004", + "Volume": "3511100" + }, + { + "Close": "204.979996", + "Date": "2012/9/25", + "High": "207.320007", + "Low": "204.949997", + "Open": "205.600006", + "Volume": "3345200" + }, + { + "Close": "204", + "Date": "2012/9/26", + "High": "205.979996", + "Low": "203.899994", + "Open": "205.050003", + "Volume": "3423300" + }, + { + "Close": "205.910004", + "Date": "2012/9/27", + "High": "206.899994", + "Low": "204.139999", + "Open": "204.369995", + "Volume": "2771900" + }, + { + "Close": "207.449997", + "Date": "2012/9/28", + "High": "208.320007", + "Low": "205.309998", + "Open": "205.660004", + "Volume": "4910900" + }, + { + "Close": "210.470001", + "Date": "2012/10/1", + "High": "211.75", + "Low": "207.940002", + "Open": "208.009995", + "Volume": "5456900" + }, + { + "Close": "209.839996", + "Date": "2012/10/2", + "High": "211.470001", + "Low": "208.5", + "Open": "210.960007", + "Volume": "3321000" + }, + { + "Close": "210.509995", + "Date": "2012/10/3", + "High": "211.300003", + "Low": "209.300003", + "Open": "209.940002", + "Volume": "3192300" + }, + { + "Close": "210.389999", + "Date": "2012/10/4", + "High": "210.970001", + "Low": "208.529999", + "Open": "210.279999", + "Volume": "2957500" + }, + { + "Close": "210.589996", + "Date": "2012/10/5", + "High": "211.789993", + "Low": "210.059998", + "Open": "211.149994", + "Volume": "2858400" + }, + { + "Close": "209.820007", + "Date": "2012/10/8", + "High": "210.639999", + "Low": "209.210007", + "Open": "210.020004", + "Volume": "1982600" + }, + { + "Close": "207.990005", + "Date": "2012/10/9", + "High": "210.740005", + "Low": "207.699997", + "Open": "209.949997", + "Volume": "3580400" + }, + { + "Close": "205.820007", + "Date": "2012/10/10", + "High": "208.229996", + "Low": "205.050003", + "Open": "207.820007", + "Volume": "4024500" + }, + { + "Close": "205.759995", + "Date": "2012/10/11", + "High": "207.270004", + "Low": "205.630005", + "Open": "206.570007", + "Volume": "2910000" + }, + { + "Close": "207.800003", + "Date": "2012/10/12", + "High": "207.960007", + "Low": "205.559998", + "Open": "205.639999", + "Volume": "2712000" + }, + { + "Close": "208.929993", + "Date": "2012/10/15", + "High": "209.399994", + "Low": "207.820007", + "Open": "208.880005", + "Volume": "3060900" + }, + { + "Close": "211", + "Date": "2012/10/16", + "High": "211", + "Low": "209.470001", + "Open": "209.940002", + "Volume": "5632100" + }, + { + "Close": "200.630005", + "Date": "2012/10/17", + "High": "203.410004", + "Low": "198.550003", + "Open": "201.210007", + "Volume": "12673900" + }, + { + "Close": "194.960007", + "Date": "2012/10/18", + "High": "200.139999", + "Low": "194.070007", + "Open": "199.910004", + "Volume": "9295900" + }, + { + "Close": "193.360001", + "Date": "2012/10/19", + "High": "196.080002", + "Low": "193.179993", + "Open": "195.289993", + "Volume": "6620300" + }, + { + "Close": "194.399994", + "Date": "2012/10/22", + "High": "194.679993", + "Low": "192.440002", + "Open": "193.710007", + "Volume": "4402500" + }, + { + "Close": "191.25", + "Date": "2012/10/23", + "High": "194", + "Low": "190.940002", + "Open": "193.529999", + "Volume": "4427400" + }, + { + "Close": "190.720001", + "Date": "2012/10/24", + "High": "193.289993", + "Low": "190.559998", + "Open": "192.440002", + "Volume": "3738000" + }, + { + "Close": "191.600006", + "Date": "2012/10/25", + "High": "192.440002", + "Low": "190.710007", + "Open": "191.410004", + "Volume": "3249600" + }, + { + "Close": "193.270004", + "Date": "2012/10/26", + "High": "193.869995", + "Low": "191.470001", + "Open": "191.490005", + "Volume": "4006500" + }, + { + "Close": "194.529999", + "Date": "2012/10/31", + "High": "196.410004", + "Low": "193.630005", + "Open": "194.800003", + "Volume": "6052300" + }, + { + "Close": "197.149994", + "Date": "2012/11/1", + "High": "197.889999", + "Low": "194.550003", + "Open": "194.679993", + "Volume": "3758800" + }, + { + "Close": "193.429993", + "Date": "2012/11/2", + "High": "198", + "Low": "193.289993", + "Open": "197.529999", + "Volume": "4260100" + }, + { + "Close": "194.139999", + "Date": "2012/11/5", + "High": "194.970001", + "Low": "192.009995", + "Open": "192.360001", + "Volume": "2736200" + }, + { + "Close": "195.070007", + "Date": "2012/11/6", + "High": "196.75", + "Low": "194.679993", + "Open": "195.259995", + "Volume": "3281000" + }, + { + "Close": "191.160004", + "Date": "2012/11/7", + "High": "193.679993", + "Low": "191.160004", + "Open": "193.360001", + "Volume": "4746200" + }, + { + "Close": "190.100006", + "Date": "2012/11/8", + "High": "191.809998", + "Low": "190.089996", + "Open": "191.399994", + "Volume": "3542200" + }, + { + "Close": "189.639999", + "Date": "2012/11/9", + "High": "191.639999", + "Low": "188.880005", + "Open": "189.850006", + "Volume": "3671600" + }, + { + "Close": "189.25", + "Date": "2012/11/12", + "High": "190.770004", + "Low": "187.410004", + "Open": "190.029999", + "Volume": "3067400" + }, + { + "Close": "188.320007", + "Date": "2012/11/13", + "High": "190.880005", + "Low": "188.25", + "Open": "188.389999", + "Volume": "3406700" + }, + { + "Close": "185.509995", + "Date": "2012/11/14", + "High": "189.270004", + "Low": "185.279999", + "Open": "189.139999", + "Volume": "4404400" + }, + { + "Close": "185.850006", + "Date": "2012/11/15", + "High": "187.199997", + "Low": "184.779999", + "Open": "185.830002", + "Volume": "3411700" + }, + { + "Close": "186.940002", + "Date": "2012/11/16", + "High": "187.559998", + "Low": "185.100006", + "Open": "186.330002", + "Volume": "4660800" + }, + { + "Close": "190.350006", + "Date": "2012/11/19", + "High": "190.389999", + "Low": "188.300003", + "Open": "188.619995", + "Volume": "3588900" + }, + { + "Close": "189.199997", + "Date": "2012/11/20", + "High": "190.110001", + "Low": "188.25", + "Open": "189.880005", + "Volume": "3170200" + }, + { + "Close": "190.289993", + "Date": "2012/11/21", + "High": "190.889999", + "Low": "188.949997", + "Open": "189.300003", + "Volume": "5189600" + }, + { + "Close": "193.490005", + "Date": "2012/11/23", + "High": "193.490005", + "Low": "190.800003", + "Open": "191", + "Volume": "3877600" + }, + { + "Close": "192.880005", + "Date": "2012/11/26", + "High": "193.369995", + "Low": "191.770004", + "Open": "192.449997", + "Volume": "5210300" + }, + { + "Close": "191.229996", + "Date": "2012/11/27", + "High": "193.050003", + "Low": "191", + "Open": "192.080002", + "Volume": "3290900" + }, + { + "Close": "191.979996", + "Date": "2012/11/28", + "High": "192.039993", + "Low": "189.270004", + "Open": "190.979996", + "Volume": "3603600" + }, + { + "Close": "191.529999", + "Date": "2012/11/29", + "High": "192.899994", + "Low": "190.199997", + "Open": "192.75", + "Volume": "4077900" + }, + { + "Close": "190.070007", + "Date": "2012/11/30", + "High": "192", + "Low": "189.5", + "Open": "191.75", + "Volume": "4936400" + }, + { + "Close": "189.479996", + "Date": "2012/12/3", + "High": "191.300003", + "Low": "188.360001", + "Open": "190.759995", + "Volume": "3349600" + }, + { + "Close": "189.360001", + "Date": "2012/12/4", + "High": "190.75", + "Low": "189.020004", + "Open": "189.710007", + "Volume": "3990700" + }, + { + "Close": "188.649994", + "Date": "2012/12/5", + "High": "189.460007", + "Low": "186.940002", + "Open": "189.009995", + "Volume": "4202100" + }, + { + "Close": "189.699997", + "Date": "2012/12/6", + "High": "190.179993", + "Low": "188.410004", + "Open": "189.169998", + "Volume": "3216600" + }, + { + "Close": "191.949997", + "Date": "2012/12/7", + "High": "192.199997", + "Low": "190.110001", + "Open": "190.139999", + "Volume": "4091300" + }, + { + "Close": "192.619995", + "Date": "2012/12/10", + "High": "193.539993", + "Low": "191.649994", + "Open": "192.169998", + "Volume": "3438500" + }, + { + "Close": "194.199997", + "Date": "2012/12/11", + "High": "194.800003", + "Low": "193.149994", + "Open": "193.179993", + "Volume": "4144000" + }, + { + "Close": "192.949997", + "Date": "2012/12/12", + "High": "194.75", + "Low": "192.460007", + "Open": "194.600006", + "Volume": "4241900" + }, + { + "Close": "191.990005", + "Date": "2012/12/13", + "High": "193.050003", + "Low": "191.369995", + "Open": "192.179993", + "Volume": "3623200" + }, + { + "Close": "191.759995", + "Date": "2012/12/14", + "High": "193.399994", + "Low": "191.259995", + "Open": "191.690002", + "Volume": "3826900" + }, + { + "Close": "193.619995", + "Date": "2012/12/17", + "High": "193.910004", + "Low": "191.759995", + "Open": "191.759995", + "Volume": "3792400" + }, + { + "Close": "195.690002", + "Date": "2012/12/18", + "High": "195.919998", + "Low": "193.839996", + "Open": "193.850006", + "Volume": "4125900" + }, + { + "Close": "195.080002", + "Date": "2012/12/19", + "High": "196.449997", + "Low": "195", + "Open": "195.460007", + "Volume": "4270500" + }, + { + "Close": "194.770004", + "Date": "2012/12/20", + "High": "194.949997", + "Low": "193.160004", + "Open": "194.470001", + "Volume": "4184500" + }, + { + "Close": "193.419998", + "Date": "2012/12/21", + "High": "194.5", + "Low": "191.570007", + "Open": "193.100006", + "Volume": "8225300" + }, + { + "Close": "192.399994", + "Date": "2012/12/24", + "High": "193.830002", + "Low": "192.020004", + "Open": "193.050003", + "Volume": "1631200" + }, + { + "Close": "191.949997", + "Date": "2012/12/26", + "High": "193.529999", + "Low": "190.949997", + "Open": "192.210007", + "Volume": "2776500" + }, + { + "Close": "192.710007", + "Date": "2012/12/27", + "High": "193.279999", + "Low": "190.699997", + "Open": "191.529999", + "Volume": "3967600" + }, + { + "Close": "189.830002", + "Date": "2012/12/28", + "High": "192.220001", + "Low": "189.830002", + "Open": "191.110001", + "Volume": "3536600" + }, + { + "Close": "191.550003", + "Date": "2012/12/31", + "High": "191.679993", + "Low": "188.839996", + "Open": "189.229996", + "Volume": "4684900" + }, + { + "Close": "196.350006", + "Date": "2013/1/2", + "High": "196.350006", + "Low": "193.800003", + "Open": "194.089996", + "Volume": "4234100" + }, + { + "Close": "195.270004", + "Date": "2013/1/3", + "High": "196.289993", + "Low": "194.440002", + "Open": "195.669998", + "Volume": "3644700" + }, + { + "Close": "193.990005", + "Date": "2013/1/4", + "High": "194.460007", + "Low": "192.779999", + "Open": "194.190002", + "Volume": "3380200" + }, + { + "Close": "193.139999", + "Date": "2013/1/7", + "High": "193.779999", + "Low": "192.339996", + "Open": "193.399994", + "Volume": "2862300" + }, + { + "Close": "192.869995", + "Date": "2013/1/8", + "High": "193.300003", + "Low": "191.600006", + "Open": "192.919998", + "Volume": "3026900" + }, + { + "Close": "192.320007", + "Date": "2013/1/9", + "High": "193.490005", + "Low": "191.649994", + "Open": "193.479996", + "Volume": "3212000" + }, + { + "Close": "192.880005", + "Date": "2013/1/10", + "High": "192.960007", + "Low": "191.279999", + "Open": "192.649994", + "Volume": "3608100" + }, + { + "Close": "194.449997", + "Date": "2013/1/11", + "High": "195", + "Low": "192.899994", + "Open": "194.149994", + "Volume": "3880400" + }, + { + "Close": "192.619995", + "Date": "2013/1/14", + "High": "193.279999", + "Low": "191.75", + "Open": "192.820007", + "Volume": "4172200" + }, + { + "Close": "192.5", + "Date": "2013/1/15", + "High": "192.729996", + "Low": "190.389999", + "Open": "191.309998", + "Volume": "4172100" + }, + { + "Close": "192.589996", + "Date": "2013/1/16", + "High": "193.179993", + "Low": "191.350006", + "Open": "192", + "Volume": "2962900" + }, + { + "Close": "193.649994", + "Date": "2013/1/17", + "High": "194.460007", + "Low": "193.240005", + "Open": "193.850006", + "Volume": "3881600" + }, + { + "Close": "194.470001", + "Date": "2013/1/18", + "High": "195", + "Low": "193.800003", + "Open": "194.029999", + "Volume": "4559600" + }, + { + "Close": "196.080002", + "Date": "2013/1/22", + "High": "196.080002", + "Low": "194.009995", + "Open": "194.360001", + "Volume": "7172300" + }, + { + "Close": "204.720001", + "Date": "2013/1/23", + "High": "208.580002", + "Low": "203.360001", + "Open": "203.5", + "Volume": "12530500" + }, + { + "Close": "204.419998", + "Date": "2013/1/24", + "High": "205.059998", + "Low": "203.080002", + "Open": "203.910004", + "Volume": "4447200" + }, + { + "Close": "204.970001", + "Date": "2013/1/25", + "High": "205.179993", + "Low": "204.130005", + "Open": "204.449997", + "Volume": "3358900" + }, + { + "Close": "204.929993", + "Date": "2013/1/28", + "High": "206.220001", + "Low": "204.289993", + "Open": "204.850006", + "Volume": "2823700" + }, + { + "Close": "203.899994", + "Date": "2013/1/29", + "High": "205.729996", + "Low": "203.639999", + "Open": "204.339996", + "Volume": "3617100" + }, + { + "Close": "203.520004", + "Date": "2013/1/30", + "High": "204.880005", + "Low": "203.190002", + "Open": "203.690002", + "Volume": "2998400" + }, + { + "Close": "203.070007", + "Date": "2013/1/31", + "High": "204.470001", + "Low": "202.960007", + "Open": "203.320007", + "Volume": "3091400" + }, + { + "Close": "205.179993", + "Date": "2013/2/1", + "High": "205.350006", + "Low": "203.839996", + "Open": "204.649994", + "Volume": "3370700" + }, + { + "Close": "203.789993", + "Date": "2013/2/4", + "High": "205.020004", + "Low": "203.570007", + "Open": "204.190002", + "Volume": "3188800" + }, + { + "Close": "202.789993", + "Date": "2013/2/5", + "High": "204.75", + "Low": "202.509995", + "Open": "204.309998", + "Volume": "3636900" + }, + { + "Close": "201.020004", + "Date": "2013/2/6", + "High": "201.289993", + "Low": "199.559998", + "Open": "200.389999", + "Volume": "3624200" + }, + { + "Close": "199.740005", + "Date": "2013/2/7", + "High": "200.910004", + "Low": "198.679993", + "Open": "200.619995", + "Volume": "3076700" + }, + { + "Close": "201.679993", + "Date": "2013/2/8", + "High": "202.089996", + "Low": "199.679993", + "Open": "199.970001", + "Volume": "2893300" + }, + { + "Close": "200.160004", + "Date": "2013/2/11", + "High": "201.949997", + "Low": "199.75", + "Open": "200.979996", + "Volume": "2944700" + }, + { + "Close": "200.039993", + "Date": "2013/2/12", + "High": "200.740005", + "Low": "199.020004", + "Open": "200.009995", + "Volume": "2461800" + }, + { + "Close": "200.089996", + "Date": "2013/2/13", + "High": "200.949997", + "Low": "199.570007", + "Open": "200.649994", + "Volume": "2169800" + }, + { + "Close": "199.649994", + "Date": "2013/2/14", + "High": "200.320007", + "Low": "199.259995", + "Open": "199.729996", + "Volume": "3294200" + }, + { + "Close": "200.979996", + "Date": "2013/2/15", + "High": "201.25", + "Low": "199.820007", + "Open": "199.979996", + "Volume": "3627800" + }, + { + "Close": "200.320007", + "Date": "2013/2/19", + "High": "201.889999", + "Low": "200.220001", + "Open": "200.600006", + "Volume": "2998300" + }, + { + "Close": "199.309998", + "Date": "2013/2/20", + "High": "201.720001", + "Low": "198.860001", + "Open": "200.619995", + "Volume": "3715400" + }, + { + "Close": "198.330002", + "Date": "2013/2/21", + "High": "199.070007", + "Low": "198.110001", + "Open": "198.630005", + "Volume": "3922900" + }, + { + "Close": "201.089996", + "Date": "2013/2/22", + "High": "201.089996", + "Low": "198.839996", + "Open": "199.229996", + "Volume": "3107900" + }, + { + "Close": "197.509995", + "Date": "2013/2/25", + "High": "202.490005", + "Low": "197.509995", + "Open": "201.669998", + "Volume": "3844800" + }, + { + "Close": "199.139999", + "Date": "2013/2/26", + "High": "199.899994", + "Low": "197.839996", + "Open": "198.630005", + "Volume": "3391600" + }, + { + "Close": "202.330002", + "Date": "2013/2/27", + "High": "202.75", + "Low": "198.600006", + "Open": "198.889999", + "Volume": "4185100" + }, + { + "Close": "200.830002", + "Date": "2013/2/28", + "High": "203.119995", + "Low": "200.789993", + "Open": "202.179993", + "Volume": "4689200" + }, + { + "Close": "202.910004", + "Date": "2013/3/1", + "High": "202.940002", + "Low": "199.360001", + "Open": "200.649994", + "Volume": "3308300" + }, + { + "Close": "205.190002", + "Date": "2013/3/4", + "High": "205.190002", + "Low": "202.550003", + "Open": "202.589996", + "Volume": "3693400" + }, + { + "Close": "206.529999", + "Date": "2013/3/5", + "High": "207.699997", + "Low": "205.690002", + "Open": "205.860001", + "Volume": "3807800" + }, + { + "Close": "208.380005", + "Date": "2013/3/6", + "High": "208.490005", + "Low": "206.660004", + "Open": "207.029999", + "Volume": "3594800" + }, + { + "Close": "209.419998", + "Date": "2013/3/7", + "High": "209.600006", + "Low": "208.240005", + "Open": "208.289993", + "Volume": "3884400" + }, + { + "Close": "210.380005", + "Date": "2013/3/8", + "High": "210.740005", + "Low": "209.429993", + "Open": "209.850006", + "Volume": "3700500" + }, + { + "Close": "210.080002", + "Date": "2013/3/11", + "High": "210.199997", + "Low": "209.039993", + "Open": "210.039993", + "Volume": "3049700" + }, + { + "Close": "210.550003", + "Date": "2013/3/12", + "High": "210.729996", + "Low": "209.089996", + "Open": "209.399994", + "Volume": "3591600" + }, + { + "Close": "212.059998", + "Date": "2013/3/13", + "High": "212.360001", + "Low": "209.770004", + "Open": "210.199997", + "Volume": "3355900" + }, + { + "Close": "215.800003", + "Date": "2013/3/14", + "High": "215.860001", + "Low": "212.149994", + "Open": "212.149994", + "Volume": "5505500" + }, + { + "Close": "214.919998", + "Date": "2013/3/15", + "High": "215.899994", + "Low": "213.410004", + "Open": "215.380005", + "Volume": "7930300" + }, + { + "Close": "213.210007", + "Date": "2013/3/18", + "High": "214.5", + "Low": "212.639999", + "Open": "212.899994", + "Volume": "3006000" + }, + { + "Close": "213.440002", + "Date": "2013/3/19", + "High": "215.119995", + "Low": "211.830002", + "Open": "214.130005", + "Volume": "3198600" + }, + { + "Close": "215.059998", + "Date": "2013/3/20", + "High": "215.820007", + "Low": "214.300003", + "Open": "214.759995", + "Volume": "3019000" + }, + { + "Close": "212.259995", + "Date": "2013/3/21", + "High": "213", + "Low": "210.110001", + "Open": "212.960007", + "Volume": "5830400" + }, + { + "Close": "212.080002", + "Date": "2013/3/22", + "High": "213.169998", + "Low": "211.619995", + "Open": "212.210007", + "Volume": "3031500" + }, + { + "Close": "210.740005", + "Date": "2013/3/25", + "High": "212.809998", + "Low": "210.050003", + "Open": "212.539993", + "Volume": "3242500" + }, + { + "Close": "212.360001", + "Date": "2013/3/26", + "High": "212.5", + "Low": "211.5", + "Open": "211.770004", + "Volume": "2300300" + }, + { + "Close": "210.889999", + "Date": "2013/3/27", + "High": "212.160004", + "Low": "210.100006", + "Open": "210.960007", + "Volume": "3223400" + }, + { + "Close": "213.300003", + "Date": "2013/3/28", + "High": "213.440002", + "Low": "209.740005", + "Open": "209.830002", + "Volume": "3749900" + }, + { + "Close": "212.380005", + "Date": "2013/4/1", + "High": "213.5", + "Low": "211.25", + "Open": "212.800003", + "Volume": "2144500" + }, + { + "Close": "214.360001", + "Date": "2013/4/2", + "High": "214.710007", + "Low": "211.570007", + "Open": "212.919998", + "Volume": "3116800" + }, + { + "Close": "212.660004", + "Date": "2013/4/3", + "High": "214.889999", + "Low": "212.630005", + "Open": "214.320007", + "Volume": "3128800" + }, + { + "Close": "211.309998", + "Date": "2013/4/4", + "High": "212.929993", + "Low": "210.039993", + "Open": "212.770004", + "Volume": "3709500" + }, + { + "Close": "209.410004", + "Date": "2013/4/5", + "High": "209.839996", + "Low": "206.339996", + "Open": "209.100006", + "Volume": "4148000" + }, + { + "Close": "209.320007", + "Date": "2013/4/8", + "High": "209.320007", + "Low": "207.330002", + "Open": "209.070007", + "Volume": "2351200" + }, + { + "Close": "209.220001", + "Date": "2013/4/9", + "High": "210", + "Low": "208.610001", + "Open": "209.559998", + "Volume": "2577300" + }, + { + "Close": "212", + "Date": "2013/4/10", + "High": "212.509995", + "Low": "210.470001", + "Open": "211.860001", + "Volume": "3524200" + }, + { + "Close": "212.919998", + "Date": "2013/4/11", + "High": "213.089996", + "Low": "210.850006", + "Open": "211.5", + "Volume": "3655600" + }, + { + "Close": "211.380005", + "Date": "2013/4/12", + "High": "211.490005", + "Low": "209.779999", + "Open": "210.789993", + "Volume": "3165400" + }, + { + "Close": "209.259995", + "Date": "2013/4/15", + "High": "211.690002", + "Low": "209.259995", + "Open": "210.440002", + "Volume": "4218100" + }, + { + "Close": "212", + "Date": "2013/4/16", + "High": "212", + "Low": "209.199997", + "Open": "210.839996", + "Volume": "2859500" + }, + { + "Close": "209.669998", + "Date": "2013/4/17", + "High": "211.089996", + "Low": "209.5", + "Open": "210.529999", + "Volume": "3269800" + }, + { + "Close": "207.149994", + "Date": "2013/4/18", + "High": "210.25", + "Low": "206.149994", + "Open": "210.110001", + "Volume": "6502000" + }, + { + "Close": "190", + "Date": "2013/4/19", + "High": "196.5", + "Low": "189.759995", + "Open": "195.740005", + "Volume": "18847000" + }, + { + "Close": "187.830002", + "Date": "2013/4/22", + "High": "191.380005", + "Low": "187.679993", + "Open": "191.149994", + "Volume": "9845400" + }, + { + "Close": "191.610001", + "Date": "2013/4/23", + "High": "192.550003", + "Low": "188.610001", + "Open": "189.270004", + "Volume": "6296100" + }, + { + "Close": "191.710007", + "Date": "2013/4/24", + "High": "192.5", + "Low": "191.089996", + "Open": "192.160004", + "Volume": "3693900" + }, + { + "Close": "193.949997", + "Date": "2013/4/25", + "High": "195.169998", + "Low": "192.320007", + "Open": "192.690002", + "Volume": "4650900" + }, + { + "Close": "194.309998", + "Date": "2013/4/26", + "High": "194.710007", + "Low": "193.25", + "Open": "194.160004", + "Volume": "3490300" + }, + { + "Close": "199.149994", + "Date": "2013/4/29", + "High": "199.679993", + "Low": "194.649994", + "Open": "194.779999", + "Volume": "5932400" + }, + { + "Close": "202.539993", + "Date": "2013/4/30", + "High": "202.589996", + "Low": "197.350006", + "Open": "199.130005", + "Volume": "7539900" + }, + { + "Close": "199.630005", + "Date": "2013/5/1", + "High": "202.169998", + "Low": "199.199997", + "Open": "201.869995", + "Volume": "4899100" + }, + { + "Close": "202.389999", + "Date": "2013/5/2", + "High": "202.429993", + "Low": "199.75", + "Open": "200.119995", + "Volume": "3945100" + }, + { + "Close": "204.509995", + "Date": "2013/5/3", + "High": "205.320007", + "Low": "203.75", + "Open": "203.940002", + "Volume": "4492700" + }, + { + "Close": "202.779999", + "Date": "2013/5/6", + "High": "203.990005", + "Low": "201.520004", + "Open": "203.789993", + "Volume": "4826500" + }, + { + "Close": "203.630005", + "Date": "2013/5/7", + "High": "203.729996", + "Low": "201.649994", + "Open": "202.809998", + "Volume": "3451000" + }, + { + "Close": "204.820007", + "Date": "2013/5/8", + "High": "204.850006", + "Low": "202.509995", + "Open": "202.940002", + "Volume": "3601700" + }, + { + "Close": "203.240005", + "Date": "2013/5/9", + "High": "205", + "Low": "202.720001", + "Open": "204.690002", + "Volume": "3542300" + }, + { + "Close": "204.470001", + "Date": "2013/5/10", + "High": "204.529999", + "Low": "202.820007", + "Open": "203.369995", + "Volume": "3279200" + }, + { + "Close": "202.470001", + "Date": "2013/5/13", + "High": "204.470001", + "Low": "202.220001", + "Open": "204.179993", + "Volume": "3648400" + }, + { + "Close": "203.210007", + "Date": "2013/5/14", + "High": "203.669998", + "Low": "202.080002", + "Open": "202.089996", + "Volume": "3699700" + }, + { + "Close": "203.320007", + "Date": "2013/5/15", + "High": "203.679993", + "Low": "202.039993", + "Open": "202.25", + "Volume": "4028100" + }, + { + "Close": "204.690002", + "Date": "2013/5/16", + "High": "206.589996", + "Low": "204", + "Open": "204", + "Volume": "4507000" + }, + { + "Close": "208.440002", + "Date": "2013/5/17", + "High": "209.5", + "Low": "204.990005", + "Open": "205.25", + "Volume": "5704100" + }, + { + "Close": "207.600006", + "Date": "2013/5/20", + "High": "209.149994", + "Low": "207.419998", + "Open": "208.020004", + "Volume": "3614500" + }, + { + "Close": "208.649994", + "Date": "2013/5/21", + "High": "209.479996", + "Low": "207", + "Open": "207.240005", + "Volume": "2982900" + }, + { + "Close": "206.990005", + "Date": "2013/5/22", + "High": "210.149994", + "Low": "206.119995", + "Open": "208.5", + "Volume": "5186800" + }, + { + "Close": "206.160004", + "Date": "2013/5/23", + "High": "208.610001", + "Low": "205.130005", + "Open": "205.479996", + "Volume": "5179100" + }, + { + "Close": "205.720001", + "Date": "2013/5/24", + "High": "206.429993", + "Low": "204.419998", + "Open": "204.690002", + "Volume": "3295800" + }, + { + "Close": "207.779999", + "Date": "2013/5/28", + "High": "208.589996", + "Low": "207.160004", + "Open": "207.440002", + "Volume": "4011500" + }, + { + "Close": "207.919998", + "Date": "2013/5/29", + "High": "208.419998", + "Low": "206.039993", + "Open": "206.220001", + "Volume": "3439400" + }, + { + "Close": "209.360001", + "Date": "2013/5/30", + "High": "210.990005", + "Low": "206.970001", + "Open": "206.970001", + "Volume": "4399700" + }, + { + "Close": "208.020004", + "Date": "2013/5/31", + "High": "211.979996", + "Low": "208.020004", + "Open": "208.589996", + "Volume": "4949000" + }, + { + "Close": "208.949997", + "Date": "2013/6/3", + "High": "210.050003", + "Low": "207.330002", + "Open": "208.25", + "Volume": "3322000" + }, + { + "Close": "206.190002", + "Date": "2013/6/4", + "High": "209", + "Low": "205.080002", + "Open": "208.600006", + "Volume": "3598300" + }, + { + "Close": "202.740005", + "Date": "2013/6/5", + "High": "206.289993", + "Low": "202.399994", + "Open": "205.160004", + "Volume": "4215400" + }, + { + "Close": "203.800003", + "Date": "2013/6/6", + "High": "204.199997", + "Low": "201.470001", + "Open": "203", + "Volume": "3679400" + }, + { + "Close": "206.350006", + "Date": "2013/6/7", + "High": "206.350006", + "Low": "204.110001", + "Open": "204.850006", + "Volume": "2953400" + }, + { + "Close": "205.020004", + "Date": "2013/6/10", + "High": "206.979996", + "Low": "204.899994", + "Open": "206.970001", + "Volume": "2652300" + }, + { + "Close": "203.979996", + "Date": "2013/6/11", + "High": "205.949997", + "Low": "202.509995", + "Open": "203.169998", + "Volume": "2814400" + }, + { + "Close": "201.199997", + "Date": "2013/6/12", + "High": "205.229996", + "Low": "200.509995", + "Open": "204.589996", + "Volume": "3409800" + }, + { + "Close": "203.770004", + "Date": "2013/6/13", + "High": "204.399994", + "Low": "200.339996", + "Open": "201.009995", + "Volume": "2899500" + }, + { + "Close": "202.199997", + "Date": "2013/6/14", + "High": "204.740005", + "Low": "201.809998", + "Open": "203.970001", + "Volume": "2804500" + }, + { + "Close": "203.039993", + "Date": "2013/6/17", + "High": "205.169998", + "Low": "202.550003", + "Open": "203.440002", + "Volume": "3219900" + }, + { + "Close": "204.869995", + "Date": "2013/6/18", + "High": "206.089996", + "Low": "202.869995", + "Open": "203.020004", + "Volume": "3277800" + }, + { + "Close": "201.940002", + "Date": "2013/6/19", + "High": "205.029999", + "Low": "201.929993", + "Open": "204.440002", + "Volume": "2846100" + }, + { + "Close": "197.350006", + "Date": "2013/6/20", + "High": "201.699997", + "Low": "197.279999", + "Open": "200.669998", + "Volume": "4514800" + }, + { + "Close": "195.460007", + "Date": "2013/6/21", + "High": "198.520004", + "Low": "193.539993", + "Open": "198.5", + "Volume": "8914800" + }, + { + "Close": "193.539993", + "Date": "2013/6/24", + "High": "194.910004", + "Low": "191.339996", + "Open": "193.990005", + "Volume": "4356200" + }, + { + "Close": "194.979996", + "Date": "2013/6/25", + "High": "195.589996", + "Low": "193.149994", + "Open": "195.309998", + "Volume": "3846200" + }, + { + "Close": "194.860001", + "Date": "2013/6/26", + "High": "196.229996", + "Low": "194.5", + "Open": "195.970001", + "Volume": "3320200" + }, + { + "Close": "195.649994", + "Date": "2013/6/27", + "High": "196.899994", + "Low": "195.289993", + "Open": "196.050003", + "Volume": "3514200" + }, + { + "Close": "191.110001", + "Date": "2013/6/28", + "High": "192.660004", + "Low": "188.410004", + "Open": "191.729996", + "Volume": "10055800" + }, + { + "Close": "191.279999", + "Date": "2013/7/1", + "High": "193.800003", + "Low": "191.119995", + "Open": "192.149994", + "Volume": "4442400" + }, + { + "Close": "191.5", + "Date": "2013/7/2", + "High": "193.229996", + "Low": "190.259995", + "Open": "190.779999", + "Volume": "3657700" + }, + { + "Close": "193.25", + "Date": "2013/7/3", + "High": "194.220001", + "Low": "190.509995", + "Open": "190.979996", + "Volume": "1872600" + }, + { + "Close": "194.929993", + "Date": "2013/7/5", + "High": "195.160004", + "Low": "192.350006", + "Open": "194.490005", + "Volume": "2405400" + }, + { + "Close": "194.979996", + "Date": "2013/7/8", + "High": "195.779999", + "Low": "194.610001", + "Open": "195.600006", + "Volume": "2947500" + }, + { + "Close": "191.300003", + "Date": "2013/7/9", + "High": "192.800003", + "Low": "190.779999", + "Open": "191.880005", + "Volume": "5204200" + }, + { + "Close": "192.25", + "Date": "2013/7/10", + "High": "193.429993", + "Low": "191.270004", + "Open": "191.509995", + "Volume": "3892000" + }, + { + "Close": "192.800003", + "Date": "2013/7/11", + "High": "194.110001", + "Low": "192.610001", + "Open": "193.779999", + "Volume": "4177500" + }, + { + "Close": "192.070007", + "Date": "2013/7/12", + "High": "193.699997", + "Low": "191.589996", + "Open": "193.070007", + "Volume": "4494700" + }, + { + "Close": "194", + "Date": "2013/7/15", + "High": "194.889999", + "Low": "191.679993", + "Open": "192.419998", + "Volume": "5674700" + }, + { + "Close": "193.850006", + "Date": "2013/7/16", + "High": "194.580002", + "Low": "192.679993", + "Open": "194.039993", + "Volume": "3745300" + }, + { + "Close": "194.550003", + "Date": "2013/7/17", + "High": "194.889999", + "Low": "193.029999", + "Open": "194.720001", + "Volume": "6868400" + }, + { + "Close": "197.990005", + "Date": "2013/7/18", + "High": "200.940002", + "Low": "195.990005", + "Open": "198.270004", + "Volume": "8393400" + }, + { + "Close": "193.539993", + "Date": "2013/7/19", + "High": "197.990005", + "Low": "193.240005", + "Open": "197.910004", + "Volume": "6997600" + }, + { + "Close": "194.089996", + "Date": "2013/7/22", + "High": "195.789993", + "Low": "193.279999", + "Open": "193.399994", + "Volume": "3398000" + }, + { + "Close": "194.979996", + "Date": "2013/7/23", + "High": "196.429993", + "Low": "194.100006", + "Open": "194.210007", + "Volume": "2863800" + }, + { + "Close": "196.610001", + "Date": "2013/7/24", + "High": "197.300003", + "Low": "195.860001", + "Open": "195.949997", + "Volume": "2957900" + }, + { + "Close": "197.220001", + "Date": "2013/7/25", + "High": "197.830002", + "Low": "195.660004", + "Open": "196.300003", + "Volume": "3014300" + }, + { + "Close": "197.350006", + "Date": "2013/7/26", + "High": "197.369995", + "Low": "195", + "Open": "196.589996", + "Volume": "2485100" + }, + { + "Close": "196.210007", + "Date": "2013/7/29", + "High": "197.190002", + "Low": "195.529999", + "Open": "196.830002", + "Volume": "2113700" + }, + { + "Close": "196.009995", + "Date": "2013/7/30", + "High": "197.830002", + "Low": "195.809998", + "Open": "196.990005", + "Volume": "2663200" + }, + { + "Close": "195.039993", + "Date": "2013/7/31", + "High": "196.910004", + "Low": "194.490005", + "Open": "194.490005", + "Volume": "3810000" + }, + { + "Close": "195.809998", + "Date": "2013/8/1", + "High": "197.169998", + "Low": "195.410004", + "Open": "196.649994", + "Volume": "2877700" + }, + { + "Close": "195.160004", + "Date": "2013/8/2", + "High": "195.5", + "Low": "193.220001", + "Open": "195.5", + "Volume": "3874000" + }, + { + "Close": "195.5", + "Date": "2013/8/5", + "High": "195.880005", + "Low": "194.350006", + "Open": "195.160004", + "Volume": "2490900" + }, + { + "Close": "190.990005", + "Date": "2013/8/6", + "High": "192.509995", + "Low": "190.270004", + "Open": "192.259995", + "Volume": "5938500" + }, + { + "Close": "188.559998", + "Date": "2013/8/7", + "High": "189.929993", + "Low": "188.050003", + "Open": "189.600006", + "Volume": "3901700" + }, + { + "Close": "187.929993", + "Date": "2013/8/8", + "High": "189.869995", + "Low": "186.789993", + "Open": "189.449997", + "Volume": "4547600" + }, + { + "Close": "187.820007", + "Date": "2013/8/9", + "High": "189.160004", + "Low": "187", + "Open": "188", + "Volume": "3249600" + }, + { + "Close": "189.089996", + "Date": "2013/8/12", + "High": "189.559998", + "Low": "186.889999", + "Open": "186.970001", + "Volume": "3026500" + }, + { + "Close": "188.419998", + "Date": "2013/8/13", + "High": "189.990005", + "Low": "187.559998", + "Open": "189.539993", + "Volume": "3542900" + }, + { + "Close": "187.529999", + "Date": "2013/8/14", + "High": "188.929993", + "Low": "187.300003", + "Open": "188.580002", + "Volume": "2892300" + }, + { + "Close": "185.789993", + "Date": "2013/8/15", + "High": "187", + "Low": "185.449997", + "Open": "186.229996", + "Volume": "3692400" + }, + { + "Close": "185.339996", + "Date": "2013/8/16", + "High": "186.460007", + "Low": "185.339996", + "Open": "185.539993", + "Volume": "3426400" + }, + { + "Close": "184.229996", + "Date": "2013/8/19", + "High": "186.5", + "Low": "183.979996", + "Open": "185.300003", + "Volume": "3248900" + }, + { + "Close": "184.559998", + "Date": "2013/8/20", + "High": "185.630005", + "Low": "183.169998", + "Open": "184.369995", + "Volume": "3117800" + }, + { + "Close": "184.860001", + "Date": "2013/8/21", + "High": "186.570007", + "Low": "184.279999", + "Open": "184.669998", + "Volume": "3551000" + }, + { + "Close": "185.190002", + "Date": "2013/8/22", + "High": "186.25", + "Low": "184.25", + "Open": "185.649994", + "Volume": "2354300" + }, + { + "Close": "185.419998", + "Date": "2013/8/23", + "High": "185.740005", + "Low": "184.570007", + "Open": "185.339996", + "Volume": "2292700" + }, + { + "Close": "184.740005", + "Date": "2013/8/26", + "High": "187", + "Low": "184.679993", + "Open": "185.270004", + "Volume": "2170400" + }, + { + "Close": "182.740005", + "Date": "2013/8/27", + "High": "184.5", + "Low": "182.570007", + "Open": "183.630005", + "Volume": "3190700" + }, + { + "Close": "182.160004", + "Date": "2013/8/28", + "High": "183.470001", + "Low": "181.100006", + "Open": "182.679993", + "Volume": "3979200" + }, + { + "Close": "182.639999", + "Date": "2013/8/29", + "High": "183.699997", + "Low": "181.440002", + "Open": "181.960007", + "Volume": "2980900" + }, + { + "Close": "182.270004", + "Date": "2013/8/30", + "High": "182.990005", + "Low": "181.509995", + "Open": "182.75", + "Volume": "2731000" + }, + { + "Close": "183.960007", + "Date": "2013/9/3", + "High": "184.320007", + "Low": "182.509995", + "Open": "183.630005", + "Volume": "3487200" + }, + { + "Close": "183.130005", + "Date": "2013/9/4", + "High": "184.190002", + "Low": "182.309998", + "Open": "183.580002", + "Volume": "2597900" + }, + { + "Close": "184.149994", + "Date": "2013/9/5", + "High": "185", + "Low": "183.070007", + "Open": "183.350006", + "Volume": "2867600" + }, + { + "Close": "183.029999", + "Date": "2013/9/6", + "High": "184.990005", + "Low": "182.649994", + "Open": "184.649994", + "Volume": "2903500" + }, + { + "Close": "184.979996", + "Date": "2013/9/9", + "High": "185.490005", + "Low": "183.309998", + "Open": "183.679993", + "Volume": "3017200" + }, + { + "Close": "186.600006", + "Date": "2013/9/10", + "High": "187.649994", + "Low": "186.369995", + "Open": "187.199997", + "Volume": "3149600" + }, + { + "Close": "190.699997", + "Date": "2013/9/11", + "High": "190.869995", + "Low": "186.820007", + "Open": "186.830002", + "Volume": "4962900" + }, + { + "Close": "190.729996", + "Date": "2013/9/12", + "High": "191.320007", + "Low": "189.850006", + "Open": "190.960007", + "Volume": "3354800" + }, + { + "Close": "192.169998", + "Date": "2013/9/13", + "High": "193.100006", + "Low": "191", + "Open": "191.210007", + "Volume": "3710400" + }, + { + "Close": "193.149994", + "Date": "2013/9/16", + "High": "194.809998", + "Low": "192.610001", + "Open": "193.699997", + "Volume": "3902400" + }, + { + "Close": "192.160004", + "Date": "2013/9/17", + "High": "194.149994", + "Low": "191.830002", + "Open": "193.419998", + "Volume": "2930900" + }, + { + "Close": "194.419998", + "Date": "2013/9/18", + "High": "194.889999", + "Low": "192", + "Open": "192.600006", + "Volume": "3841800" + }, + { + "Close": "193.389999", + "Date": "2013/9/19", + "High": "194.889999", + "Low": "193.220001", + "Open": "194.179993", + "Volume": "3178100" + }, + { + "Close": "190.020004", + "Date": "2013/9/20", + "High": "194.429993", + "Low": "190.020004", + "Open": "193.960007", + "Volume": "8525900" + }, + { + "Close": "190.990005", + "Date": "2013/9/23", + "High": "192.410004", + "Low": "189.330002", + "Open": "190.059998", + "Volume": "3340800" + }, + { + "Close": "189.970001", + "Date": "2013/9/24", + "High": "191.559998", + "Low": "189.660004", + "Open": "190.929993", + "Volume": "3085300" + }, + { + "Close": "189.470001", + "Date": "2013/9/25", + "High": "190.619995", + "Low": "188.5", + "Open": "190.139999", + "Volume": "2654500" + }, + { + "Close": "190.220001", + "Date": "2013/9/26", + "High": "191.759995", + "Low": "189.460007", + "Open": "190.100006", + "Volume": "2093600" + }, + { + "Close": "186.919998", + "Date": "2013/9/27", + "High": "188.940002", + "Low": "186.449997", + "Open": "188.869995", + "Volume": "3905500" + }, + { + "Close": "185.179993", + "Date": "2013/9/30", + "High": "186.740005", + "Low": "184.339996", + "Open": "185.559998", + "Volume": "3978200" + }, + { + "Close": "186.380005", + "Date": "2013/10/1", + "High": "186.649994", + "Low": "184.649994", + "Open": "185.339996", + "Volume": "2681200" + }, + { + "Close": "184.960007", + "Date": "2013/10/2", + "High": "186.309998", + "Low": "184.410004", + "Open": "185.539993", + "Volume": "3617100" + }, + { + "Close": "183.860001", + "Date": "2013/10/3", + "High": "184.960007", + "Low": "183", + "Open": "184.699997", + "Volume": "3211800" + }, + { + "Close": "184.100006", + "Date": "2013/10/4", + "High": "185.130005", + "Low": "183.580002", + "Open": "184.169998", + "Volume": "2863600" + }, + { + "Close": "182.009995", + "Date": "2013/10/7", + "High": "183.309998", + "Low": "181.850006", + "Open": "181.850006", + "Volume": "3966400" + }, + { + "Close": "178.720001", + "Date": "2013/10/8", + "High": "181.990005", + "Low": "178.710007", + "Open": "181.889999", + "Volume": "5578300" + }, + { + "Close": "181.320007", + "Date": "2013/10/9", + "High": "181.669998", + "Low": "179.100006", + "Open": "179.369995", + "Volume": "4423500" + }, + { + "Close": "184.770004", + "Date": "2013/10/10", + "High": "184.770004", + "Low": "182.360001", + "Open": "183.169998", + "Volume": "3658900" + }, + { + "Close": "186.160004", + "Date": "2013/10/11", + "High": "186.229996", + "Low": "184.119995", + "Open": "185.25", + "Volume": "3232600" + }, + { + "Close": "186.970001", + "Date": "2013/10/14", + "High": "186.990005", + "Low": "184.419998", + "Open": "185.410004", + "Volume": "2663100" + }, + { + "Close": "184.660004", + "Date": "2013/10/15", + "High": "185.940002", + "Low": "184.220001", + "Open": "185.740005", + "Volume": "3365100" + }, + { + "Close": "186.729996", + "Date": "2013/10/16", + "High": "186.729996", + "Low": "184.990005", + "Open": "185.419998", + "Volume": "6718000" + }, + { + "Close": "174.830002", + "Date": "2013/10/17", + "High": "177", + "Low": "172.570007", + "Open": "173.839996", + "Volume": "22368900" + }, + { + "Close": "173.779999", + "Date": "2013/10/18", + "High": "175", + "Low": "173.25", + "Open": "174.800003", + "Volume": "10548000" + }, + { + "Close": "172.860001", + "Date": "2013/10/21", + "High": "174.75", + "Low": "172.630005", + "Open": "174.419998", + "Volume": "7098700" + }, + { + "Close": "174.970001", + "Date": "2013/10/22", + "High": "175.570007", + "Low": "172.949997", + "Open": "173.350006", + "Volume": "6977300" + }, + { + "Close": "175.770004", + "Date": "2013/10/23", + "High": "175.990005", + "Low": "174.399994", + "Open": "175.089996", + "Volume": "5409400" + }, + { + "Close": "177.800003", + "Date": "2013/10/24", + "High": "177.889999", + "Low": "176.25", + "Open": "176.429993", + "Volume": "5533300" + }, + { + "Close": "176.850006", + "Date": "2013/10/25", + "High": "179.100006", + "Low": "176.259995", + "Open": "178.429993", + "Volume": "4842800" + }, + { + "Close": "177.350006", + "Date": "2013/10/28", + "High": "177.889999", + "Low": "176.199997", + "Open": "177.039993", + "Volume": "3712700" + }, + { + "Close": "182.119995", + "Date": "2013/10/29", + "High": "182.320007", + "Low": "177.5", + "Open": "177.619995", + "Volume": "8904600" + }, + { + "Close": "180.149994", + "Date": "2013/10/30", + "High": "182.179993", + "Low": "179.860001", + "Open": "181.690002", + "Volume": "5273700" + }, + { + "Close": "179.210007", + "Date": "2013/10/31", + "High": "181.669998", + "Low": "179.039993", + "Open": "179.649994", + "Volume": "4318100" + }, + { + "Close": "179.229996", + "Date": "2013/11/1", + "High": "180.339996", + "Low": "178.880005", + "Open": "179.809998", + "Volume": "3644500" + }, + { + "Close": "180.270004", + "Date": "2013/11/4", + "High": "180.800003", + "Low": "179.339996", + "Open": "179.899994", + "Volume": "3483300" + }, + { + "Close": "177.850006", + "Date": "2013/11/5", + "High": "179.800003", + "Low": "177.710007", + "Open": "179.539993", + "Volume": "6096800" + }, + { + "Close": "179.190002", + "Date": "2013/11/6", + "High": "179.75", + "Low": "177.779999", + "Open": "177.910004", + "Volume": "4560700" + }, + { + "Close": "180", + "Date": "2013/11/7", + "High": "181.389999", + "Low": "179.600006", + "Open": "179.600006", + "Volume": "5219500" + }, + { + "Close": "179.990005", + "Date": "2013/11/8", + "High": "180.080002", + "Low": "177.350006", + "Open": "178.830002", + "Volume": "6275000" + }, + { + "Close": "182.880005", + "Date": "2013/11/11", + "High": "183.389999", + "Low": "180.039993", + "Open": "180.190002", + "Volume": "5222300" + }, + { + "Close": "183.070007", + "Date": "2013/11/12", + "High": "184.050003", + "Low": "182.259995", + "Open": "182.529999", + "Volume": "4258500" + }, + { + "Close": "183.550003", + "Date": "2013/11/13", + "High": "183.550003", + "Low": "181.589996", + "Open": "182.270004", + "Volume": "4704400" + }, + { + "Close": "182.210007", + "Date": "2013/11/14", + "High": "183.199997", + "Low": "179.660004", + "Open": "180.479996", + "Volume": "6321500" + }, + { + "Close": "183.190002", + "Date": "2013/11/15", + "High": "183.279999", + "Low": "181.160004", + "Open": "182.380005", + "Volume": "5176100" + }, + { + "Close": "184.470001", + "Date": "2013/11/18", + "High": "184.990005", + "Low": "183.270004", + "Open": "183.520004", + "Volume": "5344900" + }, + { + "Close": "185.25", + "Date": "2013/11/19", + "High": "186.199997", + "Low": "184.149994", + "Open": "184.630005", + "Volume": "4577000" + }, + { + "Close": "185.190002", + "Date": "2013/11/20", + "High": "186.240005", + "Low": "184.649994", + "Open": "185.220001", + "Volume": "3645800" + }, + { + "Close": "184.130005", + "Date": "2013/11/21", + "High": "185.75", + "Low": "183.410004", + "Open": "185.539993", + "Volume": "4459500" + }, + { + "Close": "181.300003", + "Date": "2013/11/22", + "High": "184.990005", + "Low": "179.919998", + "Open": "183.5", + "Volume": "7610200" + }, + { + "Close": "178.940002", + "Date": "2013/11/25", + "High": "180.75", + "Low": "177.820007", + "Open": "180.25", + "Volume": "7161900" + }, + { + "Close": "177.309998", + "Date": "2013/11/26", + "High": "178.940002", + "Low": "177.309998", + "Open": "178.669998", + "Volume": "5756000" + }, + { + "Close": "178.970001", + "Date": "2013/11/27", + "High": "180.179993", + "Low": "177.820007", + "Open": "177.830002", + "Volume": "4596500" + }, + { + "Close": "179.679993", + "Date": "2013/11/29", + "High": "180.759995", + "Low": "179", + "Open": "179.210007", + "Volume": "2870500" + }, + { + "Close": "177.479996", + "Date": "2013/12/2", + "High": "179.589996", + "Low": "177.119995", + "Open": "179.460007", + "Volume": "4560000" + }, + { + "Close": "176.080002", + "Date": "2013/12/3", + "High": "178.229996", + "Low": "175.639999", + "Open": "177", + "Volume": "5864000" + }, + { + "Close": "175.740005", + "Date": "2013/12/4", + "High": "177.5", + "Low": "175.160004", + "Open": "175.369995", + "Volume": "5267400" + }, + { + "Close": "176.080002", + "Date": "2013/12/5", + "High": "176.860001", + "Low": "175.279999", + "Open": "176.149994", + "Volume": "4384900" + }, + { + "Close": "177.669998", + "Date": "2013/12/6", + "High": "178", + "Low": "176.009995", + "Open": "176.699997", + "Volume": "4739800" + }, + { + "Close": "177.460007", + "Date": "2013/12/9", + "High": "178.149994", + "Low": "176.830002", + "Open": "177.990005", + "Volume": "3796600" + }, + { + "Close": "177.119995", + "Date": "2013/12/10", + "High": "177.669998", + "Low": "176.059998", + "Open": "176.899994", + "Volume": "4127800" + }, + { + "Close": "175.199997", + "Date": "2013/12/11", + "High": "177.759995", + "Low": "175.100006", + "Open": "177", + "Volume": "4090400" + }, + { + "Close": "173.369995", + "Date": "2013/12/12", + "High": "175.800003", + "Low": "173.300003", + "Open": "175.059998", + "Volume": "5671600" + }, + { + "Close": "172.800003", + "Date": "2013/12/13", + "High": "174.380005", + "Low": "172.729996", + "Open": "173.520004", + "Volume": "4184400" + }, + { + "Close": "177.850006", + "Date": "2013/12/16", + "High": "178.350006", + "Low": "172.729996", + "Open": "173.220001", + "Volume": "7517000" + }, + { + "Close": "175.759995", + "Date": "2013/12/17", + "High": "177.490005", + "Low": "175.119995", + "Open": "177.360001", + "Volume": "5471900" + }, + { + "Close": "178.699997", + "Date": "2013/12/18", + "High": "178.740005", + "Low": "174.850006", + "Open": "176.449997", + "Volume": "5697700" + }, + { + "Close": "180.220001", + "Date": "2013/12/19", + "High": "180.539993", + "Low": "177.880005", + "Open": "177.880005", + "Volume": "5927000" + }, + { + "Close": "180.020004", + "Date": "2013/12/20", + "High": "182", + "Low": "180.020004", + "Open": "180.119995", + "Volume": "7653500" + }, + { + "Close": "182.229996", + "Date": "2013/12/23", + "High": "182.929993", + "Low": "180.610001", + "Open": "181.050003", + "Volume": "4079900" + }, + { + "Close": "183.220001", + "Date": "2013/12/24", + "High": "183.5", + "Low": "181.910004", + "Open": "181.960007", + "Volume": "1613600" + }, + { + "Close": "185.350006", + "Date": "2013/12/26", + "High": "185.559998", + "Low": "183.509995", + "Open": "183.559998", + "Volume": "3325700" + }, + { + "Close": "185.080002", + "Date": "2013/12/27", + "High": "186.5", + "Low": "184.559998", + "Open": "185.839996", + "Volume": "3381600" + }, + { + "Close": "186.410004", + "Date": "2013/12/30", + "High": "186.699997", + "Low": "184.669998", + "Open": "185.320007", + "Volume": "3018600" + }, + { + "Close": "187.570007", + "Date": "2013/12/31", + "High": "187.789993", + "Low": "186.300003", + "Open": "186.490005", + "Volume": "3619700" + }, + { + "Close": "185.529999", + "Date": "2014/1/2", + "High": "187.399994", + "Low": "185.199997", + "Open": "187.210007", + "Volume": "4546500" + }, + { + "Close": "186.639999", + "Date": "2014/1/3", + "High": "187.350006", + "Low": "185.300003", + "Open": "185.830002", + "Volume": "4063200" + }, + { + "Close": "186", + "Date": "2014/1/6", + "High": "187.360001", + "Low": "185.300003", + "Open": "187.149994", + "Volume": "4067800" + }, + { + "Close": "189.710007", + "Date": "2014/1/7", + "High": "190.350006", + "Low": "186.380005", + "Open": "186.389999", + "Volume": "5932300" + }, + { + "Close": "187.970001", + "Date": "2014/1/8", + "High": "189.419998", + "Low": "187.259995", + "Open": "189.330002", + "Volume": "4603700" + }, + { + "Close": "187.380005", + "Date": "2014/1/9", + "High": "189.5", + "Low": "186.550003", + "Open": "189.020004", + "Volume": "4321300" + }, + { + "Close": "187.259995", + "Date": "2014/1/10", + "High": "188.570007", + "Low": "186.279999", + "Open": "188.309998", + "Volume": "4022400" + }, + { + "Close": "184.160004", + "Date": "2014/1/13", + "High": "186.949997", + "Low": "183.860001", + "Open": "186.259995", + "Volume": "5784700" + }, + { + "Close": "185.919998", + "Date": "2014/1/14", + "High": "186.429993", + "Low": "183.880005", + "Open": "185.059998", + "Volume": "4619200" + }, + { + "Close": "187.740005", + "Date": "2014/1/15", + "High": "188.649994", + "Low": "185.490005", + "Open": "185.820007", + "Volume": "4816500" + }, + { + "Close": "188.759995", + "Date": "2014/1/16", + "High": "188.990005", + "Low": "186.800003", + "Open": "187.529999", + "Volume": "4770300" + }, + { + "Close": "190.089996", + "Date": "2014/1/17", + "High": "190.809998", + "Low": "187.860001", + "Open": "188.039993", + "Volume": "7644600" + }, + { + "Close": "188.429993", + "Date": "2014/1/21", + "High": "190.389999", + "Low": "186.789993", + "Open": "190.229996", + "Volume": "11076300" + }, + { + "Close": "182.25", + "Date": "2014/1/22", + "High": "183.5", + "Low": "179.669998", + "Open": "181.279999", + "Volume": "13796100" + }, + { + "Close": "182.729996", + "Date": "2014/1/23", + "High": "183.720001", + "Low": "180.710007", + "Open": "181.429993", + "Volume": "6973900" + }, + { + "Close": "179.639999", + "Date": "2014/1/24", + "High": "182.809998", + "Low": "179.639999", + "Open": "181.25", + "Volume": "6890600" + }, + { + "Close": "177.899994", + "Date": "2014/1/27", + "High": "179.649994", + "Low": "177.660004", + "Open": "179.610001", + "Volume": "5208600" + }, + { + "Close": "176.850006", + "Date": "2014/1/28", + "High": "178.449997", + "Low": "176.160004", + "Open": "178.050003", + "Volume": "5333300" + }, + { + "Close": "176.399994", + "Date": "2014/1/29", + "High": "178.529999", + "Low": "175.889999", + "Open": "175.979996", + "Volume": "4970900" + }, + { + "Close": "177.360001", + "Date": "2014/1/30", + "High": "177.860001", + "Low": "176.360001", + "Open": "177.169998", + "Volume": "4853700" + }, + { + "Close": "176.679993", + "Date": "2014/1/31", + "High": "177.839996", + "Low": "175.339996", + "Open": "176.110001", + "Volume": "5193400" + }, + { + "Close": "172.899994", + "Date": "2014/2/3", + "High": "176.020004", + "Low": "172.720001", + "Open": "176.020004", + "Volume": "7186800" + }, + { + "Close": "172.839996", + "Date": "2014/2/4", + "High": "173.75", + "Low": "172.360001", + "Open": "173.529999", + "Volume": "4349800" + }, + { + "Close": "174.240005", + "Date": "2014/2/5", + "High": "174.970001", + "Low": "172.190002", + "Open": "172.190002", + "Volume": "4712300" + }, + { + "Close": "174.669998", + "Date": "2014/2/6", + "High": "174.850006", + "Low": "173.789993", + "Open": "173.970001", + "Volume": "4292200" + }, + { + "Close": "177.25", + "Date": "2014/2/7", + "High": "177.559998", + "Low": "175.070007", + "Open": "175.639999", + "Volume": "4692900" + }, + { + "Close": "177.139999", + "Date": "2014/2/10", + "High": "177.649994", + "Low": "176.25", + "Open": "176.970001", + "Volume": "3540400" + }, + { + "Close": "179.699997", + "Date": "2014/2/11", + "High": "180.389999", + "Low": "176.800003", + "Open": "176.809998", + "Volume": "4647300" + }, + { + "Close": "180.240005", + "Date": "2014/2/12", + "High": "181.25", + "Low": "179.259995", + "Open": "179.520004", + "Volume": "3983000" + }, + { + "Close": "181.839996", + "Date": "2014/2/13", + "High": "182.360001", + "Low": "177.860001", + "Open": "178.220001", + "Volume": "4482000" + }, + { + "Close": "183.690002", + "Date": "2014/2/14", + "High": "184.429993", + "Low": "180.990005", + "Open": "181.259995", + "Volume": "4659900" + }, + { + "Close": "183.190002", + "Date": "2014/2/18", + "High": "184", + "Low": "182.320007", + "Open": "183.179993", + "Volume": "4435200" + }, + { + "Close": "182.949997", + "Date": "2014/2/19", + "High": "185.649994", + "Low": "182.410004", + "Open": "182.740005", + "Volume": "4671500" + }, + { + "Close": "184.259995", + "Date": "2014/2/20", + "High": "184.860001", + "Low": "182.789993", + "Open": "182.960007", + "Volume": "4968200" + }, + { + "Close": "182.789993", + "Date": "2014/2/21", + "High": "185.710007", + "Low": "182.619995", + "Open": "184.25", + "Volume": "5699300" + }, + { + "Close": "183.449997", + "Date": "2014/2/24", + "High": "185.160004", + "Low": "182.820007", + "Open": "182.820007", + "Volume": "4595300" + }, + { + "Close": "183.229996", + "Date": "2014/2/25", + "High": "184.600006", + "Low": "182.880005", + "Open": "183.520004", + "Volume": "3902300" + }, + { + "Close": "184.059998", + "Date": "2014/2/26", + "High": "185.279999", + "Low": "183.559998", + "Open": "183.940002", + "Volume": "3740700" + }, + { + "Close": "185.270004", + "Date": "2014/2/27", + "High": "185.949997", + "Low": "183.809998", + "Open": "183.830002", + "Volume": "3827800" + }, + { + "Close": "185.169998", + "Date": "2014/2/28", + "High": "186.119995", + "Low": "183.649994", + "Open": "185.380005", + "Volume": "4667900" + }, + { + "Close": "184.259995", + "Date": "2014/3/3", + "High": "184.639999", + "Low": "182.820007", + "Open": "183.330002", + "Volume": "3950100" + }, + { + "Close": "186.440002", + "Date": "2014/3/4", + "High": "187.160004", + "Low": "185.679993", + "Open": "185.809998", + "Volume": "4733000" + }, + { + "Close": "187.139999", + "Date": "2014/3/5", + "High": "187.949997", + "Low": "186.399994", + "Open": "186.570007", + "Volume": "3485200" + }, + { + "Close": "187.639999", + "Date": "2014/3/6", + "High": "188.389999", + "Low": "186.899994", + "Open": "187.369995", + "Volume": "3817300" + }, + { + "Close": "187.679993", + "Date": "2014/3/7", + "High": "188.919998", + "Low": "187.179993", + "Open": "188.350006", + "Volume": "4117800" + }, + { + "Close": "186.389999", + "Date": "2014/3/10", + "High": "188.369995", + "Low": "185.850006", + "Open": "187.550003", + "Volume": "4591200" + }, + { + "Close": "186.759995", + "Date": "2014/3/11", + "High": "188.449997", + "Low": "186.039993", + "Open": "187.410004", + "Volume": "4229500" + }, + { + "Close": "186.220001", + "Date": "2014/3/12", + "High": "187.449997", + "Low": "185.889999", + "Open": "186.009995", + "Volume": "4833000" + }, + { + "Close": "183.899994", + "Date": "2014/3/13", + "High": "187", + "Low": "183.710007", + "Open": "186.410004", + "Volume": "4913200" + }, + { + "Close": "182.210007", + "Date": "2014/3/14", + "High": "184.289993", + "Low": "182.210007", + "Open": "183.889999", + "Volume": "5490300" + }, + { + "Close": "185.809998", + "Date": "2014/3/17", + "High": "186.350006", + "Low": "182.660004", + "Open": "182.660004", + "Volume": "4938100" + }, + { + "Close": "186.809998", + "Date": "2014/3/18", + "High": "187.899994", + "Low": "185.539993", + "Open": "185.990005", + "Volume": "3961300" + }, + { + "Close": "184.710007", + "Date": "2014/3/19", + "High": "186.699997", + "Low": "183.5", + "Open": "185.600006", + "Volume": "4323900" + }, + { + "Close": "187.899994", + "Date": "2014/3/20", + "High": "188.259995", + "Low": "184.169998", + "Open": "184.470001", + "Volume": "5062600" + }, + { + "Close": "186.669998", + "Date": "2014/3/21", + "High": "188.699997", + "Low": "186.399994", + "Open": "188.5", + "Volume": "12535200" + }, + { + "Close": "188.25", + "Date": "2014/3/24", + "High": "189.440002", + "Low": "187.369995", + "Open": "187.429993", + "Volume": "5738500" + }, + { + "Close": "195.039993", + "Date": "2014/3/25", + "High": "195.399994", + "Low": "188.699997", + "Open": "188.759995", + "Volume": "10912700" + }, + { + "Close": "192.619995", + "Date": "2014/3/26", + "High": "195.630005", + "Low": "191.960007", + "Open": "194.979996", + "Volume": "6851700" + }, + { + "Close": "189.830002", + "Date": "2014/3/27", + "High": "192.669998", + "Low": "189.320007", + "Open": "191.910004", + "Volume": "6767700" + }, + { + "Close": "190.449997", + "Date": "2014/3/28", + "High": "192.619995", + "Low": "189.110001", + "Open": "189.940002", + "Volume": "5194400" + }, + { + "Close": "192.490005", + "Date": "2014/3/31", + "High": "193.770004", + "Low": "191.399994", + "Open": "191.639999", + "Volume": "8537300" + }, + { + "Close": "194.5", + "Date": "2014/4/1", + "High": "195.130005", + "Low": "192.779999", + "Open": "193.119995", + "Volume": "5394100" + }, + { + "Close": "193.550003", + "Date": "2014/4/2", + "High": "194.5", + "Low": "192.490005", + "Open": "194.240005", + "Volume": "4924100" + }, + { + "Close": "192.690002", + "Date": "2014/4/3", + "High": "193.380005", + "Low": "192.350006", + "Open": "193.199997", + "Volume": "4091100" + }, + { + "Close": "191.770004", + "Date": "2014/4/4", + "High": "193.970001", + "Low": "191.279999", + "Open": "193.119995", + "Volume": "6089900" + }, + { + "Close": "194.520004", + "Date": "2014/4/7", + "High": "195.309998", + "Low": "191.570007", + "Open": "191.720001", + "Volume": "6740500" + }, + { + "Close": "193.289993", + "Date": "2014/4/8", + "High": "194.169998", + "Low": "192.690002", + "Open": "193.889999", + "Volume": "5125000" + }, + { + "Close": "196.639999", + "Date": "2014/4/9", + "High": "197", + "Low": "193.600006", + "Open": "193.880005", + "Volume": "5480100" + }, + { + "Close": "195.679993", + "Date": "2014/4/10", + "High": "199.210007", + "Low": "195.660004", + "Open": "196.059998", + "Volume": "8417900" + }, + { + "Close": "195.190002", + "Date": "2014/4/11", + "High": "197", + "Low": "194.270004", + "Open": "195.039993", + "Volume": "4835000" + }, + { + "Close": "197.770004", + "Date": "2014/4/14", + "High": "198.240005", + "Low": "195.880005", + "Open": "196.240005", + "Volume": "5431100" + }, + { + "Close": "197.020004", + "Date": "2014/4/15", + "High": "197.410004", + "Low": "195.419998", + "Open": "195.979996", + "Volume": "5351300" + }, + { + "Close": "196.399994", + "Date": "2014/4/16", + "High": "198.710007", + "Low": "195", + "Open": "198.050003", + "Volume": "8527300" + }, + { + "Close": "190.009995", + "Date": "2014/4/17", + "High": "190.699997", + "Low": "187.009995", + "Open": "187.25", + "Volume": "11249600" + }, + { + "Close": "192.270004", + "Date": "2014/4/21", + "High": "192.809998", + "Low": "189.740005", + "Open": "189.800003", + "Volume": "5419700" + }, + { + "Close": "192.149994", + "Date": "2014/4/22", + "High": "193", + "Low": "191.199997", + "Open": "192.009995", + "Volume": "3878600" + }, + { + "Close": "191.729996", + "Date": "2014/4/23", + "High": "192.410004", + "Low": "190.110001", + "Open": "191.789993", + "Volume": "4736400" + }, + { + "Close": "190.220001", + "Date": "2014/4/24", + "High": "192.220001", + "Low": "190.029999", + "Open": "192.220001", + "Volume": "4407100" + }, + { + "Close": "189.630005", + "Date": "2014/4/25", + "High": "190.669998", + "Low": "189.110001", + "Open": "190.539993", + "Volume": "3871000" + }, + { + "Close": "193.139999", + "Date": "2014/4/28", + "High": "193.990005", + "Low": "190.580002", + "Open": "191.139999", + "Volume": "5638300" + }, + { + "Close": "195.110001", + "Date": "2014/4/29", + "High": "195.940002", + "Low": "193.410004", + "Open": "193.589996", + "Volume": "4626300" + }, + { + "Close": "196.470001", + "Date": "2014/4/30", + "High": "196.860001", + "Low": "194.350006", + "Open": "194.380005", + "Volume": "4206800" + }, + { + "Close": "193.529999", + "Date": "2014/5/1", + "High": "196.740005", + "Low": "193.149994", + "Open": "196.309998", + "Volume": "3674000" + }, + { + "Close": "191.440002", + "Date": "2014/5/2", + "High": "193.839996", + "Low": "191.25", + "Open": "193.75", + "Volume": "3049900" + }, + { + "Close": "191.259995", + "Date": "2014/5/5", + "High": "191.490005", + "Low": "189.800003", + "Open": "191.050003", + "Volume": "2222100" + }, + { + "Close": "190.029999", + "Date": "2014/5/6", + "High": "190.949997", + "Low": "189.25", + "Open": "190.929993", + "Volume": "3188700" + }, + { + "Close": "189.300003", + "Date": "2014/5/7", + "High": "190.300003", + "Low": "186.929993", + "Open": "189.339996", + "Volume": "3821000" + }, + { + "Close": "188.910004", + "Date": "2014/5/8", + "High": "190.570007", + "Low": "188.229996", + "Open": "189.160004", + "Volume": "2431900" + }, + { + "Close": "190.080002", + "Date": "2014/5/9", + "High": "190.589996", + "Low": "188.369995", + "Open": "188.979996", + "Volume": "2261600" + }, + { + "Close": "192.570007", + "Date": "2014/5/12", + "High": "193.020004", + "Low": "190.940002", + "Open": "191.119995", + "Volume": "3777400" + }, + { + "Close": "192.190002", + "Date": "2014/5/13", + "High": "193.029999", + "Low": "191.759995", + "Open": "192.789993", + "Volume": "2226600" + }, + { + "Close": "188.720001", + "Date": "2014/5/14", + "High": "191.990005", + "Low": "188.169998", + "Open": "191.910004", + "Volume": "5251500" + }, + { + "Close": "186.460007", + "Date": "2014/5/15", + "High": "189.080002", + "Low": "186.179993", + "Open": "189.070007", + "Volume": "4202200" + }, + { + "Close": "187.059998", + "Date": "2014/5/16", + "High": "187.410004", + "Low": "185.929993", + "Open": "186.270004", + "Volume": "3949500" + }, + { + "Close": "187", + "Date": "2014/5/19", + "High": "187.130005", + "Low": "186.039993", + "Open": "186.610001", + "Volume": "3270700" + }, + { + "Close": "184.889999", + "Date": "2014/5/20", + "High": "186.699997", + "Low": "184.699997", + "Open": "186.25", + "Volume": "3026500" + }, + { + "Close": "186.389999", + "Date": "2014/5/21", + "High": "187.160004", + "Low": "184.949997", + "Open": "185.850006", + "Volume": "2988000" + }, + { + "Close": "185.679993", + "Date": "2014/5/22", + "High": "186.449997", + "Low": "185.029999", + "Open": "186.449997", + "Volume": "2218000" + }, + { + "Close": "185.940002", + "Date": "2014/5/23", + "High": "186.139999", + "Low": "185.309998", + "Open": "185.839996", + "Volume": "2562900" + }, + { + "Close": "184.779999", + "Date": "2014/5/27", + "High": "185.649994", + "Low": "183.929993", + "Open": "184.800003", + "Volume": "4793800" + }, + { + "Close": "183.080002", + "Date": "2014/5/28", + "High": "184.880005", + "Low": "182.940002", + "Open": "184.479996", + "Volume": "3721600" + }, + { + "Close": "183.759995", + "Date": "2014/5/29", + "High": "183.779999", + "Low": "182.330002", + "Open": "183.639999", + "Volume": "2759900" + }, + { + "Close": "184.360001", + "Date": "2014/5/30", + "High": "184.570007", + "Low": "182.490005", + "Open": "183.380005", + "Volume": "4620500" + }, + { + "Close": "185.690002", + "Date": "2014/6/2", + "High": "186.279999", + "Low": "184.669998", + "Open": "184.759995", + "Volume": "3200500" + }, + { + "Close": "184.369995", + "Date": "2014/6/3", + "High": "185.759995", + "Low": "184.119995", + "Open": "185.550003", + "Volume": "2517100" + }, + { + "Close": "184.509995", + "Date": "2014/6/4", + "High": "185.449997", + "Low": "184.199997", + "Open": "184.710007", + "Volume": "2376800" + }, + { + "Close": "185.979996", + "Date": "2014/6/5", + "High": "186.089996", + "Low": "183.919998", + "Open": "184.660004", + "Volume": "2852200" + }, + { + "Close": "186.369995", + "Date": "2014/6/6", + "High": "187.649994", + "Low": "185.899994", + "Open": "186.470001", + "Volume": "3296700" + }, + { + "Close": "186.220001", + "Date": "2014/6/9", + "High": "187.639999", + "Low": "185.960007", + "Open": "186.220001", + "Volume": "2728400" + }, + { + "Close": "184.289993", + "Date": "2014/6/10", + "High": "186.220001", + "Low": "183.820007", + "Open": "186.199997", + "Volume": "4154900" + }, + { + "Close": "182.25", + "Date": "2014/6/11", + "High": "184.199997", + "Low": "182.009995", + "Open": "183.610001", + "Volume": "4061700" + }, + { + "Close": "181.220001", + "Date": "2014/6/12", + "High": "182.550003", + "Low": "180.910004", + "Open": "182.479996", + "Volume": "4425300" + }, + { + "Close": "182.559998", + "Date": "2014/6/13", + "High": "183", + "Low": "181.520004", + "Open": "182", + "Volume": "2773600" + }, + { + "Close": "182.350006", + "Date": "2014/6/16", + "High": "182.710007", + "Low": "181.240005", + "Open": "182.399994", + "Volume": "3556200" + }, + { + "Close": "182.259995", + "Date": "2014/6/17", + "High": "182.809998", + "Low": "181.559998", + "Open": "181.899994", + "Volume": "2460900" + }, + { + "Close": "183.600006", + "Date": "2014/6/18", + "High": "183.610001", + "Low": "181.789993", + "Open": "182.039993", + "Volume": "3931800" + }, + { + "Close": "182.820007", + "Date": "2014/6/19", + "High": "184.470001", + "Low": "182.360001", + "Open": "184.119995", + "Volume": "3551100" + }, + { + "Close": "181.550003", + "Date": "2014/6/20", + "High": "182.669998", + "Low": "181.399994", + "Open": "182.589996", + "Volume": "10686800" + }, + { + "Close": "182.139999", + "Date": "2014/6/23", + "High": "182.25", + "Low": "181", + "Open": "181.919998", + "Volume": "3231700" + }, + { + "Close": "180.880005", + "Date": "2014/6/24", + "High": "183", + "Low": "180.649994", + "Open": "181.5", + "Volume": "3875400" + }, + { + "Close": "180.720001", + "Date": "2014/6/25", + "High": "180.970001", + "Low": "180.059998", + "Open": "180.25", + "Volume": "2762800" + }, + { + "Close": "180.369995", + "Date": "2014/6/26", + "High": "181.369995", + "Low": "179.270004", + "Open": "180.869995", + "Volume": "3258500" + }, + { + "Close": "181.710007", + "Date": "2014/6/27", + "High": "182.460007", + "Low": "179.660004", + "Open": "179.770004", + "Volume": "4575500" + }, + { + "Close": "181.270004", + "Date": "2014/6/30", + "High": "181.929993", + "Low": "180.259995", + "Open": "181.330002", + "Volume": "4223800" + }, + { + "Close": "186.350006", + "Date": "2014/7/1", + "High": "187.270004", + "Low": "181.699997", + "Open": "181.699997", + "Volume": "6643100" + }, + { + "Close": "188.389999", + "Date": "2014/7/2", + "High": "188.990005", + "Low": "186.169998", + "Open": "186.339996", + "Volume": "5093000" + }, + { + "Close": "188.529999", + "Date": "2014/7/3", + "High": "188.809998", + "Low": "187.350006", + "Open": "188.389999", + "Volume": "2422400" + }, + { + "Close": "188.039993", + "Date": "2014/7/7", + "High": "188.270004", + "Low": "187.440002", + "Open": "187.610001", + "Volume": "2958700" + }, + { + "Close": "187.220001", + "Date": "2014/7/8", + "High": "188.080002", + "Low": "186.369995", + "Open": "187.649994", + "Volume": "3135100" + }, + { + "Close": "188.419998", + "Date": "2014/7/9", + "High": "188.899994", + "Low": "186.889999", + "Open": "187.679993", + "Volume": "3309600" + }, + { + "Close": "187.699997", + "Date": "2014/7/10", + "High": "188.050003", + "Low": "186.210007", + "Open": "186.440002", + "Volume": "3177800" + }, + { + "Close": "188", + "Date": "2014/7/11", + "High": "188.350006", + "Low": "186.710007", + "Open": "187.729996", + "Volume": "2402500" + }, + { + "Close": "189.860001", + "Date": "2014/7/14", + "High": "190.440002", + "Low": "188.529999", + "Open": "188.550003", + "Volume": "4501100" + }, + { + "Close": "188.490005", + "Date": "2014/7/15", + "High": "190.080002", + "Low": "188.210007", + "Open": "189.539993", + "Volume": "4864700" + }, + { + "Close": "192.360001", + "Date": "2014/7/16", + "High": "193.360001", + "Low": "190.759995", + "Open": "192.240005", + "Volume": "7812600" + }, + { + "Close": "192.490005", + "Date": "2014/7/17", + "High": "195.949997", + "Low": "192", + "Open": "192.360001", + "Volume": "8872300" + }, + { + "Close": "192.5", + "Date": "2014/7/18", + "High": "193.440002", + "Low": "190", + "Open": "191.960007", + "Volume": "8166400" + }, + { + "Close": "190.850006", + "Date": "2014/7/21", + "High": "191.699997", + "Low": "189.25", + "Open": "191.300003", + "Volume": "4154400" + }, + { + "Close": "194.089996", + "Date": "2014/7/22", + "High": "194.720001", + "Low": "191.559998", + "Open": "191.589996", + "Volume": "4853000" + }, + { + "Close": "193.630005", + "Date": "2014/7/23", + "High": "194.899994", + "Low": "193.570007", + "Open": "194.110001", + "Volume": "3584200" + }, + { + "Close": "195.240005", + "Date": "2014/7/24", + "High": "195.619995", + "Low": "193.75", + "Open": "193.949997", + "Volume": "3612700" + }, + { + "Close": "194.399994", + "Date": "2014/7/25", + "High": "195.899994", + "Low": "193.789993", + "Open": "195.300003", + "Volume": "3376400" + }, + { + "Close": "195.779999", + "Date": "2014/7/28", + "High": "196.399994", + "Low": "193.649994", + "Open": "194.300003", + "Volume": "3242400" + }, + { + "Close": "194.570007", + "Date": "2014/7/29", + "High": "195.889999", + "Low": "194.539993", + "Open": "195.300003", + "Volume": "3264100" + }, + { + "Close": "194", + "Date": "2014/7/30", + "High": "195.990005", + "Low": "192.899994", + "Open": "195.199997", + "Volume": "3943800" + }, + { + "Close": "191.669998", + "Date": "2014/7/31", + "High": "194.289993", + "Low": "191.539993", + "Open": "192.839996", + "Volume": "4207500" + }, + { + "Close": "189.149994", + "Date": "2014/8/1", + "High": "191.5", + "Low": "188.860001", + "Open": "190.5", + "Volume": "5181100" + }, + { + "Close": "189.639999", + "Date": "2014/8/4", + "High": "189.949997", + "Low": "188.600006", + "Open": "189.350006", + "Volume": "2125900" + }, + { + "Close": "187.100006", + "Date": "2014/8/5", + "High": "189.199997", + "Low": "186.440002", + "Open": "188.75", + "Volume": "3307900" + }, + { + "Close": "185.970001", + "Date": "2014/8/6", + "High": "186.880005", + "Low": "184.440002", + "Open": "185.360001", + "Volume": "3847000" + }, + { + "Close": "184.300003", + "Date": "2014/8/7", + "High": "186.679993", + "Low": "183.580002", + "Open": "186.639999", + "Volume": "2708600" + }, + { + "Close": "186.630005", + "Date": "2014/8/8", + "High": "186.669998", + "Low": "183.580002", + "Open": "184.399994", + "Volume": "2781500" + }, + { + "Close": "187.470001", + "Date": "2014/8/11", + "High": "188.360001", + "Low": "186.279999", + "Open": "187.809998", + "Volume": "2527200" + }, + { + "Close": "187.339996", + "Date": "2014/8/12", + "High": "188.690002", + "Low": "186.809998", + "Open": "187.449997", + "Volume": "1858600" + }, + { + "Close": "187.949997", + "Date": "2014/8/13", + "High": "188.479996", + "Low": "187.369995", + "Open": "188", + "Volume": "1795000" + }, + { + "Close": "187.880005", + "Date": "2014/8/14", + "High": "188.169998", + "Low": "186.929993", + "Open": "187.570007", + "Volume": "1929500" + }, + { + "Close": "187.380005", + "Date": "2014/8/15", + "High": "188.880005", + "Low": "186.789993", + "Open": "187.850006", + "Volume": "2814800" + }, + { + "Close": "189.360001", + "Date": "2014/8/18", + "High": "189.809998", + "Low": "187.759995", + "Open": "188.100006", + "Volume": "2420300" + }, + { + "Close": "190.070007", + "Date": "2014/8/19", + "High": "190.25", + "Low": "189.360001", + "Open": "190.039993", + "Volume": "2040100" + }, + { + "Close": "190.100006", + "Date": "2014/8/20", + "High": "190.389999", + "Low": "189.25", + "Open": "189.860001", + "Volume": "2177600" + }, + { + "Close": "191.229996", + "Date": "2014/8/21", + "High": "192.070007", + "Low": "190.5", + "Open": "190.899994", + "Volume": "2496500" + }, + { + "Close": "190.410004", + "Date": "2014/8/22", + "High": "191.880005", + "Low": "190.289993", + "Open": "190.770004", + "Volume": "1940300" + }, + { + "Close": "191.160004", + "Date": "2014/8/25", + "High": "191.809998", + "Low": "190.710007", + "Open": "191.389999", + "Volume": "1723600" + }, + { + "Close": "192.990005", + "Date": "2014/8/26", + "High": "193.529999", + "Low": "191.020004", + "Open": "191.020004", + "Volume": "3175400" + }, + { + "Close": "192.25", + "Date": "2014/8/27", + "High": "194.130005", + "Low": "191.559998", + "Open": "193.029999", + "Volume": "2190200" + }, + { + "Close": "192", + "Date": "2014/8/28", + "High": "192.300003", + "Low": "190.660004", + "Open": "191.470001", + "Volume": "1503600" + }, + { + "Close": "192.300003", + "Date": "2014/8/29", + "High": "192.75", + "Low": "191.139999", + "Open": "192.279999", + "Volume": "2909400" + }, + { + "Close": "191.559998", + "Date": "2014/9/2", + "High": "192.970001", + "Low": "190.929993", + "Open": "192.679993", + "Volume": "2679700" + }, + { + "Close": "191.949997", + "Date": "2014/9/3", + "High": "192.949997", + "Low": "191.860001", + "Open": "192.389999", + "Volume": "1822800" + }, + { + "Close": "190.679993", + "Date": "2014/9/4", + "High": "192.690002", + "Low": "190.059998", + "Open": "191.690002", + "Volume": "2865000" + }, + { + "Close": "191.199997", + "Date": "2014/9/5", + "High": "191.75", + "Low": "190.089996", + "Open": "190.529999", + "Volume": "2260200" + }, + { + "Close": "190.139999", + "Date": "2014/9/8", + "High": "191.199997", + "Low": "189.509995", + "Open": "190.75", + "Volume": "2524200" + }, + { + "Close": "189.990005", + "Date": "2014/9/9", + "High": "190.740005", + "Low": "189.779999", + "Open": "190.339996", + "Volume": "2403600" + }, + { + "Close": "191.539993", + "Date": "2014/9/10", + "High": "192.149994", + "Low": "190.100006", + "Open": "190.119995", + "Volume": "2764000" + }, + { + "Close": "191.720001", + "Date": "2014/9/11", + "High": "192.779999", + "Low": "190.119995", + "Open": "191.080002", + "Volume": "2298500" + }, + { + "Close": "191.279999", + "Date": "2014/9/12", + "High": "191.600006", + "Low": "190.570007", + "Open": "191.470001", + "Volume": "2901000" + }, + { + "Close": "191.809998", + "Date": "2014/9/15", + "High": "192.490005", + "Low": "190.580002", + "Open": "191.419998", + "Volume": "2456400" + }, + { + "Close": "192.960007", + "Date": "2014/9/16", + "High": "193.570007", + "Low": "190.820007", + "Open": "191.25", + "Volume": "2561500" + }, + { + "Close": "192.800003", + "Date": "2014/9/17", + "High": "193.639999", + "Low": "192.300003", + "Open": "193.220001", + "Volume": "3210800" + }, + { + "Close": "193.75", + "Date": "2014/9/18", + "High": "194.130005", + "Low": "192.710007", + "Open": "192.789993", + "Volume": "2963300" + }, + { + "Close": "194", + "Date": "2014/9/19", + "High": "195", + "Low": "193.190002", + "Open": "194.539993", + "Volume": "8852000" + }, + { + "Close": "193.110001", + "Date": "2014/9/22", + "High": "194.139999", + "Low": "192.630005", + "Open": "193.720001", + "Volume": "3318000" + }, + { + "Close": "191.619995", + "Date": "2014/9/23", + "High": "193.070007", + "Low": "191.520004", + "Open": "192.75", + "Volume": "3301800" + }, + { + "Close": "192.309998", + "Date": "2014/9/24", + "High": "192.449997", + "Low": "189.880005", + "Open": "191", + "Volume": "3082600" + }, + { + "Close": "189.009995", + "Date": "2014/9/25", + "High": "192.5", + "Low": "188.970001", + "Open": "192.050003", + "Volume": "4151400" + }, + { + "Close": "190.059998", + "Date": "2014/9/26", + "High": "190.330002", + "Low": "188.610001", + "Open": "188.929993", + "Volume": "2493900" + }, + { + "Close": "189.639999", + "Date": "2014/9/29", + "High": "189.960007", + "Low": "188.119995", + "Open": "188.509995", + "Volume": "2336300" + }, + { + "Close": "189.830002", + "Date": "2014/9/30", + "High": "190.850006", + "Low": "189.149994", + "Open": "189.639999", + "Volume": "2932600" + }, + { + "Close": "187.169998", + "Date": "2014/10/1", + "High": "190.399994", + "Low": "186.789993", + "Open": "189.910004", + "Volume": "3723200" + }, + { + "Close": "186.910004", + "Date": "2014/10/2", + "High": "187.779999", + "Low": "186.240005", + "Open": "187.660004", + "Volume": "2283100" + }, + { + "Close": "188.669998", + "Date": "2014/10/3", + "High": "189.369995", + "Low": "187.559998", + "Open": "188.110001", + "Volume": "3071500" + }, + { + "Close": "189.039993", + "Date": "2014/10/6", + "High": "190.889999", + "Low": "188.710007", + "Open": "189.690002", + "Volume": "2099500" + }, + { + "Close": "185.710007", + "Date": "2014/10/7", + "High": "188.119995", + "Low": "185.539993", + "Open": "187.770004", + "Volume": "2991300" + }, + { + "Close": "189.360001", + "Date": "2014/10/8", + "High": "189.600006", + "Low": "185.610001", + "Open": "185.970001", + "Volume": "2984800" + }, + { + "Close": "186.419998", + "Date": "2014/10/9", + "High": "189.5", + "Low": "186.089996", + "Open": "189.119995", + "Volume": "2625400" + }, + { + "Close": "185.929993", + "Date": "2014/10/10", + "High": "187.740005", + "Low": "185.100006", + "Open": "185.860001", + "Volume": "5090200" + }, + { + "Close": "183.520004", + "Date": "2014/10/13", + "High": "186.649994", + "Low": "183.419998", + "Open": "185.490005", + "Volume": "3596700" + }, + { + "Close": "183.800003", + "Date": "2014/10/14", + "High": "185.720001", + "Low": "183.589996", + "Open": "184.889999", + "Volume": "3924700" + }, + { + "Close": "181.75", + "Date": "2014/10/15", + "High": "183.789993", + "Low": "178.75", + "Open": "182.460007", + "Volume": "6895800" + }, + { + "Close": "179.839996", + "Date": "2014/10/16", + "High": "181.479996", + "Low": "178.690002", + "Open": "179.800003", + "Volume": "5578600" + }, + { + "Close": "182.050003", + "Date": "2014/10/17", + "High": "182.839996", + "Low": "180.220001", + "Open": "181.240005", + "Volume": "4350200" + }, + { + "Close": "169.100006", + "Date": "2014/10/20", + "High": "170.330002", + "Low": "166.690002", + "Open": "166.850006", + "Volume": "23416500" + }, + { + "Close": "163.229996", + "Date": "2014/10/21", + "High": "166.679993", + "Low": "161.679993", + "Open": "166.399994", + "Volume": "20949800" + }, + { + "Close": "161.789993", + "Date": "2014/10/22", + "High": "165.410004", + "Low": "161.100006", + "Open": "162.410004", + "Volume": "11084800" + }, + { + "Close": "162.179993", + "Date": "2014/10/23", + "High": "162.830002", + "Low": "161.539993", + "Open": "162.119995", + "Volume": "7599400" + }, + { + "Close": "162.080002", + "Date": "2014/10/24", + "High": "162.440002", + "Low": "161.449997", + "Open": "162.080002", + "Volume": "6652100" + }, + { + "Close": "161.869995", + "Date": "2014/10/27", + "High": "162.910004", + "Low": "161.809998", + "Open": "162", + "Volume": "4989100" + }, + { + "Close": "163.600006", + "Date": "2014/10/28", + "High": "163.600006", + "Low": "161.800003", + "Open": "162", + "Volume": "7895300" + }, + { + "Close": "163.460007", + "Date": "2014/10/29", + "High": "164.619995", + "Low": "162.759995", + "Open": "164.330002", + "Volume": "4739300" + }, + { + "Close": "164.350006", + "Date": "2014/10/30", + "High": "164.619995", + "Low": "163.020004", + "Open": "163.5", + "Volume": "3896000" + }, + { + "Close": "164.399994", + "Date": "2014/10/31", + "High": "165.589996", + "Low": "163.619995", + "Open": "165.479996", + "Volume": "5818000" + }, + { + "Close": "164.360001", + "Date": "2014/11/3", + "High": "164.539993", + "Low": "163.380005", + "Open": "164.25", + "Volume": "4688200" + }, + { + "Close": "162.649994", + "Date": "2014/11/4", + "High": "164.360001", + "Low": "162.240005", + "Open": "164.339996", + "Volume": "4246900" + }, + { + "Close": "161.820007", + "Date": "2014/11/5", + "High": "163.539993", + "Low": "161.559998", + "Open": "163.130005", + "Volume": "4104700" + }, + { + "Close": "161.460007", + "Date": "2014/11/6", + "High": "161.529999", + "Low": "160.050003", + "Open": "161.279999", + "Volume": "4067600" + }, + { + "Close": "162.070007", + "Date": "2014/11/7", + "High": "162.210007", + "Low": "160.850006", + "Open": "161.419998", + "Volume": "3494800" + }, + { + "Close": "163.490005", + "Date": "2014/11/10", + "High": "164.470001", + "Low": "161.610001", + "Open": "161.899994", + "Volume": "4958200" + }, + { + "Close": "163.300003", + "Date": "2014/11/11", + "High": "163.899994", + "Low": "162.600006", + "Open": "163.699997", + "Volume": "3534400" + }, + { + "Close": "161.919998", + "Date": "2014/11/12", + "High": "163", + "Low": "161.759995", + "Open": "162.279999", + "Volume": "3378200" + }, + { + "Close": "162.789993", + "Date": "2014/11/13", + "High": "162.800003", + "Low": "161.800003", + "Open": "162", + "Volume": "3239700" + }, + { + "Close": "164.160004", + "Date": "2014/11/14", + "High": "164.490005", + "Low": "161.690002", + "Open": "162.100006", + "Volume": "4978400" + }, + { + "Close": "164.160004", + "Date": "2014/11/17", + "High": "164.970001", + "Low": "163.720001", + "Open": "164.160004", + "Volume": "4798900" + }, + { + "Close": "161.889999", + "Date": "2014/11/18", + "High": "164.75", + "Low": "161.889999", + "Open": "164.729996", + "Volume": "5410100" + }, + { + "Close": "161.429993", + "Date": "2014/11/19", + "High": "162.100006", + "Low": "160.960007", + "Open": "162.050003", + "Volume": "3802600" + }, + { + "Close": "160.639999", + "Date": "2014/11/20", + "High": "161.5", + "Low": "159.800003", + "Open": "160.949997", + "Volume": "4183100" + }, + { + "Close": "160.919998", + "Date": "2014/11/21", + "High": "161.949997", + "Low": "160.75", + "Open": "161.830002", + "Volume": "4076900" + }, + { + "Close": "162.149994", + "Date": "2014/11/24", + "High": "163.860001", + "Low": "161.059998", + "Open": "161.539993", + "Volume": "6619000" + }, + { + "Close": "161.759995", + "Date": "2014/11/25", + "High": "163.5", + "Low": "161.559998", + "Open": "162.649994", + "Volume": "4062400" + }, + { + "Close": "161.949997", + "Date": "2014/11/26", + "High": "162.100006", + "Low": "161.009995", + "Open": "161.929993", + "Volume": "3966000" + }, + { + "Close": "162.169998", + "Date": "2014/11/28", + "High": "163.369995", + "Low": "161.440002", + "Open": "162.75", + "Volume": "2405500" + }, + { + "Close": "161.539993", + "Date": "2014/12/1", + "High": "163.320007", + "Low": "161.350006", + "Open": "161.639999", + "Volume": "4168400" + }, + { + "Close": "162.669998", + "Date": "2014/12/2", + "High": "162.729996", + "Low": "161.639999", + "Open": "162.470001", + "Volume": "3465700" + }, + { + "Close": "164.520004", + "Date": "2014/12/3", + "High": "164.520004", + "Low": "162", + "Open": "162.470001", + "Volume": "6429100" + }, + { + "Close": "164.050003", + "Date": "2014/12/4", + "High": "164.5", + "Low": "163.009995", + "Open": "164.009995", + "Volume": "3859400" + }, + { + "Close": "163.270004", + "Date": "2014/12/5", + "High": "164.5", + "Low": "162.910004", + "Open": "163.610001", + "Volume": "3013500" + }, + { + "Close": "161.860001", + "Date": "2014/12/8", + "High": "163.289993", + "Low": "161.539993", + "Open": "163.289993", + "Volume": "2851000" + }, + { + "Close": "162.990005", + "Date": "2014/12/9", + "High": "163.020004", + "Low": "160.800003", + "Open": "160.839996", + "Volume": "3861200" + }, + { + "Close": "160.509995", + "Date": "2014/12/10", + "High": "163.330002", + "Low": "160.029999", + "Open": "163.009995", + "Volume": "4072800" + }, + { + "Close": "161.070007", + "Date": "2014/12/11", + "High": "162.929993", + "Low": "160.520004", + "Open": "160.820007", + "Volume": "3989600" + }, + { + "Close": "155.380005", + "Date": "2014/12/12", + "High": "160.5", + "Low": "155.330002", + "Open": "160.25", + "Volume": "8611700" + }, + { + "Close": "153.059998", + "Date": "2014/12/15", + "High": "156.740005", + "Low": "152.839996", + "Open": "155.929993", + "Volume": "6500300" + }, + { + "Close": "151.410004", + "Date": "2014/12/16", + "High": "154.889999", + "Low": "150.5", + "Open": "152.029999", + "Volume": "6782600" + }, + { + "Close": "151.929993", + "Date": "2014/12/17", + "High": "153.309998", + "Low": "151.110001", + "Open": "151.520004", + "Volume": "5131000" + }, + { + "Close": "157.679993", + "Date": "2014/12/18", + "High": "157.679993", + "Low": "153.300003", + "Open": "153.580002", + "Volume": "7302400" + }, + { + "Close": "158.509995", + "Date": "2014/12/19", + "High": "160.410004", + "Low": "157.490005", + "Open": "157.490005", + "Volume": "8864900" + }, + { + "Close": "161.440002", + "Date": "2014/12/22", + "High": "161.910004", + "Low": "158.330002", + "Open": "158.330002", + "Volume": "4682500" + }, + { + "Close": "162.240005", + "Date": "2014/12/23", + "High": "162.899994", + "Low": "161.610001", + "Open": "162.229996", + "Volume": "4043300" + }, + { + "Close": "161.820007", + "Date": "2014/12/24", + "High": "162.990005", + "Low": "161.610001", + "Open": "162.880005", + "Volume": "1868100" + }, + { + "Close": "162.339996", + "Date": "2014/12/26", + "High": "163.089996", + "Low": "162.009995", + "Open": "162.270004", + "Volume": "1912200" + }, + { + "Close": "160.509995", + "Date": "2014/12/29", + "High": "162.339996", + "Low": "159.449997", + "Open": "162", + "Volume": "3331800" + }, + { + "Close": "160.050003", + "Date": "2014/12/30", + "High": "160.820007", + "Low": "159.789993", + "Open": "160.020004", + "Volume": "2829900" + }, + { + "Close": "160.440002", + "Date": "2014/12/31", + "High": "161.5", + "Low": "160.380005", + "Open": "160.410004", + "Volume": "4011900" + }, + { + "Close": "162.059998", + "Date": "2015/1/2", + "High": "163.309998", + "Low": "161", + "Open": "161.309998", + "Volume": "5525500" + }, + { + "Close": "159.509995", + "Date": "2015/1/5", + "High": "161.270004", + "Low": "159.190002", + "Open": "161.270004", + "Volume": "4880400" + }, + { + "Close": "156.070007", + "Date": "2015/1/6", + "High": "159.960007", + "Low": "155.169998", + "Open": "159.669998", + "Volume": "6146700" + }, + { + "Close": "155.050003", + "Date": "2015/1/7", + "High": "157.199997", + "Low": "154.029999", + "Open": "157.199997", + "Volume": "4701800" + }, + { + "Close": "158.419998", + "Date": "2015/1/8", + "High": "159.039993", + "Low": "155.550003", + "Open": "156.240005", + "Volume": "4236800" + }, + { + "Close": "159.110001", + "Date": "2015/1/9", + "High": "160.339996", + "Low": "157.25", + "Open": "158.419998", + "Volume": "4488300" + }, + { + "Close": "156.440002", + "Date": "2015/1/12", + "High": "159.25", + "Low": "155.759995", + "Open": "159", + "Volume": "4187600" + }, + { + "Close": "156.809998", + "Date": "2015/1/13", + "High": "159.970001", + "Low": "155.679993", + "Open": "157.259995", + "Volume": "4377500" + }, + { + "Close": "155.800003", + "Date": "2015/1/14", + "High": "156.490005", + "Low": "153.740005", + "Open": "154.860001", + "Volume": "4677400" + }, + { + "Close": "154.570007", + "Date": "2015/1/15", + "High": "156.970001", + "Low": "154.160004", + "Open": "156.690002", + "Volume": "4248400" + }, + { + "Close": "157.139999", + "Date": "2015/1/16", + "High": "157.630005", + "Low": "153.820007", + "Open": "153.820007", + "Volume": "5756000" + }, + { + "Close": "156.949997", + "Date": "2015/1/20", + "High": "157.330002", + "Low": "154.029999", + "Open": "156.699997", + "Volume": "8392800" + }, + { + "Close": "152.089996", + "Date": "2015/1/21", + "High": "154.5", + "Low": "151.070007", + "Open": "153.029999", + "Volume": "11897100" + }, + { + "Close": "155.389999", + "Date": "2015/1/22", + "High": "155.720001", + "Low": "151.759995", + "Open": "151.940002", + "Volume": "6120100" + }, + { + "Close": "155.869995", + "Date": "2015/1/23", + "High": "157.600006", + "Low": "154.889999", + "Open": "155.029999", + "Volume": "4834800" + }, + { + "Close": "156.360001", + "Date": "2015/1/26", + "High": "159.460007", + "Low": "155.770004", + "Open": "158.259995", + "Volume": "7888100" + }, + { + "Close": "153.669998", + "Date": "2015/1/27", + "High": "155.089996", + "Low": "152.589996", + "Open": "154.940002", + "Volume": "5659600" + }, + { + "Close": "151.550003", + "Date": "2015/1/28", + "High": "154.529999", + "Low": "151.550003", + "Open": "154", + "Volume": "4495900" + }, + { + "Close": "155.479996", + "Date": "2015/1/29", + "High": "155.580002", + "Low": "149.520004", + "Open": "151.380005", + "Volume": "8320800" + }, + { + "Close": "153.309998", + "Date": "2015/1/30", + "High": "155.240005", + "Low": "153.039993", + "Open": "153.910004", + "Volume": "6563600" + }, + { + "Close": "154.660004", + "Date": "2015/2/2", + "High": "154.660004", + "Low": "151.509995", + "Open": "154", + "Volume": "4712200" + }, + { + "Close": "158.470001", + "Date": "2015/2/3", + "High": "158.600006", + "Low": "154.75", + "Open": "154.75", + "Volume": "5539400" + }, + { + "Close": "156.960007", + "Date": "2015/2/4", + "High": "158.710007", + "Low": "156.699997", + "Open": "157.210007", + "Volume": "3678500" + }, + { + "Close": "157.910004", + "Date": "2015/2/5", + "High": "158.589996", + "Low": "157.149994", + "Open": "157.289993", + "Volume": "5253600" + }, + { + "Close": "156.720001", + "Date": "2015/2/6", + "High": "158.080002", + "Low": "156.229996", + "Open": "157.339996", + "Volume": "3256500" + }, + { + "Close": "155.75", + "Date": "2015/2/9", + "High": "157.5", + "Low": "155.399994", + "Open": "156", + "Volume": "3057700" + }, + { + "Close": "158.559998", + "Date": "2015/2/10", + "High": "158.559998", + "Low": "155.080002", + "Open": "156.740005", + "Volume": "4440600" + }, + { + "Close": "158.199997", + "Date": "2015/2/11", + "High": "159.089996", + "Low": "157.169998", + "Open": "157.759995", + "Volume": "3626700" + }, + { + "Close": "158.520004", + "Date": "2015/2/12", + "High": "159.5", + "Low": "158.089996", + "Open": "158.720001", + "Volume": "3333100" + }, + { + "Close": "160.399994", + "Date": "2015/2/13", + "High": "160.800003", + "Low": "158.639999", + "Open": "158.779999", + "Volume": "3706900" + }, + { + "Close": "160.960007", + "Date": "2015/2/17", + "High": "161.410004", + "Low": "159.729996", + "Open": "159.75", + "Volume": "2894500" + }, + { + "Close": "162.190002", + "Date": "2015/2/18", + "High": "162.470001", + "Low": "160.639999", + "Open": "161.860001", + "Volume": "4358400" + }, + { + "Close": "163.889999", + "Date": "2015/2/19", + "High": "164.490005", + "Low": "161.440002", + "Open": "162.050003", + "Volume": "3504400" + }, + { + "Close": "163.649994", + "Date": "2015/2/20", + "High": "164.339996", + "Low": "162.089996", + "Open": "163.639999", + "Volume": "3353000" + }, + { + "Close": "162.910004", + "Date": "2015/2/23", + "High": "164.399994", + "Low": "162.5", + "Open": "164.229996", + "Volume": "2714400" + }, + { + "Close": "164.830002", + "Date": "2015/2/24", + "High": "164.990005", + "Low": "161.509995", + "Open": "162.490005", + "Volume": "4701600" + }, + { + "Close": "162.809998", + "Date": "2015/2/25", + "High": "164.960007", + "Low": "162.580002", + "Open": "164.940002", + "Volume": "4004600" + }, + { + "Close": "160.869995", + "Date": "2015/2/26", + "High": "164.139999", + "Low": "159.770004", + "Open": "163.740005", + "Volume": "7110800" + }, + { + "Close": "161.940002", + "Date": "2015/2/27", + "High": "162.289993", + "Low": "160.160004", + "Open": "160.869995", + "Volume": "4410000" + }, + { + "Close": "160.479996", + "Date": "2015/3/2", + "High": "161.940002", + "Low": "159.809998", + "Open": "161.940002", + "Volume": "5917900" + }, + { + "Close": "161.029999", + "Date": "2015/3/3", + "High": "161.75", + "Low": "160", + "Open": "160.270004", + "Volume": "3234400" + }, + { + "Close": "159.419998", + "Date": "2015/3/4", + "High": "160.559998", + "Low": "158.720001", + "Open": "160.539993", + "Volume": "3633600" + }, + { + "Close": "161.179993", + "Date": "2015/3/5", + "High": "161.5", + "Low": "159.699997", + "Open": "159.860001", + "Volume": "3791700" + }, + { + "Close": "158.5", + "Date": "2015/3/6", + "High": "161.440002", + "Low": "158.059998", + "Open": "160.190002", + "Volume": "4540200" + }, + { + "Close": "160.770004", + "Date": "2015/3/9", + "High": "161.149994", + "Low": "158.199997", + "Open": "158.199997", + "Volume": "5193900" + }, + { + "Close": "157.809998", + "Date": "2015/3/10", + "High": "160.229996", + "Low": "157.809998", + "Open": "159.600006", + "Volume": "4601000" + }, + { + "Close": "156.800003", + "Date": "2015/3/11", + "High": "159.139999", + "Low": "155.940002", + "Open": "158.570007", + "Volume": "5709900" + }, + { + "Close": "157.979996", + "Date": "2015/3/12", + "High": "158.720001", + "Low": "156.270004", + "Open": "156.270004", + "Volume": "4567300" + }, + { + "Close": "154.279999", + "Date": "2015/3/13", + "High": "157.520004", + "Low": "153.399994", + "Open": "157.460007", + "Volume": "6064100" + }, + { + "Close": "157.080002", + "Date": "2015/3/16", + "High": "157.089996", + "Low": "154.800003", + "Open": "155.050003", + "Volume": "3749600" + }, + { + "Close": "156.960007", + "Date": "2015/3/17", + "High": "157.289993", + "Low": "155.369995", + "Open": "156.199997", + "Volume": "3311700" + }, + { + "Close": "159.809998", + "Date": "2015/3/18", + "High": "160.699997", + "Low": "155.800003", + "Open": "156.850006", + "Volume": "5738800" + }, + { + "Close": "159.809998", + "Date": "2015/3/19", + "High": "160.919998", + "Low": "158.809998", + "Open": "159.699997", + "Volume": "3878600" + }, + { + "Close": "162.880005", + "Date": "2015/3/20", + "High": "163", + "Low": "160.350006", + "Open": "160.949997", + "Volume": "9006400" + }, + { + "Close": "164.630005", + "Date": "2015/3/23", + "High": "165.350006", + "Low": "162.729996", + "Open": "162.770004", + "Volume": "5930100" + }, + { + "Close": "163", + "Date": "2015/3/24", + "High": "164.889999", + "Low": "162.899994", + "Open": "164.789993", + "Volume": "4346100" + }, + { + "Close": "159.199997", + "Date": "2015/3/25", + "High": "163.080002", + "Low": "159.199997", + "Open": "163.080002", + "Volume": "5428900" + }, + { + "Close": "160.589996", + "Date": "2015/3/26", + "High": "161.25", + "Low": "158.910004", + "Open": "159.270004", + "Volume": "4396000" + }, + { + "Close": "160.399994", + "Date": "2015/3/27", + "High": "160.899994", + "Low": "159.229996", + "Open": "160.789993", + "Volume": "3477900" + }, + { + "Close": "162.669998", + "Date": "2015/3/30", + "High": "163.600006", + "Low": "161.25", + "Open": "161.309998", + "Volume": "4138000" + }, + { + "Close": "160.5", + "Date": "2015/3/31", + "High": "162.330002", + "Low": "160.399994", + "Open": "161.080002", + "Volume": "4255400" + }, + { + "Close": "159.179993", + "Date": "2015/4/1", + "High": "160.619995", + "Low": "158.389999", + "Open": "160.229996", + "Volume": "3700800" + }, + { + "Close": "160.449997", + "Date": "2015/4/2", + "High": "162.539993", + "Low": "158.889999", + "Open": "159.520004", + "Volume": "4671600" + }, + { + "Close": "162.039993", + "Date": "2015/4/6", + "High": "162.800003", + "Low": "158.699997", + "Open": "159.690002", + "Volume": "3465700" + }, + { + "Close": "162.070007", + "Date": "2015/4/7", + "High": "163.839996", + "Low": "161.619995", + "Open": "161.669998", + "Volume": "3148000" + }, + { + "Close": "161.850006", + "Date": "2015/4/8", + "High": "163.550003", + "Low": "161.009995", + "Open": "161.720001", + "Volume": "2524300" + }, + { + "Close": "162.339996", + "Date": "2015/4/9", + "High": "162.470001", + "Low": "160.720001", + "Open": "161.699997", + "Volume": "2263500" + }, + { + "Close": "162.860001", + "Date": "2015/4/10", + "High": "163.330002", + "Low": "161.25", + "Open": "162.339996", + "Volume": "2515700" + }, + { + "Close": "162.380005", + "Date": "2015/4/13", + "High": "164", + "Low": "162.360001", + "Open": "162.369995", + "Volume": "3868900" + }, + { + "Close": "162.300003", + "Date": "2015/4/14", + "High": "162.740005", + "Low": "160.789993", + "Open": "162.419998", + "Volume": "2719300" + }, + { + "Close": "164.130005", + "Date": "2015/4/15", + "High": "164.960007", + "Low": "162.5", + "Open": "162.630005", + "Volume": "3498800" + }, + { + "Close": "163.130005", + "Date": "2015/4/16", + "High": "163.979996", + "Low": "162.539993", + "Open": "163.309998", + "Volume": "3136900" + }, + { + "Close": "160.669998", + "Date": "2015/4/17", + "High": "161.860001", + "Low": "160.029999", + "Open": "161.75", + "Volume": "4314400" + }, + { + "Close": "166.160004", + "Date": "2015/4/20", + "High": "166.639999", + "Low": "161.899994", + "Open": "162.100006", + "Volume": "9609200" + }, + { + "Close": "164.259995", + "Date": "2015/4/21", + "High": "167.380005", + "Low": "164.050003", + "Open": "166.070007", + "Volume": "9683600" + }, + { + "Close": "165.360001", + "Date": "2015/4/22", + "High": "166", + "Low": "162.889999", + "Open": "164.389999", + "Volume": "4024800" + }, + { + "Close": "170.240005", + "Date": "2015/4/23", + "High": "171.910004", + "Low": "165.139999", + "Open": "165.229996", + "Volume": "8235600" + }, + { + "Close": "169.779999", + "Date": "2015/4/24", + "High": "170.850006", + "Low": "168.740005", + "Open": "170.229996", + "Volume": "3888400" + }, + { + "Close": "170.729996", + "Date": "2015/4/27", + "High": "171.490005", + "Low": "170.300003", + "Open": "170.889999", + "Volume": "3168600" + }, + { + "Close": "173.919998", + "Date": "2015/4/28", + "High": "174.690002", + "Low": "170.020004", + "Open": "170.830002", + "Volume": "5816700" + }, + { + "Close": "174.399994", + "Date": "2015/4/29", + "High": "175.130005", + "Low": "172.800003", + "Open": "173.399994", + "Volume": "4518400" + }, + { + "Close": "171.289993", + "Date": "2015/4/30", + "High": "174.279999", + "Low": "170.300003", + "Open": "173.770004", + "Volume": "5062900" + }, + { + "Close": "173.669998", + "Date": "2015/5/1", + "High": "174", + "Low": "172.419998", + "Open": "173.199997", + "Volume": "3312100" + }, + { + "Close": "173.970001", + "Date": "2015/5/4", + "High": "176.300003", + "Low": "173.699997", + "Open": "174.470001", + "Volume": "4028000" + }, + { + "Close": "173.080002", + "Date": "2015/5/5", + "High": "174.229996", + "Low": "171.960007", + "Open": "173.509995", + "Volume": "3593600" + }, + { + "Close": "170.050003", + "Date": "2015/5/6", + "High": "174.050003", + "Low": "168.860001", + "Open": "172.899994", + "Volume": "3612600" + }, + { + "Close": "170.990005", + "Date": "2015/5/7", + "High": "171.979996", + "Low": "169.039993", + "Open": "169.630005", + "Volume": "2472000" + }, + { + "Close": "172.679993", + "Date": "2015/5/8", + "High": "173.330002", + "Low": "172.240005", + "Open": "172.940002", + "Volume": "3092600" + }, + { + "Close": "171.119995", + "Date": "2015/5/11", + "High": "172.990005", + "Low": "170.860001", + "Open": "172.649994", + "Volume": "2661000" + }, + { + "Close": "170.550003", + "Date": "2015/5/12", + "High": "171.490005", + "Low": "168.839996", + "Open": "170.550003", + "Volume": "2962400" + }, + { + "Close": "172.279999", + "Date": "2015/5/13", + "High": "172.740005", + "Low": "170.75", + "Open": "171.240005", + "Volume": "2457500" + }, + { + "Close": "174.050003", + "Date": "2015/5/14", + "High": "174.399994", + "Low": "173.220001", + "Open": "173.5", + "Volume": "2439100" + }, + { + "Close": "173.259995", + "Date": "2015/5/15", + "High": "174.410004", + "Low": "172.600006", + "Open": "173.910004", + "Volume": "2916600" + }, + { + "Close": "173.059998", + "Date": "2015/5/18", + "High": "173.490005", + "Low": "172.300003", + "Open": "173.440002", + "Volume": "1970600" + }, + { + "Close": "173.479996", + "Date": "2015/5/19", + "High": "173.75", + "Low": "171.929993", + "Open": "172.970001", + "Volume": "2523000" + }, + { + "Close": "173.759995", + "Date": "2015/5/20", + "High": "174.440002", + "Low": "172.460007", + "Open": "173.330002", + "Volume": "2300300" + }, + { + "Close": "173.339996", + "Date": "2015/5/21", + "High": "174.139999", + "Low": "173.039993", + "Open": "173.320007", + "Volume": "2295600" + }, + { + "Close": "172.220001", + "Date": "2015/5/22", + "High": "173.389999", + "Low": "172.190002", + "Open": "173.039993", + "Volume": "2849700" + }, + { + "Close": "170.130005", + "Date": "2015/5/26", + "High": "172.119995", + "Low": "169.130005", + "Open": "172.110001", + "Volume": "3854200" + }, + { + "Close": "172", + "Date": "2015/5/27", + "High": "172.479996", + "Low": "170.490005", + "Open": "171.160004", + "Volume": "2764400" + }, + { + "Close": "171.710007", + "Date": "2015/5/28", + "High": "171.839996", + "Low": "170.660004", + "Open": "171.449997", + "Volume": "1731400" + }, + { + "Close": "169.649994", + "Date": "2015/5/29", + "High": "171.350006", + "Low": "169.649994", + "Open": "171.350006", + "Volume": "4092000" + }, + { + "Close": "170.179993", + "Date": "2015/6/1", + "High": "171.039993", + "Low": "169.029999", + "Open": "170.210007", + "Volume": "2985500" + }, + { + "Close": "169.649994", + "Date": "2015/6/2", + "High": "170.449997", + "Low": "168.429993", + "Open": "169.660004", + "Volume": "2571400" + }, + { + "Close": "169.919998", + "Date": "2015/6/3", + "High": "171.559998", + "Low": "169.630005", + "Open": "170.5", + "Volume": "2128200" + }, + { + "Close": "168.380005", + "Date": "2015/6/4", + "High": "170.600006", + "Low": "167.929993", + "Open": "169.529999", + "Volume": "3079300" + }, + { + "Close": "167.399994", + "Date": "2015/6/5", + "High": "168.910004", + "Low": "167.199997", + "Open": "168.25", + "Volume": "3100500" + }, + { + "Close": "165.339996", + "Date": "2015/6/8", + "High": "167.279999", + "Low": "165.020004", + "Open": "167.169998", + "Volume": "3758700" + }, + { + "Close": "165.679993", + "Date": "2015/6/9", + "High": "166.020004", + "Low": "163.369995", + "Open": "165.339996", + "Volume": "3395900" + }, + { + "Close": "168.919998", + "Date": "2015/6/10", + "High": "169.389999", + "Low": "166.059998", + "Open": "166.490005", + "Volume": "4680500" + }, + { + "Close": "168.779999", + "Date": "2015/6/11", + "High": "170.440002", + "Low": "168.539993", + "Open": "169.259995", + "Volume": "3464000" + }, + { + "Close": "166.990005", + "Date": "2015/6/12", + "High": "168.300003", + "Low": "166.690002", + "Open": "168.229996", + "Volume": "3065100" + }, + { + "Close": "166.259995", + "Date": "2015/6/15", + "High": "166.990005", + "Low": "164.25", + "Open": "166.990005", + "Volume": "4245700" + }, + { + "Close": "166.839996", + "Date": "2015/6/16", + "High": "167.399994", + "Low": "165.910004", + "Open": "166.330002", + "Volume": "3249800" + }, + { + "Close": "167.169998", + "Date": "2015/6/17", + "High": "167.850006", + "Low": "166.100006", + "Open": "167", + "Volume": "2863000" + }, + { + "Close": "168.25", + "Date": "2015/6/18", + "High": "168.720001", + "Low": "167.050003", + "Open": "167.050003", + "Volume": "3330900" + }, + { + "Close": "166.990005", + "Date": "2015/6/19", + "High": "168.419998", + "Low": "166.770004", + "Open": "167.619995", + "Volume": "7074000" + }, + { + "Close": "167.729996", + "Date": "2015/6/22", + "High": "168.339996", + "Low": "167.199997", + "Open": "167.649994", + "Volume": "2335800" + }, + { + "Close": "168.619995", + "Date": "2015/6/23", + "High": "169.970001", + "Low": "167.570007", + "Open": "168.380005", + "Volume": "3701600" + }, + { + "Close": "166.970001", + "Date": "2015/6/24", + "High": "168.839996", + "Low": "166.830002", + "Open": "168.710007", + "Volume": "3548100" + }, + { + "Close": "166.080002", + "Date": "2015/6/25", + "High": "168.130005", + "Low": "166.080002", + "Open": "167.800003", + "Volume": "2408900" + }, + { + "Close": "165.460007", + "Date": "2015/6/26", + "High": "166.809998", + "Low": "165.229996", + "Open": "166.229996", + "Volume": "8946000" + }, + { + "Close": "162.970001", + "Date": "2015/6/29", + "High": "165.350006", + "Low": "162.889999", + "Open": "163.919998", + "Volume": "3314700" + }, + { + "Close": "162.660004", + "Date": "2015/6/30", + "High": "164", + "Low": "162.119995", + "Open": "163.990005", + "Volume": "3597300" + }, + { + "Close": "164.490005", + "Date": "2015/7/1", + "High": "165.610001", + "Low": "163.600006", + "Open": "163.970001", + "Volume": "3214500" + }, + { + "Close": "165.089996", + "Date": "2015/7/2", + "High": "165.320007", + "Low": "164.419998", + "Open": "165.050003", + "Volume": "2852700" + }, + { + "Close": "164.729996", + "Date": "2015/7/6", + "High": "165.229996", + "Low": "163.520004", + "Open": "163.830002", + "Volume": "3079800" + }, + { + "Close": "165", + "Date": "2015/7/7", + "High": "165.350006", + "Low": "162.229996", + "Open": "164.940002", + "Volume": "3549900" + }, + { + "Close": "163.160004", + "Date": "2015/7/8", + "High": "164.940002", + "Low": "162.679993", + "Open": "164", + "Volume": "2776300" + }, + { + "Close": "163.850006", + "Date": "2015/7/9", + "High": "165.509995", + "Low": "163.699997", + "Open": "165.339996", + "Volume": "4138500" + }, + { + "Close": "166.949997", + "Date": "2015/7/10", + "High": "167.399994", + "Low": "165.520004", + "Open": "165.660004", + "Volume": "4538300" + }, + { + "Close": "169.380005", + "Date": "2015/7/13", + "High": "169.889999", + "Low": "167.520004", + "Open": "167.929993", + "Volume": "4229000" + }, + { + "Close": "168.610001", + "Date": "2015/7/14", + "High": "169.539993", + "Low": "168.240005", + "Open": "169.429993", + "Volume": "3025300" + }, + { + "Close": "168.529999", + "Date": "2015/7/15", + "High": "169.270004", + "Low": "168", + "Open": "168.479996", + "Volume": "1998000" + }, + { + "Close": "171", + "Date": "2015/7/16", + "High": "171.089996", + "Low": "169.160004", + "Open": "169.470001", + "Volume": "3529900" + }, + { + "Close": "172.509995", + "Date": "2015/7/17", + "High": "172.520004", + "Low": "170.100006", + "Open": "170.330002", + "Volume": "4356400" + }, + { + "Close": "173.220001", + "Date": "2015/7/20", + "High": "173.779999", + "Low": "172.139999", + "Open": "172.789993", + "Volume": "7377800" + }, + { + "Close": "163.070007", + "Date": "2015/7/21", + "High": "166.350006", + "Low": "162.020004", + "Open": "164.339996", + "Volume": "13752300" + }, + { + "Close": "160.350006", + "Date": "2015/7/22", + "High": "163.070007", + "Low": "159.699997", + "Open": "162.729996", + "Volume": "7181800" + }, + { + "Close": "161.729996", + "Date": "2015/7/23", + "High": "162.75", + "Low": "159.830002", + "Open": "160.270004", + "Volume": "5034200" + }, + { + "Close": "159.75", + "Date": "2015/7/24", + "High": "161.929993", + "Low": "159.410004", + "Open": "161.289993", + "Volume": "3778200" + }, + { + "Close": "159.070007", + "Date": "2015/7/27", + "High": "160.179993", + "Low": "158.600006", + "Open": "159", + "Volume": "3706200" + }, + { + "Close": "160.050003", + "Date": "2015/7/28", + "High": "160.190002", + "Low": "158.5", + "Open": "159.910004", + "Volume": "2721000" + }, + { + "Close": "161.089996", + "Date": "2015/7/29", + "High": "161.5", + "Low": "159.389999", + "Open": "160", + "Volume": "3378400" + }, + { + "Close": "160.960007", + "Date": "2015/7/30", + "High": "161.399994", + "Low": "159.75", + "Open": "160.5", + "Volume": "1994700" + }, + { + "Close": "161.990005", + "Date": "2015/7/31", + "High": "162.059998", + "Low": "160.630005", + "Open": "161.399994", + "Volume": "3580200" + }, + { + "Close": "158.710007", + "Date": "2015/8/3", + "High": "161.850006", + "Low": "157.899994", + "Open": "161.699997", + "Volume": "4615700" + }, + { + "Close": "157.600006", + "Date": "2015/8/4", + "High": "158.820007", + "Low": "156.869995", + "Open": "158.399994", + "Volume": "5260600" + }, + { + "Close": "157.899994", + "Date": "2015/8/5", + "High": "159.539993", + "Low": "157.479996", + "Open": "159.100006", + "Volume": "3472800" + }, + { + "Close": "156.320007", + "Date": "2015/8/6", + "High": "157.539993", + "Low": "156.179993", + "Open": "157.130005", + "Volume": "3004800" + }, + { + "Close": "155.119995", + "Date": "2015/8/7", + "High": "156.25", + "Low": "154.339996", + "Open": "155.889999", + "Volume": "3794900" + }, + { + "Close": "156.75", + "Date": "2015/8/10", + "High": "157.470001", + "Low": "156.119995", + "Open": "156.770004", + "Volume": "4613400" + }, + { + "Close": "155.509995", + "Date": "2015/8/11", + "High": "155.990005", + "Low": "154.860001", + "Open": "155.960007", + "Volume": "3167100" + }, + { + "Close": "156.160004", + "Date": "2015/8/12", + "High": "156.520004", + "Low": "153.949997", + "Open": "154.259995", + "Volume": "3560300" + }, + { + "Close": "155.070007", + "Date": "2015/8/13", + "High": "156.089996", + "Low": "154.320007", + "Open": "156.059998", + "Volume": "2533400" + }, + { + "Close": "155.75", + "Date": "2015/8/14", + "High": "156.210007", + "Low": "154.580002", + "Open": "155", + "Volume": "3226400" + }, + { + "Close": "156.309998", + "Date": "2015/8/17", + "High": "156.690002", + "Low": "154.699997", + "Open": "155.199997", + "Volume": "2249600" + }, + { + "Close": "156.009995", + "Date": "2015/8/18", + "High": "156.520004", + "Low": "155.25", + "Open": "155.509995", + "Volume": "2018300" + }, + { + "Close": "153.940002", + "Date": "2015/8/19", + "High": "155.669998", + "Low": "153.410004", + "Open": "155.149994", + "Volume": "4177100" + }, + { + "Close": "152.660004", + "Date": "2015/8/20", + "High": "153.910004", + "Low": "152.5", + "Open": "152.740005", + "Volume": "4011500" + }, + { + "Close": "148.850006", + "Date": "2015/8/21", + "High": "153.190002", + "Low": "148.699997", + "Open": "151.5", + "Volume": "7362100" + }, + { + "Close": "143.470001", + "Date": "2015/8/24", + "High": "147.759995", + "Low": "143", + "Open": "143.470001", + "Volume": "10189700" + }, + { + "Close": "140.960007", + "Date": "2015/8/25", + "High": "147.110001", + "Low": "140.619995", + "Open": "146.940002", + "Volume": "7073200" + }, + { + "Close": "146.699997", + "Date": "2015/8/26", + "High": "146.979996", + "Low": "142.139999", + "Open": "144.089996", + "Volume": "6221800" + }, + { + "Close": "148.539993", + "Date": "2015/8/27", + "High": "148.970001", + "Low": "145.660004", + "Open": "148.5", + "Volume": "4976600" + }, + { + "Close": "147.979996", + "Date": "2015/8/28", + "High": "148.199997", + "Low": "147.179993", + "Open": "147.75", + "Volume": "4076300" + }, + { + "Close": "147.889999", + "Date": "2015/8/31", + "High": "148.399994", + "Low": "146.259995", + "Open": "147.380005", + "Volume": "4093100" + }, + { + "Close": "142.679993", + "Date": "2015/9/1", + "High": "144.979996", + "Low": "141.850006", + "Open": "144.910004", + "Volume": "5272000" + }, + { + "Close": "145.050003", + "Date": "2015/9/2", + "High": "145.080002", + "Low": "143.179993", + "Open": "144.740005", + "Volume": "4252000" + }, + { + "Close": "146.779999", + "Date": "2015/9/3", + "High": "148.029999", + "Low": "145.770004", + "Open": "146.050003", + "Volume": "3603500" + }, + { + "Close": "143.699997", + "Date": "2015/9/4", + "High": "145.399994", + "Low": "143.320007", + "Open": "144.570007", + "Volume": "4201100" + }, + { + "Close": "147.229996", + "Date": "2015/9/8", + "High": "147.339996", + "Low": "145.660004", + "Open": "145.860001", + "Volume": "3933300" + }, + { + "Close": "145.050003", + "Date": "2015/9/9", + "High": "149.039993", + "Low": "144.850006", + "Open": "148.740005", + "Volume": "3407800" + }, + { + "Close": "146.199997", + "Date": "2015/9/10", + "High": "147.160004", + "Low": "144.509995", + "Open": "145.850006", + "Volume": "3461700" + }, + { + "Close": "147.369995", + "Date": "2015/9/11", + "High": "147.5", + "Low": "145.669998", + "Open": "145.910004", + "Volume": "3115100" + }, + { + "Close": "145.649994", + "Date": "2015/9/14", + "High": "147.369995", + "Low": "145.410004", + "Open": "147.369995", + "Volume": "3226700" + }, + { + "Close": "147.529999", + "Date": "2015/9/15", + "High": "147.929993", + "Low": "145.759995", + "Open": "146.600006", + "Volume": "2717100" + }, + { + "Close": "148.410004", + "Date": "2015/9/16", + "High": "148.889999", + "Low": "147.539993", + "Open": "147.839996", + "Volume": "2799200" + }, + { + "Close": "148.139999", + "Date": "2015/9/17", + "High": "149.679993", + "Low": "147.300003", + "Open": "148.100006", + "Volume": "4003000" + }, + { + "Close": "144.509995", + "Date": "2015/9/18", + "High": "146.389999", + "Low": "143.979996", + "Open": "146.050003", + "Volume": "7975800" + }, + { + "Close": "146.479996", + "Date": "2015/9/21", + "High": "146.979996", + "Low": "144.919998", + "Open": "145.389999", + "Volume": "3825000" + }, + { + "Close": "144.429993", + "Date": "2015/9/22", + "High": "145.059998", + "Low": "143.770004", + "Open": "144.619995", + "Volume": "3564100" + }, + { + "Close": "143.660004", + "Date": "2015/9/23", + "High": "144.570007", + "Low": "142.75", + "Open": "144.210007", + "Volume": "2674200" + }, + { + "Close": "144.410004", + "Date": "2015/9/24", + "High": "145.070007", + "Low": "141.949997", + "Open": "142.600006", + "Volume": "3280300" + }, + { + "Close": "145.419998", + "Date": "2015/9/25", + "High": "146.270004", + "Low": "144.529999", + "Open": "145.550003", + "Volume": "3474400" + }, + { + "Close": "142.520004", + "Date": "2015/9/28", + "High": "145.380005", + "Low": "142.470001", + "Open": "144.419998", + "Volume": "4317300" + }, + { + "Close": "142.470001", + "Date": "2015/9/29", + "High": "142.660004", + "Low": "141.149994", + "Open": "141.990005", + "Volume": "4763500" + }, + { + "Close": "144.970001", + "Date": "2015/9/30", + "High": "145.710007", + "Low": "143.660004", + "Open": "143.690002", + "Volume": "3946200" + }, + { + "Close": "143.589996", + "Date": "2015/10/1", + "High": "145.669998", + "Low": "141.589996", + "Open": "145.309998", + "Volume": "3880900" + }, + { + "Close": "144.580002", + "Date": "2015/10/2", + "High": "144.589996", + "Low": "140.559998", + "Open": "141.050003", + "Volume": "3054400" + }, + { + "Close": "149.039993", + "Date": "2015/10/5", + "High": "149.889999", + "Low": "145.820007", + "Open": "145.820007", + "Volume": "5131800" + }, + { + "Close": "148.779999", + "Date": "2015/10/6", + "High": "150.149994", + "Low": "148.490005", + "Open": "149.059998", + "Volume": "3018100" + }, + { + "Close": "150.089996", + "Date": "2015/10/7", + "High": "150.729996", + "Low": "148.860001", + "Open": "150.039993", + "Volume": "2980800" + }, + { + "Close": "152.279999", + "Date": "2015/10/8", + "High": "153.020004", + "Low": "149.289993", + "Open": "149.690002", + "Volume": "4794400" + }, + { + "Close": "152.389999", + "Date": "2015/10/9", + "High": "153.149994", + "Low": "151.270004", + "Open": "152.460007", + "Volume": "3531100" + }, + { + "Close": "151.139999", + "Date": "2015/10/12", + "High": "152.580002", + "Low": "150.850006", + "Open": "152.399994", + "Volume": "3227600" + }, + { + "Close": "149.619995", + "Date": "2015/10/13", + "High": "150.779999", + "Low": "149.179993", + "Open": "150.779999", + "Volume": "3915700" + }, + { + "Close": "150.009995", + "Date": "2015/10/14", + "High": "150.649994", + "Low": "149.020004", + "Open": "149.600006", + "Volume": "3353000" + }, + { + "Close": "150.089996", + "Date": "2015/10/15", + "High": "151.240005", + "Low": "148.580002", + "Open": "150.910004", + "Volume": "3476200" + }, + { + "Close": "150.389999", + "Date": "2015/10/16", + "High": "151.199997", + "Low": "149.259995", + "Open": "150.449997", + "Volume": "3483700" + }, + { + "Close": "149.220001", + "Date": "2015/10/19", + "High": "149.970001", + "Low": "148.380005", + "Open": "149.850006", + "Volume": "7954700" + }, + { + "Close": "140.639999", + "Date": "2015/10/20", + "High": "142.880005", + "Low": "140.270004", + "Open": "142.490005", + "Volume": "15928800" + }, + { + "Close": "140.919998", + "Date": "2015/10/21", + "High": "142.660004", + "Low": "139.300003", + "Open": "140.25", + "Volume": "6990600" + }, + { + "Close": "144.089996", + "Date": "2015/10/22", + "High": "145.070007", + "Low": "141.619995", + "Open": "141.740005", + "Volume": "5583200" + }, + { + "Close": "144.679993", + "Date": "2015/10/23", + "High": "145.490005", + "Low": "143.699997", + "Open": "144.610001", + "Volume": "5370400" + }, + { + "Close": "143.660004", + "Date": "2015/10/26", + "High": "145", + "Low": "143.210007", + "Open": "144.75", + "Volume": "3489400" + }, + { + "Close": "137.860001", + "Date": "2015/10/27", + "High": "143.830002", + "Low": "137.330002", + "Open": "143.509995", + "Volume": "15008500" + }, + { + "Close": "140.830002", + "Date": "2015/10/28", + "High": "141.229996", + "Low": "137.5", + "Open": "137.919998", + "Volume": "8511400" + }, + { + "Close": "140.550003", + "Date": "2015/10/29", + "High": "140.820007", + "Low": "139.020004", + "Open": "140.360001", + "Volume": "3710400" + }, + { + "Close": "140.080002", + "Date": "2015/10/30", + "High": "141.330002", + "Low": "139.899994", + "Open": "140.440002", + "Volume": "3984000" + }, + { + "Close": "140.369995", + "Date": "2015/11/2", + "High": "140.520004", + "Low": "139.570007", + "Open": "140.5", + "Volume": "3822200" + }, + { + "Close": "141.880005", + "Date": "2015/11/3", + "High": "142.800003", + "Low": "139.899994", + "Open": "140.020004", + "Volume": "4349400" + }, + { + "Close": "141.630005", + "Date": "2015/11/4", + "High": "142.649994", + "Low": "141.300003", + "Open": "142.550003", + "Volume": "3516900" + }, + { + "Close": "139.889999", + "Date": "2015/11/5", + "High": "142.380005", + "Low": "139.630005", + "Open": "141.610001", + "Volume": "5096900" + }, + { + "Close": "138.25", + "Date": "2015/11/6", + "High": "139.550003", + "Low": "137.869995", + "Open": "138.600006", + "Volume": "4744900" + }, + { + "Close": "135.309998", + "Date": "2015/11/9", + "High": "138.080002", + "Low": "134.880005", + "Open": "137.919998", + "Volume": "8075600" + }, + { + "Close": "135.470001", + "Date": "2015/11/10", + "High": "135.740005", + "Low": "134.119995", + "Open": "135.360001", + "Volume": "4520800" + }, + { + "Close": "135.020004", + "Date": "2015/11/11", + "High": "136.199997", + "Low": "134.5", + "Open": "136.089996", + "Volume": "3164800" + }, + { + "Close": "133.039993", + "Date": "2015/11/12", + "High": "134.699997", + "Low": "133.009995", + "Open": "134.699997", + "Volume": "4701400" + }, + { + "Close": "131.75", + "Date": "2015/11/13", + "High": "133", + "Low": "131.649994", + "Open": "132.949997", + "Volume": "4613800" + }, + { + "Close": "133.710007", + "Date": "2015/11/16", + "High": "134.089996", + "Low": "131.789993", + "Open": "131.789993", + "Volume": "4190800" + }, + { + "Close": "133.820007", + "Date": "2015/11/17", + "High": "134.820007", + "Low": "133.309998", + "Open": "134.220001", + "Volume": "2815100" + }, + { + "Close": "135.820007", + "Date": "2015/11/18", + "High": "135.910004", + "Low": "134.259995", + "Open": "134.789993", + "Volume": "4149200" + }, + { + "Close": "136.740005", + "Date": "2015/11/19", + "High": "137.740005", + "Low": "136.009995", + "Open": "136.210007", + "Volume": "4753600" + }, + { + "Close": "138.5", + "Date": "2015/11/20", + "High": "138.919998", + "Low": "137.25", + "Open": "137.369995", + "Volume": "5176400" + }, + { + "Close": "138.460007", + "Date": "2015/11/23", + "High": "138.869995", + "Low": "137.119995", + "Open": "138.529999", + "Volume": "5137900" + }, + { + "Close": "138.600006", + "Date": "2015/11/24", + "High": "139.339996", + "Low": "137.309998", + "Open": "137.649994", + "Volume": "3407700" + }, + { + "Close": "138", + "Date": "2015/11/25", + "High": "138.429993", + "Low": "137.380005", + "Open": "138.369995", + "Volume": "3238200" + }, + { + "Close": "138.460007", + "Date": "2015/11/27", + "High": "138.809998", + "Low": "137.210007", + "Open": "138", + "Volume": "1415800" + }, + { + "Close": "139.419998", + "Date": "2015/11/30", + "High": "139.899994", + "Low": "138.520004", + "Open": "138.610001", + "Volume": "4545600" + }, + { + "Close": "141.279999", + "Date": "2015/12/1", + "High": "141.399994", + "Low": "139.580002", + "Open": "139.580002", + "Volume": "4195100" + }, + { + "Close": "139.699997", + "Date": "2015/12/2", + "High": "141.210007", + "Low": "139.5", + "Open": "140.929993", + "Volume": "3725400" + }, + { + "Close": "138.919998", + "Date": "2015/12/3", + "High": "140.729996", + "Low": "138.190002", + "Open": "140.100006", + "Volume": "5909600" + }, + { + "Close": "140.429993", + "Date": "2015/12/4", + "High": "141.020004", + "Low": "137.990005", + "Open": "138.089996", + "Volume": "4571600" + }, + { + "Close": "139.550003", + "Date": "2015/12/7", + "High": "140.410004", + "Low": "138.809998", + "Open": "140.160004", + "Volume": "3279400" + }, + { + "Close": "138.050003", + "Date": "2015/12/8", + "High": "139.059998", + "Low": "137.529999", + "Open": "138.279999", + "Volume": "3905200" + }, + { + "Close": "136.610001", + "Date": "2015/12/9", + "High": "139.839996", + "Low": "136.229996", + "Open": "137.380005", + "Volume": "4615000" + }, + { + "Close": "136.779999", + "Date": "2015/12/10", + "High": "137.850006", + "Low": "135.720001", + "Open": "137.029999", + "Volume": "4754800" + }, + { + "Close": "134.570007", + "Date": "2015/12/11", + "High": "135.440002", + "Low": "133.910004", + "Open": "135.229996", + "Volume": "5333800" + }, + { + "Close": "135.929993", + "Date": "2015/12/14", + "High": "136.139999", + "Low": "134.020004", + "Open": "135.309998", + "Volume": "5143800" + }, + { + "Close": "137.789993", + "Date": "2015/12/15", + "High": "138.970001", + "Low": "137.279999", + "Open": "137.399994", + "Volume": "4238500" + }, + { + "Close": "139.289993", + "Date": "2015/12/16", + "High": "139.649994", + "Low": "137.789993", + "Open": "139.119995", + "Volume": "4345500" + }, + { + "Close": "136.75", + "Date": "2015/12/17", + "High": "139.5", + "Low": "136.309998", + "Open": "139.350006", + "Volume": "4089500" + }, + { + "Close": "134.899994", + "Date": "2015/12/18", + "High": "136.960007", + "Low": "134.270004", + "Open": "136.410004", + "Volume": "10026100" + }, + { + "Close": "135.5", + "Date": "2015/12/21", + "High": "135.830002", + "Low": "134.020004", + "Open": "135.830002", + "Volume": "5617500" + }, + { + "Close": "137.929993", + "Date": "2015/12/22", + "High": "138.190002", + "Low": "135.649994", + "Open": "135.880005", + "Volume": "4263800" + }, + { + "Close": "138.539993", + "Date": "2015/12/23", + "High": "139.309998", + "Low": "138.110001", + "Open": "138.300003", + "Volume": "5164900" + }, + { + "Close": "138.25", + "Date": "2015/12/24", + "High": "138.880005", + "Low": "138.110001", + "Open": "138.429993", + "Volume": "1495200" + }, + { + "Close": "137.610001", + "Date": "2015/12/28", + "High": "138.039993", + "Low": "136.539993", + "Open": "137.740005", + "Volume": "3143400" + }, + { + "Close": "139.779999", + "Date": "2015/12/29", + "High": "140.059998", + "Low": "138.199997", + "Open": "138.25", + "Volume": "3943700" + }, + { + "Close": "139.339996", + "Date": "2015/12/30", + "High": "140.440002", + "Low": "139.220001", + "Open": "139.580002", + "Volume": "2989400" + }, + { + "Close": "137.619995", + "Date": "2015/12/31", + "High": "139.100006", + "Low": "137.570007", + "Open": "139.070007", + "Volume": "3443300" + }, + { + "Close": "135.949997", + "Date": "2016/1/4", + "High": "135.970001", + "Low": "134.240005", + "Open": "135.600006", + "Volume": "5229400" + }, + { + "Close": "135.850006", + "Date": "2016/1/5", + "High": "136.889999", + "Low": "134.850006", + "Open": "136.759995", + "Volume": "3924800" + }, + { + "Close": "135.169998", + "Date": "2016/1/6", + "High": "135.580002", + "Low": "133.619995", + "Open": "134.380005", + "Volume": "4310900" + }, + { + "Close": "132.860001", + "Date": "2016/1/7", + "High": "135.020004", + "Low": "132.429993", + "Open": "133.699997", + "Volume": "7025800" + }, + { + "Close": "131.630005", + "Date": "2016/1/8", + "High": "133.820007", + "Low": "131.320007", + "Open": "133.179993", + "Volume": "4762700" + }, + { + "Close": "133.229996", + "Date": "2016/1/11", + "High": "133.820007", + "Low": "131.759995", + "Open": "131.809998", + "Volume": "4974400" + }, + { + "Close": "132.899994", + "Date": "2016/1/12", + "High": "133.779999", + "Low": "131.130005", + "Open": "133.649994", + "Volume": "5078700" + }, + { + "Close": "131.169998", + "Date": "2016/1/13", + "High": "134.279999", + "Low": "131.100006", + "Open": "133.5", + "Volume": "4700100" + }, + { + "Close": "132.910004", + "Date": "2016/1/14", + "High": "133.789993", + "Low": "131.220001", + "Open": "131.929993", + "Volume": "5709600" + }, + { + "Close": "130.029999", + "Date": "2016/1/15", + "High": "130.880005", + "Low": "128.869995", + "Open": "130.009995", + "Volume": "8895400" + }, + { + "Close": "128.110001", + "Date": "2016/1/19", + "High": "132.100006", + "Low": "128.059998", + "Open": "130.110001", + "Volume": "9979600" + }, + { + "Close": "121.860001", + "Date": "2016/1/20", + "High": "123.989998", + "Low": "118", + "Open": "118.459999", + "Volume": "16157800" + }, + { + "Close": "122.910004", + "Date": "2016/1/21", + "High": "125.099998", + "Low": "120.580002", + "Open": "121.300003", + "Volume": "8851600" + }, + { + "Close": "122.5", + "Date": "2016/1/22", + "High": "124.739998", + "Low": "121.769997", + "Open": "124.669998", + "Volume": "9238400" + }, + { + "Close": "122.080002", + "Date": "2016/1/25", + "High": "124.230003", + "Low": "121.639999", + "Open": "122.099998", + "Volume": "5446000" + }, + { + "Close": "122.589996", + "Date": "2016/1/26", + "High": "123.610001", + "Low": "122.239998", + "Open": "122.25", + "Volume": "4617800" + }, + { + "Close": "120.959999", + "Date": "2016/1/27", + "High": "123.370003", + "Low": "120.650002", + "Open": "122.730003", + "Volume": "5026400" + }, + { + "Close": "122.220001", + "Date": "2016/1/28", + "High": "122.830002", + "Low": "121.010002", + "Open": "121.260002", + "Volume": "3942500" + }, + { + "Close": "124.790001", + "Date": "2016/1/29", + "High": "124.790001", + "Low": "122.959999", + "Open": "123.279999", + "Volume": "8248100" + }, + { + "Close": "124.830002", + "Date": "2016/2/1", + "High": "125.290001", + "Low": "123.709999", + "Open": "124.400002", + "Volume": "3574900" + }, + { + "Close": "122.940002", + "Date": "2016/2/2", + "High": "124.139999", + "Low": "122.639999", + "Open": "123.669998", + "Volume": "3287300" + }, + { + "Close": "124.720001", + "Date": "2016/2/3", + "High": "125.449997", + "Low": "122.290001", + "Open": "123.989998", + "Volume": "6223500" + }, + { + "Close": "127.650002", + "Date": "2016/2/4", + "High": "128.5", + "Low": "125", + "Open": "125.080002", + "Volume": "5266500" + }, + { + "Close": "128.570007", + "Date": "2016/2/5", + "High": "128.639999", + "Low": "125.849998", + "Open": "127.220001", + "Volume": "7177700" + }, + { + "Close": "126.980003", + "Date": "2016/2/8", + "High": "127.510002", + "Low": "124.129997", + "Open": "126", + "Volume": "7364000" + }, + { + "Close": "124.07", + "Date": "2016/2/9", + "High": "126.93", + "Low": "123.769997", + "Open": "126.120003", + "Volume": "5957200" + }, + { + "Close": "120.190002", + "Date": "2016/2/10", + "High": "125.290001", + "Low": "119.839996", + "Open": "125", + "Volume": "6469100" + }, + { + "Close": "117.849998", + "Date": "2016/2/11", + "High": "119.660004", + "Low": "116.900002", + "Open": "118.779999", + "Volume": "7307600" + }, + { + "Close": "121.040001", + "Date": "2016/2/12", + "High": "121.050003", + "Low": "118.349998", + "Open": "119.260002", + "Volume": "4936500" + }, + { + "Close": "122.739998", + "Date": "2016/2/16", + "High": "123.089996", + "Low": "121.339996", + "Open": "121.830002", + "Volume": "4061400" + }, + { + "Close": "126.099998", + "Date": "2016/2/17", + "High": "126.57", + "Low": "123.25", + "Open": "123.709999", + "Volume": "4821000" + }, + { + "Close": "132.449997", + "Date": "2016/2/18", + "High": "134", + "Low": "129.75", + "Open": "130", + "Volume": "9951600" + }, + { + "Close": "133.080002", + "Date": "2016/2/19", + "High": "133.649994", + "Low": "130.839996", + "Open": "132.360001", + "Volume": "5125300" + }, + { + "Close": "133.770004", + "Date": "2016/2/22", + "High": "134.309998", + "Low": "132.410004", + "Open": "133.080002", + "Volume": "4457400" + }, + { + "Close": "132.399994", + "Date": "2016/2/23", + "High": "133.410004", + "Low": "132.009995", + "Open": "133.139999", + "Volume": "3439700" + }, + { + "Close": "132.800003", + "Date": "2016/2/24", + "High": "133.490005", + "Low": "129.679993", + "Open": "131.550003", + "Volume": "4122600" + }, + { + "Close": "134.5", + "Date": "2016/2/25", + "High": "134.509995", + "Low": "130.880005", + "Open": "133.289993", + "Volume": "4358300" + }, + { + "Close": "132.029999", + "Date": "2016/2/26", + "High": "134.919998", + "Low": "131.949997", + "Open": "134.509995", + "Volume": "4386200" + }, + { + "Close": "131.029999", + "Date": "2016/2/29", + "High": "133.360001", + "Low": "130.899994", + "Open": "132", + "Volume": "4428000" + }, + { + "Close": "134.369995", + "Date": "2016/3/1", + "High": "134.639999", + "Low": "132.029999", + "Open": "132.240005", + "Volume": "3788500" + }, + { + "Close": "136.300003", + "Date": "2016/3/2", + "High": "137.440002", + "Low": "133.220001", + "Open": "133.699997", + "Volume": "5217200" + }, + { + "Close": "137.800003", + "Date": "2016/3/3", + "High": "137.960007", + "Low": "136.070007", + "Open": "137.220001", + "Volume": "5156400" + }, + { + "Close": "137.800003", + "Date": "2016/3/4", + "High": "139.419998", + "Low": "137.020004", + "Open": "137.539993", + "Volume": "3968400" + }, + { + "Close": "140.149994", + "Date": "2016/3/7", + "High": "140.509995", + "Low": "136.869995", + "Open": "137.279999", + "Volume": "5171000" + }, + { + "Close": "139.070007", + "Date": "2016/3/8", + "High": "140.350006", + "Low": "137.419998", + "Open": "139.710007", + "Volume": "5579100" + }, + { + "Close": "140.410004", + "Date": "2016/3/9", + "High": "142.169998", + "Low": "139.229996", + "Open": "139.309998", + "Volume": "4406500" + }, + { + "Close": "140.190002", + "Date": "2016/3/10", + "High": "141.470001", + "Low": "138.089996", + "Open": "141.240005", + "Volume": "4020600" + }, + { + "Close": "142.360001", + "Date": "2016/3/11", + "High": "142.919998", + "Low": "140.509995", + "Open": "141.729996", + "Volume": "4421900" + }, + { + "Close": "142.779999", + "Date": "2016/3/14", + "High": "143.190002", + "Low": "141.039993", + "Open": "142.009995", + "Volume": "4048800" + }, + { + "Close": "142.960007", + "Date": "2016/3/15", + "High": "143.330002", + "Low": "141.539993", + "Open": "141.740005", + "Volume": "3707500" + }, + { + "Close": "144.789993", + "Date": "2016/3/16", + "High": "144.880005", + "Low": "142.110001", + "Open": "142.619995", + "Volume": "4221900" + }, + { + "Close": "147.039993", + "Date": "2016/3/17", + "High": "147.320007", + "Low": "144.449997", + "Open": "144.779999", + "Volume": "5821600" + }, + { + "Close": "147.089996", + "Date": "2016/3/18", + "High": "147.509995", + "Low": "145.509995", + "Open": "147.399994", + "Volume": "12089700" + }, + { + "Close": "148.630005", + "Date": "2016/3/21", + "High": "148.710007", + "Low": "146.720001", + "Open": "147.300003", + "Volume": "3721600" + }, + { + "Close": "148.100006", + "Date": "2016/3/22", + "High": "149.279999", + "Low": "147.839996", + "Open": "148.059998", + "Volume": "4081900" + }, + { + "Close": "145.399994", + "Date": "2016/3/23", + "High": "148.029999", + "Low": "145.130005", + "Open": "148", + "Volume": "4764200" + }, + { + "Close": "147.949997", + "Date": "2016/3/24", + "High": "148.220001", + "Low": "144.490005", + "Open": "144.979996", + "Volume": "5044500" + }, + { + "Close": "148.399994", + "Date": "2016/3/28", + "High": "148.649994", + "Low": "147.229996", + "Open": "147.75", + "Volume": "3265100" + }, + { + "Close": "149.330002", + "Date": "2016/3/29", + "High": "149.759995", + "Low": "147.5", + "Open": "147.589996", + "Volume": "3138500" + }, + { + "Close": "148.410004", + "Date": "2016/3/30", + "High": "150.410004", + "Low": "148.320007", + "Open": "149.949997", + "Volume": "3331200" + }, + { + "Close": "151.449997", + "Date": "2016/3/31", + "High": "153.100006", + "Low": "149.360001", + "Open": "149.789993", + "Volume": "6780600" + }, + { + "Close": "152.520004", + "Date": "2016/4/1", + "High": "152.960007", + "Low": "150.25", + "Open": "150.509995", + "Volume": "3925500" + }, + { + "Close": "152.070007", + "Date": "2016/4/4", + "High": "153.520004", + "Low": "151.910004", + "Open": "152.339996", + "Volume": "3931200" + }, + { + "Close": "150", + "Date": "2016/4/5", + "High": "151.600006", + "Low": "149.649994", + "Open": "151.429993", + "Volume": "3337000" + }, + { + "Close": "150.020004", + "Date": "2016/4/6", + "High": "150.149994", + "Low": "147.809998", + "Open": "149.899994", + "Volume": "4194600" + }, + { + "Close": "148.25", + "Date": "2016/4/7", + "High": "149.600006", + "Low": "148", + "Open": "149.070007", + "Volume": "3663000" + }, + { + "Close": "149.350006", + "Date": "2016/4/8", + "High": "149.990005", + "Low": "148.119995", + "Open": "149.059998", + "Volume": "3293800" + }, + { + "Close": "149.25", + "Date": "2016/4/11", + "High": "151.949997", + "Low": "149.220001", + "Open": "150.259995", + "Volume": "3846100" + }, + { + "Close": "149.630005", + "Date": "2016/4/12", + "High": "150.110001", + "Low": "148.580002", + "Open": "149.610001", + "Volume": "3595800" + }, + { + "Close": "151.229996", + "Date": "2016/4/13", + "High": "151.229996", + "Low": "149.630005", + "Open": "150.75", + "Volume": "3168400" + }, + { + "Close": "151.160004", + "Date": "2016/4/14", + "High": "152.759995", + "Low": "150.380005", + "Open": "151.5", + "Volume": "3176500" + }, + { + "Close": "151.720001", + "Date": "2016/4/15", + "High": "152.100006", + "Low": "150.960007", + "Open": "151.039993", + "Volume": "3657600" + }, + { + "Close": "152.529999", + "Date": "2016/4/18", + "High": "153.139999", + "Low": "151.490005", + "Open": "151.720001", + "Volume": "5737700" + }, + { + "Close": "144", + "Date": "2016/4/19", + "High": "146.949997", + "Low": "142.610001", + "Open": "146.470001", + "Volume": "13190200" + }, + { + "Close": "146.110001", + "Date": "2016/4/20", + "High": "147.199997", + "Low": "144", + "Open": "144.240005", + "Volume": "6754300" + }, + { + "Close": "149.300003", + "Date": "2016/4/21", + "High": "150.119995", + "Low": "146.460007", + "Open": "146.580002", + "Volume": "6017700" + }, + { + "Close": "148.5", + "Date": "2016/4/22", + "High": "151", + "Low": "147.5", + "Open": "149.440002", + "Volume": "5191900" + }, + { + "Close": "148.809998", + "Date": "2016/4/25", + "High": "148.899994", + "Low": "147.110001", + "Open": "148.160004", + "Volume": "2848900" + }, + { + "Close": "149.080002", + "Date": "2016/4/26", + "High": "149.789993", + "Low": "147.899994", + "Open": "148.649994", + "Volume": "2979800" + }, + { + "Close": "150.470001", + "Date": "2016/4/27", + "High": "150.779999", + "Low": "148.970001", + "Open": "149.350006", + "Volume": "3111200" + }, + { + "Close": "147.070007", + "Date": "2016/4/28", + "High": "150.179993", + "Low": "146.729996", + "Open": "149.75", + "Volume": "3791500" + }, + { + "Close": "145.940002", + "Date": "2016/4/29", + "High": "147.339996", + "Low": "144.190002", + "Open": "146.490005", + "Volume": "4225800" + }, + { + "Close": "145.270004", + "Date": "2016/5/2", + "High": "147", + "Low": "144.429993", + "Open": "146.559998", + "Volume": "3502400" + }, + { + "Close": "144.130005", + "Date": "2016/5/3", + "High": "144.899994", + "Low": "142.899994", + "Open": "144.649994", + "Volume": "3553500" + }, + { + "Close": "144.25", + "Date": "2016/5/4", + "High": "145", + "Low": "143.309998", + "Open": "143.360001", + "Volume": "2577100" + }, + { + "Close": "146.470001", + "Date": "2016/5/5", + "High": "147.300003", + "Low": "145.449997", + "Open": "145.949997", + "Volume": "6501200" + }, + { + "Close": "147.289993", + "Date": "2016/5/6", + "High": "147.970001", + "Low": "144.470001", + "Open": "144.860001", + "Volume": "4880300" + }, + { + "Close": "147.339996", + "Date": "2016/5/9", + "High": "148.199997", + "Low": "147.009995", + "Open": "147.699997", + "Volume": "4302400" + }, + { + "Close": "149.970001", + "Date": "2016/5/10", + "High": "150.039993", + "Low": "147.740005", + "Open": "148.240005", + "Volume": "3992700" + }, + { + "Close": "148.949997", + "Date": "2016/5/11", + "High": "151.089996", + "Low": "148.740005", + "Open": "149.710007", + "Volume": "3093000" + }, + { + "Close": "148.839996", + "Date": "2016/5/12", + "High": "149.389999", + "Low": "147.110001", + "Open": "149.210007", + "Volume": "3249200" + }, + { + "Close": "147.720001", + "Date": "2016/5/13", + "High": "149.860001", + "Low": "147.419998", + "Open": "148.789993", + "Volume": "2398000" + }, + { + "Close": "149.460007", + "Date": "2016/5/16", + "High": "149.990005", + "Low": "147.440002", + "Open": "147.649994", + "Volume": "3069100" + }, + { + "Close": "148", + "Date": "2016/5/17", + "High": "149.5", + "Low": "147.289993", + "Open": "149.210007", + "Volume": "3490600" + }, + { + "Close": "147.339996", + "Date": "2016/5/18", + "High": "148.520004", + "Low": "146.360001", + "Open": "147.990005", + "Volume": "2491100" + }, + { + "Close": "144.929993", + "Date": "2016/5/19", + "High": "146.929993", + "Low": "143.960007", + "Open": "146.479996", + "Volume": "3685600" + }, + { + "Close": "147.25", + "Date": "2016/5/20", + "High": "147.509995", + "Low": "145.550003", + "Open": "145.710007", + "Volume": "3671500" + }, + { + "Close": "146.770004", + "Date": "2016/5/23", + "High": "147.949997", + "Low": "146.660004", + "Open": "147.610001", + "Volume": "2103800" + }, + { + "Close": "148.309998", + "Date": "2016/5/24", + "High": "148.75", + "Low": "146.880005", + "Open": "146.880005", + "Volume": "2929300" + }, + { + "Close": "151.690002", + "Date": "2016/5/25", + "High": "152.089996", + "Low": "148.5", + "Open": "148.929993", + "Volume": "4355300" + }, + { + "Close": "152.440002", + "Date": "2016/5/26", + "High": "152.509995", + "Low": "151.050003", + "Open": "151.550003", + "Volume": "3062900" + }, + { + "Close": "152.839996", + "Date": "2016/5/27", + "High": "152.929993", + "Low": "152.149994", + "Open": "152.350006", + "Volume": "2422100" + }, + { + "Close": "153.740005", + "Date": "2016/5/31", + "High": "153.809998", + "Low": "152.270004", + "Open": "152.559998", + "Volume": "5836600" + }, + { + "Close": "152.509995", + "Date": "2016/6/1", + "High": "153.270004", + "Low": "151.539993", + "Open": "153", + "Volume": "2663400" + }, + { + "Close": "153.5", + "Date": "2016/6/2", + "High": "153.5", + "Low": "152.119995", + "Open": "152.589996", + "Volume": "2642600" + }, + { + "Close": "152.889999", + "Date": "2016/6/3", + "High": "153.039993", + "Low": "151.699997", + "Open": "152.399994", + "Volume": "2314800" + }, + { + "Close": "152.729996", + "Date": "2016/6/6", + "High": "153.949997", + "Low": "152.339996", + "Open": "153.089996", + "Volume": "2378700" + }, + { + "Close": "153.330002", + "Date": "2016/6/7", + "High": "153.929993", + "Low": "152.660004", + "Open": "153.309998", + "Volume": "4465000" + }, + { + "Close": "154", + "Date": "2016/6/8", + "High": "154.089996", + "Low": "153.039993", + "Open": "153.529999", + "Volume": "2935000" + }, + { + "Close": "153.419998", + "Date": "2016/6/9", + "High": "153.759995", + "Low": "152.729996", + "Open": "152.919998", + "Volume": "2021800" + }, + { + "Close": "152.369995", + "Date": "2016/6/10", + "High": "153.330002", + "Low": "151.860001", + "Open": "152.789993", + "Volume": "3120600" + }, + { + "Close": "151.279999", + "Date": "2016/6/13", + "High": "152.5", + "Low": "150.279999", + "Open": "151.630005", + "Volume": "3610400" + }, + { + "Close": "151.059998", + "Date": "2016/6/14", + "High": "151.789993", + "Low": "150.399994", + "Open": "151.279999", + "Volume": "2865800" + }, + { + "Close": "150.679993", + "Date": "2016/6/15", + "High": "151.789993", + "Low": "150.600006", + "Open": "151.460007", + "Volume": "2260400" + }, + { + "Close": "151.059998", + "Date": "2016/6/16", + "High": "151.289993", + "Low": "149", + "Open": "150.190002", + "Volume": "2449100" + }, + { + "Close": "151.990005", + "Date": "2016/6/17", + "High": "152.720001", + "Low": "150.600006", + "Open": "150.960007", + "Volume": "4663900" + }, + { + "Close": "153.610001", + "Date": "2016/6/20", + "High": "154.669998", + "Low": "152.520004", + "Open": "152.600006", + "Volume": "3572100" + }, + { + "Close": "154.050003", + "Date": "2016/6/21", + "High": "154.570007", + "Low": "153.690002", + "Open": "154.160004", + "Volume": "2760300" + }, + { + "Close": "152.919998", + "Date": "2016/6/22", + "High": "154.710007", + "Low": "152.270004", + "Open": "153.75", + "Volume": "2833700" + }, + { + "Close": "155.350006", + "Date": "2016/6/23", + "High": "155.479996", + "Low": "152.600006", + "Open": "153.449997", + "Volume": "3969400" + }, + { + "Close": "146.589996", + "Date": "2016/6/24", + "High": "150.610001", + "Low": "146.179993", + "Open": "149.970001", + "Volume": "9082800" + }, + { + "Close": "143.5", + "Date": "2016/6/27", + "High": "146.600006", + "Low": "142.5", + "Open": "146.179993", + "Volume": "5017900" + }, + { + "Close": "145.699997", + "Date": "2016/6/28", + "High": "145.729996", + "Low": "144.220001", + "Open": "144.779999", + "Volume": "3997700" + }, + { + "Close": "148.460007", + "Date": "2016/6/29", + "High": "148.479996", + "Low": "146.449997", + "Open": "146.5", + "Volume": "3367700" + }, + { + "Close": "151.779999", + "Date": "2016/6/30", + "High": "151.910004", + "Low": "148.669998", + "Open": "148.860001", + "Volume": "3967100" + }, + { + "Close": "152.350006", + "Date": "2016/7/1", + "High": "152.970001", + "Low": "151.399994", + "Open": "151.779999", + "Volume": "2658300" + }, + { + "Close": "151.679993", + "Date": "2016/7/5", + "High": "152", + "Low": "150.759995", + "Open": "151.190002", + "Volume": "2465200" + }, + { + "Close": "152.369995", + "Date": "2016/7/6", + "High": "152.410004", + "Low": "149.919998", + "Open": "151.850006", + "Volume": "2569400" + }, + { + "Close": "152.600006", + "Date": "2016/7/7", + "High": "153.690002", + "Low": "151.889999", + "Open": "152.75", + "Volume": "2138400" + }, + { + "Close": "154.460007", + "Date": "2016/7/8", + "High": "154.600006", + "Low": "153.080002", + "Open": "154", + "Volume": "3040600" + }, + { + "Close": "155.330002", + "Date": "2016/7/11", + "High": "156.039993", + "Low": "154.5", + "Open": "154.600006", + "Volume": "2833700" + }, + { + "Close": "157.039993", + "Date": "2016/7/12", + "High": "157.119995", + "Low": "155.520004", + "Open": "156", + "Volume": "3843800" + }, + { + "Close": "158.020004", + "Date": "2016/7/13", + "High": "158.339996", + "Low": "157.059998", + "Open": "157.75", + "Volume": "2746400" + }, + { + "Close": "160.279999", + "Date": "2016/7/14", + "High": "161.399994", + "Low": "158.580002", + "Open": "158.809998", + "Volume": "4637600" + }, + { + "Close": "159.779999", + "Date": "2016/7/15", + "High": "159.979996", + "Low": "158.5", + "Open": "159.899994", + "Volume": "4476800" + }, + { + "Close": "159.860001", + "Date": "2016/7/18", + "High": "160.75", + "Low": "158.729996", + "Open": "159.300003", + "Volume": "6729700" + }, + { + "Close": "159.580002", + "Date": "2016/7/19", + "High": "162.139999", + "Low": "157.889999", + "Open": "161.779999", + "Volume": "7120000" + }, + { + "Close": "161.360001", + "Date": "2016/7/20", + "High": "161.710007", + "Low": "159.600006", + "Open": "159.970001", + "Volume": "4376300" + }, + { + "Close": "160.449997", + "Date": "2016/7/21", + "High": "161.850006", + "Low": "159.889999", + "Open": "160.75", + "Volume": "3518900" + }, + { + "Close": "162.070007", + "Date": "2016/7/22", + "High": "162.169998", + "Low": "160.479996", + "Open": "160.779999", + "Volume": "2520100" + }, + { + "Close": "162.649994", + "Date": "2016/7/25", + "High": "162.880005", + "Low": "161.75", + "Open": "162", + "Volume": "2804600" + }, + { + "Close": "162.119995", + "Date": "2016/7/26", + "High": "163.600006", + "Low": "161.369995", + "Open": "162.649994", + "Volume": "2894600" + }, + { + "Close": "161.830002", + "Date": "2016/7/27", + "High": "162.570007", + "Low": "161.179993", + "Open": "162.119995", + "Volume": "2162700" + }, + { + "Close": "161.369995", + "Date": "2016/7/28", + "High": "161.809998", + "Low": "160.710007", + "Open": "161.380005", + "Volume": "2340400" + }, + { + "Close": "160.619995", + "Date": "2016/7/29", + "High": "161.669998", + "Low": "160.029999", + "Open": "161.360001", + "Volume": "3547500" + }, + { + "Close": "161.449997", + "Date": "2016/8/1", + "High": "161.649994", + "Low": "159.839996", + "Open": "160.649994", + "Volume": "2823600" + }, + { + "Close": "160.580002", + "Date": "2016/8/2", + "High": "161.449997", + "Low": "160.360001", + "Open": "161.270004", + "Volume": "3080900" + }, + { + "Close": "160.669998", + "Date": "2016/8/3", + "High": "160.860001", + "Low": "159.800003", + "Open": "160.130005", + "Volume": "2861700" + }, + { + "Close": "161.550003", + "Date": "2016/8/4", + "High": "161.699997", + "Low": "160.119995", + "Open": "160.860001", + "Volume": "2489100" + }, + { + "Close": "163.5", + "Date": "2016/8/5", + "High": "163.509995", + "Low": "161.570007", + "Open": "162", + "Volume": "3812400" + }, + { + "Close": "162.039993", + "Date": "2016/8/8", + "High": "163.270004", + "Low": "161.580002", + "Open": "162.729996", + "Volume": "3039300" + }, + { + "Close": "161.770004", + "Date": "2016/8/9", + "High": "162.770004", + "Low": "161.649994", + "Open": "162.220001", + "Volume": "2737500" + }, + { + "Close": "162.080002", + "Date": "2016/8/10", + "High": "162.660004", + "Low": "161.960007", + "Open": "162.190002", + "Volume": "2466700" + }, + { + "Close": "163.529999", + "Date": "2016/8/11", + "High": "164.949997", + "Low": "162.179993", + "Open": "162.25", + "Volume": "8768600" + }, + { + "Close": "161.949997", + "Date": "2016/8/12", + "High": "163.460007", + "Low": "161.520004", + "Open": "163.190002", + "Volume": "2543100" + }, + { + "Close": "161.880005", + "Date": "2016/8/15", + "High": "162.970001", + "Low": "161.779999", + "Open": "162.399994", + "Volume": "2970400" + }, + { + "Close": "160.699997", + "Date": "2016/8/16", + "High": "161.929993", + "Low": "160.690002", + "Open": "161.110001", + "Volume": "2210200" + }, + { + "Close": "160.440002", + "Date": "2016/8/17", + "High": "161.160004", + "Low": "159.839996", + "Open": "160.970001", + "Volume": "3225900" + }, + { + "Close": "161.360001", + "Date": "2016/8/18", + "High": "162", + "Low": "160.440002", + "Open": "160.889999", + "Volume": "3652000" + }, + { + "Close": "160.039993", + "Date": "2016/8/19", + "High": "160.910004", + "Low": "159.520004", + "Open": "160.839996", + "Volume": "2815200" + }, + { + "Close": "160", + "Date": "2016/8/22", + "High": "160.570007", + "Low": "159.130005", + "Open": "160", + "Volume": "2039300" + }, + { + "Close": "160.259995", + "Date": "2016/8/23", + "High": "161.339996", + "Low": "160.229996", + "Open": "160.330002", + "Volume": "2838100" + }, + { + "Close": "159.050003", + "Date": "2016/8/24", + "High": "160.179993", + "Low": "158.320007", + "Open": "159.889999", + "Volume": "3645800" + }, + { + "Close": "158.630005", + "Date": "2016/8/25", + "High": "159.539993", + "Low": "158.419998", + "Open": "159", + "Volume": "2575000" + }, + { + "Close": "158.320007", + "Date": "2016/8/26", + "High": "160.440002", + "Low": "157.850006", + "Open": "158.880005", + "Volume": "2498900" + }, + { + "Close": "159.720001", + "Date": "2016/8/29", + "High": "160.210007", + "Low": "158.5", + "Open": "158.830002", + "Volume": "2475900" + }, + { + "Close": "159.399994", + "Date": "2016/8/30", + "High": "160.149994", + "Low": "158.809998", + "Open": "159.759995", + "Volume": "1813300" + }, + { + "Close": "158.880005", + "Date": "2016/8/31", + "High": "159.660004", + "Low": "158.259995", + "Open": "159.660004", + "Volume": "2323600" + }, + { + "Close": "159.539993", + "Date": "2016/9/1", + "High": "159.619995", + "Low": "158.100006", + "Open": "158.320007", + "Volume": "2358400" + }, + { + "Close": "159.550003", + "Date": "2016/9/2", + "High": "160.570007", + "Low": "159.149994", + "Open": "159.880005", + "Volume": "2315400" + }, + { + "Close": "160.350006", + "Date": "2016/9/6", + "High": "160.860001", + "Low": "159.110001", + "Open": "159.880005", + "Volume": "2994100" + }, + { + "Close": "161.639999", + "Date": "2016/9/7", + "High": "161.759995", + "Low": "160", + "Open": "160.190002", + "Volume": "2867300" + }, + { + "Close": "159", + "Date": "2016/9/8", + "High": "161.210007", + "Low": "158.759995", + "Open": "160.550003", + "Volume": "3963200" + }, + { + "Close": "155.690002", + "Date": "2016/9/9", + "High": "158.399994", + "Low": "155.649994", + "Open": "158.029999", + "Volume": "5186000" + }, + { + "Close": "158.289993", + "Date": "2016/9/12", + "High": "158.529999", + "Low": "154.839996", + "Open": "155.259995", + "Volume": "4367500" + }, + { + "Close": "155.809998", + "Date": "2016/9/13", + "High": "157.929993", + "Low": "155.5", + "Open": "157.630005", + "Volume": "3636700" + }, + { + "Close": "154.050003", + "Date": "2016/9/14", + "High": "155.869995", + "Low": "153.389999", + "Open": "155.699997", + "Volume": "3860600" + }, + { + "Close": "155.660004", + "Date": "2016/9/15", + "High": "156.330002", + "Low": "153.210007", + "Open": "154.300003", + "Volume": "3645600" + }, + { + "Close": "153.839996", + "Date": "2016/9/16", + "High": "155.399994", + "Low": "153.470001", + "Open": "155.039993", + "Volume": "6463600" + }, + { + "Close": "154.869995", + "Date": "2016/9/19", + "High": "156.190002", + "Low": "154.550003", + "Open": "154.869995", + "Volume": "2450100" + }, + { + "Close": "154.449997", + "Date": "2016/9/20", + "High": "156.570007", + "Low": "154.449997", + "Open": "155.869995", + "Volume": "2159100" + }, + { + "Close": "155.529999", + "Date": "2016/9/21", + "High": "155.679993", + "Low": "153.869995", + "Open": "154.910004", + "Volume": "2473900" + }, + { + "Close": "156.110001", + "Date": "2016/9/22", + "High": "157.220001", + "Low": "155.690002", + "Open": "156.149994", + "Volume": "2691100" + }, + { + "Close": "154.979996", + "Date": "2016/9/23", + "High": "156.039993", + "Low": "154.710007", + "Open": "155.619995", + "Volume": "2702200" + }, + { + "Close": "153.979996", + "Date": "2016/9/26", + "High": "154.460007", + "Low": "153.460007", + "Open": "154.460007", + "Volume": "2533300" + }, + { + "Close": "156.770004", + "Date": "2016/9/27", + "High": "156.770004", + "Low": "153.809998", + "Open": "154.320007", + "Volume": "2987200" + }, + { + "Close": "158.289993", + "Date": "2016/9/28", + "High": "158.630005", + "Low": "156.229996", + "Open": "156.990005", + "Volume": "3310000" + }, + { + "Close": "158.110001", + "Date": "2016/9/29", + "High": "165", + "Low": "157.460007", + "Open": "158.630005", + "Volume": "3374800" + }, + { + "Close": "158.850006", + "Date": "2016/9/30", + "High": "159.839996", + "Low": "158.059998", + "Open": "158.899994", + "Volume": "3596900" + }, + { + "Close": "157.610001", + "Date": "2016/10/3", + "High": "158.369995", + "Low": "157.020004", + "Open": "158.059998", + "Volume": "2227800" + }, + { + "Close": "156.460007", + "Date": "2016/10/4", + "High": "158.529999", + "Low": "155.820007", + "Open": "157.669998", + "Volume": "2884100" + }, + { + "Close": "157.080002", + "Date": "2016/10/5", + "High": "157.830002", + "Low": "156.720001", + "Open": "157.070007", + "Volume": "1684500" + }, + { + "Close": "156.880005", + "Date": "2016/10/6", + "High": "157.429993", + "Low": "155.889999", + "Open": "156.839996", + "Volume": "1950100" + }, + { + "Close": "155.669998", + "Date": "2016/10/7", + "High": "157.699997", + "Low": "154.860001", + "Open": "157.139999", + "Volume": "2671900" + }, + { + "Close": "157.020004", + "Date": "2016/10/10", + "High": "158.490005", + "Low": "156.660004", + "Open": "156.710007", + "Volume": "2481300" + }, + { + "Close": "154.789993", + "Date": "2016/10/11", + "High": "156.949997", + "Low": "153.889999", + "Open": "156.729996", + "Volume": "2901300" + }, + { + "Close": "154.289993", + "Date": "2016/10/12", + "High": "154.970001", + "Low": "153.080002", + "Open": "154.970001", + "Volume": "2964000" + }, + { + "Close": "153.720001", + "Date": "2016/10/13", + "High": "154.220001", + "Low": "152.270004", + "Open": "153.699997", + "Volume": "2909900" + }, + { + "Close": "154.449997", + "Date": "2016/10/14", + "High": "155.529999", + "Low": "154.089996", + "Open": "154.470001", + "Volume": "4358200" + }, + { + "Close": "154.770004", + "Date": "2016/10/17", + "High": "155.889999", + "Low": "154.339996", + "Open": "154.449997", + "Volume": "5890400" + }, + { + "Close": "150.720001", + "Date": "2016/10/18", + "High": "151", + "Low": "147.789993", + "Open": "150.020004", + "Volume": "12770600" + }, + { + "Close": "151.259995", + "Date": "2016/10/19", + "High": "152.449997", + "Low": "150.830002", + "Open": "151.270004", + "Volume": "4632900" + }, + { + "Close": "151.520004", + "Date": "2016/10/20", + "High": "152.899994", + "Low": "151.020004", + "Open": "151.279999", + "Volume": "4023100" + }, + { + "Close": "149.630005", + "Date": "2016/10/21", + "High": "151.149994", + "Low": "149.559998", + "Open": "150.580002", + "Volume": "4414200" + }, + { + "Close": "150.570007", + "Date": "2016/10/24", + "High": "151.520004", + "Low": "150.399994", + "Open": "150.399994", + "Volume": "2666700" + }, + { + "Close": "150.880005", + "Date": "2016/10/25", + "High": "151.160004", + "Low": "149.830002", + "Open": "150.570007", + "Volume": "2647500" + }, + { + "Close": "151.809998", + "Date": "2016/10/26", + "High": "152.940002", + "Low": "150.259995", + "Open": "150.710007", + "Volume": "2771700" + }, + { + "Close": "153.350006", + "Date": "2016/10/27", + "High": "154.059998", + "Low": "152.020004", + "Open": "152.820007", + "Volume": "4126800" + } +] \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/App.kt b/simple/src/main/java/pro/udax/app/App.kt new file mode 100644 index 0000000..cb328e7 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/App.kt @@ -0,0 +1,30 @@ +package pro.udax.app + +import android.app.Application +import android.content.Context +import androidx.multidex.MultiDex +import xyz.a1api.tools.LStorage + +/** + * Created by Cat-x on 2018/8/8. + * For KChart + * Cat-x All Rights Reserved + */ +class App : Application() { + + override fun attachBaseContext(base: Context?) { + super.attachBaseContext(base) + MultiDex.install(this) + } + + override fun onCreate() { + super.onCreate() + app = this + LStorage.init(this) + } + + companion object { + lateinit var app: App + private set + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/EasyFormatter.kt b/simple/src/main/java/pro/udax/app/EasyFormatter.kt new file mode 100644 index 0000000..196c995 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/EasyFormatter.kt @@ -0,0 +1,14 @@ +package pro.udax.app + +import xyz.a1api.kchart.base.IDateTimeFormatter + +/** + * Created by Cat-x on 2018/11/30. + * For KChart + * Cat-x All Rights Reserved + */ +class EasyFormatter : IDateTimeFormatter { + override fun format(date: String?): String { + return date ?: "" + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/SimpleKChartView.kt b/simple/src/main/java/pro/udax/app/SimpleKChartView.kt new file mode 100644 index 0000000..a70ad38 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/SimpleKChartView.kt @@ -0,0 +1,67 @@ +package pro.udax.app.activity + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import androidx.annotation.RequiresApi +import pro.udax.app.EasyFormatter +import pro.udax.app.network.RetrofitTools +import pro.udax.app.network.done +import xyz.a1api.kchart.customize.BaseKLineEntity +import xyz.a1api.kchart.simple.TimeResolution +import xyz.a1api.kchart.widget.ConfigKChartView + +/** + * Created by Cat-x on 2019/10/31. + * For KChart + * Cat-x All Rights Reserved + */ +class SimpleKChartView : ConfigKChartView { + + lateinit var mTimeResolution: TimeResolution + + constructor(context: Context?) : super(context) + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) + + @RequiresApi(Build.VERSION_CODES.LOLLIPOP) + constructor( + context: Context?, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) + + init { + setDateTimeFormatter(EasyFormatter()) + } + + override fun onRefreshData( + onLoadSuccess: (data: List, isHasNext: Boolean) -> Unit, + onLoadFail: (tip: () -> Unit) -> Unit + ) { + RetrofitTools.apiService.hisQuotation(mTimeResolution.getQuotationQuery()) + .done({ data, body -> + if (data?.code == 200) { + onLoadSuccess(data.data!!.kLineData.kLineList, data.data.kLineData.hasNext) + } + }, { + onLoadFail { + if (it.message == "response.body() is null") { +// context.toast("网络开小差啦,请重试. 错误码:" + it.cause) + } else { +// context.toast("网络开小差啦,请重试") + } + } + }, 2) + } + + + override fun onSwitchTime(oldTime: Long, newTime: Long) { + mTimeResolution = TimeResolution(mTimeResolution.symbol, newTime) + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/TimeResolution.kt b/simple/src/main/java/pro/udax/app/TimeResolution.kt new file mode 100644 index 0000000..87ca6d3 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/TimeResolution.kt @@ -0,0 +1,51 @@ +package xyz.a1api.kchart.simple + +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize +import pro.udax.app.network.entry.request.QuotationQueryReq +import java.lang.Long.parseLong +import java.util.* + +/** + * Created by Cat-x on 2018/11/29. + * For KChart + * Cat-x All Rights Reserved + */ + +@Parcelize +class TimeResolution( + val symbol: String, + val period: Long, + var endTime: Long = Date().time / 1000, + var startTime: Long = endTime +) : Parcelable { + + fun getQuotationQuery(isNext: Boolean = true): QuotationQueryReq { + if (isNext) { + if (endTime != startTime) { + endTime = startTime + } + startTime = endTime - periodLengthSeconds(period.toString()) + } + return QuotationQueryReq(symbol, period, startTime, endTime) + } + + + companion object { + fun periodLengthSeconds(resolution: String, requiredPeriodsCount: Float = 200f): Long { + var daysCount = 0f; + if (resolution == "D" || resolution == "1D") { + daysCount = requiredPeriodsCount; + } else if (resolution == "M" || resolution == "1M") { + daysCount = 31 * requiredPeriodsCount; + } else if (resolution == "W" || resolution == "1W") { + daysCount = 7 * requiredPeriodsCount; + } else { + daysCount = requiredPeriodsCount * parseLong(resolution) / (24 * 60); + } + return (daysCount * 24 * 60 * 60).toLong(); + } + + val Invalid = TimeResolution("", 0, 0, 0) + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/activity/SimpleLandscapeKChartActivity.kt b/simple/src/main/java/pro/udax/app/activity/SimpleLandscapeKChartActivity.kt new file mode 100644 index 0000000..6ca0bce --- /dev/null +++ b/simple/src/main/java/pro/udax/app/activity/SimpleLandscapeKChartActivity.kt @@ -0,0 +1,91 @@ +package pro.udax.app.activity + +import android.os.Bundle +import android.util.Log +import androidx.appcompat.app.AppCompatActivity +import com.google.gson.Gson +import com.stomped.stomped.client.StompedClient +import com.stomped.stomped.component.StompedFrame +import com.stomped.stomped.listener.StompedListener +import kotlinx.android.synthetic.main.activity_simple_kchart_landscape.* +import pro.udax.app.R +import pro.udax.app.network.entry.request.QuotationData +import xyz.a1api.kchart.simple.TimeResolution +import xyz.a1api.kchart.utils.setFullScreen + + +/** + * Created by Cat-x on 2019/10/31. + * For KChart + * Cat-x All Rights Reserved + */ +class SimpleLandscapeKChartActivity : AppCompatActivity() { + + lateinit var mStompedClient: StompedClient + + var kChartView: SimpleKChartView? = null + + var mTimeResolution: TimeResolution + get() { + return kChartView?.mTimeResolution ?: TimeResolution.Invalid + } + set(value) { + kChartView?.mTimeResolution = value + } + +// val mAdapter: KChartAdapter +// get() { +// return kChartView?.mAdapter ?: KChartAdapter() +// } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setFullScreen(true) + setContentView(R.layout.activity_simple_kchart_landscape) + exitMarketView.setOnClickListener { onBackPressed() } + kChartView = findViewById(R.id.simpleKChartView) + mTimeResolution = TimeResolution("BTC/GOLDT", 15) + kChartView?.startLoad() + startWebSocket() + } + + + fun startWebSocket() { + mStompedClient = StompedClient.StompedClientBuilder().setHeartBeat(10000) + .build("服务器的WebSocketURL")//TODO + mStompedClient.subscribe("xxxxxx", object : StompedListener() { + + override fun onNotify(frame: StompedFrame) { + Log.i("onNotify", frame.stompedBody) + val string = frame.stompedBody + val data = + Gson().fromJson( + string, + QuotationData.KLineData.QuotaKlineBean::class.java + ) + if (data.symbol == mTimeResolution.symbol && data.period == mTimeResolution.period) { + if (kChartView!!.getOriginalData().isNotEmpty()) { + val lastData = kChartView!!.getOriginalData().last() + val timeArray1 = lastData.getDateTime().split(":") + var lastTime = timeArray1[0].toInt() * 60 + timeArray1[1].toInt() + + val timeArray2 = data.getDateTime().split(":") + var dataTime = timeArray2[0].toInt() * 60 + timeArray2[1].toInt() + runOnUiThread { + if (dataTime - lastTime > mTimeResolution.period) { + kChartView?.addRealTimeData(data, isNeedAddToData = true) + } else { + kChartView?.addRealTimeData(data) + } + } + } + } + } + }) + } + + override fun onDestroy() { + super.onDestroy() + mStompedClient.disconnect() + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/activity/SimplePortraitKChartActivity.kt b/simple/src/main/java/pro/udax/app/activity/SimplePortraitKChartActivity.kt new file mode 100644 index 0000000..4a6214a --- /dev/null +++ b/simple/src/main/java/pro/udax/app/activity/SimplePortraitKChartActivity.kt @@ -0,0 +1,102 @@ +package pro.udax.app.activity + +import android.graphics.Color +import android.os.Build +import android.os.Bundle +import android.util.Log +import android.view.WindowManager +import androidx.appcompat.app.AppCompatActivity +import com.google.gson.Gson +import com.stomped.stomped.client.StompedClient +import com.stomped.stomped.component.StompedFrame +import com.stomped.stomped.listener.StompedListener +import kotlinx.android.synthetic.main.activity_simple_kchart_portrait.* +import pro.udax.app.R +import pro.udax.app.network.entry.request.QuotationData +import xyz.a1api.kchart.simple.TimeResolution +import xyz.a1api.kchart.utils.startActivity + + +/** + * Created by Cat-x on 2019/10/31. + * For KChart + * Cat-x All Rights Reserved + */ +class SimplePortraitKChartActivity : AppCompatActivity() { + + lateinit var mStompedClient: StompedClient + + var kChartView: SimpleKChartView? = null + + var mTimeResolution: TimeResolution + get() { + return kChartView?.mTimeResolution ?: TimeResolution.Invalid + } + set(value) { + kChartView?.mTimeResolution = value + } + +// val mAdapter: KChartAdapter +// get() { +// return kChartView?.mAdapter ?: KChartAdapter() +// } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + val window = this.window + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS) + window.statusBarColor = Color.parseColor("#131F30") + } + setContentView(R.layout.activity_simple_kchart_portrait) + fullScreenView.setOnClickListener { startActivity() } + exitMarketView.setOnClickListener { onBackPressed() } + kChartView = findViewById(R.id.simpleKChartView) +// findViewById(R.id.kScrollView)?.scaleView = kChartView?.mKChartView + mTimeResolution = TimeResolution("BTC/GOLDT", 15) + kChartView?.startLoad() + startWebSocket() + } + + + fun startWebSocket() { + mStompedClient = StompedClient.StompedClientBuilder().setHeartBeat(10000) + .build("服务器的WebSocketURL") + + mStompedClient.subscribe("xxxx", object : StompedListener() { + + override fun onNotify(frame: StompedFrame) { + Log.i("onNotify", frame.stompedBody) + val string = frame.stompedBody + val data = + Gson().fromJson( + string, + QuotationData.KLineData.QuotaKlineBean::class.java + ) + if (data.symbol == mTimeResolution.symbol && data.period == mTimeResolution.period) { + if (kChartView!!.getOriginalData().isNotEmpty()) { + val lastData = kChartView!!.getOriginalData().last() + val timeArray1 = lastData.getDateTime().split(":") + var lastTime = timeArray1[0].toInt() * 60 + timeArray1[1].toInt() + + val timeArray2 = data.getDateTime().split(":") + var dataTime = timeArray2[0].toInt() * 60 + timeArray2[1].toInt() + runOnUiThread { + if (dataTime - lastTime > mTimeResolution.period) { + kChartView?.addRealTimeData(data, isNeedAddToData = true) + } else { + kChartView?.addRealTimeData(data) + } + } + } + } + } + }) + } + + override fun onDestroy() { + super.onDestroy() + mStompedClient.disconnect() + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/network/ApiService.kt b/simple/src/main/java/pro/udax/app/network/ApiService.kt new file mode 100644 index 0000000..2608a20 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/network/ApiService.kt @@ -0,0 +1,22 @@ +package pro.udax.app.network + + +import pro.udax.app.network.entry.request.QuotationData +import pro.udax.app.network.entry.request.QuotationQueryReq +import pro.udax.app.network.entry.response.Data +import retrofit2.Call +import retrofit2.http.Body +import retrofit2.http.POST + +/** + * Created by Cat-x on 2018/11/29. + * For KChart + * Cat-x All Rights Reserved + */ +interface ApiService { + + @POST("xxxxx") + fun hisQuotation(@Body quotationQuery: QuotationQueryReq): Call> + + +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/network/RequestHandle.kt b/simple/src/main/java/pro/udax/app/network/RequestHandle.kt new file mode 100644 index 0000000..e22f29c --- /dev/null +++ b/simple/src/main/java/pro/udax/app/network/RequestHandle.kt @@ -0,0 +1,18 @@ +package pro.udax.app.network + +/** + * Created by Cat-x on 2018/12/24. + * For KChart + * Cat-x All Rights Reserved + */ +object RequestHandle { + fun getHeads(): Map { + val heads = HashMap() + if (false) { + heads["UUID"] = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzYWx0IjoiTlBVa1pTaHVUY0JlRU9Ka3JCZ1MiLCJpZCI6IjEwMjE3IiwiaWF0IjoxNTQ1NjMxODE5fQ.uqypaqsM6JJr1YaU2UY0YtsEj8xZ_-FcYwRHthLb5VY" + } + heads["locale"] = "zh" + return heads + } +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/network/RetrofitEx.kt b/simple/src/main/java/pro/udax/app/network/RetrofitEx.kt new file mode 100644 index 0000000..309825b --- /dev/null +++ b/simple/src/main/java/pro/udax/app/network/RetrofitEx.kt @@ -0,0 +1,50 @@ +package pro.udax.app.network + +import android.util.Log +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + + +/** + * Created by Cat-x on 2018/11/29. + * For KChart + * Cat-x All Rights Reserved + */ +/** + * 执行网络请求任务 + * @receiver Call + * @param success (data: T?, body: Response) -> Unit 成功回调 + * @param fail (t: Throwable) -> Unit 失败回调 + * @param failNumberOfRetries Int 失败重试次数,默认为0 + */ +fun Call.done( + success: (data: T?, body: Response) -> Unit, + fail: (t: Throwable) -> Unit = {}, + failNumberOfRetries: Int = 0 +) { + + enqueue(object : Callback { + override fun onResponse(call: Call, response: Response) { + Log.i("onResponse", response.body().toString()) + if (response.body() == null || !response.isSuccessful) { + onFailure( + call, + Throwable("response.body() is null", Throwable(response.code().toString())) + ) + } else { + success(response.body(), response) + } + } + + override fun onFailure(call: Call, t: Throwable) { + if (failNumberOfRetries > 0) { + call.clone().done(success, fail, failNumberOfRetries - 1) + } else { + fail(t) + } + } + + }) +} + diff --git a/simple/src/main/java/pro/udax/app/network/RetrofitTools.kt b/simple/src/main/java/pro/udax/app/network/RetrofitTools.kt new file mode 100644 index 0000000..6587968 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/network/RetrofitTools.kt @@ -0,0 +1,23 @@ +package pro.udax.app.network + +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + + +/** + * Created by Cat-x on 2018/11/29. + * For KChart + * Cat-x All Rights Reserved + */ +object RetrofitTools { + + + var retrofit = Retrofit.Builder() + .baseUrl("xxxxx") + .addConverterFactory(GsonConverterFactory.create()) + .build() + + var apiService: ApiService = retrofit.create(ApiService::class.java) + + +} \ No newline at end of file diff --git a/simple/src/main/java/pro/udax/app/network/entry/request/QuotationQueryReq.kt b/simple/src/main/java/pro/udax/app/network/entry/request/QuotationQueryReq.kt new file mode 100644 index 0000000..6683f60 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/network/entry/request/QuotationQueryReq.kt @@ -0,0 +1,73 @@ +package pro.udax.app.network.entry.request + +import com.google.gson.annotations.SerializedName +import xyz.a1api.kchart.customize.BaseKLineEntity + +data class QuotationQueryReq( + @SerializedName("symbol") + val symbol: String, // BTC/GOLDT + @SerializedName("step") + val step: Long, // 15 + @SerializedName("startTimeStamp") + val startTimeStamp: Long, // 1543418774 + @SerializedName("endTimeStamp") + val endTimeStamp: Long // 1543434322 +) + +data class QuotationData( + @SerializedName("kLineData") + val kLineData: KLineData = KLineData() +) { + data class KLineData( + @SerializedName("hasNext") + val hasNext: Boolean = true, // true + @SerializedName("kLineList") + val kLineList: List = listOf() + ) { + data class QuotaKlineBean( + @SerializedName("close") + val close: Float = 0.0f, // 3927.38 + @SerializedName("date") + val date: String = "", // 20181128 + @SerializedName("high") + val high: Float = 0.0f, // 3931.4 + @SerializedName("low") + val low: Float = 0.0f, // 3927.38 + @SerializedName("open") + val `open`: Float = 0.0f, // 3931.4 + @SerializedName("period") + val period: Long = 0, // 1 + @SerializedName("sTimeStamp") + val sTimeStamp: Int = 0, // 1543364958 + @SerializedName("symbol") + val symbol: String = "", // BTC/USDT + @SerializedName("time") + val time: String = "", // 09:29:18 + @SerializedName("uTimeStamp") + val uTimeStamp: Int = 0, // 1543364990 + @SerializedName("volume") + val volumes: Float = 0.0f // 0.10699999999999932 + ) : BaseKLineEntity() { + + override fun getOpenPrice() = `open` + + override fun getHighPrice() = high + + override fun getLowPrice() = low + + override fun getClosePrice() = close + + override fun getVolume() = volumes + + override fun getPrice(): Float = close + + override fun getShowDateTime(): String { + return date + " " + time + } + + override fun getDateTime(): T { + return time as T + } + } + } +} diff --git a/simple/src/main/java/pro/udax/app/network/entry/response/Data.kt b/simple/src/main/java/pro/udax/app/network/entry/response/Data.kt new file mode 100644 index 0000000..b8557d3 --- /dev/null +++ b/simple/src/main/java/pro/udax/app/network/entry/response/Data.kt @@ -0,0 +1,18 @@ +package pro.udax.app.network.entry.response + +import com.google.gson.annotations.SerializedName + +/** + * Created by Cat-x on 2018/11/30. + * For KChart + * Cat-x All Rights Reserved + */ +data class Data( + @SerializedName("code") + val code: Int = 0, // 200 + @SerializedName("data") + val `data`: T?, + @SerializedName("msg") + val msg: String = "" // Successful request + +) \ No newline at end of file diff --git a/simple/src/main/res/drawable-v24/ic_launcher_foreground.xml b/simple/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/simple/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/simple/src/main/res/drawable/ic_launcher_background.xml b/simple/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d81b113 --- /dev/null +++ b/simple/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/simple/src/main/res/layout/activity_simple_kchart_landscape.xml b/simple/src/main/res/layout/activity_simple_kchart_landscape.xml new file mode 100644 index 0000000..6c8dceb --- /dev/null +++ b/simple/src/main/res/layout/activity_simple_kchart_landscape.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/simple/src/main/res/layout/activity_simple_kchart_portrait.xml b/simple/src/main/res/layout/activity_simple_kchart_portrait.xml new file mode 100644 index 0000000..d48a7b2 --- /dev/null +++ b/simple/src/main/res/layout/activity_simple_kchart_portrait.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/simple/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/simple/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/simple/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/simple/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/simple/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/simple/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/simple/src/main/res/mipmap-hdpi/ic_launcher.png b/simple/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..898f3ed Binary files /dev/null and b/simple/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/simple/src/main/res/mipmap-hdpi/ic_launcher_round.png b/simple/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..dffca36 Binary files /dev/null and b/simple/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/simple/src/main/res/mipmap-mdpi/ic_launcher.png b/simple/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..64ba76f Binary files /dev/null and b/simple/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/simple/src/main/res/mipmap-mdpi/ic_launcher_round.png b/simple/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..dae5e08 Binary files /dev/null and b/simple/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/simple/src/main/res/mipmap-xhdpi/ic_launcher.png b/simple/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..e5ed465 Binary files /dev/null and b/simple/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/simple/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/simple/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..14ed0af Binary files /dev/null and b/simple/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/simple/src/main/res/mipmap-xxhdpi/ic_launcher.png b/simple/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..b0907ca Binary files /dev/null and b/simple/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/simple/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/simple/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..d8ae031 Binary files /dev/null and b/simple/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/simple/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/simple/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..2c18de9 Binary files /dev/null and b/simple/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/simple/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/simple/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..beed3cd Binary files /dev/null and b/simple/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/simple/src/main/res/values/colors.xml b/simple/src/main/res/values/colors.xml new file mode 100644 index 0000000..585cf3c --- /dev/null +++ b/simple/src/main/res/values/colors.xml @@ -0,0 +1,11 @@ + + + #008577 + #00574B + #D81B60 + + #1882D4 + #6D87A8 + + + diff --git a/simple/src/main/res/values/strings.xml b/simple/src/main/res/values/strings.xml new file mode 100644 index 0000000..340e1cf --- /dev/null +++ b/simple/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + KChart + diff --git a/simple/src/main/res/values/styles.xml b/simple/src/main/res/values/styles.xml new file mode 100644 index 0000000..6751f80 --- /dev/null +++ b/simple/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + +