請教小幫手

  •   40 
  • 最後發表   will1  1 週前
will1 發文於   2018/11/08

想用Dmi指標

此圖是60分K

1.Dmi的黃 (+Di)在藍圈圈的範圍

2.Dmi的藍 (-Di)在紅圈圈的範圍

1+2同時成立時,在5分K、15分K也成立

但,紅圈、藍圈都是變數

如何撰寫程式碼?

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/11/09

Hi will1,

您好,可以使用 DirectionMovement 函數撰寫 +DI 與 -DI,

並用 if 判斷 當 +DI 在 39~31,且 -DI 在 9~16 時,觸發訊號,

以上方向供您參考,謝謝。


 小幫手有用以下程式碼範例撰寫,若撰寫卡關,可以先參考看看,

input:Length(14); setinputname(1,"計算期數");
variable: pdi(0), ndi(0), adx_value(0);

settotalbar(maxlist(Length,6) * 13 + 8);

DirectionMovement(Length, pdi, ndi, adx_value);

condition1 = pdi > 31 and pdi < 39;
condition2 = ndi > 9 and ndi < 16;

if condition1 and condition2 then ret = 1;

print(date,time,pdi,ndi, condition1, condition2);

will1 發文於   2018/11/09

請問:如果+D "i想在藍色圈圈的最上面一格範圍",設定有辦法為變數嗎?

 

-Di則"想在紅圈圈最下面一格範圍",也是想設定變數

不知該如何調整?

XQ小幫手 發文於   2018/11/12

Hi will1,

您好,猜想您是想要範圍的變數,可以設為輸入的參數,方便調整範圍,

如是的話,您可以使用 input 語法來宣告,如連結網頁 XS函數搜尋網 說明,

程式碼範例如下,以上方向供您參考,謝謝:

input:Length(14, "計算期數"), pdi_Min(31), pdi_Max(39), ndi_Min(9), nid_Max(16);
variable: pdi(0), ndi(0), adx_value(0);

settotalbar(maxlist(Length,6) * 13 + 8);

if pdi_Min >= pdi_Max or ndi_Min>= nid_Max then raiseruntimeerror("邏輯矛盾:範圍最小參數大於最大參數");

DirectionMovement(Length, pdi, ndi, adx_value);

condition1 = pdi > pdi_Min and pdi < pdi_Max;
condition2 = ndi > ndi_Min and ndi < nid_Max;

if condition1 and condition2 then ret = 1;

print(date,time,pdi,ndi, condition1, condition2);

 

發表回覆
Close