在5分k架構下,
怎麼紀錄 股價 拉回反彈的次數,預設 : 拉回3% 反彈2%
股價從100最高價 拉回3% 到 97 (符合條件,但反彈從最低點看),然後從最低價96.5反彈2%到98.5, 記錄一次,
接著 漲到99 (反彈後的最高價,不一定會比第一次的高價100元低或高) 後又拉回3%到96, 然後繼續跌到95元 (拉回後的最低價,不一定要比第一次拉回的96.5低或高) 之後反彈2%97元, 紀錄第二次 。
要怎麼寫? 謝謝。
在5分k架構下,
怎麼紀錄 股價 拉回反彈的次數,預設 : 拉回3% 反彈2%
股價從100最高價 拉回3% 到 97 (符合條件,但反彈從最低點看),然後從最低價96.5反彈2%到98.5, 記錄一次,
接著 漲到99 (反彈後的最高價,不一定會比第一次的高價100元低或高) 後又拉回3%到96, 然後繼續跌到95元 (拉回後的最低價,不一定要比第一次拉回的96.5低或高) 之後反彈2%97元, 紀錄第二次 。
要怎麼寫? 謝謝。
Hello 石頭,
小幫手認為您可以用變數紀錄到目前為止的最高價,然後和當下的價格相比,如果有拉回到3%的話就重置最高點,並開始計算最低價的拉回。
舉例來說:
var:intrabarpersist cond(0), intrabarpersist reth(0), intrabarpersist retl(0);
if date <> date[1] then begin //每日重置
value1 = high;
value2 = low;
cond = 0;
reth = 0;
retl = 0;
end;
if value1 < high then value1 = high; //創新高的話更新最高點
if value2 > low then value1 = low; //創新低的話更新最低點
if cond <= 0 and close <= (value1 * 0.97) then begin //如果從前次以後的最高點拉回3%,且前次拉回並不是高點拉回
reth += 1; //高點拉回次數加1
cond = 1; //紀錄為高點拉回
value2 = low; //重置最低點
end;
if cond >= 0 and close >= (value2 * 1.02) then begin //如果從前次以後的最低點拉回2%,且前次拉會並不是低點拉回
retl += 1; //低點拉回次數加1
cond = -1; //紀錄為低點拉回
value1 = high; //重置最高點
end;
這樣寫的話就會是每次高低點拉回就會記錄次數,但需注意要是交替拉回的狀況才會記錄,連續兩次高點/低點拉回是不會記錄的。
非常謝謝您的回覆,我再試看看
2 評論