#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author hongbin@youzan.com
import os
import math

from pyspark import SQLContext
from pyspark import SparkContext

import ta.adx as tr

local_path = os.path.dirname(__file__)

import bintrade_tests.sparklib as slib



def test_tr():
    dSC = [
        {"symbol":"xxxx", "date":"39855", "high":30.1983,"low":29.4072,"close":29.8720},
        {"symbol":"xxxx", "date":"39856", "high":30.2776,"low":29.3182,"close":30.2381},
        {"symbol":"xxxx", "date":"39857", "high":30.4458,"low":29.9611,"close":30.0996},
        {"symbol":"xxxx", "date":"39861", "high":29.3478,"low":28.7443,"close":28.9028},
        {"symbol":"xxxx", "date":"39862", "high":29.3477,"low":28.5566,"close":28.9225},
        {"symbol":"xxxx", "date":"39863", "high":29.2886,"low":28.4081,"close":28.4775},
        {"symbol":"xxxx", "date":"39864", "high":28.8334,"low":28.0818,"close":28.5566},
        {"symbol":"xxxx", "date":"39867", "high":28.7346,"low":27.4289,"close":27.5576},
        {"symbol":"xxxx", "date":"39868", "high":28.6654,"low":27.6565,"close":28.4675},
        {"symbol":"xxxx", "date":"39869", "high":28.8532,"low":27.8345,"close":28.2796},
        {"symbol":"xxxx", "date":"39870", "high":28.6356,"low":27.3992,"close":27.4882},
        {"symbol":"xxxx", "date":"39871", "high":27.6761,"low":27.0927,"close":27.2310},
        {"symbol":"xxxx", "date":"39874", "high":27.2112,"low":26.1826,"close":26.3507},
        {"symbol":"xxxx", "date":"39875", "high":26.8651,"low":26.1332,"close":26.3309},
        {"symbol":"xxxx", "date":"39876", "high":27.4090,"low":26.6277,"close":27.0333},
        {"symbol":"xxxx", "date":"39877", "high":26.9441,"low":26.1332,"close":26.2221},
        {"symbol":"xxxx", "date":"39878", "high":26.5189,"low":25.4307,"close":26.0144},
        {"symbol":"xxxx", "date":"39881", "high":26.5189,"low":25.3518,"close":25.4605},
        {"symbol":"xxxx", "date":"39882", "high":27.0927,"low":25.8760,"close":27.0333},
        {"symbol":"xxxx", "date":"39883", "high":27.6860,"low":26.9640,"close":27.4487},
        {"symbol":"xxxx", "date":"39884", "high":28.4477,"low":27.1421,"close":28.3586},
        {"symbol":"xxxx", "date":"39885", "high":28.5267,"low":28.0123,"close":28.4278},
        {"symbol":"xxxx", "date":"39888", "high":28.6654,"low":27.8840,"close":27.9530},
        {"symbol":"xxxx", "date":"39889", "high":29.0116,"low":27.9928,"close":29.0116},
        {"symbol":"xxxx", "date":"39890", "high":29.8720,"low":28.7643,"close":29.3776},
        {"symbol":"xxxx", "date":"39891", "high":29.8028,"low":29.1402,"close":29.3576},
        {"symbol":"xxxx", "date":"39892", "high":29.7529,"low":28.7127,"close":28.9107},
        {"symbol":"xxxx", "date":"39895", "high":30.6546,"low":28.9290,"close":30.6149},
        {"symbol":"xxxx", "date":"39896", "high":30.5951,"low":30.0304,"close":30.0502},
        {"symbol":"xxxx", "date":"39897", "high":30.7635,"low":29.3863,"close":30.1890},
        {"symbol":"xxxx", "date":"39898", "high":31.1698,"low":30.1365,"close":31.1202},
        {"symbol":"xxxx", "date":"39899", "high":30.8923,"low":30.4267,"close":30.5356},
        {"symbol":"xxxx", "date":"39902", "high":30.0402,"low":29.3467,"close":29.7827},
        {"symbol":"xxxx", "date":"39903", "high":30.6645,"low":29.9906,"close":30.0402},
        {"symbol":"xxxx", "date":"39904", "high":30.5951,"low":29.5152,"close":30.4861},
        {"symbol":"xxxx", "date":"39905", "high":31.9724,"low":30.9418,"close":31.4670},
        {"symbol":"xxxx", "date":"39906", "high":32.1011,"low":31.5364,"close":32.0515},
        {"symbol":"xxxx", "date":"39909", "high":32.0317,"low":31.3580,"close":31.9724},
        {"symbol":"xxxx", "date":"39910", "high":31.6255,"low":30.9220,"close":31.1302},
        {"symbol":"xxxx", "date":"39911", "high":31.8534,"low":31.1994,"close":31.6551},
        {"symbol":"xxxx", "date":"39912", "high":32.7055,"low":32.1308,"close":32.6360},
        {"symbol":"xxxx", "date":"39916", "high":32.7648,"low":32.2298,"close":32.5866},
        {"symbol":"xxxx", "date":"39917", "high":32.5766,"low":31.9724,"close":32.1903},
        {"symbol":"xxxx", "date":"39918", "high":32.1308,"low":31.5562,"close":32.1011},
        {"symbol":"xxxx", "date":"39919", "high":33.1215,"low":32.2101,"close":32.9335},
        {"symbol":"xxxx", "date":"39920", "high":33.1909,"low":32.6262,"close":33.0027},
        {"symbol":"xxxx", "date":"39923", "high":32.5172,"low":31.7642,"close":31.9425},
        {"symbol":"xxxx", "date":"39924", "high":32.4379,"low":31.7840,"close":32.3883},
        {"symbol":"xxxx", "date":"39925", "high":33.2207,"low":32.0912,"close":32.4875},
        {"symbol":"xxxx", "date":"39926", "high":32.8343,"low":32.1903,"close":32.8046},
        {"symbol":"xxxx", "date":"39927", "high":33.6169,"low":32.7648,"close":33.3792},
        {"symbol":"xxxx", "date":"39930", "high":33.7459,"low":33.0423,"close":33.4188},
        {"symbol":"xxxx", "date":"39931", "high":33.5971,"low":33.0522,"close":33.1711},
        {"symbol":"xxxx", "date":"39932", "high":34.0825,"low":33.3297,"close":33.6268},
        {"symbol":"xxxx", "date":"39933", "high":34.5780,"low":33.7260,"close":33.9638},
        {"symbol":"xxxx", "date":"39934", "high":34.2214,"low":33.6962,"close":34.0529},
        {"symbol":"xxxx", "date":"39937", "high":34.7663,"low":34.2015,"close":34.7266},
        {"symbol":"xxxx", "date":"39938", "high":34.7364,"low":34.3105,"close":34.6969},
        {"symbol":"xxxx", "date":"39939", "high":35.0140,"low":34.1420,"close":34.7067},
        {"symbol":"xxxx", "date":"39940", "high":34.9447,"low":33.5674,"close":33.8944},
        {"symbol":"xxxx", "date":"39941", "high":34.4194,"low":33.5674,"close":33.9142},
        {"symbol":"xxxx", "date":"39944", "high":34.3995,"low":33.3692,"close":34.0331},
        {"symbol":"xxxx", "date":"39945", "high":34.1619,"low":33.2108,"close":33.6169},
        {"symbol":"xxxx", "date":"39946", "high":33.3396,"low":32.6560,"close":32.7154},
        {"symbol":"xxxx", "date":"39947", "high":33.3892,"low":32.7747,"close":33.0819},
        {"symbol":"xxxx", "date":"39948", "high":33.5079,"low":32.9235,"close":33.0621},
        {"symbol":"xxxx", "date":"39951", "high":33.9638,"low":33.0820,"close":33.9240},
        {"symbol":"xxxx", "date":"39952", "high":34.4194,"low":33.6368,"close":34.0825},
        {"symbol":"xxxx", "date":"39953", "high":34.7167,"low":33.8647,"close":33.9638},
        {"symbol":"xxxx", "date":"39954", "high":33.9440,"low":33.0027,"close":33.3396},
        {"symbol":"xxxx", "date":"39955", "high":33.6567,"low":33.0127,"close":33.2306},
        {"symbol":"xxxx", "date":"39959", "high":34.5086,"low":32.8738,"close":34.4691},
        {"symbol":"xxxx", "date":"39960", "high":34.8653,"low":34.1124,"close":34.2312},
        {"symbol":"xxxx", "date":"39961", "high":34.7464,"low":33.8944,"close":34.6275},
        {"symbol":"xxxx", "date":"39962", "high":35.1725,"low":34.4393,"close":35.0536},
        {"symbol":"xxxx", "date":"39965", "high":36.1633,"low":35.2816,"close":36.0543},
        {"symbol":"xxxx", "date":"39966", "high":36.4504,"low":35.7768,"close":36.1038},
        {"symbol":"xxxx", "date":"39967", "high":36.0344,"low":35.5985,"close":35.9948},
        {"symbol":"xxxx", "date":"39968", "high":36.4504,"low":36.0048,"close":36.4011},
        {"symbol":"xxxx", "date":"39969", "high":36.7380,"low":36.0839,"close":36.4407},
        {"symbol":"xxxx", "date":"39972", "high":36.6091,"low":35.7868,"close":36.3318},
        {"symbol":"xxxx", "date":"39973", "high":36.8270,"low":36.3318,"close":36.6091},
        {"symbol":"xxxx", "date":"39974", "high":36.8369,"low":35.9552,"close":36.4803},
        {"symbol":"xxxx", "date":"39975", "high":36.8865,"low":36.4110,"close":36.4803},
        {"symbol":"xxxx", "date":"39976", "high":36.3802,"low":35.8659,"close":36.3119},
        {"symbol":"xxxx", "date":"39979", "high":35.9948,"low":35.2516,"close":35.5688},
        {"symbol":"xxxx", "date":"39980", "high":35.8561,"low":35.1923,"close":35.2220},
        {"symbol":"xxxx", "date":"39981", "high":35.8759,"low":35.1230,"close":35.5578},
        {"symbol":"xxxx", "date":"39982", "high":35.7273,"low":35.2418,"close":35.4896},
        {"symbol":"xxxx", "date":"39983", "high":36.0688,"low":35.6225,"close":35.8703},
        {"symbol":"xxxx", "date":"39986", "high":35.6025,"low":34.7394,"close":34.7990},
        {"symbol":"xxxx", "date":"39987", "high":34.9775,"low":34.4915,"close":34.7196},
        {"symbol":"xxxx", "date":"39988", "high":35.5827,"low":34.9974,"close":35.3049},
        {"symbol":"xxxx", "date":"39989", "high":36.0688,"low":34.9974,"close":35.9993},
        {"symbol":"xxxx", "date":"39990", "high":36.2076,"low":35.7612,"close":36.0786},
        {"symbol":"xxxx", "date":"39993", "high":36.4555,"low":35.8307,"close":36.1580},
        {"symbol":"xxxx", "date":"39994", "high":36.4359,"low":35.8207,"close":36.0885},
        {"symbol":"xxxx", "date":"39995", "high":36.5448,"low":36.0985,"close":36.1084},
        {"symbol":"xxxx", "date":"39996", "high":35.8107,"low":35.2156,"close":35.3149},
        {"symbol":"xxxx", "date":"40000", "high":35.2552,"low":34.7593,"close":35.1263},
        {"symbol":"xxxx", "date":"40001", "high":35.2058,"low":34.2335,"close":34.2534},
        {"symbol":"xxxx", "date":"40002", "high":34.5908,"low":34.0252,"close":34.4320},
        {"symbol":"xxxx", "date":"40003", "high":34.7296,"low":34.3725,"close":34.4915},
        {"symbol":"xxxx", "date":"40004", "high":34.8586,"low":34.2833,"close":34.6403},
        {"symbol":"xxxx", "date":"40007", "high":35.3149,"low":34.2038,"close":35.3049},
        {"symbol":"xxxx", "date":"40008", "high":35.5034,"low":35.1165,"close":35.4338},
        {"symbol":"xxxx", "date":"40009", "high":36.6342,"low":35.8505,"close":36.6243},
        {"symbol":"xxxx", "date":"40010", "high":37.1401,"low":36.4259,"close":37.0608},
        {"symbol":"xxxx", "date":"40011", "high":37.2691,"low":36.8722,"close":37.2592},
        {"symbol":"xxxx", "date":"40014", "high":37.6956,"low":37.3087,"close":37.6162},
        {"symbol":"xxxx", "date":"40015", "high":37.8742,"low":37.3385,"close":37.8742},
        {"symbol":"xxxx", "date":"40016", "high":38.3801,"low":37.8245,"close":38.1917},
        {"symbol":"xxxx", "date":"40017", "high":39.1736,"low":38.0825,"close":39.0347},
        {"symbol":"xxxx", "date":"40018", "high":39.0546,"low":38.4693,"close":38.7372},
        {"symbol":"xxxx", "date":"40021", "high":39.0944,"low":38.5586,"close":39.0347},
        {"symbol":"xxxx", "date":"40022", "high":39.2729,"low":38.6181,"close":39.1538},
        {"symbol":"xxxx", "date":"40023", "high":39.1141,"low":38.6876,"close":39.0249},
        {"symbol":"xxxx", "date":"40024", "high":39.8581,"low":39.1935,"close":39.2530},
        {"symbol":"xxxx", "date":"40025", "high":39.5330,"low":39.0944,"close":39.1339},
        {"symbol":"xxxx", "date":"40028", "high":39.7392,"low":39.3225,"close":39.7193},
        {"symbol":"xxxx", "date":"40029", "high":39.8680,"low":39.4513,"close":39.7193},
        {"symbol":"xxxx", "date":"40030", "high":39.8185,"low":39.1439,"close":39.4117},
        {"symbol":"xxxx", "date":"40031", "high":39.6102,"low":38.9257,"close":39.0644},
        {"symbol":"xxxx", "date":"40032", "high":39.7491,"low":39.2729,"close":39.5605},
        {"symbol":"xxxx", "date":"40035", "high":39.5309,"low":39.0249,"close":39.2827},
        {"symbol":"xxxx", "date":"40036", "high":39.1836,"low":38.7372,"close":38.9454},
        {"symbol":"xxxx", "date":"40037", "high":39.8978,"low":38.8860,"close":39.5506},
        {"symbol":"xxxx", "date":"40038", "high":39.8383,"low":39.3225,"close":39.7689},
        {"symbol":"xxxx", "date":"40039", "high":39.6399,"low":38.9653,"close":39.3126},
        {"symbol":"xxxx", "date":"40042", "high":38.6975,"low":38.1520,"close":38.1717},
        {"symbol":"xxxx", "date":"40043", "high":38.7968,"low":38.3007,"close":38.7174},
        {"symbol":"xxxx", "date":"40044", "high":39.0844,"low":38.2312,"close":38.9852},
        {"symbol":"xxxx", "date":"40045", "high":39.5209,"low":38.8860,"close":39.4415},
        {"symbol":"xxxx", "date":"40046", "high":40.0368,"low":39.4217,"close":39.9671},
        {"symbol":"xxxx", "date":"40049", "high":40.2450,"low":39.7788,"close":39.9276},
        {"symbol":"xxxx", "date":"40050", "high":40.4335,"low":39.9276,"close":40.0468},
        {"symbol":"xxxx", "date":"40051", "high":40.2757,"low":39.7589,"close":39.9771},
        {"symbol":"xxxx", "date":"40052", "high":40.1458,"low":39.3522,"close":40.0763},
        {"symbol":"xxxx", "date":"40053", "high":40.7509,"low":39.8383,"close":40.1161},
        {"symbol":"xxxx", "date":"40056", "high":39.8780,"low":39.4713,"close":39.7093},
        {"symbol":"xxxx", "date":"40057", "high":40.2649,"low":38.8464,"close":38.9653},
        {"symbol":"xxxx", "date":"40058", "high":39.1538,"low":38.7272,"close":38.9356},
        {"symbol":"xxxx", "date":"40059", "high":39.2532,"low":38.7075,"close":39.1935},
        {"symbol":"xxxx", "date":"40060", "high":40.0566,"low":39.2035,"close":40.0368},
        {"symbol":"xxxx", "date":"40064", "high":40.4534,"low":40.1359,"close":40.4137},
        {"symbol":"xxxx", "date":"40065", "high":40.9593,"low":40.2649,"close":40.7609},
        {"symbol":"xxxx", "date":"40066", "high":41.1973,"low":40.6717,"close":41.1478},
        {"symbol":"xxxx", "date":"40067", "high":41.2867,"low":40.8898,"close":41.1874},
        {"symbol":"xxxx", "date":"40070", "high":41.3759,"low":40.8799,"close":41.3461},
        {"symbol":"xxxx", "date":"40071", "high":41.6140,"low":41.2371,"close":41.4750},
        {"symbol":"xxxx", "date":"40072", "high":42.1397,"low":41.5049,"close":42.0802},
        {"symbol":"xxxx", "date":"40073", "high":42.3183,"low":41.8719,"close":42.0703},
        {"symbol":"xxxx", "date":"40074", "high":42.3193,"low":41.9122,"close":42.1406},
        {"symbol":"xxxx", "date":"40077", "high":42.3988,"low":41.8625,"close":42.2696},
        {"symbol":"xxxx", "date":"40078", "high":42.5279,"low":42.1404,"close":42.3492},
        {"symbol":"xxxx", "date":"40079", "high":42.8655,"low":42.0781,"close":42.1505},
        {"symbol":"xxxx", "date":"40080", "high":42.3888,"low":41.4752,"close":41.7732},
        {"symbol":"xxxx", "date":"40081", "high":41.7931,"low":41.2867,"close":41.4059},
        {"symbol":"xxxx", "date":"40084", "high":42.3591,"low":41.5944,"close":42.1107},
        {"symbol":"xxxx", "date":"40085", "high":42.3194,"low":41.7335,"close":41.9221},
        {"symbol":"xxxx", "date":"40086", "high":42.3019,"low":41.3065,"close":41.9519},
        {"symbol":"xxxx", "date":"40087", "high":41.8328,"low":40.7107,"close":40.7107},
        {"symbol":"xxxx", "date":"40088", "high":40.9590,"low":40.4327,"close":40.5916},
        {"symbol":"xxxx", "date":"40091", "high":41.1079,"low":40.5419,"close":40.9192},
        {"symbol":"xxxx", "date":"40092", "high":41.8427,"low":40.9298,"close":41.6440},
        {"symbol":"xxxx", "date":"40093", "high":41.7832,"low":41.4752,"close":41.7633},
        {"symbol":"xxxx", "date":"40094", "high":42.3193,"low":41.8427,"close":41.9420},
        {"symbol":"xxxx", "date":"40095", "high":42.2498,"low":41.7633,"close":42.1803},
        {"symbol":"xxxx", "date":"40098", "high":42.5676,"low":41.9817,"close":42.2696},
        {"symbol":"xxxx", "date":"40099", "high":42.4485,"low":42.0711,"close":42.2795},
        {"symbol":"xxxx", "date":"40100", "high":42.9876,"low":42.5476,"close":42.8555},
        {"symbol":"xxxx", "date":"40101", "high":42.8158,"low":42.5676,"close":42.7561},
        {"symbol":"xxxx", "date":"40102", "high":42.6867,"low":42.1803,"close":42.4781},
        {"symbol":"xxxx", "date":"40105", "high":42.9647,"low":42.2895,"close":42.9052},
        {"symbol":"xxxx", "date":"40106", "high":43.1533,"low":42.6370,"close":42.9151},
        {"symbol":"xxxx", "date":"40107", "high":43.5109,"low":42.7561,"close":42.8356},
        {"symbol":"xxxx", "date":"40108", "high":43.1832,"low":42.4881,"close":43.0044},
        {"symbol":"xxxx", "date":"40109", "high":43.4215,"low":42.7165,"close":42.8257},
        {"symbol":"xxxx", "date":"40112", "high":43.4513,"low":42.4881,"close":42.6867},
        {"symbol":"xxxx", "date":"40113", "high":42.8059,"low":41.8825,"close":42.0413},
        {"symbol":"xxxx", "date":"40114", "high":42.0214,"low":41.0086,"close":41.0980},
        {"symbol":"xxxx", "date":"40115", "high":41.8925,"low":41.2470,"close":41.7931},
        {"symbol":"xxxx", "date":"40116", "high":41.8526,"low":40.6313,"close":40.6711},
        {"symbol":"xxxx", "date":"40119", "high":41.2767,"low":40.3532,"close":40.8399},
        {"symbol":"xxxx", "date":"40120", "high":41.0285,"low":40.5519,"close":40.9689},
        {"symbol":"xxxx", "date":"40121", "high":41.5747,"low":40.9888,"close":41.0384},
        {"symbol":"xxxx", "date":"40122", "high":42.1009,"low":41.4852,"close":42.0512},
        {"symbol":"xxxx", "date":"40123", "high":42.3492,"low":41.7832,"close":42.2995},
        {"symbol":"xxxx", "date":"40126", "high":43.2129,"low":42.5775,"close":43.2030},
        {"symbol":"xxxx", "date":"40127", "high":43.4627,"low":43.0938,"close":43.3122},
        {"symbol":"xxxx", "date":"40128", "high":43.8286,"low":43.3024,"close":43.5903},
        {"symbol":"xxxx", "date":"40129", "high":43.8484,"low":43.2428,"close":43.3421},
        {"symbol":"xxxx", "date":"40130", "high":43.8286,"low":43.3221,"close":43.6995},
        {"symbol":"xxxx", "date":"40133", "high":44.3350,"low":43.8088,"close":44.1464},
        {"symbol":"xxxx", "date":"40134", "high":44.2854,"low":43.9378,"close":44.2854},
        {"symbol":"xxxx", "date":"40135", "high":44.1761,"low":43.7392,"close":44.0401},
        {"symbol":"xxxx", "date":"40136", "high":43.7690,"low":43.0442,"close":43.3520},
        {"symbol":"xxxx", "date":"40137", "high":43.2428,"low":42.9747,"close":43.1336},
        {"symbol":"xxxx", "date":"40140", "high":44.0868,"low":43.5506,"close":43.8286},
        {"symbol":"xxxx", "date":"40141", "high":43.8384,"low":43.4215,"close":43.6796},
        {"symbol":"xxxx", "date":"40142", "high":43.9080,"low":43.6995,"close":43.8683},
        {"symbol":"xxxx", "date":"40144", "high":43.5208,"low":42.5973,"close":43.2030},
        {"symbol":"xxxx", "date":"40147", "high":43.3122,"low":42.8059,"close":43.2528},
        {"symbol":"xxxx", "date":"40148", "high":43.9876,"low":43.5704,"close":43.6995},
        {"symbol":"xxxx", "date":"40149", "high":44.1761,"low":43.6697,"close":43.7591},
        {"symbol":"xxxx", "date":"40150", "high":44.1861,"low":43.5704,"close":43.5803},
        {"symbol":"xxxx", "date":"40151", "high":44.4144,"low":43.3520,"close":43.8088},
        {"symbol":"xxxx", "date":"40154", "high":43.9776,"low":43.5109,"close":43.6002},
        {"symbol":"xxxx", "date":"40155", "high":43.6896,"low":43.0540,"close":43.3341},
        {"symbol":"xxxx", "date":"40156", "high":43.8088,"low":43.0143,"close":43.7690},
        {"symbol":"xxxx", "date":"40157", "high":44.2257,"low":43.9279,"close":43.9876},
        {"symbol":"xxxx", "date":"40158", "high":44.2754,"low":43.6400,"close":43.8188},
        {"symbol":"xxxx", "date":"40161", "high":44.2854,"low":43.8782,"close":44.2357},
        {"symbol":"xxxx", "date":"40162", "high":44.3549,"low":43.8584,"close":43.9876},
        {"symbol":"xxxx", "date":"40163", "high":44.3846,"low":43.9776,"close":44.0469},
        {"symbol":"xxxx", "date":"40164", "high":43.8981,"low":43.4513,"close":43.5109},
        {"symbol":"xxxx", "date":"40165", "high":44.2446,"low":43.7671,"close":44.2246},
        {"symbol":"xxxx", "date":"40168", "high":44.8911,"low":44.4335,"close":44.7220},
        {"symbol":"xxxx", "date":"40169", "high":45.0502,"low":44.7916,"close":44.9905},
        {"symbol":"xxxx", "date":"40170", "high":45.3287,"low":44.9707,"close":45.3188},
        {"symbol":"xxxx", "date":"40171", "high":45.7366,"low":45.3586,"close":45.7366},
        {"symbol":"xxxx", "date":"40175", "high":46.0548,"low":45.6968,"close":45.9753},
        {"symbol":"xxxx", "date":"40176", "high":46.0052,"low":45.7466,"close":45.7863},
        {"symbol":"xxxx", "date":"40177", "high":46.0151,"low":45.7167,"close":45.9256},
        {"symbol":"xxxx", "date":"40178", "high":46.0301,"low":45.5078,"close":45.5078},
        {"symbol":"xxxx", "date":"40182", "high":46.2389,"low":46.0251,"close":46.1743},
        {"symbol":"xxxx", "date":"40183", "high":46.2538,"low":45.9157,"close":46.1743},
        {"symbol":"xxxx", "date":"40184", "high":46.3036,"low":45.8262,"close":45.8957},
        {"symbol":"xxxx", "date":"40185", "high":46.0251,"low":45.6769,"close":45.9256},
        {"symbol":"xxxx", "date":"40186", "high":46.3036,"low":45.6868,"close":46.3036},
        {"symbol":"xxxx", "date":"40189", "high":46.3931,"low":45.8759,"close":46.1146},
        {"symbol":"xxxx", "date":"40190", "high":45.8957,"low":45.2890,"close":45.5376},
        {"symbol":"xxxx", "date":"40191", "high":46.2439,"low":45.3685,"close":46.1046},
        {"symbol":"xxxx", "date":"40192", "high":46.2737,"low":45.9753,"close":46.1444},
        {"symbol":"xxxx", "date":"40193", "high":46.3036,"low":45.4083,"close":45.6073},
        {"symbol":"xxxx", "date":"40197", "high":46.3931,"low":45.7068,"close":46.3434},
        {"symbol":"xxxx", "date":"40198", "high":46.3572,"low":45.1896,"close":45.6769},
        {"symbol":"xxxx", "date":"40199", "high":46.1046,"low":45.0602,"close":45.2492},
        {"symbol":"xxxx", "date":"40200", "high":45.2392,"low":43.8069,"close":43.9263},
        {"symbol":"xxxx", "date":"40203", "high":44.3639,"low":43.8865,"close":44.0755},
        {"symbol":"xxxx", "date":"40204", "high":44.6524,"low":43.8169,"close":44.1152},
        {"symbol":"xxxx", "date":"40205", "high":44.6126,"low":43.7771,"close":44.4635},
        {"symbol":"xxxx", "date":"40206", "high":44.1949,"low":43.0908,"close":43.3194},
        {"symbol":"xxxx", "date":"40207", "high":43.7869,"low":42.4044,"close":42.5635},
        {"symbol":"xxxx", "date":"40210", "high":43.0515,"low":42.6530,"close":43.0310},
        {"symbol":"xxxx", "date":"40211", "high":43.5483,"low":42.8022,"close":43.4189},
        {"symbol":"xxxx", "date":"40212", "high":43.7372,"low":43.1901,"close":43.6576},
        {"symbol":"xxxx", "date":"40213", "high":43.4289,"low":42.3944,"close":42.3944},
        {"symbol":"xxxx", "date":"40214", "high":42.7923,"low":41.8969,"close":42.7524},
        {"symbol":"xxxx", "date":"40217", "high":42.9514,"low":42.4143,"close":42.4442},
        {"symbol":"xxxx", "date":"40218", "high":43.2797,"low":42.5337,"close":42.8818},
        {"symbol":"xxxx", "date":"40219", "high":43.0808,"low":42.5237,"close":42.7923},
        {"symbol":"xxxx", "date":"40220", "high":43.5582,"low":42.5337,"close":43.4388},
        {"symbol":"xxxx", "date":"40221", "high":43.6478,"low":42.9315,"close":43.5283},
        {"symbol":"xxxx", "date":"40225", "high":44.1152,"low":43.6179,"close":44.0854},
        {"symbol":"xxxx", "date":"40226", "high":44.3341,"low":44.0257,"close":44.3341},
        {"symbol":"xxxx", "date":"40227", "high":44.6921,"low":44.2146,"close":44.6126},
        {"symbol":"xxxx", "date":"40228", "high":44.8115,"low":44.3838,"close":44.5927},
        {"symbol":"xxxx", "date":"40231", "high":44.7916,"low":44.3241,"close":44.5032},
        {"symbol":"xxxx", "date":"40232", "high":44.5032,"low":43.7174,"close":43.9263},
        {"symbol":"xxxx", "date":"40233", "high":44.5529,"low":44.0854,"close":44.3739},
        {"symbol":"xxxx", "date":"40234", "high":44.4635,"low":43.5980,"close":44.3639},
        {"symbol":"xxxx", "date":"40235", "high":44.6225,"low":44.1649,"close":44.5230},
        {"symbol":"xxxx", "date":"40238", "high":45.2492,"low":44.7121,"close":45.1696},
        {"symbol":"xxxx", "date":"40239", "high":45.6073,"low":45.2094,"close":45.3089},
        {"symbol":"xxxx", "date":"40240", "high":45.5775,"low":45.1896,"close":45.3586},
        {"symbol":"xxxx", "date":"40241", "high":45.5675,"low":45.1596,"close":45.5078},
        {"symbol":"xxxx", "date":"40242", "high":46.2937,"low":45.7466,"close":46.1942},
        {"symbol":"xxxx", "date":"40245", "high":46.3931,"low":46.1942,"close":46.2837},
        {"symbol":"xxxx", "date":"40246", "high":46.8009,"low":46.1543,"close":46.5423},
        {"symbol":"xxxx", "date":"40247", "high":47.0298,"low":46.5523,"close":46.9203},
        {"symbol":"xxxx", "date":"40248", "high":47.0993,"low":46.7313,"close":47.0993},
        {"symbol":"xxxx", "date":"40249", "high":47.2784,"low":46.8507,"close":47.1093},
        {"symbol":"xxxx", "date":"40252", "high":47.1292,"low":46.6617,"close":46.9899},
        {"symbol":"xxxx", "date":"40253", "high":47.3579,"low":46.9800,"close":47.2884},
        {"symbol":"xxxx", "date":"40254", "high":47.6464,"low":47.2784,"close":47.4177},
        {"symbol":"xxxx", "date":"40255", "high":47.6265,"low":47.3480,"close":47.5768},
        {"symbol":"xxxx", "date":"40256", "high":47.7476,"low":47.1203,"close":47.2896},
        {"symbol":"xxxx", "date":"40259", "high":47.9069,"low":47.0505,"close":47.7177},
        {"symbol":"xxxx", "date":"40260", "high":48.0961,"low":47.5683,"close":48.0488},
        {"symbol":"xxxx", "date":"40261", "high":47.9667,"low":47.7078,"close":47.8173},
        {"symbol":"xxxx", "date":"40262", "high":48.3949,"low":47.6978,"close":47.7476},
        {"symbol":"xxxx", "date":"40263", "high":48.1260,"low":47.5385,"close":47.7974},
        {"symbol":"xxxx", "date":"40266", "high":48.1956,"low":47.8969,"close":48.0264},
        {"symbol":"xxxx", "date":"40267", "high":48.3451,"low":47.8571,"close":48.1858},
        {"symbol":"xxxx", "date":"40268", "high":48.2454,"low":47.8671,"close":47.9567},
        {"symbol":"xxxx", "date":"40269", "high":48.4944,"low":47.5883,"close":47.9567},
        {"symbol":"xxxx", "date":"40273", "high":48.5143,"low":47.9367,"close":48.4048},
        {"symbol":"xxxx", "date":"40274", "high":48.6936,"low":48.1858,"close":48.5442},
        {"symbol":"xxxx", "date":"40275", "high":48.6637,"low":48.1658,"close":48.4247},
        {"symbol":"xxxx", "date":"40276", "high":48.6139,"low":48.0363,"close":48.5343},
        {"symbol":"xxxx", "date":"40277", "high":48.8429,"low":48.4297,"close":48.8230},
        {"symbol":"xxxx", "date":"40280", "high":48.9923,"low":48.7334,"close":48.8629},
        {"symbol":"xxxx", "date":"40281", "high":49.1416,"low":48.6538,"close":49.1118},
        {"symbol":"xxxx", "date":"40282", "high":49.7093,"low":49.2910,"close":49.6993},
        {"symbol":"xxxx", "date":"40283", "high":49.9781,"low":49.6594,"close":49.9184},
        {"symbol":"xxxx", "date":"40284", "high":49.9084,"low":48.9923,"close":49.3209},
        {"symbol":"xxxx", "date":"40287", "high":49.4503,"low":48.6936,"close":49.2910},
        {"symbol":"xxxx", "date":"40288", "high":49.6694,"low":49.2213,"close":49.5400},
        {"symbol":"xxxx", "date":"40289", "high":49.9781,"low":49.5151,"close":49.8188},
        {"symbol":"xxxx", "date":"40290", "high":50.1474,"low":49.0520,"close":50.0976},
        {"symbol":"xxxx", "date":"40291", "high":50.3565,"low":49.8785,"close":50.3067},
        {"symbol":"xxxx", "date":"40294", "high":50.4362,"low":50.0876,"close":50.1972},
        {"symbol":"xxxx", "date":"40295", "high":50.2171,"low":49.0023,"close":49.1318},
        {"symbol":"xxxx", "date":"40296", "high":49.4205,"low":48.7732,"close":49.1616},
        {"symbol":"xxxx", "date":"40297", "high":50.1176,"low":49.4005,"close":50.0180},
        {"symbol":"xxxx", "date":"40298", "high":50.0778,"low":48.9923,"close":49.0296},
        {"symbol":"xxxx", "date":"40301", "high":49.9582,"low":49.2213,"close":49.7192},
        {"symbol":"xxxx", "date":"40302", "high":49.1118,"low":47.8770,"close":48.2256},
        {"symbol":"xxxx", "date":"40303", "high":48.2952,"low":47.4389,"close":47.9767},
        {"symbol":"xxxx", "date":"40304", "high":48.1161,"low":41.3746,"close":46.3734},
        {"symbol":"xxxx", "date":"40305", "high":46.6025,"low":44.0964,"close":45.2183},
        {"symbol":"xxxx", "date":"40308", "high":47.5982,"low":47.1103,"close":47.5683},
        {"symbol":"xxxx", "date":"40309", "high":48.1858,"low":47.0007,"close":47.5185},
        {"symbol":"xxxx", "date":"40310", "high":48.4545,"low":47.6978,"close":48.4147},
        {"symbol":"xxxx", "date":"40311", "high":48.5840,"low":47.5286,"close":47.6480},
        {"symbol":"xxxx", "date":"40312", "high":47.3194,"low":46.1842,"close":46.7319},
        {"symbol":"xxxx", "date":"40315", "high":47.0705,"low":45.8756,"close":46.8812},
        {"symbol":"xxxx", "date":"40316", "high":47.3791,"low":46.0249,"close":46.2340},
        {"symbol":"xxxx", "date":"40317", "high":46.4332,"low":45.3577,"close":45.8656},
        {"symbol":"xxxx", "date":"40318", "high":45.0889,"low":44.0632,"close":44.1628},
        {"symbol":"xxxx", "date":"40319", "high":45.4474,"low":43.3065,"close":44.6507},
        {"symbol":"xxxx", "date":"40322", "high":45.1337,"low":44.4516,"close":44.4714},
        {"symbol":"xxxx", "date":"40323", "high":44.5710,"low":43.0476,"close":44.5113},
        {"symbol":"xxxx", "date":"40324", "high":45.3776,"low":43.9338,"close":44.0134},
        {"symbol":"xxxx", "date":"40325", "high":45.6963,"low":44.8996,"close":45.6763},
        {"symbol":"xxxx", "date":"40326", "high":45.7958,"low":45.0092,"close":45.4075},
        {"symbol":"xxxx", "date":"40330", "high":46.0547,"low":44.9394,"close":44.9892},
        {"symbol":"xxxx", "date":"40331", "high":46.0847,"low":44.9394,"close":46.0547},
        {"symbol":"xxxx", "date":"40332", "high":46.5725,"low":45.8854,"close":46.4929},
        {"symbol":"xxxx", "date":"40333", "high":46.0945,"low":44.7478,"close":44.9021},
        {"symbol":"xxxx", "date":"40336", "high":45.2681,"low":44.0334,"close":44.0831},
        {"symbol":"xxxx", "date":"40337", "high":44.2923,"low":43.4060,"close":44.0034},
        {"symbol":"xxxx", "date":"40338", "high":44.7205,"low":43.5056,"close":43.6350},
        {"symbol":"xxxx", "date":"40339", "high":44.9296,"low":44.0532,"close":44.8798},
        {"symbol":"xxxx", "date":"40340", "high":45.3478,"low":44.4216,"close":45.3079},
        {"symbol":"xxxx", "date":"40343", "high":46.0448,"low":45.2183,"close":45.2980},
        {"symbol":"xxxx", "date":"40344", "high":46.5725,"low":45.2613,"close":46.5128},
        {"symbol":"xxxx", "date":"40345", "high":46.9410,"low":46.3037,"close":46.7020},
        {"symbol":"xxxx", "date":"40346", "high":46.9809,"low":46.4431,"close":46.8514},
        {"symbol":"xxxx", "date":"40347", "high":47.2298,"low":46.7509,"close":46.8906},
        {"symbol":"xxxx", "date":"40350", "high":47.5690,"low":46.2221,"close":46.4915},
        {"symbol":"xxxx", "date":"40351", "high":47.0303,"low":46.0426,"close":46.1324},
        {"symbol":"xxxx", "date":"40352", "high":46.3618,"low":45.5836,"close":45.9428},
        {"symbol":"xxxx", "date":"40353", "high":45.8829,"low":45.0948,"close":45.2444},
        {"symbol":"xxxx", "date":"40354", "high":45.5537,"low":44.8454,"close":45.1646},
        {"symbol":"xxxx", "date":"40357", "high":45.4440,"low":44.7057,"close":45.0050},
        {"symbol":"xxxx", "date":"40358", "high":44.3565,"low":42.9697,"close":43.2690},
        {"symbol":"xxxx", "date":"40359", "high":43.5683,"low":42.5407,"close":42.6106},
        {"symbol":"xxxx", "date":"40360", "high":42.8600,"low":41.6728,"close":42.4909},
        {"symbol":"xxxx", "date":"40361", "high":42.7218,"low":41.9920,"close":42.3711},
        {"symbol":"xxxx", "date":"40365", "high":43.2690,"low":42.1516,"close":42.5008},
        {"symbol":"xxxx", "date":"40366", "high":43.9075,"low":42.6006,"close":43.8577},
        {"symbol":"xxxx", "date":"40367", "high":44.2767,"low":43.5783,"close":44.0971},
        {"symbol":"xxxx", "date":"40368", "high":44.5261,"low":43.9774,"close":44.5161},
        {"symbol":"xxxx", "date":"40371", "high":44.9252,"low":44.3565,"close":44.6458},
        {"symbol":"xxxx", "date":"40372", "high":45.3941,"low":44.6957,"close":45.2245},
        {"symbol":"xxxx", "date":"40373", "high":45.7034,"low":45.1347,"close":45.4539},
        {"symbol":"xxxx", "date":"40374", "high":45.6335,"low":44.8853,"close":45.4938},
        {"symbol":"xxxx", "date":"40375", "high":45.5219,"low":44.1969,"close":44.2368},
        {"symbol":"xxxx", "date":"40378", "high":44.7057,"low":43.9973,"close":44.6159},
        {"symbol":"xxxx", "date":"40379", "high":45.1546,"low":43.7579,"close":45.1546},
        {"symbol":"xxxx", "date":"40380", "high":45.6535,"low":44.4563,"close":44.5361},
        {"symbol":"xxxx", "date":"40381", "high":45.8730,"low":45.1347,"close":45.6635},
        {"symbol":"xxxx", "date":"40382", "high":45.9927,"low":45.2744,"close":45.9528},
        {"symbol":"xxxx", "date":"40385", "high":46.3518,"low":45.8031,"close":46.3319},
        {"symbol":"xxxx", "date":"40386", "high":46.6112,"low":46.1024,"close":46.3119},
        {"symbol":"xxxx", "date":"40387", "high":46.4716,"low":45.7732,"close":45.9428},
        {"symbol":"xxxx", "date":"40388", "high":46.3020,"low":45.1447,"close":45.6036},
        {"symbol":"xxxx", "date":"40389", "high":45.9827,"low":44.9651,"close":45.7034},
        {"symbol":"xxxx", "date":"40392", "high":46.6811,"low":46.1025,"close":46.5614},
        {"symbol":"xxxx", "date":"40393", "high":46.5913,"low":46.1423,"close":46.3618},
        {"symbol":"xxxx", "date":"40394", "high":46.8806,"low":46.3918,"close":46.8287},
        {"symbol":"xxxx", "date":"40395", "high":46.8108,"low":46.4117,"close":46.7210},
        {"symbol":"xxxx", "date":"40396", "high":46.7409,"low":45.9428,"close":46.6511},
        {"symbol":"xxxx", "date":"40399", "high":47.0801,"low":46.6811,"close":46.9704},
        {"symbol":"xxxx", "date":"40400", "high":46.8407,"low":46.1723,"close":46.5639},
        {"symbol":"xxxx", "date":"40401", "high":45.8131,"low":45.1048,"close":45.2943},
        {"symbol":"xxxx", "date":"40402", "high":45.1347,"low":44.3465,"close":44.9352},
        {"symbol":"xxxx", "date":"40403", "high":44.9551,"low":44.6059,"close":44.6159},
        {"symbol":"xxxx", "date":"40406", "high":45.0050,"low":44.1969,"close":44.6957},
        {"symbol":"xxxx", "date":"40407", "high":45.6734,"low":44.9252,"close":45.2664},
        {"symbol":"xxxx", "date":"40408", "high":45.7133,"low":45.0050,"close":45.4440},
        {"symbol":"xxxx", "date":"40409", "high":45.3542,"low":44.4563,"close":44.7556},
        {"symbol":"xxxx", "date":"40410", "high":44.9252,"low":44.4363,"close":44.8154},
        {"symbol":"xxxx", "date":"40413", "high":45.2345,"low":44.3565,"close":44.3765},
        {"symbol":"xxxx", "date":"40414", "high":44.0173,"low":43.3638,"close":43.5484},
        {"symbol":"xxxx", "date":"40415", "high":44.1570,"low":43.1693,"close":43.9674},
        {"symbol":"xxxx", "date":"40416", "high":44.2168,"low":43.3987,"close":43.4386},
        {"symbol":"xxxx", "date":"40417", "high":44.0572,"low":42.8700,"close":43.9674},
        {"symbol":"xxxx", "date":"40420", "high":44.1470,"low":43.4985,"close":43.5085},
        {"symbol":"xxxx", "date":"40421", "high":43.7479,"low":43.0795,"close":43.3588},
        {"symbol":"xxxx", "date":"40422", "high":44.8055,"low":43.9674,"close":44.6558},
        {"symbol":"xxxx", "date":"40423", "high":45.1746,"low":44.6259,"close":45.1546},
        {"symbol":"xxxx", "date":"40424", "high":45.9129,"low":45.4440,"close":45.9029},
        {"symbol":"xxxx", "date":"40428", "high":45.9228,"low":45.5188,"close":45.5936},
        {"symbol":"xxxx", "date":"40429", "high":46.3419,"low":45.7133,"close":46.1423},
        {"symbol":"xxxx", "date":"40430", "high":46.5913,"low":46.2122,"close":46.3219},
        {"symbol":"xxxx", "date":"40431", "high":46.5614,"low":46.1423,"close":46.4915},
        {"symbol":"xxxx", "date":"40434", "high":47.2597,"low":46.8307,"close":47.1400},
        {"symbol":"xxxx", "date":"40435", "high":47.5890,"low":46.9704,"close":47.3395},
        {"symbol":"xxxx", "date":"40436", "high":47.6887,"low":47.0801,"close":47.6388},
        {"symbol":"xxxx", "date":"40437", "high":47.8683,"low":47.4293,"close":47.8284},
        {"symbol":"xxxx", "date":"40438", "high":48.1400,"low":47.7500,"close":47.9950},
        {"symbol":"xxxx", "date":"40441", "high":48.9300,"low":48.1101,"close":48.8299},
        {"symbol":"xxxx", "date":"40442", "high":49.1700,"low":48.6100,"close":48.8200},
        {"symbol":"xxxx", "date":"40443", "high":49.0210,"low":48.4200,"close":48.6900},
        {"symbol":"xxxx", "date":"40444", "high":49.1600,"low":48.3200,"close":48.6700},
        {"symbol":"xxxx", "date":"40445", "high":49.6900,"low":49.1500,"close":49.6600},
        {"symbol":"xxxx", "date":"40448", "high":49.7500,"low":49.3500,"close":49.3900},
        {"symbol":"xxxx", "date":"40449", "high":49.5400,"low":48.5900,"close":49.3700},
        {"symbol":"xxxx", "date":"40450", "high":49.5300,"low":49.1100,"close":49.2900},
        {"symbol":"xxxx", "date":"40451", "high":49.8400,"low":48.7500,"close":49.0700},
        {"symbol":"xxxx", "date":"40452", "high":49.5300,"low":48.7810,"close":49.0100},
        {"symbol":"xxxx", "date":"40455", "high":49.0500,"low":48.2000,"close":48.4800},
        {"symbol":"xxxx", "date":"40456", "high":49.7600,"low":49.0000,"close":49.6600},
        {"symbol":"xxxx", "date":"40457", "high":49.7100,"low":48.9100,"close":49.2300},
        {"symbol":"xxxx", "date":"40458", "high":49.5400,"low":49.0000,"close":49.4100},
        {"symbol":"xxxx", "date":"40459", "high":49.8700,"low":49.0800,"close":49.7500},
        {"symbol":"xxxx", "date":"40462", "high":50.0200,"low":49.6200,"close":49.7700},
        {"symbol":"xxxx", "date":"40463", "high":50.2100,"low":49.2600,"close":50.1100},
        {"symbol":"xxxx", "date":"40464", "high":50.7500,"low":50.2800,"close":50.5200},
        {"symbol":"xxxx", "date":"40465", "high":50.6400,"low":50.1700,"close":50.4200},
        {"symbol":"xxxx", "date":"40466", "high":51.5000,"low":50.6300,"close":51.4900},
        {"symbol":"xxxx", "date":"40469", "high":51.7200,"low":51.3000,"close":51.3000},
        {"symbol":"xxxx", "date":"40470", "high":51.3000,"low":50.4200,"close":50.8200},
        {"symbol":"xxxx", "date":"40471", "high":51.5700,"low":50.8700,"close":51.1900},
        {"symbol":"xxxx", "date":"40472", "high":51.7101,"low":50.7900,"close":51.2900},
        {"symbol":"xxxx", "date":"40473", "high":51.6900,"low":51.2100,"close":51.6400},
        {"symbol":"xxxx", "date":"40476", "high":52.2300,"low":51.8500,"close":51.8900},
        {"symbol":"xxxx", "date":"40477", "high":52.1500,"low":51.4200,"close":52.0300},
        {"symbol":"xxxx", "date":"40478", "high":52.2300,"low":51.6600,"close":52.1900},
        {"symbol":"xxxx", "date":"40479", "high":52.4500,"low":51.8400,"close":52.3000},
        {"symbol":"xxxx", "date":"40480", "high":52.4900,"low":52.1698,"close":52.1800},
        {"symbol":"xxxx", "date":"40483", "high":52.7500,"low":51.9800,"close":52.2200},
        {"symbol":"xxxx", "date":"40484", "high":52.9300,"low":52.5750,"close":52.7800},
        {"symbol":"xxxx", "date":"40485", "high":53.0400,"low":52.3600,"close":53.0200},
        {"symbol":"xxxx", "date":"40486", "high":53.8614,"low":53.5000,"close":53.6700},
        {"symbol":"xxxx", "date":"40487", "high":53.8100,"low":53.5100,"close":53.6700},
        {"symbol":"xxxx", "date":"40490", "high":53.8300,"low":53.4499,"close":53.7375},
        {"symbol":"xxxx", "date":"40491", "high":54.0401,"low":53.2100,"close":53.4500},
        {"symbol":"xxxx", "date":"40492", "high":53.7700,"low":53.1000,"close":53.7150},
        {"symbol":"xxxx", "date":"40493", "high":53.4800,"low":52.6600,"close":53.3850},
        {"symbol":"xxxx", "date":"40494", "high":53.3672,"low":52.1100,"close":52.5100},
        {"symbol":"xxxx", "date":"40497", "high":52.8800,"low":52.2900,"close":52.3150},
        {"symbol":"xxxx", "date":"40498", "high":52.2462,"low":50.8500,"close":51.4500},
        {"symbol":"xxxx", "date":"40499", "high":51.8700,"low":51.3500,"close":51.6000},
        {"symbol":"xxxx", "date":"40500", "high":52.7900,"low":52.1300,"close":52.4300},
        {"symbol":"xxxx", "date":"40501", "high":52.5900,"low":52.1400,"close":52.4700},
        {"symbol":"xxxx", "date":"40504", "high":52.9100,"low":52.1700,"close":52.9100},
        {"symbol":"xxxx", "date":"40505", "high":52.4500,"low":51.7700,"close":52.0700},
        {"symbol":"xxxx", "date":"40506", "high":53.2500,"low":52.5600,"close":53.1200},
        {"symbol":"xxxx", "date":"40508", "high":53.1300,"low":52.6700,"close":52.7700},
        {"symbol":"xxxx", "date":"40511", "high":52.9000,"low":52.1000,"close":52.7300},
        {"symbol":"xxxx", "date":"40512", "high":52.7355,"low":51.8800,"close":52.0850},
        {"symbol":"xxxx", "date":"40513", "high":53.4600,"low":52.8400,"close":53.1900},
        {"symbol":"xxxx", "date":"40514", "high":53.8100,"low":53.2100,"close":53.7300},
        {"symbol":"xxxx", "date":"40515", "high":53.9400,"low":53.5000,"close":53.8700},
        {"symbol":"xxxx", "date":"40518", "high":53.9500,"low":53.6800,"close":53.8450},
        {"symbol":"xxxx", "date":"40519", "high":54.5200,"low":53.8200,"close":53.8800},
        {"symbol":"xxxx", "date":"40520", "high":54.1500,"low":53.6899,"close":54.0800},
        {"symbol":"xxxx", "date":"40521", "high":54.4400,"low":53.9500,"close":54.1350},
        {"symbol":"xxxx", "date":"40522", "high":54.5500,"low":54.0900,"close":54.4950},
        {"symbol":"xxxx", "date":"40525", "high":54.7400,"low":54.2700,"close":54.3000},
        {"symbol":"xxxx", "date":"40526", "high":54.6200,"low":54.2300,"close":54.3950},
        {"symbol":"xxxx", "date":"40527", "high":54.7000,"low":54.0300,"close":54.1600},
        {"symbol":"xxxx", "date":"40528", "high":54.6600,"low":54.0600,"close":54.5800},
        {"symbol":"xxxx", "date":"40529", "high":54.6800,"low":54.4100,"close":54.5200},
        {"symbol":"xxxx", "date":"40532", "high":54.7600,"low":54.1600,"close":54.5600},
        {"symbol":"xxxx", "date":"40533", "high":54.8900,"low":54.6200,"close":54.8900},
        {"symbol":"xxxx", "date":"40534", "high":54.9600,"low":54.7900,"close":54.8850},
        {"symbol":"xxxx", "date":"40535", "high":54.8700,"low":54.6100,"close":54.7420},
        {"symbol":"xxxx", "date":"40539", "high":54.8600,"low":54.2100,"close":54.7700},
        {"symbol":"xxxx", "date":"40540", "high":54.9200,"low":54.5500,"close":54.6700},
        {"symbol":"xxxx", "date":"40541", "high":54.9000,"low":54.7300,"close":54.7900},
        {"symbol":"xxxx", "date":"40542", "high":54.8000,"low":54.5500,"close":54.6600},
        {"symbol":"xxxx", "date":"40543", "high":54.6200,"low":54.2100,"close":54.4600},
        {"symbol":"xxxx", "date":"40546", "high":55.6900,"low":54.9500,"close":55.3100},
        {"symbol":"xxxx", "date":"40547", "high":55.5500,"low":54.9200,"close":55.2650},
        {"symbol":"xxxx", "date":"40548", "high":55.7600,"low":55.0700,"close":55.7400},
        {"symbol":"xxxx", "date":"40549", "high":55.9600,"low":55.6800,"close":55.9200},
        {"symbol":"xxxx", "date":"40550", "high":56.0500,"low":55.3200,"close":55.8700},
        {"symbol":"xxxx", "date":"40553", "high":56.1800,"low":55.5800,"close":56.0800},
        {"symbol":"xxxx", "date":"40554", "high":56.3600,"low":55.9500,"close":56.1600},
        {"symbol":"xxxx", "date":"40555", "high":56.5600,"low":56.2000,"close":56.5550},
        {"symbol":"xxxx", "date":"40556", "high":56.7300,"low":56.4100,"close":56.5750},
        {"symbol":"xxxx", "date":"40557", "high":57.0200,"low":56.4600,"close":57.0000},
        {"symbol":"xxxx", "date":"40561", "high":57.2300,"low":56.4900,"close":57.1600},
        {"symbol":"xxxx", "date":"40562", "high":57.2600,"low":56.3200,"close":56.5100},
        {"symbol":"xxxx", "date":"40563", "high":56.3500,"low":55.6800,"close":56.1100},
        {"symbol":"xxxx", "date":"40564", "high":56.4900,"low":55.6500,"close":55.6800},
        {"symbol":"xxxx", "date":"40567", "high":56.4600,"low":55.6800,"close":56.4500},
        {"symbol":"xxxx", "date":"40568", "high":56.5500,"low":56.0500,"close":56.5325},
        {"symbol":"xxxx", "date":"40569", "high":56.9800,"low":56.4500,"close":56.8300},
        {"symbol":"xxxx", "date":"40570", "high":57.3500,"low":56.9200,"close":57.1800},
        {"symbol":"xxxx", "date":"40571", "high":57.2200,"low":55.4700,"close":55.7300},
        {"symbol":"xxxx", "date":"40574", "high":56.1600,"low":55.3900,"close":56.0000},
        {"symbol":"xxxx", "date":"40575", "high":57.1800,"low":56.3600,"close":57.0500},
        {"symbol":"xxxx", "date":"40576", "high":57.1700,"low":56.8400,"close":56.9550},
        {"symbol":"xxxx", "date":"40577", "high":57.1400,"low":56.4000,"close":57.0575},
        {"symbol":"xxxx", "date":"40578", "high":57.4200,"low":56.9000,"close":57.3750},
        {"symbol":"xxxx", "date":"40581", "high":57.9700,"low":57.4000,"close":57.6500},
        {"symbol":"xxxx", "date":"40582", "high":58.0700,"low":57.5600,"close":58.0250},
        {"symbol":"xxxx", "date":"40583", "high":58.1200,"low":57.7500,"close":57.9300},
    ]
    dfSC = slib.sqlContext.createDataFrame(dSC)
    rdd = tr.cal(slib.sc, slib.sqlContext, dfSC)
    i = 0
    ladx =  rdd.collect()
    for each in ladx:
        #print each["date"], each["tr"], each["pdm1"], each["mdm1"], each["tr14"], each["adx"]
        #print each["date"], each["pdm14"], each["mdm14"]
        #print each["date"], each["pdi14"], each["mdi14"]
        #print each["di14diff"], each["di14sum"]
        print each["date"], each["dx"], each["adx"]
9a68ca4c50d0961fc7641ab64b336f1ca4b084cf
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author hongbin@youzan.com
import os
import math

from pyspark import SQLContext
from pyspark import SparkContext

import ta.adx as tr

local_path = os.path.dirname(__file__)

import bintrade_tests.sparklib as slib



def test_tr():
    dSC = [
        {"symbol":"xxxx", "date":"39855", "high":30.1983,"low":29.4072,"close":29.8720},
        {"symbol":"xxxx", "date":"39856", "high":30.2776,"low":29.3182,"close":30.2381},
        {"symbol":"xxxx", "date":"39857", "high":30.4458,"low":29.9611,"close":30.0996},
        {"symbol":"xxxx", "date":"39861", "high":29.3478,"low":28.7443,"close":28.9028},
        {"symbol":"xxxx", "date":"39862", "high":29.3477,"low":28.5566,"close":28.9225},
        {"symbol":"xxxx", "date":"39863", "high":29.2886,"low":28.4081,"close":28.4775},
        {"symbol":"xxxx", "date":"39864", "high":28.8334,"low":28.0818,"close":28.5566},
        {"symbol":"xxxx", "date":"39867", "high":28.7346,"low":27.4289,"close":27.5576},
        {"symbol":"xxxx", "date":"39868", "high":28.6654,"low":27.6565,"close":28.4675},
        {"symbol":"xxxx", "date":"39869", "high":28.8532,"low":27.8345,"close":28.2796},
        {"symbol":"xxxx", "date":"39870", "high":28.6356,"low":27.3992,"close":27.4882},
        {"symbol":"xxxx", "date":"39871", "high":27.6761,"low":27.0927,"close":27.2310},
        {"symbol":"xxxx", "date":"39874", "high":27.2112,"low":26.1826,"close":26.3507},
        {"symbol":"xxxx", "date":"39875", "high":26.8651,"low":26.1332,"close":26.3309},
        {"symbol":"xxxx", "date":"39876", "high":27.4090,"low":26.6277,"close":27.0333},
        {"symbol":"xxxx", "date":"39877", "high":26.9441,"low":26.1332,"close":26.2221},
        {"symbol":"xxxx", "date":"39878", "high":26.5189,"low":25.4307,"close":26.0144},
        {"symbol":"xxxx", "date":"39881", "high":26.5189,"low":25.3518,"close":25.4605},
        {"symbol":"xxxx", "date":"39882", "high":27.0927,"low":25.8760,"close":27.0333},
        {"symbol":"xxxx", "date":"39883", "high":27.6860,"low":26.9640,"close":27.4487},
        {"symbol":"xxxx", "date":"39884", "high":28.4477,"low":27.1421,"close":28.3586},
        {"symbol":"xxxx", "date":"39885", "high":28.5267,"low":28.0123,"close":28.4278},
        {"symbol":"xxxx", "date":"39888", "high":28.6654,"low":27.8840,"close":27.9530},
        {"symbol":"xxxx", "date":"39889", "high":29.0116,"low":27.9928,"close":29.0116},
        {"symbol":"xxxx", "date":"39890", "high":29.8720,"low":28.7643,"close":29.3776},
        {"symbol":"xxxx", "date":"39891", "high":29.8028,"low":29.1402,"close":29.3576},
        {"symbol":"xxxx", "date":"39892", "high":29.7529,"low":28.7127,"close":28.9107},
        {"symbol":"xxxx", "date":"39895", "high":30.6546,"low":28.9290,"close":30.6149},
        {"symbol":"xxxx", "date":"39896", "high":30.5951,"low":30.0304,"close":30.0502},
        {"symbol":"xxxx", "date":"39897", "high":30.7635,"low":29.3863,"close":30.1890},
        {"symbol":"xxxx", "date":"39898", "high":31.1698,"low":30.1365,"close":31.1202},
        {"symbol":"xxxx", "date":"39899", "high":30.8923,"low":30.4267,"close":30.5356},
        {"symbol":"xxxx", "date":"39902", "high":30.0402,"low":29.3467,"close":29.7827},
        {"symbol":"xxxx", "date":"39903", "high":30.6645,"low":29.9906,"close":30.0402},
        {"symbol":"xxxx", "date":"39904", "high":30.5951,"low":29.5152,"close":30.4861},
        {"symbol":"xxxx", "date":"39905", "high":31.9724,"low":30.9418,"close":31.4670},
        {"symbol":"xxxx", "date":"39906", "high":32.1011,"low":31.5364,"close":32.0515},
        {"symbol":"xxxx", "date":"39909", "high":32.0317,"low":31.3580,"close":31.9724},
        {"symbol":"xxxx", "date":"39910", "high":31.6255,"low":30.9220,"close":31.1302},
        {"symbol":"xxxx", "date":"39911", "high":31.8534,"low":31.1994,"close":31.6551},
        {"symbol":"xxxx", "date":"39912", "high":32.7055,"low":32.1308,"close":32.6360},
        {"symbol":"xxxx", "date":"39916", "high":32.7648,"low":32.2298,"close":32.5866},
        {"symbol":"xxxx", "date":"39917", "high":32.5766,"low":31.9724,"close":32.1903},
        {"symbol":"xxxx", "date":"39918", "high":32.1308,"low":31.5562,"close":32.1011},
        {"symbol":"xxxx", "date":"39919", "high":33.1215,"low":32.2101,"close":32.9335},
        {"symbol":"xxxx", "date":"39920", "high":33.1909,"low":32.6262,"close":33.0027},
        {"symbol":"xxxx", "date":"39923", "high":32.5172,"low":31.7642,"close":31.9425},
        {"symbol":"xxxx", "date":"39924", "high":32.4379,"low":31.7840,"close":32.3883},
        {"symbol":"xxxx", "date":"39925", "high":33.2207,"low":32.0912,"close":32.4875},
        {"symbol":"xxxx", "date":"39926", "high":32.8343,"low":32.1903,"close":32.8046},
        {"symbol":"xxxx", "date":"39927", "high":33.6169,"low":32.7648,"close":33.3792},
        {"symbol":"xxxx", "date":"39930", "high":33.7459,"low":33.0423,"close":33.4188},
        {"symbol":"xxxx", "date":"39931", "high":33.5971,"low":33.0522,"close":33.1711},
        {"symbol":"xxxx", "date":"39932", "high":34.0825,"low":33.3297,"close":33.6268},
        {"symbol":"xxxx", "date":"39933", "high":34.5780,"low":33.7260,"close":33.9638},
        {"symbol":"xxxx", "date":"39934", "high":34.2214,"low":33.6962,"close":34.0529},
        {"symbol":"xxxx", "date":"39937", "high":34.7663,"low":34.2015,"close":34.7266},
        {"symbol":"xxxx", "date":"39938", "high":34.7364,"low":34.3105,"close":34.6969},
        {"symbol":"xxxx", "date":"39939", "high":35.0140,"low":34.1420,"close":34.7067},
        {"symbol":"xxxx", "date":"39940", "high":34.9447,"low":33.5674,"close":33.8944},
        {"symbol":"xxxx", "date":"39941", "high":34.4194,"low":33.5674,"close":33.9142},
        {"symbol":"xxxx", "date":"39944", "high":34.3995,"low":33.3692,"close":34.0331},
        {"symbol":"xxxx", "date":"39945", "high":34.1619,"low":33.2108,"close":33.6169},
        {"symbol":"xxxx", "date":"39946", "high":33.3396,"low":32.6560,"close":32.7154},
        {"symbol":"xxxx", "date":"39947", "high":33.3892,"low":32.7747,"close":33.0819},
        {"symbol":"xxxx", "date":"39948", "high":33.5079,"low":32.9235,"close":33.0621},
        {"symbol":"xxxx", "date":"39951", "high":33.9638,"low":33.0820,"close":33.9240},
        {"symbol":"xxxx", "date":"39952", "high":34.4194,"low":33.6368,"close":34.0825},
        {"symbol":"xxxx", "date":"39953", "high":34.7167,"low":33.8647,"close":33.9638},
        {"symbol":"xxxx", "date":"39954", "high":33.9440,"low":33.0027,"close":33.3396},
        {"symbol":"xxxx", "date":"39955", "high":33.6567,"low":33.0127,"close":33.2306},
        {"symbol":"xxxx", "date":"39959", "high":34.5086,"low":32.8738,"close":34.4691},
        {"symbol":"xxxx", "date":"39960", "high":34.8653,"low":34.1124,"close":34.2312},
        {"symbol":"xxxx", "date":"39961", "high":34.7464,"low":33.8944,"close":34.6275},
        {"symbol":"xxxx", "date":"39962", "high":35.1725,"low":34.4393,"close":35.0536},
        {"symbol":"xxxx", "date":"39965", "high":36.1633,"low":35.2816,"close":36.0543},
        {"symbol":"xxxx", "date":"39966", "high":36.4504,"low":35.7768,"close":36.1038},
        {"symbol":"xxxx", "date":"39967", "high":36.0344,"low":35.5985,"close":35.9948},
        {"symbol":"xxxx", "date":"39968", "high":36.4504,"low":36.0048,"close":36.4011},
        {"symbol":"xxxx", "date":"39969", "high":36.7380,"low":36.0839,"close":36.4407},
        {"symbol":"xxxx", "date":"39972", "high":36.6091,"low":35.7868,"close":36.3318},
        {"symbol":"xxxx", "date":"39973", "high":36.8270,"low":36.3318,"close":36.6091},
        {"symbol":"xxxx", "date":"39974", "high":36.8369,"low":35.9552,"close":36.4803},
        {"symbol":"xxxx", "date":"39975", "high":36.8865,"low":36.4110,"close":36.4803},
        {"symbol":"xxxx", "date":"39976", "high":36.3802,"low":35.8659,"close":36.3119},
        {"symbol":"xxxx", "date":"39979", "high":35.9948,"low":35.2516,"close":35.5688},
        {"symbol":"xxxx", "date":"39980", "high":35.8561,"low":35.1923,"close":35.2220},
        {"symbol":"xxxx", "date":"39981", "high":35.8759,"low":35.1230,"close":35.5578},
        {"symbol":"xxxx", "date":"39982", "high":35.7273,"low":35.2418,"close":35.4896},
        {"symbol":"xxxx", "date":"39983", "high":36.0688,"low":35.6225,"close":35.8703},
        {"symbol":"xxxx", "date":"39986", "high":35.6025,"low":34.7394,"close":34.7990},
        {"symbol":"xxxx", "date":"39987", "high":34.9775,"low":34.4915,"close":34.7196},
        {"symbol":"xxxx", "date":"39988", "high":35.5827,"low":34.9974,"close":35.3049},
        {"symbol":"xxxx", "date":"39989", "high":36.0688,"low":34.9974,"close":35.9993},
        {"symbol":"xxxx", "date":"39990", "high":36.2076,"low":35.7612,"close":36.0786},
        {"symbol":"xxxx", "date":"39993", "high":36.4555,"low":35.8307,"close":36.1580},
        {"symbol":"xxxx", "date":"39994", "high":36.4359,"low":35.8207,"close":36.0885},
        {"symbol":"xxxx", "date":"39995", "high":36.5448,"low":36.0985,"close":36.1084},
        {"symbol":"xxxx", "date":"39996", "high":35.8107,"low":35.2156,"close":35.3149},
        {"symbol":"xxxx", "date":"40000", "high":35.2552,"low":34.7593,"close":35.1263},
        {"symbol":"xxxx", "date":"40001", "high":35.2058,"low":34.2335,"close":34.2534},
        {"symbol":"xxxx", "date":"40002", "high":34.5908,"low":34.0252,"close":34.4320},
        {"symbol":"xxxx", "date":"40003", "high":34.7296,"low":34.3725,"close":34.4915},
        {"symbol":"xxxx", "date":"40004", "high":34.8586,"low":34.2833,"close":34.6403},
        {"symbol":"xxxx", "date":"40007", "high":35.3149,"low":34.2038,"close":35.3049},
        {"symbol":"xxxx", "date":"40008", "high":35.5034,"low":35.1165,"close":35.4338},
        {"symbol":"xxxx", "date":"40009", "high":36.6342,"low":35.8505,"close":36.6243},
        {"symbol":"xxxx", "date":"40010", "high":37.1401,"low":36.4259,"close":37.0608},
        {"symbol":"xxxx", "date":"40011", "high":37.2691,"low":36.8722,"close":37.2592},
        {"symbol":"xxxx", "date":"40014", "high":37.6956,"low":37.3087,"close":37.6162},
        {"symbol":"xxxx", "date":"40015", "high":37.8742,"low":37.3385,"close":37.8742},
        {"symbol":"xxxx", "date":"40016", "high":38.3801,"low":37.8245,"close":38.1917},
        {"symbol":"xxxx", "date":"40017", "high":39.1736,"low":38.0825,"close":39.0347},
        {"symbol":"xxxx", "date":"40018", "high":39.0546,"low":38.4693,"close":38.7372},
        {"symbol":"xxxx", "date":"40021", "high":39.0944,"low":38.5586,"close":39.0347},
        {"symbol":"xxxx", "date":"40022", "high":39.2729,"low":38.6181,"close":39.1538},
        {"symbol":"xxxx", "date":"40023", "high":39.1141,"low":38.6876,"close":39.0249},
        {"symbol":"xxxx", "date":"40024", "high":39.8581,"low":39.1935,"close":39.2530},
        {"symbol":"xxxx", "date":"40025", "high":39.5330,"low":39.0944,"close":39.1339},
        {"symbol":"xxxx", "date":"40028", "high":39.7392,"low":39.3225,"close":39.7193},
        {"symbol":"xxxx", "date":"40029", "high":39.8680,"low":39.4513,"close":39.7193},
        {"symbol":"xxxx", "date":"40030", "high":39.8185,"low":39.1439,"close":39.4117},
        {"symbol":"xxxx", "date":"40031", "high":39.6102,"low":38.9257,"close":39.0644},
        {"symbol":"xxxx", "date":"40032", "high":39.7491,"low":39.2729,"close":39.5605},
        {"symbol":"xxxx", "date":"40035", "high":39.5309,"low":39.0249,"close":39.2827},
        {"symbol":"xxxx", "date":"40036", "high":39.1836,"low":38.7372,"close":38.9454},
        {"symbol":"xxxx", "date":"40037", "high":39.8978,"low":38.8860,"close":39.5506},
        {"symbol":"xxxx", "date":"40038", "high":39.8383,"low":39.3225,"close":39.7689},
        {"symbol":"xxxx", "date":"40039", "high":39.6399,"low":38.9653,"close":39.3126},
        {"symbol":"xxxx", "date":"40042", "high":38.6975,"low":38.1520,"close":38.1717},
        {"symbol":"xxxx", "date":"40043", "high":38.7968,"low":38.3007,"close":38.7174},
        {"symbol":"xxxx", "date":"40044", "high":39.0844,"low":38.2312,"close":38.9852},
        {"symbol":"xxxx", "date":"40045", "high":39.5209,"low":38.8860,"close":39.4415},
        {"symbol":"xxxx", "date":"40046", "high":40.0368,"low":39.4217,"close":39.9671},
        {"symbol":"xxxx", "date":"40049", "high":40.2450,"low":39.7788,"close":39.9276},
        {"symbol":"xxxx", "date":"40050", "high":40.4335,"low":39.9276,"close":40.0468},
        {"symbol":"xxxx", "date":"40051", "high":40.2757,"low":39.7589,"close":39.9771},
        {"symbol":"xxxx", "date":"40052", "high":40.1458,"low":39.3522,"close":40.0763},
        {"symbol":"xxxx", "date":"40053", "high":40.7509,"low":39.8383,"close":40.1161},
        {"symbol":"xxxx", "date":"40056", "high":39.8780,"low":39.4713,"close":39.7093},
        {"symbol":"xxxx", "date":"40057", "high":40.2649,"low":38.8464,"close":38.9653},
        {"symbol":"xxxx", "date":"40058", "high":39.1538,"low":38.7272,"close":38.9356},
        {"symbol":"xxxx", "date":"40059", "high":39.2532,"low":38.7075,"close":39.1935},
        {"symbol":"xxxx", "date":"40060", "high":40.0566,"low":39.2035,"close":40.0368},
        {"symbol":"xxxx", "date":"40064", "high":40.4534,"low":40.1359,"close":40.4137},
        {"symbol":"xxxx", "date":"40065", "high":40.9593,"low":40.2649,"close":40.7609},
        {"symbol":"xxxx", "date":"40066", "high":41.1973,"low":40.6717,"close":41.1478},
        {"symbol":"xxxx", "date":"40067", "high":41.2867,"low":40.8898,"close":41.1874},
        {"symbol":"xxxx", "date":"40070", "high":41.3759,"low":40.8799,"close":41.3461},
        {"symbol":"xxxx", "date":"40071", "high":41.6140,"low":41.2371,"close":41.4750},
        {"symbol":"xxxx", "date":"40072", "high":42.1397,"low":41.5049,"close":42.0802},
        {"symbol":"xxxx", "date":"40073", "high":42.3183,"low":41.8719,"close":42.0703},
        {"symbol":"xxxx", "date":"40074", "high":42.3193,"low":41.9122,"close":42.1406},
        {"symbol":"xxxx", "date":"40077", "high":42.3988,"low":41.8625,"close":42.2696},
        {"symbol":"xxxx", "date":"40078", "high":42.5279,"low":42.1404,"close":42.3492},
        {"symbol":"xxxx", "date":"40079", "high":42.8655,"low":42.0781,"close":42.1505},
        {"symbol":"xxxx", "date":"40080", "high":42.3888,"low":41.4752,"close":41.7732},
        {"symbol":"xxxx", "date":"40081", "high":41.7931,"low":41.2867,"close":41.4059},
        {"symbol":"xxxx", "date":"40084", "high":42.3591,"low":41.5944,"close":42.1107},
        {"symbol":"xxxx", "date":"40085", "high":42.3194,"low":41.7335,"close":41.9221},
        {"symbol":"xxxx", "date":"40086", "high":42.3019,"low":41.3065,"close":41.9519},
        {"symbol":"xxxx", "date":"40087", "high":41.8328,"low":40.7107,"close":40.7107},
        {"symbol":"xxxx", "date":"40088", "high":40.9590,"low":40.4327,"close":40.5916},
        {"symbol":"xxxx", "date":"40091", "high":41.1079,"low":40.5419,"close":40.9192},
        {"symbol":"xxxx", "date":"40092", "high":41.8427,"low":40.9298,"close":41.6440},
        {"symbol":"xxxx", "date":"40093", "high":41.7832,"low":41.4752,"close":41.7633},
        {"symbol":"xxxx", "date":"40094", "high":42.3193,"low":41.8427,"close":41.9420},
        {"symbol":"xxxx", "date":"40095", "high":42.2498,"low":41.7633,"close":42.1803},
        {"symbol":"xxxx", "date":"40098", "high":42.5676,"low":41.9817,"close":42.2696},
        {"symbol":"xxxx", "date":"40099", "high":42.4485,"low":42.0711,"close":42.2795},
        {"symbol":"xxxx", "date":"40100", "high":42.9876,"low":42.5476,"close":42.8555},
        {"symbol":"xxxx", "date":"40101", "high":42.8158,"low":42.5676,"close":42.7561},
        {"symbol":"xxxx", "date":"40102", "high":42.6867,"low":42.1803,"close":42.4781},
        {"symbol":"xxxx", "date":"40105", "high":42.9647,"low":42.2895,"close":42.9052},
        {"symbol":"xxxx", "date":"40106", "high":43.1533,"low":42.6370,"close":42.9151},
        {"symbol":"xxxx", "date":"40107", "high":43.5109,"low":42.7561,"close":42.8356},
        {"symbol":"xxxx", "date":"40108", "high":43.1832,"low":42.4881,"close":43.0044},
        {"symbol":"xxxx", "date":"40109", "high":43.4215,"low":42.7165,"close":42.8257},
        {"symbol":"xxxx", "date":"40112", "high":43.4513,"low":42.4881,"close":42.6867},
        {"symbol":"xxxx", "date":"40113", "high":42.8059,"low":41.8825,"close":42.0413},
        {"symbol":"xxxx", "date":"40114", "high":42.0214,"low":41.0086,"close":41.0980},
        {"symbol":"xxxx", "date":"40115", "high":41.8925,"low":41.2470,"close":41.7931},
        {"symbol":"xxxx", "date":"40116", "high":41.8526,"low":40.6313,"close":40.6711},
        {"symbol":"xxxx", "date":"40119", "high":41.2767,"low":40.3532,"close":40.8399},
        {"symbol":"xxxx", "date":"40120", "high":41.0285,"low":40.5519,"close":40.9689},
        {"symbol":"xxxx", "date":"40121", "high":41.5747,"low":40.9888,"close":41.0384},
        {"symbol":"xxxx", "date":"40122", "high":42.1009,"low":41.4852,"close":42.0512},
        {"symbol":"xxxx", "date":"40123", "high":42.3492,"low":41.7832,"close":42.2995},
        {"symbol":"xxxx", "date":"40126", "high":43.2129,"low":42.5775,"close":43.2030},
        {"symbol":"xxxx", "date":"40127", "high":43.4627,"low":43.0938,"close":43.3122},
        {"symbol":"xxxx", "date":"40128", "high":43.8286,"low":43.3024,"close":43.5903},
        {"symbol":"xxxx", "date":"40129", "high":43.8484,"low":43.2428,"close":43.3421},
        {"symbol":"xxxx", "date":"40130", "high":43.8286,"low":43.3221,"close":43.6995},
        {"symbol":"xxxx", "date":"40133", "high":44.3350,"low":43.8088,"close":44.1464},
        {"symbol":"xxxx", "date":"40134", "high":44.2854,"low":43.9378,"close":44.2854},
        {"symbol":"xxxx", "date":"40135", "high":44.1761,"low":43.7392,"close":44.0401},
        {"symbol":"xxxx", "date":"40136", "high":43.7690,"low":43.0442,"close":43.3520},
        {"symbol":"xxxx", "date":"40137", "high":43.2428,"low":42.9747,"close":43.1336},
        {"symbol":"xxxx", "date":"40140", "high":44.0868,"low":43.5506,"close":43.8286},
        {"symbol":"xxxx", "date":"40141", "high":43.8384,"low":43.4215,"close":43.6796},
        {"symbol":"xxxx", "date":"40142", "high":43.9080,"low":43.6995,"close":43.8683},
        {"symbol":"xxxx", "date":"40144", "high":43.5208,"low":42.5973,"close":43.2030},
        {"symbol":"xxxx", "date":"40147", "high":43.3122,"low":42.8059,"close":43.2528},
        {"symbol":"xxxx", "date":"40148", "high":43.9876,"low":43.5704,"close":43.6995},
        {"symbol":"xxxx", "date":"40149", "high":44.1761,"low":43.6697,"close":43.7591},
        {"symbol":"xxxx", "date":"40150", "high":44.1861,"low":43.5704,"close":43.5803},
        {"symbol":"xxxx", "date":"40151", "high":44.4144,"low":43.3520,"close":43.8088},
        {"symbol":"xxxx", "date":"40154", "high":43.9776,"low":43.5109,"close":43.6002},
        {"symbol":"xxxx", "date":"40155", "high":43.6896,"low":43.0540,"close":43.3341},
        {"symbol":"xxxx", "date":"40156", "high":43.8088,"low":43.0143,"close":43.7690},
        {"symbol":"xxxx", "date":"40157", "high":44.2257,"low":43.9279,"close":43.9876},
        {"symbol":"xxxx", "date":"40158", "high":44.2754,"low":43.6400,"close":43.8188},
        {"symbol":"xxxx", "date":"40161", "high":44.2854,"low":43.8782,"close":44.2357},
        {"symbol":"xxxx", "date":"40162", "high":44.3549,"low":43.8584,"close":43.9876},
        {"symbol":"xxxx", "date":"40163", "high":44.3846,"low":43.9776,"close":44.0469},
        {"symbol":"xxxx", "date":"40164", "high":43.8981,"low":43.4513,"close":43.5109},
        {"symbol":"xxxx", "date":"40165", "high":44.2446,"low":43.7671,"close":44.2246},
        {"symbol":"xxxx", "date":"40168", "high":44.8911,"low":44.4335,"close":44.7220},
        {"symbol":"xxxx", "date":"40169", "high":45.0502,"low":44.7916,"close":44.9905},
        {"symbol":"xxxx", "date":"40170", "high":45.3287,"low":44.9707,"close":45.3188},
        {"symbol":"xxxx", "date":"40171", "high":45.7366,"low":45.3586,"close":45.7366},
        {"symbol":"xxxx", "date":"40175", "high":46.0548,"low":45.6968,"close":45.9753},
        {"symbol":"xxxx", "date":"40176", "high":46.0052,"low":45.7466,"close":45.7863},
        {"symbol":"xxxx", "date":"40177", "high":46.0151,"low":45.7167,"close":45.9256},
        {"symbol":"xxxx", "date":"40178", "high":46.0301,"low":45.5078,"close":45.5078},
        {"symbol":"xxxx", "date":"40182", "high":46.2389,"low":46.0251,"close":46.1743},
        {"symbol":"xxxx", "date":"40183", "high":46.2538,"low":45.9157,"close":46.1743},
        {"symbol":"xxxx", "date":"40184", "high":46.3036,"low":45.8262,"close":45.8957},
        {"symbol":"xxxx", "date":"40185", "high":46.0251,"low":45.6769,"close":45.9256},
        {"symbol":"xxxx", "date":"40186", "high":46.3036,"low":45.6868,"close":46.3036},
        {"symbol":"xxxx", "date":"40189", "high":46.3931,"low":45.8759,"close":46.1146},
        {"symbol":"xxxx", "date":"40190", "high":45.8957,"low":45.2890,"close":45.5376},
        {"symbol":"xxxx", "date":"40191", "high":46.2439,"low":45.3685,"close":46.1046},
        {"symbol":"xxxx", "date":"40192", "high":46.2737,"low":45.9753,"close":46.1444},
        {"symbol":"xxxx", "date":"40193", "high":46.3036,"low":45.4083,"close":45.6073},
        {"symbol":"xxxx", "date":"40197", "high":46.3931,"low":45.7068,"close":46.3434},
        {"symbol":"xxxx", "date":"40198", "high":46.3572,"low":45.1896,"close":45.6769},
        {"symbol":"xxxx", "date":"40199", "high":46.1046,"low":45.0602,"close":45.2492},
        {"symbol":"xxxx", "date":"40200", "high":45.2392,"low":43.8069,"close":43.9263},
        {"symbol":"xxxx", "date":"40203", "high":44.3639,"low":43.8865,"close":44.0755},
        {"symbol":"xxxx", "date":"40204", "high":44.6524,"low":43.8169,"close":44.1152},
        {"symbol":"xxxx", "date":"40205", "high":44.6126,"low":43.7771,"close":44.4635},
        {"symbol":"xxxx", "date":"40206", "high":44.1949,"low":43.0908,"close":43.3194},
        {"symbol":"xxxx", "date":"40207", "high":43.7869,"low":42.4044,"close":42.5635},
        {"symbol":"xxxx", "date":"40210", "high":43.0515,"low":42.6530,"close":43.0310},
        {"symbol":"xxxx", "date":"40211", "high":43.5483,"low":42.8022,"close":43.4189},
        {"symbol":"xxxx", "date":"40212", "high":43.7372,"low":43.1901,"close":43.6576},
        {"symbol":"xxxx", "date":"40213", "high":43.4289,"low":42.3944,"close":42.3944},
        {"symbol":"xxxx", "date":"40214", "high":42.7923,"low":41.8969,"close":42.7524},
        {"symbol":"xxxx", "date":"40217", "high":42.9514,"low":42.4143,"close":42.4442},
        {"symbol":"xxxx", "date":"40218", "high":43.2797,"low":42.5337,"close":42.8818},
        {"symbol":"xxxx", "date":"40219", "high":43.0808,"low":42.5237,"close":42.7923},
        {"symbol":"xxxx", "date":"40220", "high":43.5582,"low":42.5337,"close":43.4388},
        {"symbol":"xxxx", "date":"40221", "high":43.6478,"low":42.9315,"close":43.5283},
        {"symbol":"xxxx", "date":"40225", "high":44.1152,"low":43.6179,"close":44.0854},
        {"symbol":"xxxx", "date":"40226", "high":44.3341,"low":44.0257,"close":44.3341},
        {"symbol":"xxxx", "date":"40227", "high":44.6921,"low":44.2146,"close":44.6126},
        {"symbol":"xxxx", "date":"40228", "high":44.8115,"low":44.3838,"close":44.5927},
        {"symbol":"xxxx", "date":"40231", "high":44.7916,"low":44.3241,"close":44.5032},
        {"symbol":"xxxx", "date":"40232", "high":44.5032,"low":43.7174,"close":43.9263},
        {"symbol":"xxxx", "date":"40233", "high":44.5529,"low":44.0854,"close":44.3739},
        {"symbol":"xxxx", "date":"40234", "high":44.4635,"low":43.5980,"close":44.3639},
        {"symbol":"xxxx", "date":"40235", "high":44.6225,"low":44.1649,"close":44.5230},
        {"symbol":"xxxx", "date":"40238", "high":45.2492,"low":44.7121,"close":45.1696},
        {"symbol":"xxxx", "date":"40239", "high":45.6073,"low":45.2094,"close":45.3089},
        {"symbol":"xxxx", "date":"40240", "high":45.5775,"low":45.1896,"close":45.3586},
        {"symbol":"xxxx", "date":"40241", "high":45.5675,"low":45.1596,"close":45.5078},
        {"symbol":"xxxx", "date":"40242", "high":46.2937,"low":45.7466,"close":46.1942},
        {"symbol":"xxxx", "date":"40245", "high":46.3931,"low":46.1942,"close":46.2837},
        {"symbol":"xxxx", "date":"40246", "high":46.8009,"low":46.1543,"close":46.5423},
        {"symbol":"xxxx", "date":"40247", "high":47.0298,"low":46.5523,"close":46.9203},
        {"symbol":"xxxx", "date":"40248", "high":47.0993,"low":46.7313,"close":47.0993},
        {"symbol":"xxxx", "date":"40249", "high":47.2784,"low":46.8507,"close":47.1093},
        {"symbol":"xxxx", "date":"40252", "high":47.1292,"low":46.6617,"close":46.9899},
        {"symbol":"xxxx", "date":"40253", "high":47.3579,"low":46.9800,"close":47.2884},
        {"symbol":"xxxx", "date":"40254", "high":47.6464,"low":47.2784,"close":47.4177},
        {"symbol":"xxxx", "date":"40255", "high":47.6265,"low":47.3480,"close":47.5768},
        {"symbol":"xxxx", "date":"40256", "high":47.7476,"low":47.1203,"close":47.2896},
        {"symbol":"xxxx", "date":"40259", "high":47.9069,"low":47.0505,"close":47.7177},
        {"symbol":"xxxx", "date":"40260", "high":48.0961,"low":47.5683,"close":48.0488},
        {"symbol":"xxxx", "date":"40261", "high":47.9667,"low":47.7078,"close":47.8173},
        {"symbol":"xxxx", "date":"40262", "high":48.3949,"low":47.6978,"close":47.7476},
        {"symbol":"xxxx", "date":"40263", "high":48.1260,"low":47.5385,"close":47.7974},
        {"symbol":"xxxx", "date":"40266", "high":48.1956,"low":47.8969,"close":48.0264},
        {"symbol":"xxxx", "date":"40267", "high":48.3451,"low":47.8571,"close":48.1858},
        {"symbol":"xxxx", "date":"40268", "high":48.2454,"low":47.8671,"close":47.9567},
        {"symbol":"xxxx", "date":"40269", "high":48.4944,"low":47.5883,"close":47.9567},
        {"symbol":"xxxx", "date":"40273", "high":48.5143,"low":47.9367,"close":48.4048},
        {"symbol":"xxxx", "date":"40274", "high":48.6936,"low":48.1858,"close":48.5442},
        {"symbol":"xxxx", "date":"40275", "high":48.6637,"low":48.1658,"close":48.4247},
        {"symbol":"xxxx", "date":"40276", "high":48.6139,"low":48.0363,"close":48.5343},
        {"symbol":"xxxx", "date":"40277", "high":48.8429,"low":48.4297,"close":48.8230},
        {"symbol":"xxxx", "date":"40280", "high":48.9923,"low":48.7334,"close":48.8629},
        {"symbol":"xxxx", "date":"40281", "high":49.1416,"low":48.6538,"close":49.1118},
        {"symbol":"xxxx", "date":"40282", "high":49.7093,"low":49.2910,"close":49.6993},
        {"symbol":"xxxx", "date":"40283", "high":49.9781,"low":49.6594,"close":49.9184},
        {"symbol":"xxxx", "date":"40284", "high":49.9084,"low":48.9923,"close":49.3209},
        {"symbol":"xxxx", "date":"40287", "high":49.4503,"low":48.6936,"close":49.2910},
        {"symbol":"xxxx", "date":"40288", "high":49.6694,"low":49.2213,"close":49.5400},
        {"symbol":"xxxx", "date":"40289", "high":49.9781,"low":49.5151,"close":49.8188},
        {"symbol":"xxxx", "date":"40290", "high":50.1474,"low":49.0520,"close":50.0976},
        {"symbol":"xxxx", "date":"40291", "high":50.3565,"low":49.8785,"close":50.3067},
        {"symbol":"xxxx", "date":"40294", "high":50.4362,"low":50.0876,"close":50.1972},
        {"symbol":"xxxx", "date":"40295", "high":50.2171,"low":49.0023,"close":49.1318},
        {"symbol":"xxxx", "date":"40296", "high":49.4205,"low":48.7732,"close":49.1616},
        {"symbol":"xxxx", "date":"40297", "high":50.1176,"low":49.4005,"close":50.0180},
        {"symbol":"xxxx", "date":"40298", "high":50.0778,"low":48.9923,"close":49.0296},
        {"symbol":"xxxx", "date":"40301", "high":49.9582,"low":49.2213,"close":49.7192},
        {"symbol":"xxxx", "date":"40302", "high":49.1118,"low":47.8770,"close":48.2256},
        {"symbol":"xxxx", "date":"40303", "high":48.2952,"low":47.4389,"close":47.9767},
        {"symbol":"xxxx", "date":"40304", "high":48.1161,"low":41.3746,"close":46.3734},
        {"symbol":"xxxx", "date":"40305", "high":46.6025,"low":44.0964,"close":45.2183},
        {"symbol":"xxxx", "date":"40308", "high":47.5982,"low":47.1103,"close":47.5683},
        {"symbol":"xxxx", "date":"40309", "high":48.1858,"low":47.0007,"close":47.5185},
        {"symbol":"xxxx", "date":"40310", "high":48.4545,"low":47.6978,"close":48.4147},
        {"symbol":"xxxx", "date":"40311", "high":48.5840,"low":47.5286,"close":47.6480},
        {"symbol":"xxxx", "date":"40312", "high":47.3194,"low":46.1842,"close":46.7319},
        {"symbol":"xxxx", "date":"40315", "high":47.0705,"low":45.8756,"close":46.8812},
        {"symbol":"xxxx", "date":"40316", "high":47.3791,"low":46.0249,"close":46.2340},
        {"symbol":"xxxx", "date":"40317", "high":46.4332,"low":45.3577,"close":45.8656},
        {"symbol":"xxxx", "date":"40318", "high":45.0889,"low":44.0632,"close":44.1628},
        {"symbol":"xxxx", "date":"40319", "high":45.4474,"low":43.3065,"close":44.6507},
        {"symbol":"xxxx", "date":"40322", "high":45.1337,"low":44.4516,"close":44.4714},
        {"symbol":"xxxx", "date":"40323", "high":44.5710,"low":43.0476,"close":44.5113},
        {"symbol":"xxxx", "date":"40324", "high":45.3776,"low":43.9338,"close":44.0134},
        {"symbol":"xxxx", "date":"40325", "high":45.6963,"low":44.8996,"close":45.6763},
        {"symbol":"xxxx", "date":"40326", "high":45.7958,"low":45.0092,"close":45.4075},
        {"symbol":"xxxx", "date":"40330", "high":46.0547,"low":44.9394,"close":44.9892},
        {"symbol":"xxxx", "date":"40331", "high":46.0847,"low":44.9394,"close":46.0547},
        {"symbol":"xxxx", "date":"40332", "high":46.5725,"low":45.8854,"close":46.4929},
        {"symbol":"xxxx", "date":"40333", "high":46.0945,"low":44.7478,"close":44.9021},
        {"symbol":"xxxx", "date":"40336", "high":45.2681,"low":44.0334,"close":44.0831},
        {"symbol":"xxxx", "date":"40337", "high":44.2923,"low":43.4060,"close":44.0034},
        {"symbol":"xxxx", "date":"40338", "high":44.7205,"low":43.5056,"close":43.6350},
        {"symbol":"xxxx", "date":"40339", "high":44.9296,"low":44.0532,"close":44.8798},
        {"symbol":"xxxx", "date":"40340", "high":45.3478,"low":44.4216,"close":45.3079},
        {"symbol":"xxxx", "date":"40343", "high":46.0448,"low":45.2183,"close":45.2980},
        {"symbol":"xxxx", "date":"40344", "high":46.5725,"low":45.2613,"close":46.5128},
        {"symbol":"xxxx", "date":"40345", "high":46.9410,"low":46.3037,"close":46.7020},
        {"symbol":"xxxx", "date":"40346", "high":46.9809,"low":46.4431,"close":46.8514},
        {"symbol":"xxxx", "date":"40347", "high":47.2298,"low":46.7509,"close":46.8906},
        {"symbol":"xxxx", "date":"40350", "high":47.5690,"low":46.2221,"close":46.4915},
        {"symbol":"xxxx", "date":"40351", "high":47.0303,"low":46.0426,"close":46.1324},
        {"symbol":"xxxx", "date":"40352", "high":46.3618,"low":45.5836,"close":45.9428},
        {"symbol":"xxxx", "date":"40353", "high":45.8829,"low":45.0948,"close":45.2444},
        {"symbol":"xxxx", "date":"40354", "high":45.5537,"low":44.8454,"close":45.1646},
        {"symbol":"xxxx", "date":"40357", "high":45.4440,"low":44.7057,"close":45.0050},
        {"symbol":"xxxx", "date":"40358", "high":44.3565,"low":42.9697,"close":43.2690},
        {"symbol":"xxxx", "date":"40359", "high":43.5683,"low":42.5407,"close":42.6106},
        {"symbol":"xxxx", "date":"40360", "high":42.8600,"low":41.6728,"close":42.4909},
        {"symbol":"xxxx", "date":"40361", "high":42.7218,"low":41.9920,"close":42.3711},
        {"symbol":"xxxx", "date":"40365", "high":43.2690,"low":42.1516,"close":42.5008},
        {"symbol":"xxxx", "date":"40366", "high":43.9075,"low":42.6006,"close":43.8577},
        {"symbol":"xxxx", "date":"40367", "high":44.2767,"low":43.5783,"close":44.0971},
        {"symbol":"xxxx", "date":"40368", "high":44.5261,"low":43.9774,"close":44.5161},
        {"symbol":"xxxx", "date":"40371", "high":44.9252,"low":44.3565,"close":44.6458},
        {"symbol":"xxxx", "date":"40372", "high":45.3941,"low":44.6957,"close":45.2245},
        {"symbol":"xxxx", "date":"40373", "high":45.7034,"low":45.1347,"close":45.4539},
        {"symbol":"xxxx", "date":"40374", "high":45.6335,"low":44.8853,"close":45.4938},
        {"symbol":"xxxx", "date":"40375", "high":45.5219,"low":44.1969,"close":44.2368},
        {"symbol":"xxxx", "date":"40378", "high":44.7057,"low":43.9973,"close":44.6159},
        {"symbol":"xxxx", "date":"40379", "high":45.1546,"low":43.7579,"close":45.1546},
        {"symbol":"xxxx", "date":"40380", "high":45.6535,"low":44.4563,"close":44.5361},
        {"symbol":"xxxx", "date":"40381", "high":45.8730,"low":45.1347,"close":45.6635},
        {"symbol":"xxxx", "date":"40382", "high":45.9927,"low":45.2744,"close":45.9528},
        {"symbol":"xxxx", "date":"40385", "high":46.3518,"low":45.8031,"close":46.3319},
        {"symbol":"xxxx", "date":"40386", "high":46.6112,"low":46.1024,"close":46.3119},
        {"symbol":"xxxx", "date":"40387", "high":46.4716,"low":45.7732,"close":45.9428},
        {"symbol":"xxxx", "date":"40388", "high":46.3020,"low":45.1447,"close":45.6036},
        {"symbol":"xxxx", "date":"40389", "high":45.9827,"low":44.9651,"close":45.7034},
        {"symbol":"xxxx", "date":"40392", "high":46.6811,"low":46.1025,"close":46.5614},
        {"symbol":"xxxx", "date":"40393", "high":46.5913,"low":46.1423,"close":46.3618},
        {"symbol":"xxxx", "date":"40394", "high":46.8806,"low":46.3918,"close":46.8287},
        {"symbol":"xxxx", "date":"40395", "high":46.8108,"low":46.4117,"close":46.7210},
        {"symbol":"xxxx", "date":"40396", "high":46.7409,"low":45.9428,"close":46.6511},
        {"symbol":"xxxx", "date":"40399", "high":47.0801,"low":46.6811,"close":46.9704},
        {"symbol":"xxxx", "date":"40400", "high":46.8407,"low":46.1723,"close":46.5639},
        {"symbol":"xxxx", "date":"40401", "high":45.8131,"low":45.1048,"close":45.2943},
        {"symbol":"xxxx", "date":"40402", "high":45.1347,"low":44.3465,"close":44.9352},
        {"symbol":"xxxx", "date":"40403", "high":44.9551,"low":44.6059,"close":44.6159},
        {"symbol":"xxxx", "date":"40406", "high":45.0050,"low":44.1969,"close":44.6957},
        {"symbol":"xxxx", "date":"40407", "high":45.6734,"low":44.9252,"close":45.2664},
        {"symbol":"xxxx", "date":"40408", "high":45.7133,"low":45.0050,"close":45.4440},
        {"symbol":"xxxx", "date":"40409", "high":45.3542,"low":44.4563,"close":44.7556},
        {"symbol":"xxxx", "date":"40410", "high":44.9252,"low":44.4363,"close":44.8154},
        {"symbol":"xxxx", "date":"40413", "high":45.2345,"low":44.3565,"close":44.3765},
        {"symbol":"xxxx", "date":"40414", "high":44.0173,"low":43.3638,"close":43.5484},
        {"symbol":"xxxx", "date":"40415", "high":44.1570,"low":43.1693,"close":43.9674},
        {"symbol":"xxxx", "date":"40416", "high":44.2168,"low":43.3987,"close":43.4386},
        {"symbol":"xxxx", "date":"40417", "high":44.0572,"low":42.8700,"close":43.9674},
        {"symbol":"xxxx", "date":"40420", "high":44.1470,"low":43.4985,"close":43.5085},
        {"symbol":"xxxx", "date":"40421", "high":43.7479,"low":43.0795,"close":43.3588},
        {"symbol":"xxxx", "date":"40422", "high":44.8055,"low":43.9674,"close":44.6558},
        {"symbol":"xxxx", "date":"40423", "high":45.1746,"low":44.6259,"close":45.1546},
        {"symbol":"xxxx", "date":"40424", "high":45.9129,"low":45.4440,"close":45.9029},
        {"symbol":"xxxx", "date":"40428", "high":45.9228,"low":45.5188,"close":45.5936},
        {"symbol":"xxxx", "date":"40429", "high":46.3419,"low":45.7133,"close":46.1423},
        {"symbol":"xxxx", "date":"40430", "high":46.5913,"low":46.2122,"close":46.3219},
        {"symbol":"xxxx", "date":"40431", "high":46.5614,"low":46.1423,"close":46.4915},
        {"symbol":"xxxx", "date":"40434", "high":47.2597,"low":46.8307,"close":47.1400},
        {"symbol":"xxxx", "date":"40435", "high":47.5890,"low":46.9704,"close":47.3395},
        {"symbol":"xxxx", "date":"40436", "high":47.6887,"low":47.0801,"close":47.6388},
        {"symbol":"xxxx", "date":"40437", "high":47.8683,"low":47.4293,"close":47.8284},
        {"symbol":"xxxx", "date":"40438", "high":48.1400,"low":47.7500,"close":47.9950},
        {"symbol":"xxxx", "date":"40441", "high":48.9300,"low":48.1101,"close":48.8299},
        {"symbol":"xxxx", "date":"40442", "high":49.1700,"low":48.6100,"close":48.8200},
        {"symbol":"xxxx", "date":"40443", "high":49.0210,"low":48.4200,"close":48.6900},
        {"symbol":"xxxx", "date":"40444", "high":49.1600,"low":48.3200,"close":48.6700},
        {"symbol":"xxxx", "date":"40445", "high":49.6900,"low":49.1500,"close":49.6600},
        {"symbol":"xxxx", "date":"40448", "high":49.7500,"low":49.3500,"close":49.3900},
        {"symbol":"xxxx", "date":"40449", "high":49.5400,"low":48.5900,"close":49.3700},
        {"symbol":"xxxx", "date":"40450", "high":49.5300,"low":49.1100,"close":49.2900},
        {"symbol":"xxxx", "date":"40451", "high":49.8400,"low":48.7500,"close":49.0700},
        {"symbol":"xxxx", "date":"40452", "high":49.5300,"low":48.7810,"close":49.0100},
        {"symbol":"xxxx", "date":"40455", "high":49.0500,"low":48.2000,"close":48.4800},
        {"symbol":"xxxx", "date":"40456", "high":49.7600,"low":49.0000,"close":49.6600},
        {"symbol":"xxxx", "date":"40457", "high":49.7100,"low":48.9100,"close":49.2300},
        {"symbol":"xxxx", "date":"40458", "high":49.5400,"low":49.0000,"close":49.4100},
        {"symbol":"xxxx", "date":"40459", "high":49.8700,"low":49.0800,"close":49.7500},
        {"symbol":"xxxx", "date":"40462", "high":50.0200,"low":49.6200,"close":49.7700},
        {"symbol":"xxxx", "date":"40463", "high":50.2100,"low":49.2600,"close":50.1100},
        {"symbol":"xxxx", "date":"40464", "high":50.7500,"low":50.2800,"close":50.5200},
        {"symbol":"xxxx", "date":"40465", "high":50.6400,"low":50.1700,"close":50.4200},
        {"symbol":"xxxx", "date":"40466", "high":51.5000,"low":50.6300,"close":51.4900},
        {"symbol":"xxxx", "date":"40469", "high":51.7200,"low":51.3000,"close":51.3000},
        {"symbol":"xxxx", "date":"40470", "high":51.3000,"low":50.4200,"close":50.8200},
        {"symbol":"xxxx", "date":"40471", "high":51.5700,"low":50.8700,"close":51.1900},
        {"symbol":"xxxx", "date":"40472", "high":51.7101,"low":50.7900,"close":51.2900},
        {"symbol":"xxxx", "date":"40473", "high":51.6900,"low":51.2100,"close":51.6400},
        {"symbol":"xxxx", "date":"40476", "high":52.2300,"low":51.8500,"close":51.8900},
        {"symbol":"xxxx", "date":"40477", "high":52.1500,"low":51.4200,"close":52.0300},
        {"symbol":"xxxx", "date":"40478", "high":52.2300,"low":51.6600,"close":52.1900},
        {"symbol":"xxxx", "date":"40479", "high":52.4500,"low":51.8400,"close":52.3000},
        {"symbol":"xxxx", "date":"40480", "high":52.4900,"low":52.1698,"close":52.1800},
        {"symbol":"xxxx", "date":"40483", "high":52.7500,"low":51.9800,"close":52.2200},
        {"symbol":"xxxx", "date":"40484", "high":52.9300,"low":52.5750,"close":52.7800},
        {"symbol":"xxxx", "date":"40485", "high":53.0400,"low":52.3600,"close":53.0200},
        {"symbol":"xxxx", "date":"40486", "high":53.8614,"low":53.5000,"close":53.6700},
        {"symbol":"xxxx", "date":"40487", "high":53.8100,"low":53.5100,"close":53.6700},
        {"symbol":"xxxx", "date":"40490", "high":53.8300,"low":53.4499,"close":53.7375},
        {"symbol":"xxxx", "date":"40491", "high":54.0401,"low":53.2100,"close":53.4500},
        {"symbol":"xxxx", "date":"40492", "high":53.7700,"low":53.1000,"close":53.7150},
        {"symbol":"xxxx", "date":"40493", "high":53.4800,"low":52.6600,"close":53.3850},
        {"symbol":"xxxx", "date":"40494", "high":53.3672,"low":52.1100,"close":52.5100},
        {"symbol":"xxxx", "date":"40497", "high":52.8800,"low":52.2900,"close":52.3150},
        {"symbol":"xxxx", "date":"40498", "high":52.2462,"low":50.8500,"close":51.4500},
        {"symbol":"xxxx", "date":"40499", "high":51.8700,"low":51.3500,"close":51.6000},
        {"symbol":"xxxx", "date":"40500", "high":52.7900,"low":52.1300,"close":52.4300},
        {"symbol":"xxxx", "date":"40501", "high":52.5900,"low":52.1400,"close":52.4700},
        {"symbol":"xxxx", "date":"40504", "high":52.9100,"low":52.1700,"close":52.9100},
        {"symbol":"xxxx", "date":"40505", "high":52.4500,"low":51.7700,"close":52.0700},
        {"symbol":"xxxx", "date":"40506", "high":53.2500,"low":52.5600,"close":53.1200},
        {"symbol":"xxxx", "date":"40508", "high":53.1300,"low":52.6700,"close":52.7700},
        {"symbol":"xxxx", "date":"40511", "high":52.9000,"low":52.1000,"close":52.7300},
        {"symbol":"xxxx", "date":"40512", "high":52.7355,"low":51.8800,"close":52.0850},
        {"symbol":"xxxx", "date":"40513", "high":53.4600,"low":52.8400,"close":53.1900},
        {"symbol":"xxxx", "date":"40514", "high":53.8100,"low":53.2100,"close":53.7300},
        {"symbol":"xxxx", "date":"40515", "high":53.9400,"low":53.5000,"close":53.8700},
        {"symbol":"xxxx", "date":"40518", "high":53.9500,"low":53.6800,"close":53.8450},
        {"symbol":"xxxx", "date":"40519", "high":54.5200,"low":53.8200,"close":53.8800},
        {"symbol":"xxxx", "date":"40520", "high":54.1500,"low":53.6899,"close":54.0800},
        {"symbol":"xxxx", "date":"40521", "high":54.4400,"low":53.9500,"close":54.1350},
        {"symbol":"xxxx", "date":"40522", "high":54.5500,"low":54.0900,"close":54.4950},
        {"symbol":"xxxx", "date":"40525", "high":54.7400,"low":54.2700,"close":54.3000},
        {"symbol":"xxxx", "date":"40526", "high":54.6200,"low":54.2300,"close":54.3950},
        {"symbol":"xxxx", "date":"40527", "high":54.7000,"low":54.0300,"close":54.1600},
        {"symbol":"xxxx", "date":"40528", "high":54.6600,"low":54.0600,"close":54.5800},
        {"symbol":"xxxx", "date":"40529", "high":54.6800,"low":54.4100,"close":54.5200},
        {"symbol":"xxxx", "date":"40532", "high":54.7600,"low":54.1600,"close":54.5600},
        {"symbol":"xxxx", "date":"40533", "high":54.8900,"low":54.6200,"close":54.8900},
        {"symbol":"xxxx", "date":"40534", "high":54.9600,"low":54.7900,"close":54.8850},
        {"symbol":"xxxx", "date":"40535", "high":54.8700,"low":54.6100,"close":54.7420},
        {"symbol":"xxxx", "date":"40539", "high":54.8600,"low":54.2100,"close":54.7700},
        {"symbol":"xxxx", "date":"40540", "high":54.9200,"low":54.5500,"close":54.6700},
        {"symbol":"xxxx", "date":"40541", "high":54.9000,"low":54.7300,"close":54.7900},
        {"symbol":"xxxx", "date":"40542", "high":54.8000,"low":54.5500,"close":54.6600},
        {"symbol":"xxxx", "date":"40543", "high":54.6200,"low":54.2100,"close":54.4600},
        {"symbol":"xxxx", "date":"40546", "high":55.6900,"low":54.9500,"close":55.3100},
        {"symbol":"xxxx", "date":"40547", "high":55.5500,"low":54.9200,"close":55.2650},
        {"symbol":"xxxx", "date":"40548", "high":55.7600,"low":55.0700,"close":55.7400},
        {"symbol":"xxxx", "date":"40549", "high":55.9600,"low":55.6800,"close":55.9200},
        {"symbol":"xxxx", "date":"40550", "high":56.0500,"low":55.3200,"close":55.8700},
        {"symbol":"xxxx", "date":"40553", "high":56.1800,"low":55.5800,"close":56.0800},
        {"symbol":"xxxx", "date":"40554", "high":56.3600,"low":55.9500,"close":56.1600},
        {"symbol":"xxxx", "date":"40555", "high":56.5600,"low":56.2000,"close":56.5550},
        {"symbol":"xxxx", "date":"40556", "high":56.7300,"low":56.4100,"close":56.5750},
        {"symbol":"xxxx", "date":"40557", "high":57.0200,"low":56.4600,"close":57.0000},
        {"symbol":"xxxx", "date":"40561", "high":57.2300,"low":56.4900,"close":57.1600},
        {"symbol":"xxxx", "date":"40562", "high":57.2600,"low":56.3200,"close":56.5100},
        {"symbol":"xxxx", "date":"40563", "high":56.3500,"low":55.6800,"close":56.1100},
        {"symbol":"xxxx", "date":"40564", "high":56.4900,"low":55.6500,"close":55.6800},
        {"symbol":"xxxx", "date":"40567", "high":56.4600,"low":55.6800,"close":56.4500},
        {"symbol":"xxxx", "date":"40568", "high":56.5500,"low":56.0500,"close":56.5325},
        {"symbol":"xxxx", "date":"40569", "high":56.9800,"low":56.4500,"close":56.8300},
        {"symbol":"xxxx", "date":"40570", "high":57.3500,"low":56.9200,"close":57.1800},
        {"symbol":"xxxx", "date":"40571", "high":57.2200,"low":55.4700,"close":55.7300},
        {"symbol":"xxxx", "date":"40574", "high":56.1600,"low":55.3900,"close":56.0000},
        {"symbol":"xxxx", "date":"40575", "high":57.1800,"low":56.3600,"close":57.0500},
        {"symbol":"xxxx", "date":"40576", "high":57.1700,"low":56.8400,"close":56.9550},
        {"symbol":"xxxx", "date":"40577", "high":57.1400,"low":56.4000,"close":57.0575},
        {"symbol":"xxxx", "date":"40578", "high":57.4200,"low":56.9000,"close":57.3750},
        {"symbol":"xxxx", "date":"40581", "high":57.9700,"low":57.4000,"close":57.6500},
        {"symbol":"xxxx", "date":"40582", "high":58.0700,"low":57.5600,"close":58.0250},
        {"symbol":"xxxx", "date":"40583", "high":58.1200,"low":57.7500,"close":57.9300},
    ]
    dfSC = slib.sqlContext.createDataFrame(dSC)
    rdd = tr.cal(slib.sc, slib.sqlContext, dfSC)
    i = 0
    ladx =  rdd.collect()
    for each in ladx:
        #print each["date"], each["tr"], each["pdm1"], each["mdm1"], each["tr14"], each["adx"]
        #print each["date"], each["pdm14"], each["mdm14"]
        #print each["date"], each["pdi14"], each["mdi14"]
        #print each["di14diff"], each["di14sum"]
        print each["date"], each["dx"], each["adx"]