您現在的位置: 南方財富網(wǎng) >> 股票知識 >> 炒股專(zhuān)題 >> 股票公式 >> 正文
南方財富搜索

飛狐股票公式如何使買(mǎi)入信號、賣(mài)出信號一一對應

2009-4-26 16:40:05   來(lái)源:不詳   佚名

    
   在設計公式時(shí),我們經(jīng)常遇到這樣的問(wèn)題,如何使買(mǎi)賣(mài)信號一一對應?
  比如下面的代碼:
input:n(26,5,300),p(2,0.1,10);
close;
mid : ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

tjb:=cross(close,lower);
tjs:=cross(upper,close);
drawicon(tjb,close,4); 
drawicon(tjs,close,5); 

圖示如下,可以看出,買(mǎi)入信號連續發(fā)出多次后,才出現賣(mài)出信號,賣(mài)出信號連續發(fā)出多次后,才發(fā)出買(mǎi)入信號。 

如何過(guò)濾連續的買(mǎi)入、賣(mài)出信號,使買(mǎi)入后只要沒(méi)有發(fā)出賣(mài)出信號,就不再發(fā)出買(mǎi)入信號;同樣,賣(mài)出后只要沒(méi)有出現買(mǎi)入信號,就不再發(fā)出賣(mài)出信號。即買(mǎi)入、賣(mài)出信號一一對應。
  容易想到的是使用過(guò)濾函數filter(),但這個(gè)函數是難以實(shí)現的,因為未來(lái)有多少個(gè)連續的買(mǎi)入(或賣(mài)出)信號是未知的。
  另一種方法是,從前一次賣(mài)出(或買(mǎi)入)信號開(kāi)始累加買(mǎi)入(或賣(mài)出)信號,如果累加次數等于1,則發(fā)出真正的買(mǎi)入(或賣(mài)出)信號。

  但這里還有一個(gè)問(wèn)題,如果首次信號是賣(mài)出信號的話(huà),也應該過(guò)濾,因為沒(méi)有買(mǎi)入哪來(lái)賣(mài)出?應讓首次信號是買(mǎi)入信號才合理。方法是,在第1根K線(xiàn)的位置,虛擬一個(gè)賣(mài)出信號。
  以下是實(shí)現上述想法的常規函數代碼:

input:n(26,5,300),p(2,0.1,10);
close;
mid : ma(close,n);
upper: mid + p*std(close,n);
lower: mid - p*std(close,n);

//以下為常規函數處理代碼//
tjb:=cross(close,lower);//初始買(mǎi)入信號,可換成其它任意買(mǎi)入條件
tjs:=cross(upper,close);//初始賣(mài)出信號,可換成其它任意賣(mài)出條件

{以下代碼,使買(mǎi)、賣(mài)信號一一對應}
tsb:=barssince(tjb);
tss:=barssince(tjs);
if tjs[datacount]<tjb[datacount] then begin
a:=setlbound(tjs,1);
tjs:=tjs or barpos=1;
end;
tjbuy:=count(tjb,barslast(tjs))=1 and tjb; //買(mǎi)入信號
tjsell:=count(tjs,barslast(tjb))=1 and tjs; //賣(mài)出信號

drawicon(tjbuy,low,4);
drawicon(tjsell,high,5);
圖示如下: 

(文章來(lái)源:南方財富 http://www.travelwithnise.com)

(責任編輯:張元緣)
    南方財富網(wǎng)聲明:股市資訊來(lái)源于合作媒體及機構,屬作者個(gè)人觀(guān)點(diǎn),僅供投資者參考,并不構成投資建議。投資者據此操作,風(fēng)險自擔。
商務(wù)進(jìn)行時(shí)
每日必讀
學(xué)院24小時(shí)排行
證券導讀
熱圖推薦

最近中文字幕高清免费大全8