日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

麦语言和python区别_麦语言编程教程之二:解决两大类问题

發(fā)布時(shí)間:2023/12/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 麦语言和python区别_麦语言编程教程之二:解决两大类问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

所有的編程都可以歸結(jié)為以下三類:

第一,表達(dá)式問(wèn)題。以當(dāng)前視角,給出變量的計(jì)算公式。所謂的當(dāng)前視角,就是不考慮位置關(guān)系,把那個(gè)位置當(dāng)作是當(dāng)前位置。事實(shí)上,前面那張表中任何一個(gè)方格的數(shù)據(jù),都是把這個(gè)方格所在列當(dāng)成當(dāng)前K線來(lái)解讀的。

第二,邏輯判斷問(wèn)題。其實(shí)可以歸結(jié)成表達(dá)式問(wèn)題,但是考慮到邏輯判斷比較重要,而且和純計(jì)算數(shù)值的表達(dá)式略有些不同的,所以獨(dú)立出來(lái)。

第三,定位問(wèn)題。只有一個(gè)位置不需要確定,那就是當(dāng)前,這里說(shuō)的當(dāng)前,是K線圖上最后一根K線,不是前面說(shuō)的當(dāng)前視角。定位的結(jié)果是得到歷史某個(gè)位置到當(dāng)前的距離。定位的目的是到那個(gè)歷史位置去取值,可以是邏輯值,也可以是數(shù)據(jù)值。當(dāng)然定位還有另外一個(gè)作用,就是畫線,這種情況我們之后再討論。

表達(dá)式問(wèn)題和邏輯判斷問(wèn)題

這兩個(gè)問(wèn)題都是比較簡(jiǎn)單的。關(guān)鍵點(diǎn)是以當(dāng)前視角給出計(jì)算公式,不需要考慮計(jì)算公式之外的位置問(wèn)題。

****************************************************************************

先來(lái)一個(gè)簡(jiǎn)單的例子:求當(dāng)前K線最高價(jià)和最低價(jià)一半的價(jià)格。

這是一個(gè)和位置完全沒有關(guān)系的問(wèn)題,因?yàn)楫?dāng)前K線是不需要定位。所以我們可以直接定義變量名稱并給出計(jì)算公式。

HL:(H+L)/2;

****************************************************************************

如果在表達(dá)式中,某個(gè)數(shù)據(jù)需要通過(guò)定位從歷史中取,那么可以用定位問(wèn)題的解決方法取到這個(gè)數(shù)值,然后再與其他與位置無(wú)關(guān)的變量組成表達(dá)式。

例如,計(jì)算最高、最低價(jià),以及前一根K線收盤價(jià)的平均。

前一根K線收盤價(jià)定義為:

ZC:=REF(C,1);//定位問(wèn)題后面會(huì)有詳細(xì)說(shuō)明

HLC:(H+L+ZC)/3;

****************************************************************************

在一個(gè)區(qū)間內(nèi)計(jì)算數(shù)值,如果有系統(tǒng)函數(shù),則與定位無(wú)關(guān)。因?yàn)檫@個(gè)定位過(guò)程是有系統(tǒng)函數(shù)后臺(tái)完成的。

例如:最近5根K線收盤價(jià)的平均值。雖然理論上需要分別定位到前面4根歷史K線,然后取到收盤價(jià),再計(jì)算平均。但是由于有系統(tǒng)函數(shù)MA(),所以仍是在當(dāng)前K線上解決的,和定位沒有關(guān)系。

在當(dāng)前位置上解決區(qū)間問(wèn)題的系統(tǒng)函數(shù)我們總結(jié)如下:

所有的平均值的函數(shù)

所有的數(shù)理統(tǒng)計(jì)函數(shù)

HHV()、HV()、LLV()、LV()函數(shù)

COUNT()、SUM()函數(shù)

EVERY()、EXIT()函數(shù)

LOOP1()函數(shù)

定位問(wèn)題

所謂的定位問(wèn)題,就是在上面那張表里,確定數(shù)據(jù)存儲(chǔ)在哪個(gè)方格中。

取值的過(guò)程是使用REF函數(shù)實(shí)現(xiàn)的,前提是需要知道歷史方格與當(dāng)前位置的距離。

如果距離是動(dòng)態(tài)變化的,那么就需要根據(jù)方格滿足的條件,然后使用BARSLAST()函數(shù)動(dòng)態(tài)計(jì)算距離。

****************************************************************************

先看一個(gè)簡(jiǎn)單的例子:前面第3根K線的收盤價(jià)。與當(dāng)前位置的距離已經(jīng)確定了是3,所接定位取值的過(guò)程比較簡(jiǎn)單

CC:REF(C,3);//從C那一行與當(dāng)前距離為3的方格里把數(shù)據(jù)拿過(guò)來(lái),存貯到CC這個(gè)變量當(dāng)前方格中。

****************************************************************************

稍復(fù)雜的例子:分鐘周期上,在盤中取前一天的收盤價(jià)。

與前面一個(gè)例子不同,距離參數(shù)是動(dòng)態(tài)變化的,不是一個(gè)常量。

這種情況,我們需要用BARSLAST()根據(jù)方格滿足的條件計(jì)算動(dòng)態(tài)數(shù)值。

那用什么條件在分鐘周期上定位前一天最后一根K線呢?

因?yàn)槭亲詈笠桓鵎線,那么下一根K線就屬于第二天,所以日期在這兩根K線之間發(fā)生了切換。而且,只有最后一根和第一根K線才會(huì)滿足這個(gè)條件。

所以我們用條件COND:=DATE<>REF(DATE,1)可以定位到當(dāng)天第一根K線,那么前面一根就是前一天最后一根K線。

N:=BARSLAST(COND)+1;//前一天最后一根K線與當(dāng)前的距離。之所以加1,是因?yàn)锽ARSLAST(COND)定位到的是當(dāng)天第一根K線到當(dāng)前的距離。

有了這個(gè)動(dòng)態(tài)距離之后,就可以通過(guò)REF來(lái)取值了。

YC:REF(C,N);//從C那一行與當(dāng)前距離為N的方格里把數(shù)據(jù)拿過(guò)來(lái),存貯到Y(jié)C這個(gè)變量當(dāng)前方格中。隨著時(shí)間向右擴(kuò)展,N也隨之增加,但是定位到的昨天最后一根K線的絕對(duì)位置是不變的。

****************************************************************************

再深入思考,如果取前天最后一根K線收盤價(jià)怎么處理?其實(shí)過(guò)程是一樣的。

COND:=DATE<>REF(DATE,1);

N1:=BARSLAST(COND)+1;

N2:=REF(N1,N1);

兩個(gè)N1一樣嗎?先看第二個(gè)N1,它是距離參數(shù)。而第一個(gè)N1是存儲(chǔ)數(shù)值的變量。所以這兩個(gè)N1含義是不同的。如何理解?從N1那一行與當(dāng)前位置距離為N1(當(dāng)前位置方格中的數(shù)值)的方格里把數(shù)據(jù)拿過(guò)來(lái),放到N2當(dāng)前的方格里。

放到N2當(dāng)前方格中的數(shù)據(jù)代表什么意思呢?以當(dāng)前視角理解,也就是說(shuō)把存數(shù)據(jù)的方格看作是當(dāng)前位置,然后理解N1的含義:當(dāng)前位置左邊滿足第一個(gè)滿足條件COND的K線與當(dāng)前位置的距離加1。

換句話說(shuō),我們先用REF( ,N1)定位到昨天最后一根K線上,然后在這根K線上以當(dāng)前視角,再得到前一天與當(dāng)前視角這跟K線的距離。

再簡(jiǎn)單一點(diǎn)說(shuō),N1是昨天最后一根K線到當(dāng)前位置的距離,N2是前天最后一根K線到昨天最后一根K線的距離。

(這里說(shuō)的當(dāng)前位置,就是K線圖上最后一根K線。而當(dāng)前視角,是把歷史某根K線當(dāng)作最后一根K線看待的意思。)

N3:=N2+N1;//前天最后一根K線到當(dāng)前位置的距離。

YYC:REF(C,N3);//從C那一行與當(dāng)前距離為N3的方格里把數(shù)據(jù)拿過(guò)來(lái),存貯到Y(jié)YC這個(gè)變量當(dāng)前位置方格中。

其實(shí)這個(gè)問(wèn)題還有另外一種解決辦法:

COND:=DATE<>REF(DATE,1);

N1:=BARSLAST(COND)+1;//以當(dāng)前視角,當(dāng)前位置左邊滿足第一個(gè)滿足條件COND的K線與當(dāng)前位置的距離加1

YC:=REF(C,N1);

YYC:REF(YC,N1);//從YC行與當(dāng)前距離為N1的方格里把數(shù)據(jù)拿來(lái),存儲(chǔ)到Y(jié)YC這個(gè)變量當(dāng)前位置方格中。

兩種方法得到的結(jié)果是相同的,區(qū)別在于,一個(gè)是從C行取值,一個(gè)是從YC行取值,由于這兩行本身的含義不同,所以定位用的距離參數(shù)也有所差異。但是本質(zhì)都是一樣的。

****************************************************************************

既然討論定位的問(wèn)題,那么我們就要把問(wèn)題討論透徹,來(lái)解決一個(gè)終極問(wèn)題:求前面第10天的收盤價(jià)格。

解決方案如下:

COND:=DATE<>REF(DATE,1);

N1:=BARSLAST(COND)+1;

NN1:=REF(N1,N1);

N2:=N1+NN1;

NN2:=REF(N1,N2);

N3:=N2+NN2;

NN3:=REF(N1,N3);

N4:=N3+NN3;

NN4:=REF(N1,N4);

N5:=N4+NN4;

NN5:=REF(N1,N5);

N6:=N5+NN5;

NN6:=REF(N1,N6);

N7:=N6+NN6;

NN7:=REF(N1,N7);

N8:=N7+NN7;

NN8:=REF(N1,N8);

N9:=N8+NN8;

NN9:=REF(N1,N9);

N10:N9+NN9,NODRAW;

YC10:REF(C,N10);

我放棄用文字解釋的想法了,大家看圖吧。

你一定會(huì)問(wèn),100天也要這么求嗎?當(dāng)然不必要,之所以講前面的內(nèi)容,是為了讓大家理解最本質(zhì)的東西。

BARSLAST函數(shù)可以完全被SUMBARS函數(shù)代替。

BARSLAST表示最近一次滿足條件到當(dāng)前位置的距離。

SUMBARS表示左邊第N次滿足條件到當(dāng)前位置的距離,如果N=1,等效于BARSLAST。

還有一點(diǎn)差異,BARSLAST計(jì)算距離時(shí)不包含當(dāng)前這根K線,而SUMBARS則包含。

求10天前收盤價(jià)的問(wèn)題,還可以通過(guò)以下方式解決:

COND:=DATE<>REF(DATE,1);

N10:SUMBARS(COND,10),NODRAW;//與前面得到的數(shù)值是相同的。

YC10:REF(C,N10);

****************************************************************************

終極問(wèn)題解決了,接下來(lái)我們看一下另一個(gè)稍微簡(jiǎn)單一點(diǎn)的問(wèn)題:定位歷史區(qū)間。

涉及到從歷史區(qū)間內(nèi)取值的問(wèn)題,我們只需要定位到區(qū)間結(jié)束的位置,然后在這個(gè)問(wèn)題上,以當(dāng)前視角,把問(wèn)題轉(zhuǎn)換為表達(dá)式問(wèn)題就可以了。

看個(gè)例子:取昨天最高最低價(jià)。

COND:=DATE<>REF(DATE,1);//確定區(qū)間起點(diǎn)K線位置的條件,紅色外套

NN:=BARSLAST(COND)+1;//以當(dāng)前視角,計(jì)算區(qū)間起點(diǎn)到當(dāng)前位置的距離

HH:=HHV(H,NN);//以當(dāng)前視角,計(jì)算一天內(nèi)的最高價(jià)

HZ:REF(HH,NN);//從HH那一行與當(dāng)前距離為NN的方格里把數(shù)據(jù)拿過(guò)來(lái),存貯到HZ這個(gè)變量當(dāng)前方格中。

我們也可以完全從定位的角度解決這個(gè)問(wèn)題。也就是找到昨天最高價(jià)那個(gè)K線到當(dāng)前位置的距離。這里需要使用HHVBARS定位區(qū)間高點(diǎn)到區(qū)間結(jié)束位置的距離。

COND:=DATE<>REF(DATE,1);

NN:=BARSLAST(COND)+1;

NN2:=HHVBARS(H,NN);//左邊包含當(dāng)前K線在內(nèi)的NN根K線里,最高價(jià)那根K線到當(dāng)前的距離(不包含當(dāng)前K線)。

NN3:=REF(NN2,NN);//從NN2那一行距離當(dāng)前位置NN的方格中把數(shù)據(jù)拿過(guò)來(lái),存到NN3行當(dāng)前方格中。

NHZ:=NN3+NN;//昨天最高價(jià)到當(dāng)前的總距離

HZ:REF(H,NHZ);//從NH2那一行距離當(dāng)前位置NN的方格中把數(shù)據(jù)拿過(guò)來(lái),存到NH3行當(dāng)前方格中。

昨天最低價(jià)的道理是一樣的。

總結(jié)

以上是生活随笔為你收集整理的麦语言和python区别_麦语言编程教程之二:解决两大类问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。