請問各位高手 我的支撐壓力線設定如下 1. 均線黃金交叉以後,如果當根K棒high > high[1],則2根K棒lowest(low,2) = 支撐,之後不再比較high & high[1],直到條件2符合改標記壓力線 2. 均線死亡交叉以後,如果當根K棒low < low[1],則2根K棒highest(high,2) = 壓力,之後不在比較low & low[1],直到條件1符合改標記支撐線 所以我設定了兩個開關,一個是黃金交叉與死亡交叉的開關,一個是high > high[1]或low<low[1]的開關讓支撐壓力不會因為突破而一直位移 同樣的程式碼在data1獨立圖表中運作正常,但當我想要把長週期data2資料一起畫到data1圖表的時候 copy同樣的程式碼新增for data2的condition變數stl2 sth2 p12 p22,並將high low改of data2就無法正常運作 支撐壓力線只要high > high[1]或low < low[1]會跟著位移,設定的stl sth p1 p2開關無效 我觀察很久應該是因為data1週期小data2,當data1 k棒結束時就會重新計算所有程式碼,導致data2原本計算的true / false失效 我改了很久改不出來,想請教各位高手是否有能夠解決此問題的寫法 感謝!! 原始data1程式碼如下: (效果如附件圖檔) vars: p1(false),p2(false); // p1開關是開始畫支撐,p2開關是開始畫壓力
vars: sth(false),stl(false); // sth開關是停止計算high > high[1] , stl開關是停止計算low < low[1]
//========plot data1========
if MA20 cross over MA45 then //如果均線黃金交叉,打開stl開關
stl = false;
if MA20 cross under MA45 then //如果均線死亡交叉,打開sth開關
sth = false;
if MA20 > MA45 and high > high[1] and stl = false then begin
value1 = lowest(low,2);
p1 = true; //畫支撐線開關
p2 = false; //畫壓力線開關
end;
if MA20 < MA45 and low < low[1] and sth = false then begin
value2 = highest(high,2);
p2 = true; //畫壓力線開關
p1 = false; //畫支撐線開關
end;
if p1 = true then begin //如果p1條件成立,開始畫支撐線並關閉stl開關不再比較low & low[1]
stl=true;
Plot1(value1, "Support");
end;
if p2 = true then begin //如果p2條件成立,開始畫壓力線並關閉sth開關不再比較high & high[1]
sth=true;
Plot2(value2, "resis");
end;
|