想用Dmi指標
此圖是60分K
1.Dmi的黃 (+Di)在藍圈圈的範圍
2.Dmi的藍 (-Di)在紅圈圈的範圍
1+2同時成立時,在5分K、15分K也成立
但,紅圈、藍圈都是變數
如何撰寫程式碼?
想用Dmi指標
此圖是60分K
1.Dmi的黃 (+Di)在藍圈圈的範圍
2.Dmi的藍 (-Di)在紅圈圈的範圍
1+2同時成立時,在5分K、15分K也成立
但,紅圈、藍圈都是變數
如何撰寫程式碼?
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);

請問:如果+D "i想在藍色圈圈的最上面一格範圍",設定有辦法為變數嗎?
-Di則"想在紅圈圈最下面一格範圍",也是想設定變數
不知該如何調整?
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);
3 評論