想請問我想寫帶量突破60分K布林軌道、上軌,這樣語法哪邊有問題呢謝謝

  •   278 
  • 最後發表   發財鴻  2022 十二月 23
發財鴻 發文於   2022/12/22

 程式碼長這樣~但是像萬海這樣有符合我的想返但沒有跳出警示,想請教一下我的程式碼該如何做修改謝謝 ~

input:Length(20, "天數"), UpperBand(2, "上"), LowerBand(2, "下"),BBW(80,"5");

variable:up1(0),down1(0),mid1(0),bbandwidth(0);

bbandwidth = bollingerbandwidth(Close, Length, UpperBand, LowerBand);

settotalbar(3);

 

Value1 = GetQuote("估計量");      //量比公式為:估計量 / 五日均量

value2 = average(getfield("Volume", "D")[1], 25);

VALUE3 = BOLLIngerBand(C,20,2);

 

condition1 = value2 > 250;

condition2 = value1 / value2 > 1.5;

 

up1 = bollingerband(Close, Length, 1);

down1 = bollingerband(Close, Length, -1 );

mid1 = (up1 + down1) / 2;

 

IF  close cross Above bollingerband(Close, Length, UpperBand)

AND C[1]  < VAlue3[1]             //前一根K棒 < 布林上軌

AND CLOSE > OPen                  //紅棒

AND CLOSE > 20

AND bbandwidth >= BBW

then ret=1;

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/12/22

Hello 發財鴻,

 

您可以使用 print 或是將使用數值直接畫在圖上觀察即可得知問題原因。

bbandwidth >= BBW 的條件在該根Bar上不符合,bbandwidth 的數值為 10.78。

另外小幫手會建議您可以將 GetQuote("估計量") 改為 GetField("估計量"),因為報價欄位無法用在回測。

發財鴻 發文於   2022/12/22

謝謝小幫手,想請問我這樣改可以嗎?

input:Length(20, "天數"), UpperBand(2, "上"), LowerBand(2, "下");

variable:up(0),down(0),mid(0),bbandwidth(0);

bbandwidth = bollingerbandwidth(Close, Length, UpperBand, LowerBand);

settotalbar(3);

 

Value1 = GetFIELD("估計量");      //量比公式為:估計量 / 五日均量

value2 = average(getfield("Volume", "D")[1], 25);

 

condition1 = value2 > 250;

condition2 = value1 / value2 > 1.5;

 

up = bollingerband(Close, Length, UpperBand);

mid = average(close, Length);

down = bollingerband(Close, Length, -1 * LowerBand);

 

mid = (up + down) / 2;

bbandwidth = 100 * (up - down) / mid;

 

IF  close cross Above bollingerband(Close, Length, UpperBand)

AND bbandwidth > 10

AND C[1]  < UP                    //前一根K棒 < 布林上軌

AND CLOSE > OPen                  //紅棒

AND CLOSE > 20

then ret=1;

XQ小幫手 發文於   2022/12/23

Hello 發財鴻,

 

如果您是問可否在2022/12/22 早上 09:00 這根60分鐘 Bar 觸發警示的話是可以的。

您可以用回測作測試,並使用 print 檢查計算出來的數字。

 

發財鴻 發文於   2022/12/23

再請教一下,我把程式碼改為這樣

input:Length(20, "天數"), UpperBand(2, "上"), LowerBand(2, "下");

variable:up(0),down(0),mid(0),bbandwidth(0);

bbandwidth = bollingerbandwidth(Close, Length, UpperBand, LowerBand);

 

Value1 = GetFIELD("估計量");      //量比公式為:估計量 / 五日均量

value2 = volume[25];

VALUE3 = (close-open)/open;

 

condition1 = value1 > 300;

condition2 = value2 > 5000;

CONDITION3 = value3 < 0.06;

 

up = bollingerband(Close, Length, UpperBand);

mid = average(close, Length);

down = bollingerband(Close, Length, -1 * LowerBand);

 

mid = (up + down) / 2;

bbandwidth = 100 * (up - down) / mid;

 

IF  close cross Above bollingerband(Close, Length, UpperBand)

and condition1 and condition2 

AND C[1]  < UP                    //前一根K棒 < 布林上軌

AND CLOSE > OPen                  //紅棒

AND CLOSE < 300

AND CLOSE > 30

then ret=1;

 

今天的寶齡富錦(1760)是符合我想要得想法,但是沒有跳出警示,請問程式碼哪邊需要修改呢謝謝小幫手

XQ小幫手 發文於   2022/12/23

Hello 發財鴻,

 

您需要自行 print 出相關資訊觀看是那些條件不符合,為什麼不符合。

或是將其直接畫在指標上確認。

若是不知道如何撰寫,網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

1760 12/23 60分鐘頻率下 090000這根 Bar 是 close cross Above bollingerband(Close, Length, UpperBand) 不符合。

100000 這根Bar 則是 condition2 不符合。

發表回覆
Close