一步一步教你寫股票走勢圖——K線圖(添加均線)

在開篇之前反肋,給大家出個小算法題屡限,一定要做哦猾蒂,因為既然你打算看本章節(jié)內(nèi)容了悠夯,那么這個小算法必須得會的喲!

有一組數(shù)竟稳,1属桦、2、3……99他爸、100聂宾,一共一百個數(shù),假設(shè)是ListA诊笤,現(xiàn)在將
ListA索引為0系谐、1、2讨跟、3纪他、4的數(shù)相加之和賦給ListB索引為4的數(shù)
ListA索引為1、2晾匠、3茶袒、4、5的數(shù)相加之和賦給ListB索引為5的數(shù) ……(以此類推)
ListA索引為95混聊、96弹谁、97、98句喜、99的數(shù)相加之和賦給ListB索引為99的數(shù)
讓你打印出ListB里面所有的數(shù)據(jù),ListB中前4位的值可以用0代替

趕緊動手試一試吧沟于,小算法一個哦咳胃,不難的!最好5分鐘之內(nèi)出答案哦旷太!

(片刻之后)展懈。销睁。。

想必大家都動手試過了吧存崖,有人已經(jīng)做好了冻记,有人還在琢磨呢,那得反思一下啦来惧,算法題很多大公司面試都會出冗栗,考驗?zāi)氵壿嬆芰Γ蛔愕娜丝臻e得惡補(bǔ)一下啊供搀,博主表示自己算法也不咋樣隅居,簡單點的還能應(yīng)付,稍微復(fù)雜點就歇菜咯葛虐!

我們簡單貼下代碼吧

        listA = new ArrayList<>();
        listB = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            listA.add(i, i);
        }
        for (int i = 0; i < 100; i++) {
            if (i >= 4) {
                sum = 0;
                listB.add(i, fund(i - 4, i));
            } else {
                listB.add(i, 0);
            }
        }
        for (int i = 0; i < 100; i++) {
            Log.e("OUT", listB.get(i) + "");
        }



private Integer fund(Integer a, Integer b) {
        for (int i = a; i <= b; i++) {
            sum += listA.get(i);
        }
        return sum;
    }

So Easy?是不是胎源!恍然大悟,似不似屿脐。那么這個小算法跟今天的內(nèi)容有什么關(guān)系呢涕蚤,我們今天研究的是k線圖添加均線圖,均線圖的計算就是上面的算法的诵,我們看下圖先万栅。

這里寫圖片描述

我們看MA5的那根線,一根理解了奢驯,其他也就懂了申钩。MA5是5日均線,從當(dāng)前天往前推5天(包含當(dāng)天)瘪阁,每天的收盤價之和除以5撒遣,得到當(dāng)天的MA5值,所以相當(dāng)于

ma5(5)=(1收+2收+3收+4收+5收)/5
ma5(6)=(2收+3收+4收+5收+6收)/5
……

一直到最后管跺,是不是跟上面的算法一模一樣义黎。

既然知道均線值怎么算了,那么久簡單了豁跑,下面就直接把算好的數(shù)據(jù)廉涕,放入到折線圖中即可啦!

 for (int i = 0, j = 0; i < mData.getKLineDatas().size(); i++, j++) {
            xVals.add(mData.getKLineDatas().get(i).date + "");
            barEntries.add(new BarEntry(mData.getKLineDatas().get(i).vol, i));
            candleEntries.add(new CandleEntry(i, mData.getKLineDatas().get(i).high, mData.getKLineDatas().get(i).low, mData.getKLineDatas().get(i).open, mData.getKLineDatas().get(i).close));
            if(i>=4){
                sum=0;
                line5Entries.add(new Entry(getSum(i - 4, i)/5,i));
            }
            if(i>=9){
                sum=0;
                line10Entries.add(new Entry(getSum(i - 9, i)/10,i));
            }
            if(i>=29){
                sum=0;
                line30Entries.add(new Entry(getSum(i - 29, i)/30,i));
            }

        }


     ArrayList<ILineDataSet> sets = new ArrayList<ILineDataSet>();
        sets.add(setMaLine(5,xVals, line5Entries));
        sets.add(setMaLine(10,xVals, line10Entries));
        sets.add(setMaLine(30, xVals, line30Entries));


        CombinedData combinedData=new CombinedData(xVals);
        LineData lineData=new LineData(xVals,sets);
        combinedData.setData(candleData);
        combinedData.setData(lineData);
        combinedchart.setData(combinedData);

setMaLine方法

  @NonNull
    private LineDataSet setMaLine(int ma,ArrayList<String> xVals, ArrayList<Entry> lineEntries) {
        LineDataSet lineDataSetMa = new LineDataSet(lineEntries, "ma"+ma);
        lineDataSetMa.setDrawValues(false);
        if(ma==5) {
            lineDataSetMa.setColor(Color.GREEN);
        }else if(ma==10){
            lineDataSetMa.setColor(Color.GRAY);
        }else{
            lineDataSetMa.setColor(Color.YELLOW);
        }
        lineDataSetMa.setLineWidth(1f);
        lineDataSetMa.setDrawCircles(false);
        lineDataSetMa.setAxisDependency(YAxis.AxisDependency.LEFT);
        lineDataSetMa.setHighlightEnabled(false);
        return lineDataSetMa;
    }

如果看代碼比較亂的艇拍,直接看demo即可狐蜕,均線圖部分相對來說比較簡單,不需要自定義功能模塊卸夕,只是單純的使用了MP庫的東西层释,有的公司甚至不需要客戶端進(jìn)行計算均值,服務(wù)端直接算好返回了快集,那就更簡單了贡羔,省去計算的模塊廉白。我們來試試看效果吧!

這里寫圖片描述

完美乖寒!如有問題猴蹂,歡迎留言!均線添加告一段落楣嘁,下面難點在于高亮和加載更多兩個模塊磅轻,這兩個模塊都還在研究中,說實話马澈,感覺還是有點難度的瓢省,只要大家給力的star了,那么樓主也會給力的研究并且開源的痊班!

demo更新地址https://github.com/AndroidJiang/StockChart
(求star)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勤婚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涤伐,更是在濱河造成了極大的恐慌馒胆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凝果,死亡現(xiàn)場離奇詭異祝迂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)器净,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門型雳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人山害,你說我怎么就攤上這事纠俭。” “怎么了浪慌?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵冤荆,是天一觀的道長。 經(jīng)常有香客問我权纤,道長钓简,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任汹想,我火速辦了婚禮外邓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘古掏。我一直安慰自己坐榆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布冗茸。 她就那樣靜靜地躺著席镀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夏漱。 梳的紋絲不亂的頭發(fā)上豪诲,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機(jī)與錄音挂绰,去河邊找鬼屎篱。 笑死,一個胖子當(dāng)著我的面吹牛葵蒂,可吹牛的內(nèi)容都是我干的交播。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼践付,長吁一口氣:“原來是場噩夢啊……” “哼秦士!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起永高,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤隧土,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后命爬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曹傀,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年饲宛,在試婚紗的時候發(fā)現(xiàn)自己被綠了皆愉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡艇抠,死狀恐怖幕庐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情练链,我是刑警寧澤翔脱,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站媒鼓,受9級特大地震影響届吁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绿鸣,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一疚沐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧潮模,春花似錦亮蛔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辣吃。三九已至,卻和暖如春芬探,著一層夾襖步出監(jiān)牢的瞬間神得,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工偷仿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留哩簿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓酝静,卻偏偏與公主長得像节榜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子别智,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 指標(biāo)概述 移動平均線(MA)具有趨勢的特性宗苍,它比較平穩(wěn),不像日K線會起起落落地震蕩亿遂。越長期的移動平均線浓若,越能表現(xiàn)穩(wěn)...
    股獨的和弦閱讀 6,090評論 0 8
  • 你的眼中有春與秋 勝過我見過愛過的一切山川與河流 ——沃特艾文兒 <...
    爛事病友閱讀 355評論 0 0
  • 我不想研究魚干的腌制了 我要去捉最鮮活的魚 通往小河的路消失在迷霧里 我太笨了 在尋找中花光了勇氣 在不甘中弄丟了...
    玉荑閱讀 181評論 0 0
  • 當(dāng)你喜歡一個人的時候挪钓,她的一舉一動一顰一笑都會記在心里,吃飯時會思念耳舅,走路時會惦記碌上。你的整顆心里滿滿都是她,所以你...
    MC小五閱讀 778評論 0 1
  • 一只狗的前世 到底是什么 它或許想過 也或許根本沒想過 人和人在探討 狗到底也沒有思想 狗與狗在探討 忠誠是否可以...
    冷冬年閱讀 519評論 2 11