您現在的位置: 南方財富網 >> 股票知識 >> 股票公式 >> 正文
南財搜索

飛狐股票公式:如何使買入信號、賣出信號一一對應

2013/9/3 16:13:31   來源:本站原創   佚名
    

飛狐公式:如何使買入信號、賣出信號一一對應

  在設計公式時,我們經常遇到這樣的問題,如何使買賣信號一一對應?

  比如下面的代碼:

  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);

  圖示如下,可以看出,買入信號連續發出多次后,才出現賣出信號,賣出信號連續發出多次后,才發出買入信號。

  如何過濾連續的買入、賣出信號,使買入后只要沒有發出賣出信號,就不再發出買入信號;同樣,賣出后只要沒有出現買入信號,就不再發出賣出信號。即買入、賣出信號一一對應。

  容易想到的是使用過濾函數filter(),但這個函數是難以實現的,因為未來有多少個連續的買入(或賣出)信號是未知的。

  另一種方法是,從前一次賣出(或買入)信號開始累加買入(或賣出)信號,如果累加次數等于1,則發出真正的買入(或賣出)信號。

  但這里還有一個問題,如果首次信號是賣出信號的話,也應該過濾,因為沒有買入哪來賣出?應讓首次信號是買入信號才合理。方法是,在第1根K線的位置,虛擬一個賣出信號。

  以下是實現上述想法的常規函數代碼:

  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);//初始賣出信號,可換成其它任意賣出條件

  {以下代碼,使買、賣信號一一對應}

  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; //買入信號

  tjsell:=count(tjs,barslast(tjb))=1 and tjs; //賣出信號

  drawicon(tjbuy,low,4);

  drawicon(tjsell,high,5);

  圖示如下:

(南方財富網SOUTHMONEY.COM)
    南方財富網聲明:股市資訊來源于合作媒體及機構,屬作者個人觀點,僅供投資者參考,并不構成投資建議。投資者據此操作,風險自擔。
延伸閱讀
商務進行時
每日必讀
學院24小時排行
證券導讀
熱圖推薦

關于南方財富網 -版權聲明誠聘英才廣告服務網站地圖友情鏈接
特此聲明:廣告商的言論與行為均與南方財富網無關
m.dnaopenstudio.com
南方財富網 © 版權所有 閩ICP備09035581號
免费大片一级a一级久久三,久久精品电影一区二区,欧美一级激情在线观看,精品国产乱码久久久久久108
亚洲精品在线看 | 亚洲日本一区二区三区在线观看 | 在线成年视频人网站 | 亚洲国产成a人v在线观看 | 亚洲制服丝袜另类中文字幕第一区 | 亚洲国产综合久久香蕉 |