COCO研究院

 找回密碼
 註冊
搜索
查看: 3105|回復: 2

[其他程式語言] 請問在data1圖表中同時畫出data2支撐壓力線的問題

[複製鏈接]
發表於 16-4-23 14:16 | 顯示全部樓層 |閱讀模式
請問各位高手
我的支撐壓力線設定如下
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;


support resis.jpg
發表於 16-4-23 15:30 | 顯示全部樓層
會不會是不同週期的均線引用的問題?
http://www.multicharts.com.tw/di ... D_ID=2&SN=19207
發表於 16-4-25 16:49 | 顯示全部樓層
不彷把data2的東西值接寫再data1的同一隻程式即可,不用再開data2


假設是data MA20是跑5分K,data2 是跑60K,那就將data2的MA20,在data1內改寫成MA240,雖說有些差異,但差異應該沒很大


您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-22 20:32

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |