小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

《飛狐公式編寫(xiě)基礎(chǔ)》和《通達(dá)信公式教程》(二)

 振波浪清 2009-09-14
《飛狐公式編寫(xiě)基礎(chǔ)》和《通達(dá)信公式教程》(二)
2008-12-20 09:51:03

新增函數(shù)應(yīng)用:如何遍歷板塊股票代碼

PHP代碼:--------------------------------------------------------------------------------
bk:='深圳A股';
variable:j=1,k=0,dm_len=0,lstr[6]='00000',blksum:=STKCOUNT(bk),dmstr[blksum]='';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
while j<=blksum do begin
  dm:=NumToStr(k,0);
  dm_len:=strlen(dm);
  dm:=lstr[dm_len]+dm;
  if stkinblock(dm,bk) then begin
    dmstr[j]:=dm;
    j:=j+1;
  end;

  k:=k+1;
end;

//以下是一些字符串函數(shù)及運(yùn)算的綜合應(yīng)用
EXPLAIN(1,dmstr[1]);  //在解盤(pán)中,輸出深圳A股第1只股票的代碼
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名稱(chēng)
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代碼及名稱(chēng)
EXPLAIN(1,'深圳A股第4只股票的代碼是:'+dmstr[4]);
EXPLAIN(1,dmstr[5]+'最后收盤(pán)價(jià):'+numtostr(close,2));
EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------
  如果您有編程的功底,上面代碼一看就明白,但對(duì)沒(méi)有編程經(jīng)驗(yàn)的狐友們來(lái)說(shuō)就不容易了。下面盡量詳細(xì)地對(duì)思路和公式代碼做一些解說(shuō),并對(duì)代碼進(jìn)行適當(dāng)擴(kuò)展。
  1、所謂遍歷股票代碼,就是能夠訪(fǎng)問(wèn)某板塊中所有的股票代碼,如果連訪(fǎng)問(wèn)都不能實(shí)現(xiàn),怎么做一些更加強(qiáng)大的諸如橫向統(tǒng)計(jì)、排序的功能?
  2、上面的公式代碼是以深圳A股板塊為例,我們看看深圳A股的股票代碼,它們都是很有規(guī)律的,000001、000002、...、000999、001696、001896,請(qǐng)注意這些代碼的特征:
 ?、俟善贝a要理解成字符串,而不是數(shù)值,如果是數(shù)值的話(huà),股票代碼就成了1、2、...、999、1696、1896。
  ②這些代碼如果轉(zhuǎn)換成數(shù)值,大體集中在某個(gè)數(shù)的范圍,如上面所示,深圳A股代碼的數(shù)值目前都小于1896,代碼的數(shù)值大多都是呈遞增1的規(guī)律,少量有跳躍的情況,比如000040跳到000042,000041不存在。
  因此,我們初步可以設(shè)計(jì)一個(gè)循環(huán)


PHP代碼:--------------------------------------------------------------------------------
j:=0;
while j<=1896 do
begin
  j:=j+1;
end;--------------------------------------------------------------------------------

  上面這段代碼,是個(gè)循環(huán),每次循環(huán)都執(zhí)行一次由begin和end所包圍起來(lái)的語(yǔ)句,這里只有一條語(yǔ)句即j:=j+1,目的讓變量j從1每次循環(huán)都遞增1,直到j(luò)=1896為止。
  j:=j+1這條賦值語(yǔ)句,初次接觸的話(huà)不大好理解,大意是這樣,右邊的j比如現(xiàn)在等于2,這條語(yǔ)句是讓右邊的j現(xiàn)有的數(shù)值加上1,然后再送回到變量j之中,執(zhí)行完這條語(yǔ)句后,j就由2遞增1變成了等于3。
  j:=j+1,看起來(lái)有點(diǎn)象計(jì)數(shù)器的功能吧?每循環(huán)一次,計(jì)數(shù)器就增加1,因此也可以稱(chēng)變量j為計(jì)數(shù)器(變量)。
  好了,思路敏捷的狐友,馬上就能想到,這個(gè)計(jì)數(shù)器會(huì)生成從0到1896總共1897個(gè)數(shù)值,如果進(jìn)行轉(zhuǎn)換,也就是把數(shù)值轉(zhuǎn)換成字符串,則深圳A股所有的股票代碼都包含在里面了。
  呵呵,的確是這樣,因此我們?cè)O(shè)計(jì)下面一個(gè)稍加改進(jìn)的循環(huán),來(lái)逼近我們要完成的任務(wù):

PHP代碼:--------------------------------------------------------------------------------
j:=0;
while j<=1896 do
begin
  dm:=NumToStr(j,0);  //把數(shù)值j轉(zhuǎn)換成字符串并賦值給變量dm,保留小數(shù)位數(shù)0
  j:=j+1;
end;
EXPLAIN(islastbar,dm); //當(dāng)處在最后一根K線(xiàn)位置時(shí),輸出字符串dm的內(nèi)容--------------------------------------------------------------------------------

  最后一行代碼,是用解盤(pán)函數(shù)輸出字符串變量dm的結(jié)果,我們可以在“解”中觀察,不過(guò)這里由于dm是單值變量,不是序列變量,只能保存最后的一次結(jié)果,因此只能觀察到結(jié)果是1896。

如果想觀察其它的結(jié)果,只好改循環(huán)首語(yǔ)句,比如:
while j<=1 do

 大家可以發(fā)現(xiàn)這些結(jié)果,還有一點(diǎn)小問(wèn)題,沒(méi)有前導(dǎo)的0,即我們要的是000001、0001896,而不是1、1896這樣的字符串,怎么辦呢?
  給它們的前面加上0就可以了,但加上0的個(gè)數(shù)有講究的,比如1在前面要加上5個(gè)0,1896前面只需加上2個(gè)0,很明顯,要加的0的個(gè)數(shù),等于6減字符串的字符個(gè)數(shù)。因此,設(shè)計(jì)公式代碼如下:


PHP代碼:--------------------------------------------------------------------------------
variable:lstr[6]='00000';//定義一個(gè)數(shù)組lstr[6],共6個(gè)元素,并讓所有6個(gè)元素初始都等于字符串'00000'

//下面對(duì)字符串?dāng)?shù)組lstr[]第2至第6個(gè)元素重新進(jìn)行賦值,以便巧妙應(yīng)用
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;
while j<=1896 do
begin
  dm:=NumToStr(j,0);  //把數(shù)值j轉(zhuǎn)換成字符串并賦值給變量dm,保留小數(shù)位數(shù)0
  dm_len:=strlen(dm); //求出dm的長(zhǎng)度,并賦值給變量dm_len
  dm:=lstr[dm_len]+dm;  //由dm的長(zhǎng)度,確定應(yīng)該給dm的前面加上多少個(gè)字符0
  j:=j+1;
end;
EXPLAIN(islastbar,dm); //當(dāng)處在最后一根K線(xiàn)位置時(shí),輸出字符串dm的內(nèi)容--------------------------------------------------------------------------------  對(duì)這行代碼稍加解釋?zhuān)篸m:=lstr[dm_len]+dm,如果某次循環(huán)右邊的dm等于'19',則它的字符串長(zhǎng)度為dm_len等于2,則這行代碼此時(shí)等價(jià)于dm:=lstr[2]+dm,而lstr[2]等于'0000',結(jié)果就是在'19'的前面加上4個(gè)字符'0'即成了'000019',然后再把'000019'賦值給dm,于是左邊的dm就等于'000019'

  到此為止,我們只是實(shí)現(xiàn)了所生成的字符串,可以讓深圳A股的代碼全部被包含在其中,但還有大量的“廢”字符串,我們要把沒(méi)用的字符串過(guò)濾掉。取出我們真正需要的?! ∫玫降暮瘮?shù) ?、賡tkinblock(dm,bk),函數(shù)注釋?zhuān)喝绻善贝adm從屬于板塊bk,則函數(shù)返回?cái)?shù)值1,否則返回?cái)?shù)值0 ?、跅l件控制語(yǔ)句IF cond THEN expr1 ELSE expr2,意思是:當(dāng)滿(mǎn)足 cond 條件的時(shí)候,執(zhí)行語(yǔ)句 expr1,否則執(zhí)行 expr2 語(yǔ)句  設(shè)計(jì)代碼如下:PHP代碼:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;
bk:='深圳A股'; //bk賦值為字符串'深圳A股'
while j<=1896 do
begin
  dm:=NumToStr(j,0);  //把數(shù)值j轉(zhuǎn)換成字符串并賦值給變量dm,保留小數(shù)位數(shù)0
  dm_len:=strlen(dm); //求出dm的長(zhǎng)度,并賦值給變量dm_len
  dm:=lstr[dm_len]+dm;  //由dm的長(zhǎng)度,確定應(yīng)該給dm的前面加上多少個(gè)字符0
  if stkinblock(dm,bk) then //如果股票代碼dm屬于bk,則執(zhí)行下面由begin、end包含的語(yǔ)句
  begin
    dm1:=dm;  //真正需要的股票代碼是這里的dm1
  end;
  j:=j+1;
end;
EXPLAIN(islastbar,dm1); //當(dāng)處在最后一根K線(xiàn)位置時(shí),輸出字符串dm1的內(nèi)容--------------------------------------------------------------------------------

公式代碼設(shè)計(jì)到這里似乎可以結(jié)束了,因?yàn)槲覀円慕Y(jié)果都可以生成了。其實(shí)還有改進(jìn)的余地: ?、賒m1只是個(gè)單值的字符串變量,它只能保存最后的結(jié)果,而不能保存所有的結(jié)果。這里考慮使用數(shù)組,數(shù)組可以自行定義很多個(gè)元素,讓每個(gè)元素保存一個(gè)結(jié)果?! 、谘h(huán)首的j<1896總覺(jué)得不對(duì)勁,不夠智能化,比如將來(lái)“深圳A股”板塊最后的代碼不是0001896,則這段公式代碼的結(jié)果就不對(duì)了?! ♂槍?duì)以上問(wèn)題,設(shè)計(jì)公式代碼如下: PHP代碼:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;  //記錄循環(huán)次數(shù)的計(jì)數(shù)器
k:=1;  //記錄股票代碼的個(gè)數(shù)的計(jì)數(shù)器
bk:='深圳A股'; //bk賦值為字符串'深圳A股'
blksum:=STKCOUNT(bk); //板塊所包含證券數(shù)量
variable:dmstr[blksum]='';  //定義一個(gè)字符串?dāng)?shù)組用于記錄股票代碼,元素個(gè)數(shù)為blksum,初始值為空
while k<=blksum do  //當(dāng)計(jì)數(shù)器k<=blksum時(shí),執(zhí)行以下循環(huán)
begin
  dm:=NumToStr(j,0);  //把數(shù)值j轉(zhuǎn)換成字符串并賦值給變量dm,保留小數(shù)位數(shù)0
  dm_len:=strlen(dm); //求出dm的長(zhǎng)度,并賦值給變量dm_len
  dm:=lstr[dm_len]+dm;  //由dm的長(zhǎng)度,確定應(yīng)該給dm的前面加上多少個(gè)字符0
  if stkinblock(dm,bk) then //如果股票代碼dm屬于bk,則執(zhí)行下面由begin、end包含的語(yǔ)句
  begin
    dmstr[k]:=dm;  //真正需要的股票代碼,記錄到字符串?dāng)?shù)組dmstr的第k個(gè)元素中
    k:=k+1;  //記錄找到的股票代碼的個(gè)數(shù)
  end;
  j:=j+1;  //記錄循環(huán)的次數(shù)
end;
EXPLAIN(islastbar,dmstr[1]); //當(dāng)處在最后一根K線(xiàn)位置時(shí),輸出深圳A股第1只股票的代碼--------------------------------------------------------------------------------

  有了以上公式,我們就可以把范圍擴(kuò)大,比如遍歷'A股板塊'的所有股票代碼,很簡(jiǎn)單,只需改一條語(yǔ)句,即把 bk:='深圳A股' 改成 bk:='A股板塊'?! 」酱a如下(且慢執(zhí)行,等下面的解說(shuō)):PHP代碼:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;  //記錄循環(huán)次數(shù)的計(jì)數(shù)器
k:=1;  //記錄股票代碼的個(gè)數(shù)的計(jì)數(shù)器
bk:='A股板塊'; //bk賦值為字符串'深圳A股'
blksum:=STKCOUNT(bk); //板塊所包含證券數(shù)量
variable:dmstr[blksum]='';  //定義一個(gè)字符串?dāng)?shù)組用于記錄股票代碼,元素個(gè)數(shù)為blksum,初始值為空
while k<=blksum do  //當(dāng)計(jì)數(shù)器k<=blksum時(shí),執(zhí)行以下循環(huán)
begin
  dm:=NumToStr(j,0);  //把數(shù)值j轉(zhuǎn)換成字符串并賦值給變量dm,保留小數(shù)位數(shù)0
  dm_len:=strlen(dm); //求出dm的長(zhǎng)度,并賦值給變量dm_len
  dm:=lstr[dm_len]+dm;  //由dm的長(zhǎng)度,確定應(yīng)該給dm的前面加上多少個(gè)字符0
  if stkinblock(dm,bk) then //如果股票代碼dm屬于bk,則執(zhí)行下面由begin、end包含的語(yǔ)句
  begin
    dmstr[k]:=dm;  //真正需要的股票代碼,記錄到字符串?dāng)?shù)組dmstr的第k個(gè)元素中
    k:=k+1;  //記錄找到的股票代碼的個(gè)數(shù)
  end;
  j:=j+1;  //記錄循環(huán)的次數(shù)
end;
EXPLAIN(islastbar,dmstr[1]); //當(dāng)處在最后一根K線(xiàn)位置時(shí),輸出字符串深圳A股第1只股票的代碼--------------------------------------------------------------------------------  假如你試圖執(zhí)行這段代碼,你會(huì)發(fā)現(xiàn)好慢哦~~  為何會(huì)這樣?因?yàn)閺纳钲贏股切換到上海A股的股票代碼時(shí),是從1896跳躍到600000,中間有508104次空循環(huán),這中間沒(méi)有一個(gè)代碼是真正的股票代碼,因此可以這樣來(lái)提高循環(huán)的執(zhí)行效率,在公式代碼中插入如下幾行代碼:if j=1896 then j:=599999;if j=600999 then break;  優(yōu)化后的代碼如下: PHP代碼:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;  //記錄循環(huán)次數(shù)的計(jì)數(shù)器
k:=1;  //記錄股票代碼的個(gè)數(shù)的計(jì)數(shù)器
bk:='A股板塊'; //bk賦值為字符串'深圳A股'
blksum:=STKCOUNT(bk); //板塊所包含證券數(shù)量
variable:dmstr[blksum]='';  //定義一個(gè)字符串?dāng)?shù)組用于記錄股票代碼,元素個(gè)數(shù)為blksum,初始值為空
while k<=blksum do  //當(dāng)計(jì)數(shù)器k<=blksum時(shí),執(zhí)行以下循環(huán)
begin
  dm:=NumToStr(j,0);  //把數(shù)值j轉(zhuǎn)換成字符串并賦值給變量dm,保留小數(shù)位數(shù)0
  dm_len:=strlen(dm); //求出dm的長(zhǎng)度,并賦值給變量dm_len
  dm:=lstr[dm_len]+dm;  //由dm的長(zhǎng)度,確定應(yīng)該給dm的前面加上多少個(gè)字符0
  if stkinblock(dm,bk) then //如果股票代碼dm屬于bk,則執(zhí)行下面由begin、end包含的語(yǔ)句
  begin
    dmstr[k]:=dm;  //真正需要的股票代碼,記錄到字符串?dāng)?shù)組dmstr的第k個(gè)元素中
    k:=k+1;  //記錄找到的股票代碼的個(gè)數(shù)
  end;
  if j=1896 then j:=599999;  //計(jì)數(shù)器j直接跳到到上海A股對(duì)應(yīng)的最小代碼
  if j=600999 then break;  //如果記錄到這個(gè)代碼則跳出循環(huán)
  j:=j+1;  //記錄循環(huán)的次數(shù)
end;

//以下是一些字符串函數(shù)及運(yùn)算的綜合應(yīng)用
EXPLAIN(1,dmstr[1]);  //在解盤(pán)中,輸出深圳A股第1只股票的代碼
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名稱(chēng)
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代碼及名稱(chēng)
EXPLAIN(1,'深圳A股第4只股票的代碼是:'+dmstr[4]);
EXPLAIN(1,dmstr[5]+'最后收盤(pán)價(jià):'+numtostr(close,2));
EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------  這行代碼 if j=600999 then break 有什么用?以防萬(wàn)一,如果有人改了市場(chǎng)規(guī)則,把500001之類(lèi)的股票計(jì)入上海A股的話(huà),這里的循環(huán)會(huì)出不來(lái)的,會(huì)造成電腦死循環(huán),飛狐長(zhǎng)時(shí)間沒(méi)有響應(yīng)。 以上公式代碼,只是個(gè)示例,效率不太高,如果能有個(gè)方法,直接給出板塊中所有的股票代碼,那就不需要這段公式代碼?! 〗o出這個(gè)示例,是想通過(guò)大致解剖整個(gè)公式代碼的設(shè)計(jì)過(guò)程,讓大家對(duì)循環(huán)、條件語(yǔ)句有個(gè)初步的認(rèn)識(shí)?! ∽詈?,給大家個(gè)練習(xí)的機(jī)會(huì):  1、修改上述代碼,計(jì)算“A股板塊”的成交量(這就是橫向統(tǒng)計(jì)了)  2、以上公式代碼,使用的是while循環(huán),有辦法改成fox循環(huán)嗎?(當(dāng)心,在修改代碼的過(guò)程中,如果不慎的話(huà),有可能造成死循環(huán),對(duì)于win9x操作系統(tǒng),也許很難退出,對(duì)于NT以上操作系統(tǒng),可以強(qiáng)行退出)  3、高級(jí)問(wèn)題:通過(guò)以上代碼,可以做出橫向排序,不過(guò)建議不要用代碼本身來(lái)實(shí)現(xiàn)排序(會(huì)很慢的),應(yīng)使用今天發(fā)布的新函數(shù)SORTPOS(X,D,N1,N2)來(lái)實(shí)現(xiàn)。  4、借用論壇的一個(gè)問(wèn)題:ff:=barslast(date=1030107);周期:=5;VERTLInE(ff=0 or ff=周期*1 or ff=周期*2 or ff=周期*3 or ff=周期*4 or ff=周期*5or ff=周期*6 or ff=周期*7 or ff=周期*8 or ff=周期*9 or ff=周期*10or ff=周期*11 or ff=周期*12 or ff=周期*13 or ff=周期*14 or ff=周期*15or ff=周期*16 or ff=周期*17 or ff=周期*18 or ff=周期*19 or ff=周期*20or ff=周期*21 or ff=周期*22 or ff=周期*23 or ff=周期*24 or ff=周期*25or ff=周期*26 or ff=周期*27 or ff=周期*28 or ff=周期*29 or ff=周期*30or ff=周期*31 or ff=周期*32 or ff=周期*33 or ff=周期*34 or ff=周期*35or ff=周期*36 or ff=周期*37 or ff=周期*38 or ff=周期*39 or ff=周期*40),POInTDOT;  把以上代碼,改成用循環(huán)表示?! ?、一個(gè)數(shù)列定義如下:f[1]=1,f[2]=1,f[n]=f[n-1]+f[n-2],你能用循環(huán)計(jì)算出f[10]等于多少嗎?這個(gè)數(shù)列是很有名的,許多股票預(yù)測(cè)都會(huì)用到它?! 『呛?,具體我也記不住了,誰(shuí)能告訴我它叫什么?

VBS入門(mén)續(xù):條件語(yǔ)句

VBS入門(mén)續(xù):條件語(yǔ)句

條件語(yǔ)句是程序中的最基本、最重要的語(yǔ)句之一,今天通過(guò)一個(gè)簡(jiǎn)單實(shí)例學(xué)習(xí)條件語(yǔ)句。

問(wèn)題:設(shè)計(jì)一個(gè)指標(biāo),除首日外,如果當(dāng)日漲停(設(shè)10%為漲停),則公式輸出1,否則輸出0。

公式代碼:
fc:=c;
n=1.099;
<%
vc=ffl.vardata("fc")
vn=ffl.vardata("n")
vs=ffl.vardata("js")

last=ubound(vc)

vc(0)=0
for i=last to 1 step -1
if vc(i)>=vn*vc(i-1) then
  vc(i)=1
else
  vc(i)=0
end if
next
ffl.vardata("fc")=vc
%>
fc




VBS程序條件語(yǔ)句部分解釋?zhuān)瑓㈤哣BS幫助文件,如下代碼為條件語(yǔ)句:

if vc(i)>=vn*vc(i-1) then  ----如果...則,這里的條件是判斷當(dāng)日漲停否
    vc(i)=1                             ----vc(i)賦值1
else                                      ----否則
    vc(i)=0                             ----vc(i)賦值0
end if                                   ----條件語(yǔ)句結(jié)束
 

飛狐基本函數(shù)簡(jiǎn)介之指標(biāo)線(xiàn)形描述函數(shù)

這一組中的函數(shù),全部不能單獨(dú)使用,一定要和其它指標(biāo)一起用才能發(fā)揮效力,因?yàn)樗鼈兌际敲枋銎渌笜?biāo)的。

指標(biāo)在主圖或副圖中的顯示,主要分為棒狀(柱狀)和線(xiàn)狀兩種。這一組中的函數(shù),全部是為了指揮指標(biāo)的顯示而設(shè)計(jì)的。

掌握好這組函數(shù),可以使指標(biāo)輸出顯示豐富多彩,色彩繽紛。

使用的一般形式:

指標(biāo),描述函數(shù)1,描述函數(shù)2,...;

一、

函數(shù): STICK

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 畫(huà)棒狀線(xiàn)

示例:   

STICK的英文是棍、棒的意思。

一般指標(biāo)的顯示,在軟件中默認(rèn)是線(xiàn)狀的。即如果不加指標(biāo)線(xiàn)形描述函數(shù),則指標(biāo)以線(xiàn)狀的形式輸出顯示。

如公式:

0.98*L;{主圖疊加}

如加上棒狀線(xiàn)的描述,則變成這樣了:

0.98*L,STICK;{主圖疊加}

一般的信號(hào),不加描述函數(shù),會(huì)成箭頭狀。加了STICK之后,就成棒狀了。

副圖1公式:  C>REF(C,1) AND C>REF(C,2);

副圖2公式:  C>REF(C,1) AND C>REF(C,2),STICK;

我個(gè)人調(diào)試公式的體會(huì),還是副圖1的顯示清楚,因?yàn)榭梢钥吹竭B續(xù)信號(hào)的出現(xiàn)。

二、

函數(shù): COLORSTICK

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 以零軸為中心畫(huà)彩色棒狀線(xiàn),零軸下為陰線(xiàn)顏色,零軸上為陽(yáng)線(xiàn)顏色

示例:

這樣零軸就如楚漢交界,涇渭分明了。

C-REF(C,1),COLORSTICK;{副圖指標(biāo)}

三、

函數(shù): LINESTICK

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 同時(shí)畫(huà)棒狀線(xiàn)與指標(biāo)線(xiàn)。

示例:   

LINE是線(xiàn),STICK是棒,LINESTICK自然是線(xiàn)棒一起顯示了。

A:=C-REF(C,1);

A,LINESTICK;{不作說(shuō)明,都認(rèn)為是副圖指標(biāo)}

那么,即想顯示指標(biāo)線(xiàn)和棒狀線(xiàn),又想以零軸為中心顯示彩色棒狀線(xiàn),怎么寫(xiě)公式呢?這樣行嗎?

A:=C-REF(C,1);

A,LINESTICK,COLORSTICK;

各位可以自己試一下,結(jié)論是否定的。結(jié)果是只有彩色柱,沒(méi)有指標(biāo)線(xiàn)了。

這樣我們初步可以得出一個(gè)結(jié)論:在同一個(gè)指標(biāo)中,有多個(gè)相同性質(zhì)的描述函數(shù)時(shí),軟件只認(rèn)最后一個(gè)描述函數(shù)。

即想顯示指標(biāo)線(xiàn)和棒狀線(xiàn),又想以零軸為中心顯示彩色棒狀線(xiàn),可以用分開(kāi)的兩句語(yǔ)句來(lái)達(dá)成目標(biāo):

A:=C-REF(C,1);

A,LINESTICK;

A,COLORSTICK;

四、

函數(shù): VOLSTICK

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 畫(huà)成交量柱狀線(xiàn)。

示例:   

這是專(zhuān)門(mén)為顯示成交量設(shè)計(jì)的。

股票軟件不同,顯示成交量的陰陽(yáng)線(xiàn)是很不同的??偟膩?lái)說(shuō),是根據(jù)價(jià)來(lái)定的,具體方法各有不同,很難說(shuō)哪種方法就好了,哪種方法就不好了。

飛狐中的方法是這樣的:今天的收盤(pán)價(jià)大于昨天的收盤(pán)價(jià),顯示陽(yáng)柱;小于等于則顯示陰柱。

五、

函數(shù): CROSSDOT

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 畫(huà)叉狀線(xiàn)或x狀線(xiàn)。

示例:   

呵呵,叉狀線(xiàn)和X狀線(xiàn)有什么區(qū)別?應(yīng)該是一樣的吧。

CROSS是交叉,DOT是點(diǎn)。

當(dāng)指標(biāo)線(xiàn)連續(xù)性較好時(shí),顯示交叉點(diǎn)比較順眼。連續(xù)性不好時(shí),看起來(lái)比較凌亂。

0.98*L,CROSSDOT;

MA(C,30),CROSSDOT;{主圖疊加}

六、

函數(shù): CIRCLEDOT

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 畫(huà)小圓圈線(xiàn)

示例:   

CIRCLE,圓圈。把CROSSDOT的X顯示換成圓圈的樣子。如果結(jié)合后面的COLOR函數(shù)一起用,可以畫(huà)出不同顏色的圈圈,有時(shí)也比較實(shí)用。

七、

函數(shù): POINTDOT

參數(shù): 無(wú)

返回: 無(wú)

說(shuō)明: 畫(huà)點(diǎn)狀線(xiàn)

示例:   

POINT是點(diǎn)、加點(diǎn)的意思。這個(gè)點(diǎn)狀線(xiàn),在K線(xiàn)顯示數(shù)不多的情況下,看起來(lái)太小了。正因如此,在K線(xiàn)顯示數(shù)較多的情況下,就可以彌補(bǔ)CIRCLEDOT顯示太大的缺陷。

0.98*L,CIRCLEDOT;

MA(C,30),POINTDOT;{主圖疊加}

八、

函數(shù): SHIFT

參數(shù): 1--127

返回: 無(wú)

說(shuō)明: 指標(biāo)線(xiàn)向后(向右)偏移x個(gè)周期

示例: ma1:ma(close,5),shift3;將MA1指標(biāo)線(xiàn)向后偏移3個(gè)周期

SHIFT,移位。這是個(gè)飛狐比較有特色的的特色函數(shù)。

以以下公式為例子:

MA(C,30);

MA(C,30),POINTDOT,SHIFT5;{主圖疊加}

要注意兩個(gè)問(wèn)題:

1、移位后的指標(biāo)顯示數(shù)值和不移位時(shí)的數(shù)值是不一樣了。移位了五個(gè)時(shí)間單位,就顯示五個(gè)時(shí)間單位之前的原數(shù)值。

2、所移位的周期數(shù),不能設(shè)為參數(shù)來(lái)調(diào)整。移位的最大周期數(shù)是127。如果寫(xiě)成SHIFT666,調(diào)試公式也能通過(guò),不過(guò)軟件自動(dòng)取了127來(lái)移位。

另外說(shuō)點(diǎn)題外話(huà)。

用SHIFT10之后,當(dāng)前日的指標(biāo)顯示的就是原10天前的指標(biāo)數(shù)值。也就是說(shuō),把最近十天的K線(xiàn)數(shù)據(jù),置之不理了。

從人的記憶的特征來(lái)看,越近發(fā)生的事,對(duì)目前的影響力就越大。這樣看,用SHIFT就一無(wú)是處了,因?yàn)樗鼟仐壛俗罱臄?shù)據(jù),而去找較早的數(shù)據(jù)。

從混沌學(xué)牽一發(fā)就能動(dòng)全身的觀點(diǎn)看,SHIFT就大有道理了。佛教中說(shuō)前世的因,后世的果,相差時(shí)間就長(zhǎng)得不好說(shuō)了。

這些討論一般難得見(jiàn)到。易股論壇中有位臺(tái)--灣的老兄,發(fā)了兩帖,來(lái)討論K線(xiàn)左移(或者說(shuō)是指標(biāo)線(xiàn)右移),我才留心了一下。巫山的朋友有體會(huì)的,不妨說(shuō)說(shuō)。

九、

函數(shù): LINETHICK

參數(shù): 0--7

返回: 無(wú)

說(shuō)明: 改變指標(biāo)線(xiàn)粗細(xì),LINETHICK0 表示不畫(huà)出指標(biāo)線(xiàn),不影響坐標(biāo),但可在頂部顯示數(shù)值。  

示例: ma1:ma(close,5),linethick3;

ma1:ma(close,5),linethick0;表示不畫(huà)出ma1指標(biāo)線(xiàn),不影響坐標(biāo),但可在頂部顯示ma1數(shù)值

THICK,厚的。LINETHICK就可以理解為線(xiàn)(棒)的粗細(xì)了。

V,STICK,LINETHICKN;

N分別取1、2、3、4、5、6、7,做七個(gè)副圖公式。

這個(gè)N也不能做成參數(shù)調(diào)整的。

LINETHICK0是非常常用的,因?yàn)橐粋€(gè)公式中指標(biāo)一多,顯示會(huì)很亂,把有些顯示去掉,就用這一招。

有時(shí)會(huì)碰到相反的情況,指標(biāo)線(xiàn)(柱)顯示不多,而頂部數(shù)值的顯示太多了,那么怎么畫(huà)出指標(biāo)線(xiàn),而又在頂部不顯示數(shù)值呢?

一般用STICKLINE(畫(huà)柱),PARTLINE(畫(huà)線(xiàn))等繪圖函數(shù)來(lái)解決。

PARTLINE(1,MA(C,30));{主圖疊加}

十、

函數(shù): COLOR

參數(shù): 000000--FFFFFF

返回: 無(wú)

說(shuō)明: 改變指標(biāo)線(xiàn)顏色。

常用: 黑色:colorblack 紅色:colorred  綠色:colorgreen 藍(lán)色:colorblue

    白色:colorwhite 灰色:colorgray 黃色:coloryellow 青色:colorcyan

    晶紅色:colormagenta 棕色:colorbrown

示例: ma1:ma(close,5),coloryellow; 或 ma1:ma(close,5),colorff0000;

附錄: 238種常用顏色代碼速查表

COLOR,顏色,色彩。是這組函數(shù)中最常用的一個(gè)。不但能定義指標(biāo)線(xiàn)(柱)的顏色,而且能定義頂部指標(biāo)文字的顏色--用LINETHICK0時(shí)也一樣。

顏色的種類(lèi)應(yīng)該夠用了。至于各指標(biāo)線(xiàn)(柱)之間的顏色搭配,實(shí)在是一種很藝術(shù)性的事。既要有美感,又要不觸目驚心,我只能憑感覺(jué)挑選,其它也沒(méi)有什么招數(shù)了。要是有學(xué)過(guò)美術(shù)的人來(lái)指點(diǎn)幾招就好了。

楓葉秋雨兄提供的“飛狐色彩值吸取器”,實(shí)在是好東西,給我們挑選顏色提供了很大的方便。
 
 

飛狐基本函數(shù)簡(jiǎn)介之行情函數(shù)

這些行情函數(shù)所取得的數(shù)據(jù),是我們所編寫(xiě)的公式的原材料。

如果說(shuō)公式是衣服,這些行情函數(shù)就是布。

有人會(huì)說(shuō)做衣服不一定要布,野草樹(shù)皮也可以做。對(duì),一個(gè)公式中不一定非有行情函數(shù)不可,但總感覺(jué)透風(fēng),缺點(diǎn)什么。

一、

函數(shù): OPEN

說(shuō)明: 取得該周期開(kāi)盤(pán)價(jià),也可簡(jiǎn)寫(xiě)為 O.

函數(shù): HIGH

說(shuō)明: 取得該周期最高價(jià),也可簡(jiǎn)寫(xiě)為 H.

函數(shù): LOW

說(shuō)明: 取得該周期最低價(jià),也可簡(jiǎn)寫(xiě)為 L.

函數(shù): CLOSE

說(shuō)明: 取得該周期收盤(pán)價(jià),也可簡(jiǎn)寫(xiě)為 C.

OPEN,打開(kāi)。HIGH,高度。LOW,低的。CLOSE,關(guān)閉、結(jié)束。

常言道,巧婦難為無(wú)米之炊。此四者,就是我們做價(jià)格指標(biāo)的“米”了。不同周期的K線(xiàn),均由此四者為原材料畫(huà)出。

(有人說(shuō),家里的米沒(méi)有味道,于是去割野菜,采野花,日子一長(zhǎng),又說(shuō)還是家里的米能填飽肚子。)

有人說(shuō),價(jià)、量、時(shí)、人是技術(shù)分析的四大要素,那么O、H、L、C便構(gòu)成了“價(jià)”的四大要素。

道氏理論,主要關(guān)注的是長(zhǎng)期趨勢(shì),所以,一般以CLOSE線(xiàn)為主要參考指標(biāo)。所取前期高、低點(diǎn),也是CLOSE線(xiàn)的高、低點(diǎn)。

人的心理,常以成敗論英雄。所以CLOSE作為一根K線(xiàn)中的“結(jié)局”,被視為價(jià)格四大要素中的最關(guān)鍵因素。此論似成通論,但有些短線(xiàn)炒手認(rèn)為,OPEN要比CLOSE更重要。股市本是無(wú)定論的地方,仁者見(jiàn)仁,智者見(jiàn)智,故不敢多作妄論。

這里隨便談些本人對(duì)未來(lái)函數(shù)和未來(lái)數(shù)據(jù)的看法。關(guān)于未來(lái)也者,在較為經(jīng)典的書(shū)上很少直接見(jiàn)到這種說(shuō)法,只是在網(wǎng)上見(jiàn)得多了,便有了些想法,說(shuō)出與大家共同探討。

如圖,一般帶公式平臺(tái)的股票軟件,有“公式檢測(cè)”這一項(xiàng),用來(lái)判斷公式中是否含有未來(lái)函數(shù)。

目前的信號(hào)的產(chǎn)生和保持,如果全依賴(lài)于之前的數(shù)據(jù),則可認(rèn)為產(chǎn)生信號(hào)的公式中,不含有未來(lái)函數(shù)和未來(lái)數(shù)據(jù)。

目前的信號(hào)的產(chǎn)生和保持,如果部分依賴(lài)于之后的數(shù)據(jù),則可認(rèn)為產(chǎn)生信號(hào)的公式中,含有未來(lái)函數(shù)和未來(lái)數(shù)據(jù)。

換句話(huà)說(shuō),如果公式中產(chǎn)生的信號(hào),隨著行情的發(fā)展,信號(hào)永遠(yuǎn)不變,則此公式就絕無(wú)“未來(lái)”之嫌疑;信號(hào)可能要逃、要變,則此公式中就有“未來(lái)”。

如果此定義成立,則可將“未來(lái)”分為兩種情況:

1、在一根K線(xiàn)(即時(shí)行情)中;

2、在多根K線(xiàn)(盤(pán)后)中。

在第一種情況中,以即時(shí)行情中的當(dāng)前日K線(xiàn)為例,除了O之外,其它H、L、C全有未來(lái)之嫌。因?yàn)樵谑毡P(pán)之前,拉高、打壓是司空見(jiàn)慣的事,誰(shuí)也不能保證H、L不會(huì)創(chuàng)出當(dāng)天的新高和新低,更不用說(shuō)C了。比如日線(xiàn)周期公式“C>REF(C,1);”,前一分鐘信號(hào)成立,后一分鐘可能信號(hào)就不成立了。這樣說(shuō)的話(huà),在日K中包括H、L、C的指標(biāo),就全有“未來(lái)”之嫌疑了。

還有就是引用進(jìn)來(lái)的信號(hào),比如引用了周K和月K指標(biāo),因?yàn)楫?dāng)前周K和月K還在變動(dòng)之中,所以也是未來(lái)數(shù)據(jù)。

在第二種情況中,因?yàn)樵诒P(pán)后,日K中的四大要素就沒(méi)有未來(lái)之可能了。在多K線(xiàn)中,典型的未來(lái)函數(shù)有兩個(gè):BACKSET、ZIG。這兩個(gè)未來(lái)函數(shù)到底未來(lái)到什么程度,到以后介紹時(shí)再說(shuō)。就算在盤(pán)后,除了周五之外,引用的周K指標(biāo)也是未來(lái)數(shù)據(jù);除了在月末,引用的月K指標(biāo)也是未來(lái)數(shù)據(jù)。



這樣說(shuō)的話(huà),到處是“未來(lái)”,我們何處適從?

實(shí)際上未來(lái)也者,并不是新問(wèn)題,而是老問(wèn)題,從有技術(shù)分析之日起,這個(gè)問(wèn)題就存在了,只是在經(jīng)典著作中,并不是以“未來(lái)”的字眼出現(xiàn)。

“我們所采取的交易風(fēng)格越保守,那么,耐心地等待趨勢(shì)反轉(zhuǎn)的驗(yàn)證信號(hào)就越為重要。到底需要等待多久呢?這就得從風(fēng)險(xiǎn)與報(bào)償兩個(gè)方面來(lái)權(quán)衡。如果我們選擇較為保守的交易風(fēng)格,寧愿等待趨勢(shì)反轉(zhuǎn)的驗(yàn)證信號(hào),那么,確實(shí)可能承擔(dān)較少的風(fēng)險(xiǎn);但是另一方面,我們從交易中取得的報(bào)償也可能減少了。等到趨勢(shì)反轉(zhuǎn)信號(hào)得到確認(rèn)的時(shí)候,獲利的空間也許已經(jīng)縮小了。”

(<日本蠟燭圖技術(shù)>P.159)

所以說(shuō)即時(shí)行情中的“未來(lái)”也一樣,體現(xiàn)的是技術(shù)分析中最古老的一個(gè)問(wèn)題。

而多K線(xiàn)中的未來(lái)數(shù)據(jù),是要好好注意的。如果在ZIG的低點(diǎn)買(mǎi)進(jìn),在ZIG的高點(diǎn)賣(mài)出,則是全世界最好的交易系統(tǒng)了--可惜是馬后炮,因?yàn)楫?dāng)時(shí)誰(shuí)也做不到這一點(diǎn)。但也不能說(shuō)BACKSET、ZIG就一無(wú)是處了,有時(shí)甚至是不可或缺的。刀劍可能自傷,也可用于殺敵。只要我們熟悉了BACKSET和ZIG的本質(zhì),就可以了解它們“未來(lái)”到什么程度,拿來(lái)用也是不妨的。至于不熟悉的,還是少用為妙。

二、

函數(shù): VOL

參數(shù): 無(wú)

說(shuō)明: 取得該周期成交量,也可簡(jiǎn)寫(xiě)為 V.

函數(shù): AMOUNT

參數(shù): 無(wú)

說(shuō)明: 取得該周期成交額

VOLUME,量。AMOUNT,數(shù)量、總計(jì)。

成交量系統(tǒng)默認(rèn)單位是手(一百股)。成交額系統(tǒng)默認(rèn)單位是元(A股和基金是人民幣、滬B股是美元、深B股是港元)。

成交量是僅次于價(jià)格的技術(shù)分析要素。成交額因?yàn)槔锩嬗袃r(jià)量因素,有些高手應(yīng)用時(shí)喜歡用之代替成交量。

成交金額萬(wàn)元:AMOUNT/10000,LINETHICK0;

成交量手:VOL,VOLSTICK;

流通盤(pán)萬(wàn)股:CAPITAL/100,LINETHICK0;

換手率:100*V/CAPITAL,LINETHICK0;



三、

函數(shù): ADVANCE

參數(shù): 無(wú)

說(shuō)明: 取得該周期上漲家數(shù)。(本函數(shù)僅對(duì)大盤(pán)有效)。

參數(shù): DECLINE

參數(shù): 無(wú)

說(shuō)明: 取得該周期下跌家數(shù)。(本函數(shù)僅對(duì)大盤(pán)有效)。

ADVANCE,前進(jìn)。DECLINE,下降。

用于上證指數(shù)和深圳成指。

A:=ADVANCE-DECLINE;

SUM(A,50);

這個(gè)線(xiàn)形狀與指數(shù)C線(xiàn)有些不同,反映的是不加權(quán)的情況。



四、

函數(shù): BUYVOL

參數(shù): 無(wú)

說(shuō)明: 取得主動(dòng)性買(mǎi)單量。 當(dāng)本筆成交為主動(dòng)性買(mǎi)盤(pán)時(shí),其數(shù)值等于成交量,否則為0. (本函數(shù)僅個(gè)股在分筆成交分析周期有效)  

函數(shù): SELLVOL

參數(shù): 無(wú)

說(shuō)明: 取得主動(dòng)性賣(mài)單量。當(dāng)本筆成交為主動(dòng)性賣(mài)盤(pán)時(shí),其數(shù)值等于成交量,否則為0. (本函數(shù)僅個(gè)股在分筆成交分析周期有效)  

BUY,買(mǎi)。SELL,賣(mài)。VOL,VOLUME,量。

在分筆成交分析周期中看:

主動(dòng)性買(mǎi)單量:BUYVOL;

主動(dòng)性賣(mài)單量:SELLVOL;

之和:BUYVOL+SELLVOL;

總成交量:V;

兩者之和必然為總成交量。所以說(shuō)每筆之成交量,不是主動(dòng)性買(mǎi)單量,就是主動(dòng)性之賣(mài)單量。

主動(dòng)性買(mǎi)單量代表多方的力量,主動(dòng)將掛在賣(mài)盤(pán)檔位的單子吃進(jìn),主動(dòng)性賣(mài)單量則反之,代表的是空方的力量。

至于莊家對(duì)倒誘空誘多之動(dòng)作,長(zhǎng)期看另當(dāng)別論,但在當(dāng)時(shí),確實(shí)也代表了多空之一方。

每日之SUM(BUYVOL,0)之類(lèi)的數(shù)據(jù),不能在其它周期中引用,要做成擴(kuò)展數(shù)據(jù)才可。



五、

函數(shù): ISBUYORDER

參數(shù): 無(wú)

說(shuō)明: 取得該成交是否為主動(dòng)性買(mǎi)單。當(dāng)本筆成交為主動(dòng)性買(mǎi)盤(pán)時(shí),返回1,否則為0. (本函數(shù)僅個(gè)股在分筆成交分析周期有效)  

ORDER,定單。BUYORDER,買(mǎi)單(不是請(qǐng)客吃飯后的買(mǎi)單?。?。

在分筆成交分析周期中可以看到,任一筆成交的單子,不是主動(dòng)買(mǎi)單,就是主動(dòng)賣(mài)單。

主動(dòng)買(mǎi)單:ISBUYORDER;

主動(dòng)賣(mài)單:NOT(ISBUYORDER)*0.5;

這也就是沒(méi)有ISSELLORDER函數(shù)的原因,因?yàn)橛肗OT(ISBUYORDER)就可以取得相同功能。



六、

函數(shù): BIDPRICE(N)

參數(shù): N取1--3,表示買(mǎi)盤(pán)檔位。

說(shuō)明: 取得委買(mǎi)1--委買(mǎi)3價(jià)格。(本函數(shù)僅個(gè)股在分筆成交分析周期有效)

示例: BIDPRICE(1)

    表示最高叫買(mǎi)價(jià)。

函數(shù): BIDVOL(N)

參數(shù): N取1--3,表示買(mǎi)盤(pán)檔位。

說(shuō)明: 取得委買(mǎi)1--委買(mǎi)3量。(本函數(shù)僅個(gè)股在分筆成交分析周期有效)

示例: BIDVOL(1)

    表示最高叫買(mǎi)量。

BID,出價(jià)、投標(biāo),這里是買(mǎi)進(jìn)報(bào)價(jià)的意思。PRICE,價(jià)格。

有人可能會(huì)說(shuō):圖中不是有委買(mǎi)8的單子么?呵呵,那是推算出來(lái)的,撤單了亦未可知。



七、

函數(shù): ASKPRICE(N)

參數(shù): N取1--3,表示賣(mài)盤(pán)檔位。

說(shuō)明: 取得委賣(mài)1--委賣(mài)3價(jià)格。(本函數(shù)僅個(gè)股在分筆成交分析周期有效)

示例: ASKPRICE(1)

      表示最低叫賣(mài)價(jià)。

函數(shù): ASKVOL(N)

參數(shù): N取1--3,表示賣(mài)盤(pán)檔位。

說(shuō)明: 取得委買(mǎi)1--委買(mǎi)3量。(本函數(shù)僅個(gè)股在分筆成交分析周期有效)

示例: ASKVOL(1)+ASKVOL(2)+ASKVOL(3)

      表示三檔賣(mài)盤(pán)量總和。  

ASK,詢(xún)問(wèn)、要求,這里是賣(mài)出報(bào)價(jià)的意思。

副圖公式一:

委買(mǎi)總量:BIDVOL(1)+BIDVOL(2)+BIDVOL(3);

委賣(mài)總量:ASKVOL(1)+ASKVOL(2)+ASKVOL(3);

副圖公式二:

賣(mài)一買(mǎi)一空檔:ASKPRICE(1)-BIDPRICE(1);



編僅個(gè)股在分筆成交分析周期有效的公式時(shí)要注意,編好了之后,公式的“禁用周期”就自動(dòng)設(shè)置為如圖的樣子。

如果以后要把這個(gè)公式修改為其它周期的公式時(shí),不可忘記把“禁用周期”中的設(shè)置改過(guò)來(lái),否則公式指標(biāo)輸出會(huì)沒(méi)有顯示

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多