指標腳本撰寫KDJ背離

  •   422 
  • 最後發表   Jack  2017 六月 06
Jack 發文於   2017/04/28

使用指標腳本撰寫KDJ背離

 

KDJ指標公式請查看下方程式馬腳本範例,

關於背離寫法,請參考連結文章,

 

操作步驟:

1. 新增【函數】腳本,命名為 deviate ,將下方函數範例腳本編譯完成。

2. 新增【指標】腳本,最後加入副圖指標,若副圖的柱圖 = 10 則J值背離;否則無背離。

 

圖片說明:

副圖的柱圖 = 10 則J值背離;否則無背離。

 

deviate 函數 範例腳本如下,來源自關於背離寫法文章:

//背離
input: price(numericsimple),index1(numericsimple),length(numericsimple);
if length<5
then raiseruntimeerror("計算期別請超過五期");

value1=linearregslope(price,length);
value2=linearregslope(index1,length);

if value1>0 and value2<0
then deviate=-1
else
  if value1<0 and value2>0
  then deviate=1
  else
    deviate=0;

 

KDJ指標範例腳本如下:

//KDJ指標
//
input: Length_KDJ(9,"KDJ天期"), RSVt(3), Kt(3), JType(0), Length(60,"背離天期");
variable: rsv(0), k(0), _d(0), j(0);

SetInputName(1, "天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

Stochastic(Length_KDJ, RSVt, Kt, rsv, k, _d);

if JType = 0 then
         j = 3 * k - 2 * _d
else
         j = 3 * _d - 2 * k;

//J值背離
if deviate(close,j,Length)=1 then plot1(10,"J值背離") else plot1(0,"J值背離");

 

以上,供參考,有問題歡迎詢問。

排序方式: 標準 | 最新
yingwei 發文於   2017/05/03

謝謝JACK:

因為直接套用無法使用(原本背離範例中RSI背離腳本好像也無法使用),我調整了一下,可以編譯完成,但仍然無法顯示出我要的圖示(如附圖),

再請您幫忙看一下是哪裡的問題,謝謝

 

J值背離:在高檔背離後J值下彎,在低檔背離後J值上彎,顯示:

 

//J值
input: Length(9), RSVt(3), Kt(3);
variable: rsv(0), k(0), _d(0), j(0);
SetInputName(1, "天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

Stochastic(Length, RSVt, Kt, rsv, k, _d);
j= 3 * k - 2 * _d;
plot1(J,"j值");

//J值背離
input:price(0),index1(9),length_J(9);
if length<5
then raiseruntimeerror("計算期別請超過五期");

value1=linearregslope(price,length);
value2=linearregslope(index1,length);

variable:deviate(0);
if value1>0 and value2<0
then deviate=-1
else
  if value1<0 and value2>0
  then deviate=1
  else
    deviate=0;
value3=J(9,3,3);
value4=J(9,3,3);
if deviate(high,value3,20)=-1 and J<J[1] then plot2(high,"高檔背離") ;//高檔背離後J值下彎
if deviate(low,value4,20)=1 and J>J[1] then plot3(low,"低檔背離") ;//低檔背離後J值上彎

 

Jack 發文於   2017/05/03

Hi yingwei 兄

請問你有按照我的操作步驟,去操作嗎?

1. 新增【函數】腳本,命名為 deviate ,將下方函數範例腳本編譯完成。

2. 新增【指標】腳本,最後加入副圖指標,若副圖的柱圖 = 10 則J值背離;否則無背離。

 

要先新增一個函數腳本唷~ 以上,再請您試試看,謝謝。

yingwei 發文於   2017/05/03

Hi Jack 大:

我有新增deviate函數腳本喔,

只是在指標的部分我想另外用紅綠箭頭來表示高檔背離後J值下彎及低檔背離後J值上彎

 

再麻煩您看一下囉,謝謝

Jack 發文於   2017/05/04

yingwei 兄:

謝謝說明,

另外請問一下,

您的指標腳本程式碼第29、30行

value3=J(9,3,3);
value4=J(9,3,3);

J 這個應該是函數腳本吧?

目前我編譯卡在這個地方,

是否可以提供 J 的函數腳本,不然我無法協助您除錯,以上,謝謝。

yingwei 發文於   2017/05/04

Hi Jack 大:

我在第8行有定義j= 3 * k - 2 * _d;

另外,J函數如下,

麻煩您了,謝謝

 

// XQ: J指標
//
input: Length(numericsimple), RSVt(numericsimple), Kt(numericsimple);
variable: rsv(0), k(0), _d(0), j(0);
SetInputName(1, "天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

Stochastic(Length, RSVt, Kt, rsv, k, _d);
j= 3 * k - 2 * _d;

Jack 發文於   2017/05/05

yingwei 兄:

謝謝回覆,我修改了以下事項

  • 因為有了 deviate 函數,故直接套用即可,無須再把背離的完整程式碼寫入指標腳本。
  • 因為指標腳本有寫 j 值的完整運算,故無需再另外寫 J 函數腳本。
  • 加入 j 值高檔、低檔 判斷。

 

繪圖設定記得做調整:

 

指標完整範例程式碼如下:

//J值
input: Length(9), RSVt(3), Kt(3), _highJ(80, "j值高檔"), _LowJ(20, "j值低檔"), 
       price(0),index1(9),length_J(9);
variable: rsv(0), k(0), _d(0), j(0);
SetInputName(1, "天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

Stochastic(Length, RSVt, Kt, rsv, k, _d);
j= 3 * k - 2 * _d;
plot1(J,"j值");

//J值背離
if length<5
then raiseruntimeerror("計算期別請超過五期");

if deviate(high,j,20)=-1 and j<j[1] and j >= _highJ then plot2(j*(1.2),"高檔背離") ;//高檔背離後J值下彎
if deviate(low,j,20)=1 and j>j[1] and j <= _LowJ then plot3(j*(0.8),"低檔背離") ;//低檔背離後J值上彎

 

以上,提供參考,有問題歡迎詢問。

yingwei 發文於   2017/05/06

Hi Jack 大:

請問為何我套用後並沒有任何圖示產生?麻煩您了,謝謝

Jack 發文於   2017/05/08

yingwei 兄:

我方才有跑出來幾個小圖示,如圖

請你再試試看,有問題的話,歡迎再詢問。

yingwei 發文於   2017/05/09

Hi Jack 大:

請問我複製程式碼貼上後,編譯也沒問題,也照您說的去調整繪圖樣式,但是就是沒有您show的圖示,請問可能會是哪裡的問題呢?謝謝

XQ小幫手 發文於   2017/05/15

Hi yingwei,

請您將指標腳本匯出,記得勾選包含引用函數,並寄到客服信箱XQservice@XQ.com.tw,

註明一下,您提供資料是為了讓小幫手查看此問題(貼這邊的連結給客服)

小幫手想查看是否是指標腳本內的函數,有無被更換過,謝謝。

Show More Posts 發表回覆
Close